diff --git a/analyzers/archive-analyzer.html b/analyzers/archive-analyzer.html index 93bfd794adb..36ef45ccdf0 100644 --- a/analyzers/archive-analyzer.html +++ b/analyzers/archive-analyzer.html @@ -1,13 +1,13 @@ - + dependency-check – Archive Analyzer @@ -40,8 +40,8 @@
  • Dependency-Check/
  • documentation/
  • Archive Analyzer
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • diff --git a/analyzers/assembly-analyzer.html b/analyzers/assembly-analyzer.html index e1307f0bb3a..1239f7edf63 100644 --- a/analyzers/assembly-analyzer.html +++ b/analyzers/assembly-analyzer.html @@ -1,13 +1,13 @@ - + dependency-check – Assembly Analyzer @@ -40,8 +40,8 @@
  • Dependency-Check/
  • documentation/
  • Assembly Analyzer
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • diff --git a/analyzers/autoconf.html b/analyzers/autoconf.html index 784bba784bb..37fea14ed3a 100644 --- a/analyzers/autoconf.html +++ b/analyzers/autoconf.html @@ -1,13 +1,13 @@ - + dependency-check – Autoconf Analyzer @@ -40,8 +40,8 @@
  • Dependency-Check/
  • documentation/
  • Autoconf Analyzer
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • diff --git a/analyzers/bundle-audit.html b/analyzers/bundle-audit.html index d5ed0f30769..ee811d218dc 100644 --- a/analyzers/bundle-audit.html +++ b/analyzers/bundle-audit.html @@ -1,13 +1,13 @@ - + dependency-check – Ruby Bundle-audit Analyzer @@ -40,8 +40,8 @@
  • Dependency-Check/
  • documentation/
  • Ruby Bundle-audit Analyzer
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • diff --git a/analyzers/central-analyzer.html b/analyzers/central-analyzer.html index c86aab4204c..a8cca1218b8 100644 --- a/analyzers/central-analyzer.html +++ b/analyzers/central-analyzer.html @@ -1,13 +1,13 @@ - + dependency-check – Central Analyzer @@ -40,8 +40,8 @@
  • Dependency-Check/
  • documentation/
  • Central Analyzer
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • diff --git a/analyzers/cmake.html b/analyzers/cmake.html index 01e046a7718..271e10b9d5b 100644 --- a/analyzers/cmake.html +++ b/analyzers/cmake.html @@ -1,13 +1,13 @@ - + dependency-check – CMake Analyzer @@ -40,8 +40,8 @@
  • Dependency-Check/
  • documentation/
  • CMake Analyzer
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • diff --git a/analyzers/cocoapods.html b/analyzers/cocoapods.html index de62ba69d03..1f9d8205645 100644 --- a/analyzers/cocoapods.html +++ b/analyzers/cocoapods.html @@ -1,13 +1,13 @@ - + dependency-check – CocoaPods Analyzer @@ -40,8 +40,8 @@
  • Dependency-Check/
  • documentation/
  • CocoaPods Analyzer
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • diff --git a/analyzers/composer-lock.html b/analyzers/composer-lock.html index 3cb0659d3b0..348e59bfd33 100644 --- a/analyzers/composer-lock.html +++ b/analyzers/composer-lock.html @@ -1,13 +1,13 @@ - + dependency-check – Composer Lock Analyzer @@ -40,8 +40,8 @@
  • Dependency-Check/
  • documentation/
  • Composer Lock Analyzer
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • diff --git a/analyzers/cpanfile.html b/analyzers/cpanfile.html index 3d210327785..106c26eb965 100644 --- a/analyzers/cpanfile.html +++ b/analyzers/cpanfile.html @@ -1,13 +1,13 @@ - + dependency-check – CPAN File Analyzer @@ -40,8 +40,8 @@
  • Dependency-Check/
  • documentation/
  • CPAN File Analyzer
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • diff --git a/analyzers/dart.html b/analyzers/dart.html index 4cc606a6406..5d2cb0c0c07 100644 --- a/analyzers/dart.html +++ b/analyzers/dart.html @@ -1,13 +1,13 @@ - + dependency-check – Dart Analyzer @@ -40,8 +40,8 @@
  • Dependency-Check/
  • documentation/
  • Dart Analyzer
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • diff --git a/analyzers/golang-dep.html b/analyzers/golang-dep.html index cbf3ffc1ee8..f858439b40a 100644 --- a/analyzers/golang-dep.html +++ b/analyzers/golang-dep.html @@ -1,13 +1,13 @@ - + dependency-check – Golang Dependency Analyzer @@ -40,8 +40,8 @@
  • Dependency-Check/
  • documentation/
  • Golang Dependency Analyzer
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • diff --git a/analyzers/golang-mod.html b/analyzers/golang-mod.html index e237699435d..7eea9926030 100644 --- a/analyzers/golang-mod.html +++ b/analyzers/golang-mod.html @@ -1,13 +1,13 @@ - + dependency-check – Golang Mod Analyzer @@ -40,8 +40,8 @@
  • Dependency-Check/
  • documentation/
  • Golang Mod Analyzer
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • diff --git a/analyzers/index.html b/analyzers/index.html index 892de8b3373..d9100afc22c 100644 --- a/analyzers/index.html +++ b/analyzers/index.html @@ -1,13 +1,13 @@ - + dependency-check – File Type Analyzers @@ -40,8 +40,8 @@
  • Dependency-Check/
  • documentation/
  • File Type Analyzers
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • diff --git a/analyzers/jar-analyzer.html b/analyzers/jar-analyzer.html index 7b51c2412a6..840a1a017ba 100644 --- a/analyzers/jar-analyzer.html +++ b/analyzers/jar-analyzer.html @@ -1,13 +1,13 @@ - + dependency-check – Jar Analyzer @@ -40,8 +40,8 @@
  • Dependency-Check/
  • documentation/
  • Jar Analyzer
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • diff --git a/analyzers/nexus-analyzer.html b/analyzers/nexus-analyzer.html index ba8e2a56a1a..f82bfc0c5b6 100644 --- a/analyzers/nexus-analyzer.html +++ b/analyzers/nexus-analyzer.html @@ -1,13 +1,13 @@ - + dependency-check – Nexus Analyzer @@ -40,8 +40,8 @@
  • Dependency-Check/
  • documentation/
  • Nexus Analyzer
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • diff --git a/analyzers/node-audit-analyzer.html b/analyzers/node-audit-analyzer.html index c3066ca1083..9f61caf255f 100644 --- a/analyzers/node-audit-analyzer.html +++ b/analyzers/node-audit-analyzer.html @@ -1,13 +1,13 @@ - + dependency-check – Node Audit Analyzer @@ -40,8 +40,8 @@
  • Dependency-Check/
  • documentation/
  • Node Audit Analyzer
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • diff --git a/analyzers/nodejs.html b/analyzers/nodejs.html index 49c5ca8fa13..3f656e697c6 100644 --- a/analyzers/nodejs.html +++ b/analyzers/nodejs.html @@ -1,13 +1,13 @@ - + dependency-check – Node.js Analyzer @@ -40,8 +40,8 @@
  • Dependency-Check/
  • documentation/
  • Node.js Analyzer
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • diff --git a/analyzers/nugetconf-analyzer.html b/analyzers/nugetconf-analyzer.html index 16fbc2c821b..c5967da38f7 100644 --- a/analyzers/nugetconf-analyzer.html +++ b/analyzers/nugetconf-analyzer.html @@ -1,13 +1,13 @@ - + dependency-check – Nugetconf Analyzer @@ -40,8 +40,8 @@
  • Dependency-Check/
  • documentation/
  • Nugetconf Analyzer
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • diff --git a/analyzers/nuspec-analyzer.html b/analyzers/nuspec-analyzer.html index 49e0130bedb..15334b07975 100644 --- a/analyzers/nuspec-analyzer.html +++ b/analyzers/nuspec-analyzer.html @@ -1,13 +1,13 @@ - + dependency-check – Nuspec Analyzer @@ -40,8 +40,8 @@
  • Dependency-Check/
  • documentation/
  • Nuspec Analyzer
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • diff --git a/analyzers/openssl.html b/analyzers/openssl.html index fe10e210ddc..1a20e4482ef 100644 --- a/analyzers/openssl.html +++ b/analyzers/openssl.html @@ -1,13 +1,13 @@ - + dependency-check – OpenSSL Analyzer @@ -40,8 +40,8 @@
  • Dependency-Check/
  • documentation/
  • OpenSSL Analyzer
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • diff --git a/analyzers/oss-index-analyzer.html b/analyzers/oss-index-analyzer.html index 3e0a571a6b1..0523da2adf0 100644 --- a/analyzers/oss-index-analyzer.html +++ b/analyzers/oss-index-analyzer.html @@ -1,13 +1,13 @@ - + dependency-check – OSS Index Analyzer @@ -40,8 +40,8 @@
  • Dependency-Check/
  • documentation/
  • OSS Index Analyzer
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • diff --git a/analyzers/pe-analyzer.html b/analyzers/pe-analyzer.html index e1bcf93528b..0d771f05d26 100644 --- a/analyzers/pe-analyzer.html +++ b/analyzers/pe-analyzer.html @@ -1,13 +1,13 @@ - + dependency-check – PE Analyzer @@ -40,8 +40,8 @@
  • Dependency-Check/
  • documentation/
  • PE Analyzer
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • diff --git a/analyzers/pip.html b/analyzers/pip.html index 7e56daf50be..57b9ea5f7cc 100644 --- a/analyzers/pip.html +++ b/analyzers/pip.html @@ -1,13 +1,13 @@ - + dependency-check – Pip Analyzer @@ -40,8 +40,8 @@
  • Dependency-Check/
  • documentation/
  • Pip Analyzer
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • diff --git a/analyzers/python.html b/analyzers/python.html index 245b11706d3..41fd9fcd1d9 100644 --- a/analyzers/python.html +++ b/analyzers/python.html @@ -1,13 +1,13 @@ - + dependency-check – Python Analyzer @@ -40,8 +40,8 @@
  • Dependency-Check/
  • documentation/
  • Python Analyzer
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • diff --git a/analyzers/retirejs-analyzer.html b/analyzers/retirejs-analyzer.html index 0630669f55c..78213cc053b 100644 --- a/analyzers/retirejs-analyzer.html +++ b/analyzers/retirejs-analyzer.html @@ -1,13 +1,13 @@ - + dependency-check – Retire JS Analyzer @@ -40,8 +40,8 @@
  • Dependency-Check/
  • documentation/
  • Retire JS Analyzer
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • diff --git a/analyzers/ruby-gemspec.html b/analyzers/ruby-gemspec.html index d0fb91ee4f9..dc99c72dd5b 100644 --- a/analyzers/ruby-gemspec.html +++ b/analyzers/ruby-gemspec.html @@ -1,13 +1,13 @@ - + dependency-check – Ruby Gemspec Analyzer @@ -40,8 +40,8 @@
  • Dependency-Check/
  • documentation/
  • Ruby Gemspec Analyzer
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • diff --git a/analyzers/swift.html b/analyzers/swift.html index f3758b56126..0324130a007 100644 --- a/analyzers/swift.html +++ b/analyzers/swift.html @@ -1,13 +1,13 @@ - + dependency-check – SWIFT Package Manager Analyzer @@ -40,8 +40,8 @@
  • Dependency-Check/
  • documentation/
  • SWIFT Package Manager Analyzer
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • diff --git a/checkstyle-aggregate.html b/checkstyle-aggregate.html index df0d10c1b3e..60156be0c70 100644 --- a/checkstyle-aggregate.html +++ b/checkstyle-aggregate.html @@ -1,13 +1,13 @@ - + dependency-check – Checkstyle Results @@ -40,8 +40,8 @@
  • Dependency-Check/
  • documentation/
  • Checkstyle Results
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • @@ -99,7 +99,7 @@

    Summary

    412 0 0 -24
    +36

    Details

    org/owasp/dependencycheck/CliParser.java

    @@ -114,7 +114,13 @@

    org/owasp/depen

    -
    whitespace WhitespaceAfter ',' is not followed by whitespace.362
    +364 + + Error +javadoc +JavadocStyle +First sentence should end with a period. +1132

    org/owasp/dependencycheck/data/nvdcve/DatabaseProperties.java

    @@ -134,26 +140,114 @@

    21

    +
    21
    +

    org/owasp/dependencycheck/data/update/KnownExploitedDataSource.java

    + + + + + + + + + + +
    SeverityCategoryRuleMessageLine
     ErrorimportsUnusedImportsUnused import - org.owasp.dependencycheck.utils.DateUtil.32
    +

    org/owasp/dependencycheck/data/update/NvdApiDataSource.java

    + + + + + + + + + + + + + + + - + + + + + + + - + + + + + + + + + + + + + -
    SeverityCategoryRuleMessageLine
     ErrorcodingFinalLocalVariableVariable 'url' should be declared final.140
     Error regexp RegexpSingleline Line matches the illegal pattern '\s+$'.165
    218
     ErrorcodingFinalLocalVariableVariable 'lastModifiedRequest' should be declared final.219
     Error regexp RegexpSingleline Line matches the illegal pattern '\s+$'.168
    226
     ErrorcodingFinalLocalVariableVariable 'items' should be declared final.346
     ErrorjavadocJavadocMethodExpected @param tag for 'pattern'.575
     Error regexp RegexpSingleline Line matches the illegal pattern '\s+$'.171
    -

    org/owasp/dependencycheck/data/update/NvdApiDataSource.java

    +582 + + Error +coding +FinalLocalVariable +Variable 'metaPattern' should be declared final. +586 + + Error +coding +FinalLocalVariable +Variable 'props' should be declared final. +595 + + Error +whitespace +WhitespaceAfter +',' is not followed by whitespace. +598 + + Error +whitespace +WhitespaceAfter +',' is not followed by whitespace. +599 + + Error +whitespace +ParenPad +'(' is followed by whitespace. +614 + + Error +javadoc +JavadocVariable +Missing a Javadoc comment. +624 + + Error +javadoc +JavadocVariable +Missing a Javadoc comment. +626
    +

    org/owasp/dependencycheck/data/update/nvd/api/NvdApiProcessor.java

    @@ -163,60 +257,58 @@

    - - - - + + + + - - + + - - + + - -
    Severity ErrorwhitespaceWhitespaceAround'>' is not followed by whitespace.268
    regexpRegexpSinglelineLine matches the illegal pattern '\s+$'.97
     Error whitespace WhitespaceAround'>' is not preceded with whitespace.268
    '{' is not followed by whitespace.101
     Error whitespace WhitespaceAround'/' is not followed by whitespace.275
    '{' is not preceded with whitespace.101
     Error whitespace WhitespaceAround'/' is not preceded with whitespace.275
    -

    org/owasp/dependencycheck/maven/BaseDependencyCheckMojo.java

    - - - - - - - + + - - - - + + + + - - - - + + + + - - - - + + + + - - - -
    SeverityCategoryRuleMessageLine
    '}' is not preceded with whitespace.101
     ErrorimportsUnusedImportsUnused import - java.lang.reflect.Field.80
    codingFinalLocalVariableVariable 'cveData' should be declared final.108
     ErrorimportsUnusedImportsUnused import - org.slf4j.Logger.111
    whitespaceWhitespaceAround'{' is not followed by whitespace.116
     ErrorimportsUnusedImportsUnused import - org.slf4j.LoggerFactory.112
    whitespaceWhitespaceAround'{' is not preceded with whitespace.116
     ErrorimportsUnusedImportsUnused import - org.slf4j.spi.LocationAwareLogger.113
    +whitespace +WhitespaceAround +'}' is not preceded with whitespace. +116 + + Error +whitespace +ParenPad +')' is preceded with whitespace. +118

    org/owasp/dependencycheck/reporting/ReportGenerator.java

    @@ -251,7 +343,7 @@

    or

    MissingJavadocMethod Missing a Javadoc comment. 125
    -

    org/owasp/dependencycheck/taskdefs/Purge.java

    +

    org/owasp/dependencycheck/utils/Downloader.java

    @@ -263,26 +355,14 @@

    org/owas

    - - - - - - - - - - - - - - + + - - - -
    Severity Error imports UnusedImportsUnused import - java.lang.reflect.Field.24
     ErrorimportsUnusedImportsUnused import - org.slf4j.Logger.31
     ErrorimportsUnusedImportsUnused import - org.slf4j.LoggerFactory.32
    Unused import - java.util.zip.GZIPInputStream.29
     ErrorimportsUnusedImportsUnused import - org.slf4j.spi.LocationAwareLogger.34
    +regexp +RegexpSingleline +Line matches the illegal pattern '\s+$'. +181

    org/owasp/dependencycheck/utils/Utils.java

    diff --git a/checkstyle.html b/checkstyle.html index df70190de05..972e654d9d8 100644 --- a/checkstyle.html +++ b/checkstyle.html @@ -1,13 +1,13 @@ - + dependency-check – Checkstyle Results @@ -40,8 +40,8 @@
  • Dependency-Check/
  • documentation/
  • Checkstyle Results
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • diff --git a/ci-management.html b/ci-management.html index ecbe684def3..7b62138f170 100644 --- a/ci-management.html +++ b/ci-management.html @@ -1,13 +1,13 @@ - + dependency-check – CI Management @@ -40,8 +40,8 @@
  • Dependency-Check/
  • documentation/
  • CI Management
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • diff --git a/current.txt b/current.txt index 93c8cbd8abe..171d800e0f7 100644 --- a/current.txt +++ b/current.txt @@ -1 +1 @@ -9.0.4 \ No newline at end of file +9.0.5 \ No newline at end of file diff --git a/data/cacheh2.html b/data/cacheh2.html index 59af51a8c07..8fab822d5bc 100644 --- a/data/cacheh2.html +++ b/data/cacheh2.html @@ -1,13 +1,13 @@ - + dependency-check – Caching ODCs H2 Database @@ -40,8 +40,8 @@
  • Dependency-Check/
  • documentation/
  • Caching ODCs H2 Database
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • diff --git a/data/cachenvd.html b/data/cachenvd.html index 7dfef4cf198..8df1033b430 100644 --- a/data/cachenvd.html +++ b/data/cachenvd.html @@ -1,13 +1,13 @@ - + dependency-check – Creating an offline cache for the NVD API @@ -40,8 +40,8 @@
  • Dependency-Check/
  • documentation/
  • Creating an offline cache for the NVD API
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • diff --git a/data/database.html b/data/database.html index d5ac2b49e12..0425424ffae 100644 --- a/data/database.html +++ b/data/database.html @@ -1,13 +1,13 @@ - + dependency-check – Using a Database Server @@ -40,8 +40,8 @@
  • Dependency-Check/
  • documentation/
  • Using a Database Server
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • @@ -158,7 +158,7 @@

    Examples

    <plugin> <groupId>org.owasp</groupId> <artifactId>dependency-check-maven</artifactId> - <version>9.0.4</version> + <version>9.0.5</version> <dependencies> <dependency> <groupId>org.mariadb.jdbc</groupId> diff --git a/data/index.html b/data/index.html index ed4a75e1b4c..b0b0f674d50 100644 --- a/data/index.html +++ b/data/index.html @@ -1,13 +1,13 @@ - + dependency-check – Internet Access Required @@ -40,8 +40,8 @@
  • Dependency-Check/
  • documentation/
  • Internet Access Required
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • @@ -115,7 +115,7 @@

    The NVD Database

  • Configure the proxy settings so that the build server can access the Internet
  • Mirror the NVD locally within your organization
  • -
  • Build the H2 database on one node and cache the H2 database.
  • +
  • Build the H2 database on one node and cache the H2 database.
  • Use a more robust centralized database with a single update node
  • CISA Known Exploited Vulnerabilities

    diff --git a/data/mirrornvd.html b/data/mirrornvd.html index a8fa789134f..20365155737 100644 --- a/data/mirrornvd.html +++ b/data/mirrornvd.html @@ -1,13 +1,13 @@ - + dependency-check – Mirroring External Resources @@ -40,8 +40,8 @@
  • Dependency-Check/
  • documentation/
  • Mirroring External Resources
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • diff --git a/data/ossindex.html b/data/ossindex.html index 09d2d1de689..51dab9d3ac8 100644 --- a/data/ossindex.html +++ b/data/ossindex.html @@ -1,13 +1,13 @@ - + dependency-check – Sonatype OSS Index Analyzer @@ -40,8 +40,8 @@
  • Dependency-Check/
  • documentation/
  • Sonatype OSS Index Analyzer
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • diff --git a/data/proxy.html b/data/proxy.html index 6cafe678bda..3de46b81b86 100644 --- a/data/proxy.html +++ b/data/proxy.html @@ -1,13 +1,13 @@ - + dependency-check – Proxy Configuration @@ -40,8 +40,8 @@
  • Dependency-Check/
  • documentation/
  • Proxy Configuration
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • diff --git a/data/tlsfailure.html b/data/tlsfailure.html index a2a7c62b584..347c1bdfb35 100644 --- a/data/tlsfailure.html +++ b/data/tlsfailure.html @@ -1,13 +1,13 @@ - + dependency-check – NVD API Access Failures @@ -40,8 +40,8 @@
  • Dependency-Check/
  • documentation/
  • NVD API Access Failures
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • diff --git a/data/upgrade.html b/data/upgrade.html index 6a42b9710e6..c9e28b8ea30 100644 --- a/data/upgrade.html +++ b/data/upgrade.html @@ -1,13 +1,13 @@ - + dependency-check – Database Upgrades @@ -40,8 +40,8 @@
  • Dependency-Check/
  • documentation/
  • Database Upgrades
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • diff --git a/dependency-check-ant/apidocs/allclasses-frame.html b/dependency-check-ant/apidocs/allclasses-frame.html index 9d4cd355400..e9fa6305999 100644 --- a/dependency-check-ant/apidocs/allclasses-frame.html +++ b/dependency-check-ant/apidocs/allclasses-frame.html @@ -4,7 +4,7 @@ -All Classes (Dependency-Check Ant Task 9.0.4 API) +All Classes (Dependency-Check Ant Task 9.0.5 API) diff --git a/dependency-check-ant/apidocs/allclasses-noframe.html b/dependency-check-ant/apidocs/allclasses-noframe.html index 97b56c648c3..f0288665486 100644 --- a/dependency-check-ant/apidocs/allclasses-noframe.html +++ b/dependency-check-ant/apidocs/allclasses-noframe.html @@ -4,7 +4,7 @@ -All Classes (Dependency-Check Ant Task 9.0.4 API) +All Classes (Dependency-Check Ant Task 9.0.5 API) diff --git a/dependency-check-ant/apidocs/constant-values.html b/dependency-check-ant/apidocs/constant-values.html index ee1f1916aa5..b854e0524c6 100644 --- a/dependency-check-ant/apidocs/constant-values.html +++ b/dependency-check-ant/apidocs/constant-values.html @@ -4,7 +4,7 @@ -Constant Field Values (Dependency-Check Ant Task 9.0.4 API) +Constant Field Values (Dependency-Check Ant Task 9.0.5 API) @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ diff --git a/dependency-check-ant/apidocs/org/owasp/dependencycheck/ant/logging/package-summary.html b/dependency-check-ant/apidocs/org/owasp/dependencycheck/ant/logging/package-summary.html index ece5409aeed..431ccdf5d30 100644 --- a/dependency-check-ant/apidocs/org/owasp/dependencycheck/ant/logging/package-summary.html +++ b/dependency-check-ant/apidocs/org/owasp/dependencycheck/ant/logging/package-summary.html @@ -4,7 +4,7 @@ -org.owasp.dependencycheck.ant.logging (Dependency-Check Ant Task 9.0.4 API) +org.owasp.dependencycheck.ant.logging (Dependency-Check Ant Task 9.0.5 API) @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,13 +12,13 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ diff --git a/dependency-check-ant/apidocs/org/owasp/dependencycheck/taskdefs/package-summary.html b/dependency-check-ant/apidocs/org/owasp/dependencycheck/taskdefs/package-summary.html index 5056004641c..0d23eaaebd4 100644 --- a/dependency-check-ant/apidocs/org/owasp/dependencycheck/taskdefs/package-summary.html +++ b/dependency-check-ant/apidocs/org/owasp/dependencycheck/taskdefs/package-summary.html @@ -4,7 +4,7 @@ -org.owasp.dependencycheck.taskdefs (Dependency-Check Ant Task 9.0.4 API) +org.owasp.dependencycheck.taskdefs (Dependency-Check Ant Task 9.0.5 API) @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ diff --git a/dependency-check-ant/apidocs/org/slf4j/impl/package-summary.html b/dependency-check-ant/apidocs/org/slf4j/impl/package-summary.html index 1f6f5cee090..5b367c323f4 100644 --- a/dependency-check-ant/apidocs/org/slf4j/impl/package-summary.html +++ b/dependency-check-ant/apidocs/org/slf4j/impl/package-summary.html @@ -4,7 +4,7 @@ -org.slf4j.impl (Dependency-Check Ant Task 9.0.4 API) +org.slf4j.impl (Dependency-Check Ant Task 9.0.5 API) @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ diff --git a/dependency-check-ant/apidocs/overview-summary.html b/dependency-check-ant/apidocs/overview-summary.html index db7aba3be02..c83fe85807b 100644 --- a/dependency-check-ant/apidocs/overview-summary.html +++ b/dependency-check-ant/apidocs/overview-summary.html @@ -4,7 +4,7 @@ -Overview (Dependency-Check Ant Task 9.0.4 API) +Overview (Dependency-Check Ant Task 9.0.5 API) @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@

    Dependency-Check Ant Task

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethodsMissedClasses
    Total1,142 of 2,52254%82 of 13840%275355407730221286010
    org.owasp.dependencycheck.taskdefs9731,16754%493944%23629035661320324607
    org.owasp.dependencycheck.ant.logging16717551%331734%385950104173402
    org.slf4j.impl3895%n/a161131601
    \ No newline at end of file +Dependency-Check Ant Task

    Dependency-Check Ant Task

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethodsMissedClasses
    Total1,149 of 2,56955%82 of 14041%277358410737223288010
    org.owasp.dependencycheck.taskdefs9801,20755%494145%23829335962020524807
    org.owasp.dependencycheck.ant.logging16717551%331734%385950104173402
    org.slf4j.impl3895%n/a161131601
    \ No newline at end of file diff --git a/dependency-check-ant/jacoco/jacoco-sessions.html b/dependency-check-ant/jacoco/jacoco-sessions.html index 8ffd1feae0b..4784061c4e1 100644 --- a/dependency-check-ant/jacoco/jacoco-sessions.html +++ b/dependency-check-ant/jacoco/jacoco-sessions.html @@ -1 +1 @@ -Sessions

    Sessions

    This coverage report is based on execution data from the following sessions:

    SessionStart TimeDump Time
    fv-az773-600-863e60bcDec 8, 2023 11:25:25 AMDec 8, 2023 11:26:00 AM

    Execution data for the following classes is considered in this report:

    ClassId
    com.fasterxml.jackson.annotation.JsonAutoDetect.16be52ec71dcf28a2
    com.fasterxml.jackson.annotation.JsonAutoDetect.Visibilitye56bcd385626eead
    com.fasterxml.jackson.annotation.JsonFormat.Featuree632f8db525e6519
    com.fasterxml.jackson.annotation.JsonFormat.Features75fb2eb9717dc62a
    com.fasterxml.jackson.annotation.JsonFormat.Shapec19c22f9661f3b7d
    com.fasterxml.jackson.annotation.JsonFormat.Value0eb8231d09bfd09a
    com.fasterxml.jackson.annotation.JsonIgnoreProperties.Value4f0da3cf85f6ca76
    com.fasterxml.jackson.annotation.JsonInclude.Include30ab0a782ad08747
    com.fasterxml.jackson.annotation.JsonInclude.Valuea558d9f40414e748
    com.fasterxml.jackson.annotation.JsonIncludeProperties.Value7ed084480a07ee84
    com.fasterxml.jackson.annotation.JsonProperty.Accessb5322e85ff85e8b9
    com.fasterxml.jackson.annotation.JsonSetter.Value6ee26ce006658a00
    com.fasterxml.jackson.annotation.Nulls724f990ec72b618f
    com.fasterxml.jackson.annotation.PropertyAccessora506c0b4a9292088
    com.fasterxml.jackson.core.Base64Variant820db952b2ce1918
    com.fasterxml.jackson.core.Base64Variant.PaddingReadBehaviourdd0e63a614fe004b
    com.fasterxml.jackson.core.Base64Variantse646bbe091ae79c0
    com.fasterxml.jackson.core.ErrorReportConfiguration6ae7b9c14364f861
    com.fasterxml.jackson.core.JsonFactory4b6dbe517dc74f05
    com.fasterxml.jackson.core.JsonFactory.Feature6053a66ef91d8599
    com.fasterxml.jackson.core.JsonGenerator8a53f1394a871e41
    com.fasterxml.jackson.core.JsonGenerator.Featuredca43627a1b1d378
    com.fasterxml.jackson.core.JsonParserbfa2b2aaf45dbdaf
    com.fasterxml.jackson.core.JsonParser.Feature7e095b73debaa45f
    com.fasterxml.jackson.core.JsonParser.NumberType88e7ccc17e76b9de
    com.fasterxml.jackson.core.JsonStreamContext369abe89770bcf3d
    com.fasterxml.jackson.core.JsonTokeneed63a6e4a8e9120
    com.fasterxml.jackson.core.ObjectCodec4de1a295d9dc31ca
    com.fasterxml.jackson.core.PrettyPrinterf27d5528a26794c9
    com.fasterxml.jackson.core.StreamReadCapabilitya4c561ff4de25114
    com.fasterxml.jackson.core.StreamReadConstraintsfef85c00a0df6225
    com.fasterxml.jackson.core.StreamWriteCapability20b236b266d25323
    com.fasterxml.jackson.core.StreamWriteConstraintsf2bb5b3756dacf82
    com.fasterxml.jackson.core.TokenStreamFactory41de330f27eca392
    com.fasterxml.jackson.core.TreeCodec18594f8a8dcec6a2
    com.fasterxml.jackson.core.base.GeneratorBase769b434d47814ead
    com.fasterxml.jackson.core.base.ParserBase7ea5c57b85e68f85
    com.fasterxml.jackson.core.base.ParserMinimalBasedafc6c7b6eb27cb5
    com.fasterxml.jackson.core.io.CharTypes07a8747913d8e991
    com.fasterxml.jackson.core.io.ContentReferencec1bf9547a5b31574
    com.fasterxml.jackson.core.io.IOContext92f945a4db96d4d1
    com.fasterxml.jackson.core.io.JsonStringEncodercaf3b669acbbe223
    com.fasterxml.jackson.core.io.SegmentedStringWriteraf9b17af11ce151f
    com.fasterxml.jackson.core.io.SerializedStringde06c047872018ad
    com.fasterxml.jackson.core.json.JsonGeneratorImpl62f7e0732a7b3f16
    com.fasterxml.jackson.core.json.JsonReadContext7fe93ff4dfcd910a
    com.fasterxml.jackson.core.json.JsonWriteContext80adf9bb4918112e
    com.fasterxml.jackson.core.json.ReaderBasedJsonParser5a748aacc97cbeaf
    com.fasterxml.jackson.core.json.WriterBasedJsonGenerator4c9c68d95ea16405
    com.fasterxml.jackson.core.sym.ByteQuadsCanonicalizer5054f4087e115bac
    com.fasterxml.jackson.core.sym.ByteQuadsCanonicalizer.TableInfoeb0211d6faa23d01
    com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer098437effe93aab8
    com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer.TableInfo7f8a1e78ae4259c6
    com.fasterxml.jackson.core.type.ResolvedType8a4589ad9960ed59
    com.fasterxml.jackson.core.util.BufferRecycler130f2ce298e329d8
    com.fasterxml.jackson.core.util.BufferRecyclers4e7bee8eece90b3a
    com.fasterxml.jackson.core.util.DefaultIndenter18913563e8366f39
    com.fasterxml.jackson.core.util.DefaultPrettyPrinterdffce786178e5ff1
    com.fasterxml.jackson.core.util.DefaultPrettyPrinter.FixedSpaceIndenter418687d575a4f083
    com.fasterxml.jackson.core.util.DefaultPrettyPrinter.NopIndenter110c0bf83e5c079c
    com.fasterxml.jackson.core.util.InternCacheb55c4c122f488f2e
    com.fasterxml.jackson.core.util.JacksonFeatureSet69b6b3d8af7f13b3
    com.fasterxml.jackson.core.util.JsonRecyclerPoolsbb15cd8e45e37fee
    com.fasterxml.jackson.core.util.JsonRecyclerPools.ThreadLocalPoolb47528b0197c08e2
    com.fasterxml.jackson.core.util.ReadConstrainedTextBuffer23fc9ce24061d845
    com.fasterxml.jackson.core.util.RecyclerPool.ThreadLocalPoolBase23bd83512f98e1cd
    com.fasterxml.jackson.core.util.Separatorsdb601d3f3bad91c2
    com.fasterxml.jackson.core.util.Separators.Spacing511422cc9db17520
    com.fasterxml.jackson.core.util.TextBuffere0024e1d666b4905
    com.fasterxml.jackson.databind.AnnotationIntrospector905eb800c47f61a4
    com.fasterxml.jackson.databind.AnnotationIntrospector.ReferenceProperty09f92466c78dd697
    com.fasterxml.jackson.databind.AnnotationIntrospector.ReferenceProperty.Typed90a083248c5b3dc
    com.fasterxml.jackson.databind.BeanDescriptionb72f4d814c7d9796
    com.fasterxml.jackson.databind.DatabindContext190fc61056492212
    com.fasterxml.jackson.databind.DeserializationConfiga66abddaffd0eeda
    com.fasterxml.jackson.databind.DeserializationContexte42cf81978826049
    com.fasterxml.jackson.databind.DeserializationFeaturee8c5e101ec4650d4
    com.fasterxml.jackson.databind.JavaType4b4e8dfd897d7a79
    com.fasterxml.jackson.databind.JsonDeserializerf155d5de89ce5a60
    com.fasterxml.jackson.databind.JsonSerializeradb9d1fae01b02c7
    com.fasterxml.jackson.databind.MapperFeatured7d85f4bfd3cff7a
    com.fasterxml.jackson.databind.MappingJsonFactory65cdd9294dfaf29a
    com.fasterxml.jackson.databind.ObjectMapper1267d692f0f6e0ba
    com.fasterxml.jackson.databind.ObjectReader1d24d1af08075eb3
    com.fasterxml.jackson.databind.PropertyMetadata56620abf8cdd07c8
    com.fasterxml.jackson.databind.PropertyName217cf81be2326911
    com.fasterxml.jackson.databind.SerializationConfig40620b2ae2347380
    com.fasterxml.jackson.databind.SerializationFeature9609ec0ec1e8bc2a
    com.fasterxml.jackson.databind.SerializerProvider10f427a250ca2427
    com.fasterxml.jackson.databind.cfg.BaseSettings74949427e8604cd4
    com.fasterxml.jackson.databind.cfg.CoercionAction9e15561f16680f97
    com.fasterxml.jackson.databind.cfg.CoercionConfigffad61191adeb87e
    com.fasterxml.jackson.databind.cfg.CoercionConfigs8937a55c926c734f
    com.fasterxml.jackson.databind.cfg.CoercionInputShape90aad4e377b3dccd
    com.fasterxml.jackson.databind.cfg.ConfigOverridef1771a0d408303c8
    com.fasterxml.jackson.databind.cfg.ConfigOverride.Empty3372ed519d9bafb4
    com.fasterxml.jackson.databind.cfg.ConfigOverrides7943101710d9f910
    com.fasterxml.jackson.databind.cfg.ConstructorDetector9af1c9a41cb4b83d
    com.fasterxml.jackson.databind.cfg.ConstructorDetector.SingleArgConstructorb0c67222cebc30be
    com.fasterxml.jackson.databind.cfg.ContextAttributes216e6db5a97ae48a
    com.fasterxml.jackson.databind.cfg.ContextAttributes.Implede427cff276c0b8
    com.fasterxml.jackson.databind.cfg.DatatypeFeaturesf4893ef156575441
    com.fasterxml.jackson.databind.cfg.DatatypeFeatures.DefaultHolder81838084595fa0c8
    com.fasterxml.jackson.databind.cfg.DefaultCacheProvider6bbb2aa855b50726
    com.fasterxml.jackson.databind.cfg.DeserializerFactoryConfig7861ff22cec5640b
    com.fasterxml.jackson.databind.cfg.EnumFeature16e95ce7a3f1f1ee
    com.fasterxml.jackson.databind.cfg.JsonNodeFeature93b45511772e9fc3
    com.fasterxml.jackson.databind.cfg.MapperConfigc7b0b1bb3bc6f9f1
    com.fasterxml.jackson.databind.cfg.MapperConfigBase5bb7b8ef48c720d7
    com.fasterxml.jackson.databind.cfg.MutableCoercionConfig262e6b36c9ca989e
    com.fasterxml.jackson.databind.cfg.SerializerFactoryConfigd93f22d3258ee4c0
    com.fasterxml.jackson.databind.deser.BasicDeserializerFactory3944ee9b76fde7a2
    com.fasterxml.jackson.databind.deser.BasicDeserializerFactory.ContainerDefaultMappingsdf7805e17fdc7522
    com.fasterxml.jackson.databind.deser.BasicDeserializerFactory.CreatorCollectionStatef0dbb90499e14fa4
    com.fasterxml.jackson.databind.deser.BeanDeserializer51262781f5e28489
    com.fasterxml.jackson.databind.deser.BeanDeserializerBasedf7ad1189a3b508b
    com.fasterxml.jackson.databind.deser.BeanDeserializerBuilderd5bdf1bb9953f729
    com.fasterxml.jackson.databind.deser.BeanDeserializerFactory65809d9bdea9493b
    com.fasterxml.jackson.databind.deser.DefaultDeserializationContext5756779a22fd7d68
    com.fasterxml.jackson.databind.deser.DefaultDeserializationContext.Impl8057860fe47eb5da
    com.fasterxml.jackson.databind.deser.DeserializerCache7d85f058f583e5dd
    com.fasterxml.jackson.databind.deser.DeserializerFactory2ebdf24d93849f1a
    com.fasterxml.jackson.databind.deser.SettableBeanPropertye32815b47681953f
    com.fasterxml.jackson.databind.deser.ValueInstantiator500a74eea26ebb5d
    com.fasterxml.jackson.databind.deser.ValueInstantiator.Base56fce65bc9fdb762
    com.fasterxml.jackson.databind.deser.impl.BeanPropertyMapabab716eded67ac2
    com.fasterxml.jackson.databind.deser.impl.CreatorCollector0f8b3def4682a020
    com.fasterxml.jackson.databind.deser.impl.FailingDeserializer4904d8577f214eb3
    com.fasterxml.jackson.databind.deser.impl.FieldProperty79a77498e066a15d
    com.fasterxml.jackson.databind.deser.impl.JDKValueInstantiators008ddf7a64eb2d4a
    com.fasterxml.jackson.databind.deser.impl.JDKValueInstantiators.ArrayListInstantiator187a1232f1bf2643
    com.fasterxml.jackson.databind.deser.impl.NullsConstantProvider83cd716157aa0f9a
    com.fasterxml.jackson.databind.deser.std.CollectionDeserializer264403aa8c0a30f7
    com.fasterxml.jackson.databind.deser.std.ContainerDeserializerBase0f7cf99ff0b0c8a0
    com.fasterxml.jackson.databind.deser.std.FromStringDeserializerb5093028e19eaf91
    com.fasterxml.jackson.databind.deser.std.JdkDeserializersa7ac27fec28e8de9
    com.fasterxml.jackson.databind.deser.std.StdDeserializer2122bf750d1b5b89
    com.fasterxml.jackson.databind.deser.std.StdKeyDeserializers2ca4ab5d0f0b71dd
    com.fasterxml.jackson.databind.deser.std.StdScalarDeserializer25286f364997b846
    com.fasterxml.jackson.databind.deser.std.StdValueInstantiator34181f4c11253cc9
    com.fasterxml.jackson.databind.deser.std.StringArrayDeserializerdbeac8e57a8a807e
    com.fasterxml.jackson.databind.deser.std.StringDeserializer36ba9f92a53b7892
    com.fasterxml.jackson.databind.ext.Java7Handlers31410c423d95a2d0
    com.fasterxml.jackson.databind.ext.Java7HandlersImpl423b0b9d126fb382
    com.fasterxml.jackson.databind.ext.Java7Support4b7557784caa415a
    com.fasterxml.jackson.databind.ext.Java7SupportImpl94a94fc44678f7e9
    com.fasterxml.jackson.databind.ext.OptionalHandlerFactorya873be98e8f52009
    com.fasterxml.jackson.databind.introspect.AccessorNamingStrategy3d3b7f563f5ca70a
    com.fasterxml.jackson.databind.introspect.AccessorNamingStrategy.Provider6026222786456f26
    com.fasterxml.jackson.databind.introspect.Annotated47d3d49f2b832d54
    com.fasterxml.jackson.databind.introspect.AnnotatedClass208d1216b93f97d9
    com.fasterxml.jackson.databind.introspect.AnnotatedClass.Creatorsecbba5a1c87c995f
    com.fasterxml.jackson.databind.introspect.AnnotatedClassResolver9c1435b88f5e9e91
    com.fasterxml.jackson.databind.introspect.AnnotatedConstructoreaf946db37898a44
    com.fasterxml.jackson.databind.introspect.AnnotatedCreatorCollectorf1dbd789d7b2161e
    com.fasterxml.jackson.databind.introspect.AnnotatedFielde6e45b21b9cdeda3
    com.fasterxml.jackson.databind.introspect.AnnotatedFieldCollectord6830919dea39e8f
    com.fasterxml.jackson.databind.introspect.AnnotatedFieldCollector.FieldBuilder571d9e7fb561d385
    com.fasterxml.jackson.databind.introspect.AnnotatedMember5879537c033bd580
    com.fasterxml.jackson.databind.introspect.AnnotatedMethodad2f0bf303d90ae0
    com.fasterxml.jackson.databind.introspect.AnnotatedMethodCollectore8e34bff5e47f125
    com.fasterxml.jackson.databind.introspect.AnnotatedMethodCollector.MethodBuilderb522d96f88a7ade4
    com.fasterxml.jackson.databind.introspect.AnnotatedMethodMapd69be24a07cecf16
    com.fasterxml.jackson.databind.introspect.AnnotatedWithParams54f7d4537c15cfdb
    com.fasterxml.jackson.databind.introspect.AnnotationCollectorc389709d2ffbb364
    com.fasterxml.jackson.databind.introspect.AnnotationCollector.EmptyCollectora87b6b2439611ec7
    com.fasterxml.jackson.databind.introspect.AnnotationCollector.NoAnnotations9173d7167a075d90
    com.fasterxml.jackson.databind.introspect.AnnotationCollector.OneCollector4d7ed4cd12d6011c
    com.fasterxml.jackson.databind.introspect.AnnotationMap78aa63dcada1ee05
    com.fasterxml.jackson.databind.introspect.BasicBeanDescription4f0d484434fb6325
    com.fasterxml.jackson.databind.introspect.BasicClassIntrospectorfcecadfe75a5c2af
    com.fasterxml.jackson.databind.introspect.BeanPropertyDefinitiond3bbcf006607ecb0
    com.fasterxml.jackson.databind.introspect.ClassIntrospectorb20a1133edfcf6b5
    com.fasterxml.jackson.databind.introspect.CollectorBasefec0f38373f479ba
    com.fasterxml.jackson.databind.introspect.ConcreteBeanPropertyBasefa5bde6be1d392b1
    com.fasterxml.jackson.databind.introspect.DefaultAccessorNamingStrategyefc1568392fc0098
    com.fasterxml.jackson.databind.introspect.DefaultAccessorNamingStrategy.Provider9679bb882d2d354f
    com.fasterxml.jackson.databind.introspect.JacksonAnnotationIntrospector9d54114155341c05
    com.fasterxml.jackson.databind.introspect.MemberKey0e604899c13122c4
    com.fasterxml.jackson.databind.introspect.POJOPropertiesCollector1821e69f144ab189
    com.fasterxml.jackson.databind.introspect.POJOPropertyBuilder87b50c8168df5d0b
    com.fasterxml.jackson.databind.introspect.POJOPropertyBuilder.1925ffe3a324d008c
    com.fasterxml.jackson.databind.introspect.POJOPropertyBuilder.2f9f5816009560a85
    com.fasterxml.jackson.databind.introspect.POJOPropertyBuilder.4ccfa1b83e27ecd92
    com.fasterxml.jackson.databind.introspect.POJOPropertyBuilder.58bc5c843a115ba34
    com.fasterxml.jackson.databind.introspect.POJOPropertyBuilder.6a2d5a4cee9bda8de
    com.fasterxml.jackson.databind.introspect.POJOPropertyBuilder.Linkedef62b5db9e7546d6
    com.fasterxml.jackson.databind.introspect.SimpleMixInResolver6a0721d817cbf413
    com.fasterxml.jackson.databind.introspect.TypeResolutionContext.Basic09190ef225acb240
    com.fasterxml.jackson.databind.introspect.VisibilityChecker.Std86f77996bd544f4e
    com.fasterxml.jackson.databind.jsontype.PolymorphicTypeValidatorff1c7cc76de984ce
    com.fasterxml.jackson.databind.jsontype.PolymorphicTypeValidator.Baseea9ae0e64ce11069
    com.fasterxml.jackson.databind.jsontype.SubtypeResolverb2ed8bc0e5fe669c
    com.fasterxml.jackson.databind.jsontype.impl.LaissezFaireSubTypeValidatord02dab29b87ed521
    com.fasterxml.jackson.databind.jsontype.impl.StdSubtypeResolver342823e6800eb76b
    com.fasterxml.jackson.databind.jsontype.impl.SubTypeValidatora7ad2f19c2210a88
    com.fasterxml.jackson.databind.node.JsonNodeFactoryb407554ab061d84d
    com.fasterxml.jackson.databind.ser.BasicSerializerFactoryda909c46cb0d91a4
    com.fasterxml.jackson.databind.ser.BeanSerializerFactory16faed09cf6c52b8
    com.fasterxml.jackson.databind.ser.ContainerSerializer67b35562bf415143
    com.fasterxml.jackson.databind.ser.DefaultSerializerProvider7081bda43dcfcb52
    com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.Implbb7a481d8d11e37e
    com.fasterxml.jackson.databind.ser.SerializerCache05a580ec11f5621f
    com.fasterxml.jackson.databind.ser.SerializerFactorya96ec5a87f2a9dec
    com.fasterxml.jackson.databind.ser.impl.FailingSerializer96696f091a076f00
    com.fasterxml.jackson.databind.ser.impl.IndexedListSerializercd4efc50b27864f0
    com.fasterxml.jackson.databind.ser.impl.PropertySerializerMapb896860192138c16
    com.fasterxml.jackson.databind.ser.impl.PropertySerializerMap.Empty3dce91f99b61f9c6
    com.fasterxml.jackson.databind.ser.impl.PropertySerializerMap.SerializerAndMapResult7726b41f965932aa
    com.fasterxml.jackson.databind.ser.impl.PropertySerializerMap.Singlee5e537120154be9c
    com.fasterxml.jackson.databind.ser.impl.ReadOnlyClassToSerializerMapf7673b78d4dbb21a
    com.fasterxml.jackson.databind.ser.impl.UnknownSerializer0f0b100c24ae521b
    com.fasterxml.jackson.databind.ser.std.AsArraySerializerBase7c963189f626505a
    com.fasterxml.jackson.databind.ser.std.BooleanSerializera5e7ba6f955baf41
    com.fasterxml.jackson.databind.ser.std.CalendarSerializerda6df272674c3c19
    com.fasterxml.jackson.databind.ser.std.DateSerializerdcf355b20d60965d
    com.fasterxml.jackson.databind.ser.std.DateTimeSerializerBasefb1c17ba4f02cbe0
    com.fasterxml.jackson.databind.ser.std.NullSerializer55885eb24739c250
    com.fasterxml.jackson.databind.ser.std.NumberSerializer2b09bf235752694e
    com.fasterxml.jackson.databind.ser.std.NumberSerializersdfe8936a5bca95d8
    com.fasterxml.jackson.databind.ser.std.NumberSerializers.Base243c88192bb86ee4
    com.fasterxml.jackson.databind.ser.std.NumberSerializers.DoubleSerializer5b65fb8c8ea04f02
    com.fasterxml.jackson.databind.ser.std.NumberSerializers.FloatSerializer0849cda863777be8
    com.fasterxml.jackson.databind.ser.std.NumberSerializers.IntLikeSerializer37f949791419da14
    com.fasterxml.jackson.databind.ser.std.NumberSerializers.IntegerSerializer8572ad7f464034dd
    com.fasterxml.jackson.databind.ser.std.NumberSerializers.LongSerializer1bcc67c140cfbe03
    com.fasterxml.jackson.databind.ser.std.NumberSerializers.ShortSerializera678b068eca9e8b6
    com.fasterxml.jackson.databind.ser.std.StdJdkSerializersb1d950d41858d3ba
    com.fasterxml.jackson.databind.ser.std.StdScalarSerializer294ce690d4fde5d1
    com.fasterxml.jackson.databind.ser.std.StdSerializer2eb989e3aa9ebf8b
    com.fasterxml.jackson.databind.ser.std.StringSerializerb6342c9e6a90d477
    com.fasterxml.jackson.databind.ser.std.ToEmptyObjectSerializerdcbbfaf250568a42
    com.fasterxml.jackson.databind.ser.std.ToStringSerializerb965af9d2adb22d7
    com.fasterxml.jackson.databind.ser.std.ToStringSerializerBase4df4671bce83caa1
    com.fasterxml.jackson.databind.ser.std.UUIDSerializer9825ed90a3a1ea38
    com.fasterxml.jackson.databind.type.ArrayTypeada34943c659785c
    com.fasterxml.jackson.databind.type.ClassStackb4e39752aaaff8ce
    com.fasterxml.jackson.databind.type.CollectionLikeTypefdca9c74891003b6
    com.fasterxml.jackson.databind.type.CollectionType754ccfd8e93b2fdd
    com.fasterxml.jackson.databind.type.LogicalTypee0e08cb4c4d717b1
    com.fasterxml.jackson.databind.type.SimpleType9bf726d4e15bb139
    com.fasterxml.jackson.databind.type.TypeBase84e347a8123ba86e
    com.fasterxml.jackson.databind.type.TypeBindings69af78e44b169d2b
    com.fasterxml.jackson.databind.type.TypeBindings.AsKey3cf63795dd54b8b7
    com.fasterxml.jackson.databind.type.TypeBindings.TypeParamStashc0b0ab8001879ee4
    com.fasterxml.jackson.databind.type.TypeFactory3596cbf80365f39f
    com.fasterxml.jackson.databind.type.TypeParser539ac466374b5334
    com.fasterxml.jackson.databind.util.AccessPattern44bf82acd8a3fffc
    com.fasterxml.jackson.databind.util.ArrayIteratore4c9e4d38ac21c90
    com.fasterxml.jackson.databind.util.BeanUtilaca352d66ffbab01
    com.fasterxml.jackson.databind.util.ClassUtil7a2a6f716f5500a1
    com.fasterxml.jackson.databind.util.ClassUtil.Ctor1fd4710f90ff53de
    com.fasterxml.jackson.databind.util.IgnorePropertiesUtil81001725c2203f99
    com.fasterxml.jackson.databind.util.LRUMapc487e14750ddd25e
    com.fasterxml.jackson.databind.util.LinkedNode73ca05873e25cb2e
    com.fasterxml.jackson.databind.util.ObjectBuffer14fbae37b93a957b
    com.fasterxml.jackson.databind.util.RootNameLookupadd4d1fb1a084862
    com.fasterxml.jackson.databind.util.StdDateFormatc6d4539431425f11
    com.fasterxml.jackson.databind.util.TypeKey32162ed128b7bbbd
    com.fasterxml.jackson.databind.util.internal.LinkedDeque9bfc4fbb2b0b1196
    com.fasterxml.jackson.databind.util.internal.PrivateMaxEntriesMap3f0ff22fe5779861
    com.fasterxml.jackson.databind.util.internal.PrivateMaxEntriesMap.AddTask866aec97a77c2650
    com.fasterxml.jackson.databind.util.internal.PrivateMaxEntriesMap.Builderdcc244062522bdc6
    com.fasterxml.jackson.databind.util.internal.PrivateMaxEntriesMap.DrainStatusa1e26b7a083af651
    com.fasterxml.jackson.databind.util.internal.PrivateMaxEntriesMap.DrainStatus.12de09d3a3bfcdca6
    com.fasterxml.jackson.databind.util.internal.PrivateMaxEntriesMap.DrainStatus.22928516020b2e91a
    com.fasterxml.jackson.databind.util.internal.PrivateMaxEntriesMap.DrainStatus.326e6a18539bc3d80
    com.fasterxml.jackson.databind.util.internal.PrivateMaxEntriesMap.EntryIterator86fc40b47b6d46b6
    com.fasterxml.jackson.databind.util.internal.PrivateMaxEntriesMap.EntrySet69a473f3bfd1c6f1
    com.fasterxml.jackson.databind.util.internal.PrivateMaxEntriesMap.Node2dc3669c077d2e56
    com.fasterxml.jackson.databind.util.internal.PrivateMaxEntriesMap.WeightedValuec5874d009c2eaa54
    com.google.common.base.Absentde1298f27b4c0693
    com.google.common.base.MoreObjects2565f99d2ba4b7cf
    com.google.common.base.Optionala4c1dc586be5462d
    com.google.common.base.Preconditionsa5fabd1b8022b288
    com.google.common.io.ByteSource68686fa428221aec
    com.google.common.io.ByteSource.AsCharSource181f8e24cb6711f8
    com.google.common.io.ByteStreams54fcce135598266c
    com.google.common.io.ByteStreams.12b43e9d0abf526aa
    com.google.common.io.CharSourcebc0c0f9fc3e87ec6
    com.google.common.io.Closerf172748005764c91
    com.google.common.io.Closer.SuppressingSuppressore6d89820611fa8e8
    com.google.common.io.Resourcesf568e92af131e150
    com.google.common.io.Resources.UrlByteSource3abc3d7530912c7f
    com.google.common.math.IntMathe5dfbae9828a34c5
    com.google.common.primitives.Intsc5ac9c1a28bb42ab
    io.github.jeremylong.jcs3.slf4j.Slf4jAdapter6faeb93da707d61c
    io.github.jeremylong.jcs3.slf4j.Slf4jLogFactoryf96607e602f6e2af
    io.github.jeremylong.openvulnerability.client.nvd.CvssV2c598dccdeb0796d4
    io.github.jeremylong.openvulnerability.client.nvd.CvssV2.Typec8a5f42e14588744
    io.github.jeremylong.openvulnerability.client.nvd.CvssV2Data46cf1489bdb16e2c
    io.github.jeremylong.openvulnerability.client.nvd.CvssV2Data.AccessComplexityType4b727756fd7afc8f
    io.github.jeremylong.openvulnerability.client.nvd.CvssV2Data.AccessVectorType9be7812343637a98
    io.github.jeremylong.openvulnerability.client.nvd.CvssV2Data.AuthenticationTypef9e66c082b7d5b7f
    io.github.jeremylong.openvulnerability.client.nvd.CvssV2Data.CiaType6825e093146ac4fd
    io.github.jeremylong.openvulnerability.client.nvd.CvssV2Data.Version29d3f3d317564b7c
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3bed953eb3208b3b5
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3Data5b1476d2f8696d14
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3Data.AttackComplexityType0c7b7fa26bb8364e
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3Data.AttackVectorTypef9692d23fc4d0814
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3Data.CiaRequirementTypee25b27974539d0e2
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3Data.CiaType65b3e0a08371ce41
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3Data.ConfidenceTypefe24e867fbd6445d
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3Data.ExploitCodeMaturityTyped0c528d24ff9be40
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3Data.ModifiedAttackComplexityTypeb9c63569c8d42c4f
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3Data.ModifiedAttackVectorTypee055d6e53e32180d
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3Data.ModifiedCiaTypedafe385378718922
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3Data.ModifiedPrivilegesRequiredType8e153d53da7dbccb
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3Data.ModifiedScopeTypeeac977b8fdb58555
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3Data.ModifiedUserInteractionTyped0242304dffe7c2c
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3Data.PrivilegesRequiredTypec6b3e30c55fedb48
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3Data.RemediationLevelType5bfb96dfad679414
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3Data.ScopeTyped521a47d32508edc
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3Data.SeverityType7dba5f64a6708bdf
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3Data.UserInteractionTypee65ee421331e824b
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3Data.Versiondb94623c16eb505c
    mockit.Invocationa96336e1f386171f
    mockit.MockUpe8171f437ed496ae
    mockit.asm.AnnotatedReadercd282e0a5a53baea
    mockit.asm.BaseWriter582f5e60cf7a7aa4
    mockit.asm.SignatureWriterdf63ed411efbf4b6
    mockit.asm.annotations.AnnotationReader1a8efb95d77d1cc4
    mockit.asm.classes.ClassInfo373729acd80f0ac2
    mockit.asm.classes.ClassReader35b19ee242b52e68
    mockit.asm.classes.ClassVisitorecc8c148efb1fb05
    mockit.asm.classes.ClassWriter138f6d9fdc880f33
    mockit.asm.classes.ConstantPoolCopyinge69830abde6594e3
    mockit.asm.classes.InnerClassesWriter161eb63681ff89cf
    mockit.asm.classes.SourceFileWritere8fc300748dc0805
    mockit.asm.classes.WrappingClassVisitor05ea9f6f99307be6
    mockit.asm.constantPool.AttributeWriter14f301dde0efc458
    mockit.asm.constantPool.ClassMemberItemaa126e5329780a07
    mockit.asm.constantPool.ConstantPoolGeneration0fa17a48409c3309
    mockit.asm.constantPool.DoubleItem34f414546b36c4df
    mockit.asm.constantPool.DynamicItem3cea8c55017846c0
    mockit.asm.constantPool.FloatItembd61b107266c3b95
    mockit.asm.constantPool.IntItemd97e2f1dc717a13e
    mockit.asm.constantPool.IntValueItem98e99f11b2caca0e
    mockit.asm.constantPool.Itemd068fa4ff3fcee61
    mockit.asm.constantPool.LongItem6b22c746ea1433c1
    mockit.asm.constantPool.LongValueItem2ccc0f1c20cad69e
    mockit.asm.constantPool.MergedTypeTableItem0d0b1da6270fd88c
    mockit.asm.constantPool.MethodHandleItem39bcee524a8a7b98
    mockit.asm.constantPool.NameAndTypeItemb7bb836a0ec0d51d
    mockit.asm.constantPool.NormalTypeTableItem0f252ab8f9880312
    mockit.asm.constantPool.StringItem88ca5a93ae8a30e1
    mockit.asm.constantPool.TypeOrMemberItemdab75af23a47e2b1
    mockit.asm.constantPool.TypeTableItemd8a8ef64ff3ac452
    mockit.asm.constantPool.UninitializedTypeTableItem370461ef51a65392
    mockit.asm.controlFlow.CFGAnalysisa06e124c809928c9
    mockit.asm.controlFlow.Edge5d83111f9538c66f
    mockit.asm.controlFlow.Frame386d35773c19369a
    mockit.asm.controlFlow.Label5bca527bd719557c
    mockit.asm.controlFlow.StackMapTableWriter7bcdf022caa20775
    mockit.asm.exceptionHandling.ExceptionHandling286f458f00be3947
    mockit.asm.fields.FieldReader053ae610f8947b76
    mockit.asm.fields.FieldVisitor6c321d4980a2d7f3
    mockit.asm.jvmConstants.Access642ded812da66040
    mockit.asm.jvmConstants.JVMInstructiondeeb476cf4f7665b
    mockit.asm.metadata.ClassMetadataReader86fe7615054981b5
    mockit.asm.metadata.ClassMetadataReader.AnnotationInfobc09c40a0f38e185
    mockit.asm.metadata.ClassMetadataReader.Attribute6d901176eb06252c
    mockit.asm.metadata.ClassMetadataReader.ConstantPoolTag83ba5ffd57f73b11
    mockit.asm.metadata.ClassMetadataReader.MemberInfodd16bea0c59df08f
    mockit.asm.metadata.ClassMetadataReader.MethodInfo3e1c9829877de254
    mockit.asm.metadata.ObjectWithAttributese089abe59f8ade12
    mockit.asm.methods.ExceptionsWritere5e41e85406ed2b8
    mockit.asm.methods.LineNumberTableWriter7fa755996e63e0b5
    mockit.asm.methods.LocalVariableTableWriter0ff2250f9d363442
    mockit.asm.methods.MethodReader0d46bdb10e1cb567
    mockit.asm.methods.MethodVisitor6aafdb0e0bd9f04d
    mockit.asm.methods.MethodWriterc77ca17c110fc381
    mockit.asm.methods.WrappingMethodVisitorfe2114a373ed09e3
    mockit.asm.types.ArrayType3897ad248dad3058
    mockit.asm.types.JavaType6a617aca55015b96
    mockit.asm.types.ObjectType439dacb2d6b69467
    mockit.asm.types.PrimitiveType9907457aea9de70c
    mockit.asm.types.ReferenceTypec3a32354b2fe0c85
    mockit.asm.util.ByteVectoradf5209dcdaf01d5
    mockit.asm.util.BytecodeReaderad4c2af17a40d4d0
    mockit.coverage.CodeCoverage57c4b93cf9705048
    mockit.coverage.Configuration0f191cfcb58e3996
    mockit.coverage.testRedundancy.TestCoveragee7294c8646aeb601
    mockit.integration.TestRunnerDecorator10c6d4d07e4bb526
    mockit.integration.junit4.FakeFrameworkMethod202fa832304031cd
    mockit.integration.junit4.FakeRunNotifierf2d8e332a2590c60
    mockit.integration.junit4.JUnit4TestRunnerDecoratorc2eadb5bf6beaf6c
    mockit.internal.BaseClassModifiere801aefb4d7fd037
    mockit.internal.BaseClassModifier.1cd1242b388012ca6
    mockit.internal.BaseClassModifier.DynamicModifierc5d17ff8720815cc
    mockit.internal.BaseInvocationf7de466f17f4adbb
    mockit.internal.ClassFile41b638065ae166a7
    mockit.internal.ClassLoadingBridgee658793228cc4a49
    mockit.internal.expectations.RecordAndReplayExecutionf879ec0212b83007
    mockit.internal.expectations.mocking.FieldTypeRedefinitionsc4cb3bcb5359dd6a
    mockit.internal.expectations.mocking.MockedBridge331090874886c8c7
    mockit.internal.expectations.mocking.MockedTypeb261d998676dfb65
    mockit.internal.expectations.mocking.TypeRedefinitions055dc33e135fb36a
    mockit.internal.expectations.state.CascadingTypesb9acfb27aa4a8790
    mockit.internal.expectations.state.ExecutingTestacf34225777d2f3b
    mockit.internal.expectations.state.ExecutingTest.13b09910b1e29a191
    mockit.internal.expectations.transformation.ExpectationsTransformereaac4e9336d5ca40
    mockit.internal.faking.FakeBridgeda78f19ce898d263
    mockit.internal.faking.FakeClassSetupe4606a4618ad323c
    mockit.internal.faking.FakeClasses3cd46eb6591366cb
    mockit.internal.faking.FakeClasses.SavePointfecc58d760c6ed06
    mockit.internal.faking.FakeInvocatione3e355bfb78d2072
    mockit.internal.faking.FakeMethodBridge2fd5b959860f5d53
    mockit.internal.faking.FakeMethodCollectoraa97db550361bc87
    mockit.internal.faking.FakeMethods471e51097727667e
    mockit.internal.faking.FakeMethods.FakeMethodb5d99f462770e149
    mockit.internal.faking.FakeState01259986b514ed46
    mockit.internal.faking.FakeStatese760ab91481812c0
    mockit.internal.faking.FakedClassModifier28fa1e02ea9dd34f
    mockit.internal.injection.InjectionProvider1076f7e808be8615
    mockit.internal.injection.InjectionProviders62b38f89bfedb6c7
    mockit.internal.injection.InjectionState6e9537644e97642f
    mockit.internal.injection.InterfaceResolutionc5428bf18cac5f85
    mockit.internal.injection.InterfaceResolution.130a49c92c2d8b04f
    mockit.internal.injection.LifecycleMethodsed1a5aaae6cf42e3
    mockit.internal.injection.TestedClassInstantiationsbfc9ebb0ae421152
    mockit.internal.injection.TestedObjectbdd0e59488a17cbb
    mockit.internal.reflection.GenericTypeReflectiona556abe88b104f52
    mockit.internal.startup.ClassLoadingBridgeFields29d0d6d7f507fa33
    mockit.internal.startup.ClassLoadingBridgeFields.FieldAdditionTransformer682a4d5236ea1c37
    mockit.internal.startup.ClassLoadingBridgeFields.FieldAdditionTransformer.12e9fd2fdf39cd8c3
    mockit.internal.startup.JMockitInitialization1f5ea374ed1901b8
    mockit.internal.startup.Startup177b14c50aa68246
    mockit.internal.state.CachedClassfiles231a21c71ced4214
    mockit.internal.state.MockFixture394c3264450f978b
    mockit.internal.state.ParameterNames9f70a2910daf7cd7
    mockit.internal.state.SavePointda4c7e434f406431
    mockit.internal.state.TestRun6409fd3c8b761b63
    mockit.internal.state.TestRun.17d6ccf983062f278
    mockit.internal.util.ClassLoad5bd538d4254708e6
    mockit.internal.util.ClassNaming53e8188d1e80d2e0
    mockit.internal.util.ParameterNameExtractor23af23efb21b6d24
    mockit.internal.util.TypeConversione064dff353fc3c14
    org.apache.commons.collections.map.AbstractHashedMap0ffd2ece819fe2bb
    org.apache.commons.collections.map.AbstractHashedMap.HashEntry06168f711b5d9f03
    org.apache.commons.collections.map.AbstractReferenceMap24c5cfa48d1b3dc0
    org.apache.commons.collections.map.AbstractReferenceMap.ReferenceEntry527d4048e51dfc8b
    org.apache.commons.collections.map.AbstractReferenceMap.SoftRef87effea5a7f83649
    org.apache.commons.collections.map.ReferenceMapde0ddfb544d7f809
    org.apache.commons.compress.utils.IOUtils1bbef919f9fe90cf
    org.apache.commons.dbcp2.AbandonedTraceca6d746e5eecfa26
    org.apache.commons.dbcp2.BasicDataSource8f01e6e1f3426242
    org.apache.commons.dbcp2.ConnectionFactoryFactory5ee86737323f033e
    org.apache.commons.dbcp2.DataSourceMXBeanaef3515de3dd4cd7
    org.apache.commons.dbcp2.DelegatingConnection4ce1222f6c8b1f43
    org.apache.commons.dbcp2.DelegatingPreparedStatement2577746074f2a300
    org.apache.commons.dbcp2.DelegatingResultSet3e7d628a34a233d5
    org.apache.commons.dbcp2.DelegatingStatement3eececad9c1f49a4
    org.apache.commons.dbcp2.DriverConnectionFactory587516231985bd76
    org.apache.commons.dbcp2.DriverFactory2e2b684de502c2b5
    org.apache.commons.dbcp2.ObjectNameWrapper60e6f7ddb2d7e6c9
    org.apache.commons.dbcp2.PoolableConnectionbaf5bf7087e41b95
    org.apache.commons.dbcp2.PoolableConnectionFactoryb8db125bd27adcfb
    org.apache.commons.dbcp2.PoolingDataSource4006b0952a9497bf
    org.apache.commons.dbcp2.PoolingDataSource.PoolGuardConnectionWrapper231a4e4e28d22d6c
    org.apache.commons.dbcp2.SwallowedExceptionLogger169d551a035fbaac
    org.apache.commons.dbcp2.Utilsee3a6af61d9672d1
    org.apache.commons.io.ByteOrderMark72bc2458d6ae539e
    org.apache.commons.io.FileSystem01b6ca84e51e84c9
    org.apache.commons.io.FileUtilsb05a09ee270979e9
    org.apache.commons.io.FilenameUtils3144089e135875ac
    org.apache.commons.io.IOCaseeb2adab60f66048e
    org.apache.commons.io.IOUtils6ee4556e7885ab91
    org.apache.commons.io.StandardLineSeparator40b593b9edc3531e
    org.apache.commons.io.build.AbstractStreamBuilder57c8b0ea90b8d3a8
    org.apache.commons.io.file.Counters3347b40442150325
    org.apache.commons.io.file.Counters.AbstractPathCountersf029129367b66185
    org.apache.commons.io.file.Counters.LongCounter8a0e15c3b7aab6f0
    org.apache.commons.io.file.Counters.LongPathCounters4d05a3ec2389a891
    org.apache.commons.io.file.CountingPathVisitor1a0297f6692d68b7
    org.apache.commons.io.file.DeletingPathVisitor380d01f344f0b03a
    org.apache.commons.io.file.PathUtilsc186f18e4d52fa5b
    org.apache.commons.io.file.SimplePathVisitor42930704cb1f97c1
    org.apache.commons.io.file.StandardDeleteOption670e1c1e2863e0b5
    org.apache.commons.io.filefilter.AbstractFileFilter92dd8bb7f7b80944
    org.apache.commons.io.filefilter.IOFileFilter4896a5eee1f88d05
    org.apache.commons.io.filefilter.NameFileFilterc5f07e722b3a2343
    org.apache.commons.io.filefilter.OrFileFilter6742278773fc9137
    org.apache.commons.io.filefilter.SuffixFileFilterd8b318786a82151d
    org.apache.commons.io.filefilter.SymbolicLinkFileFilterd7784b41fab5d1af
    org.apache.commons.io.filefilter.TrueFileFilterfabf6490458c9b57
    org.apache.commons.io.function.IOConsumer7aab5cab2aee4ea3
    org.apache.commons.io.input.BOMInputStream6b5d217ef3da5d6c
    org.apache.commons.io.input.BOMInputStream.Builderefe9786c70781fac
    org.apache.commons.io.input.ProxyInputStream76d45bc21d35b3af
    org.apache.commons.jcs3.JCS8f519401d676cf6b
    org.apache.commons.jcs3.access.AbstractCacheAccesse81ba2880f7423d5
    org.apache.commons.jcs3.access.CacheAccess60fee977c9a4f6ef
    org.apache.commons.jcs3.admin.JCSAdminBean335bac09272c6ddd
    org.apache.commons.jcs3.auxiliary.AbstractAuxiliaryCachec3b435f52c91e41d
    org.apache.commons.jcs3.auxiliary.AbstractAuxiliaryCacheAttributesc42716886bb512ba
    org.apache.commons.jcs3.auxiliary.AbstractAuxiliaryCacheEventLogginga78f5b7138667460
    org.apache.commons.jcs3.auxiliary.AbstractAuxiliaryCacheFactory79d59581986a1bdd
    org.apache.commons.jcs3.auxiliary.AuxiliaryCacheConfigurator4f03af1ec3db3c06
    org.apache.commons.jcs3.auxiliary.AuxiliaryCacheFactory0321a405678228d2
    org.apache.commons.jcs3.auxiliary.disk.AbstractDiskCache67671715de055295
    org.apache.commons.jcs3.auxiliary.disk.AbstractDiskCache.MyCacheListenerc9cbc2ab7af25ca4
    org.apache.commons.jcs3.auxiliary.disk.AbstractDiskCacheAttributesedebc5b24fc7e7ec
    org.apache.commons.jcs3.auxiliary.disk.behavior.IDiskCacheAttributes.DiskLimitType9c89d487ae2639b0
    org.apache.commons.jcs3.auxiliary.disk.indexed.IndexedDisk3159cf09ae265a44
    org.apache.commons.jcs3.auxiliary.disk.indexed.IndexedDiskCachedb85afec6bd28591
    org.apache.commons.jcs3.auxiliary.disk.indexed.IndexedDiskCache.LRUMapCountLimited3e0dcede1f60ced6
    org.apache.commons.jcs3.auxiliary.disk.indexed.IndexedDiskCache.PositionComparator6a375a20224a6491
    org.apache.commons.jcs3.auxiliary.disk.indexed.IndexedDiskCacheAttributes3e721f210f5f73d7
    org.apache.commons.jcs3.auxiliary.disk.indexed.IndexedDiskCacheFactoryf3d2fd9bfe5fcbcc
    org.apache.commons.jcs3.engine.AbstractCacheEventQueue1dd87bdda01b32c9
    org.apache.commons.jcs3.engine.CacheEventQueueFactoryd47896e66d68cd29
    org.apache.commons.jcs3.engine.CacheInfodc3fc0a57a91cc16
    org.apache.commons.jcs3.engine.CacheStatus9e643f244bdbedd6
    org.apache.commons.jcs3.engine.CompositeCacheAttributesdc56debe6e362ccc
    org.apache.commons.jcs3.engine.ElementAttributesc298365f45057415
    org.apache.commons.jcs3.engine.PooledCacheEventQueue1f5b5ca7363a76c5
    org.apache.commons.jcs3.engine.behavior.ICacheEventQueue.QueueTyped36e1adea94244a8
    org.apache.commons.jcs3.engine.behavior.ICacheType.CacheTypee15e922fbbc521a9
    org.apache.commons.jcs3.engine.behavior.ICompositeCacheAttributes.DiskUsagePattern065fe6118e459fb8
    org.apache.commons.jcs3.engine.behavior.IElementSerializer4e17fbd8ff5fa2eb
    org.apache.commons.jcs3.engine.behavior.IElementSerializer.153d5ac924a980857
    org.apache.commons.jcs3.engine.control.CompositeCache2f4c41ef1df85706
    org.apache.commons.jcs3.engine.control.CompositeCacheConfiguratorda10a9e1882f0a7e
    org.apache.commons.jcs3.engine.control.CompositeCacheManager7a43e45c9078f783
    org.apache.commons.jcs3.engine.control.event.ElementEventQueuecb2c41edee90aabe
    org.apache.commons.jcs3.engine.logging.CacheEvente10345bb4afea3ce
    org.apache.commons.jcs3.engine.match.KeyMatcherPatternImpl06d95d21fd7250d0
    org.apache.commons.jcs3.engine.memory.AbstractDoubleLinkedListMemoryCachee3eb93db1ef1802e
    org.apache.commons.jcs3.engine.memory.AbstractMemoryCachebf41e6296592d86a
    org.apache.commons.jcs3.engine.memory.lru.LRUMemoryCachea13109c445649a8d
    org.apache.commons.jcs3.log.JulLogFactorya8b084a513d8f2ac
    org.apache.commons.jcs3.log.LogManager0cd6d34c5624f85e
    org.apache.commons.jcs3.log.LogManager.LogFactoryHolder99d60610207d179b
    org.apache.commons.jcs3.utils.config.OptionConverterb6be9d611cb399e3
    org.apache.commons.jcs3.utils.config.PropertySetter9ce8929e58315d98
    org.apache.commons.jcs3.utils.serialization.StandardSerializerc3182262f045cc00
    org.apache.commons.jcs3.utils.struct.AbstractLRUMap8710b38b6376d281
    org.apache.commons.jcs3.utils.struct.DoubleLinkedList96b73a167e3dd555
    org.apache.commons.jcs3.utils.struct.LRUMap134ebdccaf71b63a
    org.apache.commons.jcs3.utils.threadpool.DaemonThreadFactory90fe18bad604a2e0
    org.apache.commons.jcs3.utils.threadpool.PoolConfiguratione30c6c5b19e2121a
    org.apache.commons.jcs3.utils.threadpool.PoolConfiguration.WhenBlockedPolicyebdbc72499040e4a
    org.apache.commons.jcs3.utils.threadpool.ThreadPoolManagerce4c901d54ed755c
    org.apache.commons.jcs3.utils.threadpool.ThreadPoolManager.101b790dc167d2bc8
    org.apache.commons.jcs3.utils.threadpool.ThreadPoolManager.ThreadPoolManagerHolder6d5c097ee63ac3ce
    org.apache.commons.jcs3.utils.timing.ElapsedTimeredfda6ab2faf0ae5
    org.apache.commons.lang3.ArrayUtils55cd090cc4afae67
    org.apache.commons.lang3.CharSequenceUtils34f2613940096184
    org.apache.commons.lang3.ObjectUtils1c157e9ecfc781f4
    org.apache.commons.lang3.ObjectUtils.Nullbc56db2ba4a397f4
    org.apache.commons.lang3.Range7a388bd8ca7c6565
    org.apache.commons.lang3.Range.ComparableComparator31209bc50fe79100
    org.apache.commons.lang3.StringUtilsb53e9ceb7cab46c1
    org.apache.commons.lang3.Validate1641aabfdb381324
    org.apache.commons.lang3.builder.CompareToBuilder0535d4fc6cf3c03f
    org.apache.commons.lang3.builder.EqualsBuilderaa8ad870ff53852c
    org.apache.commons.lang3.builder.HashCodeBuilder2143ccbdbc7e1ea5
    org.apache.commons.lang3.mutable.MutableInt69453bf70a893014
    org.apache.commons.lang3.reflect.TypeUtilsdf817998efe361cb
    org.apache.commons.lang3.reflect.TypeUtils.WildcardTypeBuilder5936e9c8d409a438
    org.apache.commons.lang3.reflect.TypeUtils.WildcardTypeImpl5c07c9d0130a96a3
    org.apache.commons.lang3.stream.LangCollectors3ea5549a7ed3c3d7
    org.apache.commons.lang3.stream.LangCollectors.SimpleCollector91fc89bcf302c34b
    org.apache.commons.lang3.stream.Streams954246a3678faf93
    org.apache.commons.lang3.tuple.ImmutablePairea1fdd387104f342
    org.apache.commons.lang3.tuple.Pair24fcf8d25a997dff
    org.apache.commons.logging.LogFactory5c9b6286a0ecaeeb
    org.apache.commons.logging.LogFactory.135cd3441e691f91d
    org.apache.commons.logging.LogFactory.2f1244e6e80ab4e4c
    org.apache.commons.logging.LogFactory.308e35df1f60483aa
    org.apache.commons.logging.LogFactory.4fb4611c54b1bc610
    org.apache.commons.logging.LogFactory.6367c055e3172a33e
    org.apache.commons.logging.impl.SLF4JLogce165f20e303ae60
    org.apache.commons.logging.impl.SLF4JLogFactoryd78e8c8092c84bef
    org.apache.commons.logging.impl.WeakHashtablebda06549392c232d
    org.apache.commons.logging.impl.WeakHashtable.Referenced7e6bd0a967376754
    org.apache.commons.logging.impl.WeakHashtable.WeakKey3c62431e0d7eba54
    org.apache.commons.pool2.BaseObjecta9dd39289abe1d31
    org.apache.commons.pool2.DestroyMode5d1105fc83d83c0d
    org.apache.commons.pool2.ObjectPoolccb6589e8f774501
    org.apache.commons.pool2.PooledObject726d4666486bb8f9
    org.apache.commons.pool2.PooledObjectStatefb0e5d346be6cd55
    org.apache.commons.pool2.impl.BaseGenericObjectPool070a5acff5535437
    org.apache.commons.pool2.impl.BaseGenericObjectPool.IdentityWrapper434e773f29c6ef0b
    org.apache.commons.pool2.impl.BaseGenericObjectPool.StatsStore514c54abe01e16c7
    org.apache.commons.pool2.impl.BaseObjectPoolConfig9bee83eab719802c
    org.apache.commons.pool2.impl.DefaultEvictionPolicy56c4bc556e98d1be
    org.apache.commons.pool2.impl.DefaultPooledObjectddc5b9974a86b680
    org.apache.commons.pool2.impl.GenericObjectPoolfe1a47c0c894e580
    org.apache.commons.pool2.impl.GenericObjectPoolConfig2215008ece83d1da
    org.apache.commons.pool2.impl.InterruptibleReentrantLockef01e1d3943b5184
    org.apache.commons.pool2.impl.LinkedBlockingDequebb1a4d70c6b14c3f
    org.apache.commons.pool2.impl.LinkedBlockingDeque.Node78ac878c7ddd5998
    org.apache.commons.pool2.impl.NoOpCallStacke7f11c61124edc8b
    org.apache.commons.pool2.impl.PoolImplUtils65b544d8439b4d9e
    org.apache.commons.text.StringEscapeUtils5bc5b74e30d7e8bf
    org.apache.commons.text.StringEscapeUtils.XsiUnescaper5a061ee95766f1d3
    org.apache.commons.text.WordUtilsf85094830885a3dc
    org.apache.commons.text.translate.AggregateTranslator9e2a5e3e1c4ed249
    org.apache.commons.text.translate.CharSequenceTranslator84c8f5343c402da6
    org.apache.commons.text.translate.CodePointTranslatorea9fcdc7e5c87a70
    org.apache.commons.text.translate.CsvTranslators77360b05d66a2c8b
    org.apache.commons.text.translate.CsvTranslators.CsvEscaperbe76c35fab7f3dc3
    org.apache.commons.text.translate.CsvTranslators.CsvUnescaper09ac0d4ea60a4c5a
    org.apache.commons.text.translate.EntityArrayseff4bd7528ae958b
    org.apache.commons.text.translate.JavaUnicodeEscaperba174f1a55a33368
    org.apache.commons.text.translate.LookupTranslatorb47bcb49ef353b91
    org.apache.commons.text.translate.NumericEntityEscaperfed36f3c6d451e6b
    org.apache.commons.text.translate.NumericEntityUnescapercca6054255a84ade
    org.apache.commons.text.translate.NumericEntityUnescaper.OPTIONcd3ec6bfbd85a55d
    org.apache.commons.text.translate.OctalUnescaperc72a48b363be373d
    org.apache.commons.text.translate.SinglePassTranslator49d6016a555b6c1a
    org.apache.commons.text.translate.UnicodeEscaper9dad545c5206284f
    org.apache.commons.text.translate.UnicodeUnescapere15b1cf1266b58bf
    org.apache.commons.text.translate.UnicodeUnpairedSurrogateRemover678cce4230e90a18
    org.apache.lucene.analysis.Analyzerb3fbc3d4c894fea4
    org.apache.lucene.analysis.Analyzer.12588c4a52a03d489
    org.apache.lucene.analysis.Analyzer.2b11ec0b046fb0739
    org.apache.lucene.analysis.Analyzer.ReuseStrategy373c30afd7c4e7e0
    org.apache.lucene.analysis.Analyzer.TokenStreamComponents07ec7e6a7685910d
    org.apache.lucene.analysis.AnalyzerWrapperfea68ba019e933f5
    org.apache.lucene.analysis.CachingTokenFilter7948742bc70cfc8a
    org.apache.lucene.analysis.CharArrayMap5b74a1ab488fac15
    org.apache.lucene.analysis.CharArrayMap.EmptyCharArrayMap6ce1b3c28f6c4a11
    org.apache.lucene.analysis.CharArrayMap.EntryIteratora87ee307a838f240
    org.apache.lucene.analysis.CharArrayMap.EntrySet2025bc28ce5f11cc
    org.apache.lucene.analysis.CharArrayMap.MapEntry73ae6df3a549c4af
    org.apache.lucene.analysis.CharArrayMap.UnmodifiableCharArrayMap8bab8a3a7f9cd4a6
    org.apache.lucene.analysis.CharArraySet111b4a78749d9f46
    org.apache.lucene.analysis.CharacterUtilsb8ca5cbf25fdfeed
    org.apache.lucene.analysis.CharacterUtils.CharacterBuffer18d395cdbdb60911
    org.apache.lucene.analysis.DelegatingAnalyzerWrapper9c301ae9d9f5cd8a
    org.apache.lucene.analysis.DelegatingAnalyzerWrapper.DelegatingReuseStrategy76fa58dd625c2849
    org.apache.lucene.analysis.FilteringTokenFilterf403409105fbb533
    org.apache.lucene.analysis.LowerCaseFilterbcfd3a6a56a4fadf
    org.apache.lucene.analysis.ReusableStringReaderc9f6ec8eb7023f1c
    org.apache.lucene.analysis.StopFilter4230021c4e77a6d7
    org.apache.lucene.analysis.TokenFilter9e43d230548551cf
    org.apache.lucene.analysis.TokenStream184dbe299c64e6c6
    org.apache.lucene.analysis.Tokenizer7379ed627ab2912a
    org.apache.lucene.analysis.Tokenizer.1bc547a7b9c0cc19f
    org.apache.lucene.analysis.core.KeywordAnalyzer698cf9e1f8021717
    org.apache.lucene.analysis.core.LowerCaseFilterba2c1b7980c14a72
    org.apache.lucene.analysis.core.StopFilter8641c6193f901c17
    org.apache.lucene.analysis.core.WhitespaceTokenizer115580a151439e88
    org.apache.lucene.analysis.en.EnglishAnalyzercc688ebf7db7d878
    org.apache.lucene.analysis.miscellaneous.PerFieldAnalyzerWrapperdad7892fd718e4df
    org.apache.lucene.analysis.miscellaneous.WordDelimiterGraphFilterbc9fe7a967fdcfa0
    org.apache.lucene.analysis.miscellaneous.WordDelimiterGraphFilter.PositionSorter2cd32a2ee34c7dce
    org.apache.lucene.analysis.miscellaneous.WordDelimiterGraphFilter.WordDelimiterConcatenation460ee77062ef67d3
    org.apache.lucene.analysis.miscellaneous.WordDelimiterIterator28629af5aededfc5
    org.apache.lucene.analysis.tokenattributes.CharTermAttributeImpl6f123fa71f95b8a2
    org.apache.lucene.analysis.tokenattributes.KeywordAttributeImpl1407e968afc08f38
    org.apache.lucene.analysis.tokenattributes.PackedTokenAttributeImplc920cac0bdae9098
    org.apache.lucene.analysis.util.CharTokenizer6ca65685e9be18b0
    org.apache.lucene.codecs.BlockTermStateae9ca3d409bef070
    org.apache.lucene.codecs.Codec7d385f022790e396
    org.apache.lucene.codecs.Codec.Holder954feab31b29306c
    org.apache.lucene.codecs.CodecUtil157ab3df291cad53
    org.apache.lucene.codecs.CompetitiveImpactAccumulator3313639ea91339f0
    org.apache.lucene.codecs.CompetitiveImpactAccumulator.1cbf4c621aff70903
    org.apache.lucene.codecs.CompoundDirectory105adc33fae31203
    org.apache.lucene.codecs.CompoundFormatb6f7adfa57db14e8
    org.apache.lucene.codecs.DocValuesFormat59fc29b0272a381d
    org.apache.lucene.codecs.FieldInfosFormatbbc25871d2052537
    org.apache.lucene.codecs.FieldsConsumer8ac90826db599118
    org.apache.lucene.codecs.FieldsProducer5414d54969b0a428
    org.apache.lucene.codecs.LiveDocsFormat37ab5fda48936c8e
    org.apache.lucene.codecs.MultiLevelSkipListReader154c0dde48784630
    org.apache.lucene.codecs.MultiLevelSkipListWriter271c1c2a90febec5
    org.apache.lucene.codecs.NormsFormat666a4c99b55172f0
    org.apache.lucene.codecs.PointsFormat893fa9d6f57ed303
    org.apache.lucene.codecs.PointsFormat.1b7e29ffebcefbee5
    org.apache.lucene.codecs.PostingsFormat5c5d51d1200cda53
    org.apache.lucene.codecs.PostingsFormat.Holdercd21b5e5af08083b
    org.apache.lucene.codecs.PostingsReaderBase69fbc8d7a772c1ba
    org.apache.lucene.codecs.PostingsWriterBase70833c5afb411658
    org.apache.lucene.codecs.PushPostingsWriterBase09459ba2fcc66071
    org.apache.lucene.codecs.SegmentInfoFormat186f50b8ba40fe34
    org.apache.lucene.codecs.StoredFieldsFormatf0635529da3f816b
    org.apache.lucene.codecs.StoredFieldsReader44377ce9cabec7b7
    org.apache.lucene.codecs.StoredFieldsWriter18287965dde32b41
    org.apache.lucene.codecs.TermVectorsFormatabae86cbdd868241
    org.apache.lucene.codecs.blocktree.BlockTreeTermsReader4a5eb3e67f7fa9f7
    org.apache.lucene.codecs.blocktree.BlockTreeTermsWriterb036adb9f5245c23
    org.apache.lucene.codecs.blocktree.BlockTreeTermsWriter.PendingBlockc6f4f170bf8bd277
    org.apache.lucene.codecs.blocktree.BlockTreeTermsWriter.PendingEntryf940bc41257f9ec1
    org.apache.lucene.codecs.blocktree.BlockTreeTermsWriter.PendingTerm6e393f062014fa45
    org.apache.lucene.codecs.blocktree.BlockTreeTermsWriter.StatsWriteradd454e2523a11b5
    org.apache.lucene.codecs.blocktree.BlockTreeTermsWriter.TermsWriter0fc215d15cf4d2ff
    org.apache.lucene.codecs.blocktree.CompressionAlgorithmcd5f2e1bcb83ac78
    org.apache.lucene.codecs.blocktree.CompressionAlgorithm.1b89067b1068100c6
    org.apache.lucene.codecs.blocktree.CompressionAlgorithm.25d39130de56dffa9
    org.apache.lucene.codecs.blocktree.CompressionAlgorithm.373218b346be9521d
    org.apache.lucene.codecs.blocktree.FieldReader9ffc10d155e4863b
    org.apache.lucene.codecs.blocktree.SegmentTermsEnumce57a3db048cb9ef
    org.apache.lucene.codecs.blocktree.SegmentTermsEnumFramedcfdb1defbeb4bf6
    org.apache.lucene.codecs.compressing.CompressingStoredFieldsFormat896fa678ffe81c92
    org.apache.lucene.codecs.compressing.CompressingStoredFieldsReaderfed51f9077208bb6
    org.apache.lucene.codecs.compressing.CompressingStoredFieldsReader.17bddfb5935f04284
    org.apache.lucene.codecs.compressing.CompressingStoredFieldsReader.BlockStated3812bfab13be812
    org.apache.lucene.codecs.compressing.CompressingStoredFieldsReader.SerializedDocument4cc23a5abef95aaf
    org.apache.lucene.codecs.compressing.CompressingStoredFieldsWriter2dad7ad136db8d57
    org.apache.lucene.codecs.compressing.CompressingTermVectorsFormat873c98aa0b112460
    org.apache.lucene.codecs.compressing.CompressionMode40a206f9a035f885
    org.apache.lucene.codecs.compressing.CompressionMode.15222ebc3d273a019
    org.apache.lucene.codecs.compressing.CompressionMode.2f6685a7e7bb3771a
    org.apache.lucene.codecs.compressing.CompressionMode.3196e0c9c4cbfa662
    org.apache.lucene.codecs.compressing.CompressionMode.477d32d5ef9354e6e
    org.apache.lucene.codecs.compressing.Compressorb0dd429aca65b80e
    org.apache.lucene.codecs.compressing.Decompressor5a441b8b2ca96e65
    org.apache.lucene.codecs.compressing.FieldsIndexe7d850a894e41f41
    org.apache.lucene.codecs.compressing.FieldsIndexReaderefa174465074bfbd
    org.apache.lucene.codecs.compressing.FieldsIndexWriter10a973070f4bf7a4
    org.apache.lucene.codecs.idversion.IDVersionPostingsFormatc2da72d126aba544
    org.apache.lucene.codecs.lucene50.Lucene50CompoundFormat385a35dbd700d7bd
    org.apache.lucene.codecs.lucene50.Lucene50CompoundReaderf79625b845ff1a72
    org.apache.lucene.codecs.lucene50.Lucene50CompoundReader.FileEntryca388693c592b376
    org.apache.lucene.codecs.lucene50.Lucene50LiveDocsFormatdad069b09c8ebe30
    org.apache.lucene.codecs.lucene50.Lucene50TermVectorsFormate177ce04f8f4313d
    org.apache.lucene.codecs.lucene60.Lucene60FieldInfosFormatbea4d612bda522b3
    org.apache.lucene.codecs.lucene60.Lucene60FieldInfosFormat.1a5faf788eebfcf53
    org.apache.lucene.codecs.lucene80.Lucene80DocValuesFormat18b32b386e539057
    org.apache.lucene.codecs.lucene80.Lucene80DocValuesFormat.Mode86ca2b1c37fd2c44
    org.apache.lucene.codecs.lucene80.Lucene80NormsFormat1e44bf93a20abf13
    org.apache.lucene.codecs.lucene84.ForDeltaUtilbfe1bbad9d2e544b
    org.apache.lucene.codecs.lucene84.ForUtilde15f512bc648fc1
    org.apache.lucene.codecs.lucene84.Lucene84PostingsFormatbf59ad8fdebd5d74
    org.apache.lucene.codecs.lucene84.Lucene84PostingsFormat.IntBlockTermStatef10b9e05ba79b752
    org.apache.lucene.codecs.lucene84.Lucene84PostingsReader429c11d1836706b4
    org.apache.lucene.codecs.lucene84.Lucene84PostingsReader.BlockDocsEnum757838073fe69387
    org.apache.lucene.codecs.lucene84.Lucene84PostingsReader.BlockImpactsDocsEnum195ba8c2070ddaf5
    org.apache.lucene.codecs.lucene84.Lucene84PostingsWriter2cab59acfc3bb8a5
    org.apache.lucene.codecs.lucene84.Lucene84ScoreSkipReaderc1a818e91bb523bd
    org.apache.lucene.codecs.lucene84.Lucene84ScoreSkipReader.13d1e1fee9c8ae8f2
    org.apache.lucene.codecs.lucene84.Lucene84ScoreSkipReader.MutableImpactList5439f55d0eafe5f6
    org.apache.lucene.codecs.lucene84.Lucene84SkipReader1f7fa252de511870
    org.apache.lucene.codecs.lucene84.Lucene84SkipWriter76f5bd9c5e6e9e31
    org.apache.lucene.codecs.lucene84.PForUtile08db33b54b22cfd
    org.apache.lucene.codecs.lucene86.Lucene86PointsFormatf64406f00a5abe31
    org.apache.lucene.codecs.lucene86.Lucene86SegmentInfoFormat586cf6377df4154e
    org.apache.lucene.codecs.lucene87.DeflateWithPresetDictCompressionModeeef2871dedd17ce4
    org.apache.lucene.codecs.lucene87.LZ4WithPresetDictCompressionModed862ddb8f965ccb4
    org.apache.lucene.codecs.lucene87.LZ4WithPresetDictCompressionMode.LZ4WithPresetDictCompressore6d7dc198735025e
    org.apache.lucene.codecs.lucene87.LZ4WithPresetDictCompressionMode.LZ4WithPresetDictDecompressorcdef0ff6ed46a9fd
    org.apache.lucene.codecs.lucene87.Lucene87Codec9911310a45d92bb3
    org.apache.lucene.codecs.lucene87.Lucene87Codec.128723482ca6440d7
    org.apache.lucene.codecs.lucene87.Lucene87Codec.206911be072d66b12
    org.apache.lucene.codecs.lucene87.Lucene87Codec.Mode0cdb8b76874bda63
    org.apache.lucene.codecs.lucene87.Lucene87StoredFieldsFormat95ec1a8a217a9696
    org.apache.lucene.codecs.lucene87.Lucene87StoredFieldsFormat.1df56e677e7cde89d
    org.apache.lucene.codecs.lucene87.Lucene87StoredFieldsFormat.Mode54f5b49dea8b8336
    org.apache.lucene.codecs.perfield.PerFieldDocValuesFormat999be7b49946c809
    org.apache.lucene.codecs.perfield.PerFieldPostingsFormatf4cf062fe4480103
    org.apache.lucene.codecs.perfield.PerFieldPostingsFormat.FieldsGroupa9f65c90021ba143
    org.apache.lucene.codecs.perfield.PerFieldPostingsFormat.FieldsGroup.Buildercf3e5a1c6f5d87c6
    org.apache.lucene.codecs.perfield.PerFieldPostingsFormat.FieldsReader23133a0a2e3e3d10
    org.apache.lucene.codecs.perfield.PerFieldPostingsFormat.FieldsWriter39e6a18f2c347e15
    org.apache.lucene.codecs.perfield.PerFieldPostingsFormat.FieldsWriter.1d45ea394ce4e87d2
    org.apache.lucene.document.Documente1b4f587d42b8bee
    org.apache.lucene.document.DocumentStoredFieldVisitor66c1e4b20aa4d347
    org.apache.lucene.document.Field7f482656d4ca1583
    org.apache.lucene.document.FieldTypeb7c621c07031e9cf
    org.apache.lucene.document.StoredFieldc2d3990da920bf93
    org.apache.lucene.document.TextField3884cff56ab2e8d5
    org.apache.lucene.index.BaseCompositeReaderd97e90ccc7f968ed
    org.apache.lucene.index.BaseTermsEnum98f6b1ecedb5374e
    org.apache.lucene.index.BufferedUpdates87ddb653a8568589
    org.apache.lucene.index.BufferedUpdatesStream826f0e27162b764b
    org.apache.lucene.index.BufferedUpdatesStream.FinishedSegments16a71e5037793419
    org.apache.lucene.index.ByteSliceReader013997c1da8668b7
    org.apache.lucene.index.CodecReader664ad067a4634f30
    org.apache.lucene.index.CompositeReader1ac667c88af4f805
    org.apache.lucene.index.CompositeReaderContext7e031115b0dba787
    org.apache.lucene.index.CompositeReaderContext.Builder071e9447b79df71a
    org.apache.lucene.index.ConcurrentMergeScheduler7192a79827ef3c6d
    org.apache.lucene.index.DefaultIndexingChaind2d4569721a2c208
    org.apache.lucene.index.DefaultIndexingChain.IntBlockAllocatorf8ba5af8ae2348f4
    org.apache.lucene.index.DefaultIndexingChain.PerFieldcce61152033abf01
    org.apache.lucene.index.DirectoryReader872b9ecc9a6593a5
    org.apache.lucene.index.DocConsumere1f0c74a0a5799b0
    org.apache.lucene.index.DocValuesType7e1ae71ed4ea7003
    org.apache.lucene.index.DocsWithFieldSet8d19e1081ed95385
    org.apache.lucene.index.DocumentsWriter7cc357393fcb7704
    org.apache.lucene.index.DocumentsWriterDeleteQueue13f9cf08d569e3e2
    org.apache.lucene.index.DocumentsWriterDeleteQueue.DeleteSlicef1270dfe524b0475
    org.apache.lucene.index.DocumentsWriterDeleteQueue.Nodee35b7bfe790524e5
    org.apache.lucene.index.DocumentsWriterFlushControlf0c2fa30940cc6eb
    org.apache.lucene.index.DocumentsWriterFlushQueue2c7673b354c8e663
    org.apache.lucene.index.DocumentsWriterFlushQueue.FlushTicket89df1c2221a6fcc6
    org.apache.lucene.index.DocumentsWriterPerThread04669483a6b45471
    org.apache.lucene.index.DocumentsWriterPerThread.12e2a89a263831e28
    org.apache.lucene.index.DocumentsWriterPerThread.FlushedSegment0b6ff5c256c820c9
    org.apache.lucene.index.DocumentsWriterPerThread.IndexingChaina80ec889dc78a499
    org.apache.lucene.index.DocumentsWriterPerThreadPoolebeda4d160ec6dcd
    org.apache.lucene.index.DocumentsWriterStallControl58d97a046f2a5e61
    org.apache.lucene.index.FieldInfo5d3240edb51a9c8e
    org.apache.lucene.index.FieldInfos0cd129ec82608462
    org.apache.lucene.index.FieldInfos.Builder172eff8db3205492
    org.apache.lucene.index.FieldInfos.FieldNumbers32bc1472e7a4ffd6
    org.apache.lucene.index.FieldInvertState9d275e86858587ac
    org.apache.lucene.index.Fieldseef2020978da652b
    org.apache.lucene.index.FilterLeafReader.FilterFieldsfa901dce56bcbd4a
    org.apache.lucene.index.FlushByRamOrCountsPolicy88d230f4879c8846
    org.apache.lucene.index.FlushPolicyf82b82ae268a26e6
    org.apache.lucene.index.FreqProxFieldse7a3eefa6739fbaf
    org.apache.lucene.index.FreqProxFields.FreqProxDocsEnum9b5450dfccaeb430
    org.apache.lucene.index.FreqProxFields.FreqProxTermsdedfdef25735032c
    org.apache.lucene.index.FreqProxFields.FreqProxTermsEnum3601506a252c0835
    org.apache.lucene.index.FreqProxTermsWriterdd9e5dfaa06e7132
    org.apache.lucene.index.FreqProxTermsWriterPerField1e6792a1afdb8706
    org.apache.lucene.index.FreqProxTermsWriterPerField.FreqProxPostingsArraya2d8410c7d62b204
    org.apache.lucene.index.Impact882e84c41ed12353
    org.apache.lucene.index.Impacts86133783ef6f8339
    org.apache.lucene.index.ImpactsEnum952b956e16147b18
    org.apache.lucene.index.IndexCommit2c603d2695fc5325
    org.apache.lucene.index.IndexDeletionPolicy74de12c334f0ff0b
    org.apache.lucene.index.IndexFileDeleter864842f2ab2489df
    org.apache.lucene.index.IndexFileDeleter.CommitPointb03c283521652ed6
    org.apache.lucene.index.IndexFileDeleter.RefCount9d0a0ab0f621189a
    org.apache.lucene.index.IndexFileNames5a0676f33d0dd869
    org.apache.lucene.index.IndexOptions3f91d827d790b03c
    org.apache.lucene.index.IndexReader7350521cd77caecb
    org.apache.lucene.index.IndexReader.CacheKeyb51d6a55a323e37e
    org.apache.lucene.index.IndexReaderContext04e32f4b9c330127
    org.apache.lucene.index.IndexWritere0325aeb804ee9cd
    org.apache.lucene.index.IndexWriter.11648142e65802354
    org.apache.lucene.index.IndexWriter.4f13f02d787c63977
    org.apache.lucene.index.IndexWriter.EventQueue036f9bbdb7eaba28
    org.apache.lucene.index.IndexWriter.IndexWriterMergeSourcecf8a98cb877c1183
    org.apache.lucene.index.IndexWriter.Merges2e1fc51eb330086c
    org.apache.lucene.index.IndexWriterConfigd701914f0d6658b6
    org.apache.lucene.index.IndexWriterConfig.OpenMode7cb49344ea5c6351
    org.apache.lucene.index.KeepOnlyLastCommitDeletionPolicy9f22fe8c738d9952
    org.apache.lucene.index.LeafMetaDatabbff7ff01b4134e0
    org.apache.lucene.index.LeafReaderfa1ce8df2ae26a6e
    org.apache.lucene.index.LeafReaderContextfc6c719b81d116df
    org.apache.lucene.index.LiveIndexWriterConfiga2067f8ef3677fdc
    org.apache.lucene.index.MergePolicye4754a4a63055e7b
    org.apache.lucene.index.MergeScheduler647d19e97498fe90
    org.apache.lucene.index.MergeTrigger8b1aa8130dc2b264
    org.apache.lucene.index.NormValuesWriter46f5e71221ca6e02
    org.apache.lucene.index.OrdTermState43005a4850ff3eee
    org.apache.lucene.index.ParallelPostingsArray9e8709952ddc86a9
    org.apache.lucene.index.PostingsEnum13ee3bbe2a9a135b
    org.apache.lucene.index.ReaderPool196c2a1e4e1cb021
    org.apache.lucene.index.ReaderUtil4a74f8dbf0455564
    org.apache.lucene.index.SegmentCommitInfo361389f17f161615
    org.apache.lucene.index.SegmentCoreReaders329963e565bed71e
    org.apache.lucene.index.SegmentCoreReaders.14c22a3a7e7a3464b
    org.apache.lucene.index.SegmentCoreReaders.2f94d04d48a8e6732
    org.apache.lucene.index.SegmentCoreReaders.30dcca50ca892de5e
    org.apache.lucene.index.SegmentDocValues8c267f5425938996
    org.apache.lucene.index.SegmentInfod59792dbd411f918
    org.apache.lucene.index.SegmentInfos8e0cfc1c34a793bc
    org.apache.lucene.index.SegmentInfos.FindSegmentsFile57064a938b60a18c
    org.apache.lucene.index.SegmentReadStatef7f57f7389b9e4aa
    org.apache.lucene.index.SegmentReader63c8cf9560aa58ed
    org.apache.lucene.index.SegmentReader.1007c5e078ca5b49c
    org.apache.lucene.index.SegmentReader.2f1871b747f8ea7f6
    org.apache.lucene.index.SegmentWriteState3df2c751683e36f5
    org.apache.lucene.index.SlowImpactsEnum1474c9337a65b539
    org.apache.lucene.index.SlowImpactsEnum.1d5bb02ac6cfb08ba
    org.apache.lucene.index.StandardDirectoryReader3fc892a97e1fcf74
    org.apache.lucene.index.StandardDirectoryReader.170ecfd4176b47247
    org.apache.lucene.index.StandardDirectoryReader.3ca361c5e2d8fe939
    org.apache.lucene.index.StoredFieldVisitorc234cad09dc1c771
    org.apache.lucene.index.StoredFieldVisitor.Status9cb9d093a6117d87
    org.apache.lucene.index.StoredFieldsConsumer3e50d154a538cc4a
    org.apache.lucene.index.Term998f0369ca56ca77
    org.apache.lucene.index.TermStated94a8fc5aa8fb053
    org.apache.lucene.index.TermStates51833d55b04ca4cd
    org.apache.lucene.index.TermStates.1ec6a01c059b307f9
    org.apache.lucene.index.TermVectorsConsumer5da357250a0de7f2
    org.apache.lucene.index.TermVectorsConsumerPerField1208c70ca8670152
    org.apache.lucene.index.TermVectorsConsumerPerField.TermVectorsPostingsArrayc0105255a2cecf00
    org.apache.lucene.index.Terms7ca39f3bdd238e2b
    org.apache.lucene.index.TermsEnumdfe1f9b0994d664f
    org.apache.lucene.index.TermsEnum.1249f31e05c710308
    org.apache.lucene.index.TermsEnum.SeekStatus8b3a7bcd9e7da648
    org.apache.lucene.index.TermsHashc630c8de6506aac1
    org.apache.lucene.index.TermsHashPerField1b7a39be6c997509
    org.apache.lucene.index.TermsHashPerField.PostingsBytesStartArray5e5e00daabc62112
    org.apache.lucene.index.TieredMergePolicyc430a128b00f05d4
    org.apache.lucene.index.TieredMergePolicy.MERGE_TYPEee4ce8703565589c
    org.apache.lucene.index.TieredMergePolicy.SegmentSizeAndDocs13066978ebee0cf5
    org.apache.lucene.queryparser.classic.FastCharStream921f61bd34d336b7
    org.apache.lucene.queryparser.classic.QueryParser58a639d223811485
    org.apache.lucene.queryparser.classic.QueryParser.JJCallsb4aa6347602075fe
    org.apache.lucene.queryparser.classic.QueryParser.LookaheadSuccess1e68eb728086b64d
    org.apache.lucene.queryparser.classic.QueryParser.Operatorc369979182f4a099
    org.apache.lucene.queryparser.classic.QueryParserBasec083122d7fdf3d7d
    org.apache.lucene.queryparser.classic.QueryParserTokenManager98e97e8b3adc403b
    org.apache.lucene.queryparser.classic.Tokend87570aef642ebc9
    org.apache.lucene.search.BlockMaxConjunctionScorer061e44a27a9e97e7
    org.apache.lucene.search.BlockMaxConjunctionScorer.174c433408ff6b3bd
    org.apache.lucene.search.BlockMaxConjunctionScorer.23ea95fe22eaa4f92
    org.apache.lucene.search.Boolean2ScorerSupplierc583418a25057486
    org.apache.lucene.search.BooleanClause5517b155135643c4
    org.apache.lucene.search.BooleanClause.Occur734a3ee59f624d3a
    org.apache.lucene.search.BooleanClause.Occur.1844152c852706967
    org.apache.lucene.search.BooleanClause.Occur.2314312e6be9e3919
    org.apache.lucene.search.BooleanClause.Occur.382ed509b5f202c18
    org.apache.lucene.search.BooleanClause.Occur.4daeb1927527fbfcf
    org.apache.lucene.search.BooleanQuery96c1ac631fbd6b0e
    org.apache.lucene.search.BooleanQuery.Builder7e6d4552da2ff245
    org.apache.lucene.search.BooleanWeight174f45125f19caf2
    org.apache.lucene.search.BooleanWeight.WeightedBooleanClause166652adc0fe198e
    org.apache.lucene.search.BoostAttributeImplf093b8b530992fa9
    org.apache.lucene.search.BoostQuery83694dbca36799f8
    org.apache.lucene.search.BulkScorer0cdfc6b4ad3daf0c
    org.apache.lucene.search.CollectionStatistics5ec48820d8f08861
    org.apache.lucene.search.DisiPriorityQueuecd6e7ceb6bb4a75c
    org.apache.lucene.search.DisiWrapperc464918fcb4dc917
    org.apache.lucene.search.DocIdSet5365aa0bacf9a6e7
    org.apache.lucene.search.DocIdSet.131119c239a3307e0
    org.apache.lucene.search.DocIdSetIteratorb2f8b47fe6931904
    org.apache.lucene.search.Explanationf9b8483b4a27fc0e
    org.apache.lucene.search.HitQueue1b55fd31915c139a
    org.apache.lucene.search.HitsThresholdCheckercbcf7b80177ffd7d
    org.apache.lucene.search.HitsThresholdChecker.LocalHitsThresholdChecker0af70e4877c39078
    org.apache.lucene.search.ImpactsDISI13342a2866448a60
    org.apache.lucene.search.IndexSearcher73336568d9558b83
    org.apache.lucene.search.IndexSearcher.28a80822a11869ba3
    org.apache.lucene.search.LRUQueryCachef119ed15eba21643
    org.apache.lucene.search.LRUQueryCache.MinSegmentSizePredicatee8546c497dd5c047
    org.apache.lucene.search.LeafCollector610577ef49520501
    org.apache.lucene.search.LeafSimScorerdae74001f09e0d4b
    org.apache.lucene.search.MaxScoreCacheb0fab390a2eeb1ff
    org.apache.lucene.search.MaxScoreSumPropagator5a91caaf7298e99b
    org.apache.lucene.search.MaxScoreSumPropagator.15ee8239fddd1a671
    org.apache.lucene.search.MultiTermQuery2b75d54f87e0a440
    org.apache.lucene.search.MultiTermQuery.16c9d933f8b8f27ac
    org.apache.lucene.search.MultiTermQuery.RewriteMethoddccbda72605e36e9
    org.apache.lucene.search.Multiset19d136ff7551a790
    org.apache.lucene.search.Multiset.13b110197a7d930cc
    org.apache.lucene.search.Queryc165f884ce594f28
    org.apache.lucene.search.Scorablece3faa2bf0d13526
    org.apache.lucene.search.ScoreDoc7bfc4d6df3c15e4f
    org.apache.lucene.search.ScoreMode5083adba207caf07
    org.apache.lucene.search.Scorera2e3c4802bca7246
    org.apache.lucene.search.ScorerSupplier50ccb984640f5a29
    org.apache.lucene.search.ScorerUtil4858996195e514c9
    org.apache.lucene.search.ScorerUtil.10d12a67987763dd8
    org.apache.lucene.search.ScoringRewrite53dda8cd115a1b80
    org.apache.lucene.search.ScoringRewrite.1726bc5187a7d9169
    org.apache.lucene.search.ScoringRewrite.2c8ed0d3ea02d9ba7
    org.apache.lucene.search.TermCollectingRewrite3c6917b7de289c31
    org.apache.lucene.search.TermQuery32c14fb4749e12de
    org.apache.lucene.search.TermQuery.TermWeight8232b1155cdcaa35
    org.apache.lucene.search.TermScorerc300e5abbc794b3b
    org.apache.lucene.search.TermStatistics2889bba2906e16a2
    org.apache.lucene.search.TopDocs012373f68cd76882
    org.apache.lucene.search.TopDocs.ScoreMergeSortQueue0d229ef686a287eb
    org.apache.lucene.search.TopDocs.ShardRef645ec85cd874e13e
    org.apache.lucene.search.TopDocsCollectord619b8b8e24362ae
    org.apache.lucene.search.TopScoreDocCollectorf0f271377b503622
    org.apache.lucene.search.TopScoreDocCollector.ScorerLeafCollector0916b64fdd6310f8
    org.apache.lucene.search.TopScoreDocCollector.SimpleTopScoreDocCollectore89ce7447d46c23d
    org.apache.lucene.search.TopScoreDocCollector.SimpleTopScoreDocCollector.1b7fd297ad7b8e993
    org.apache.lucene.search.TotalHitsc054cc870c4bc713
    org.apache.lucene.search.TotalHits.Relationcd9e19742f0a5fea
    org.apache.lucene.search.TwoPhaseIteratorf59ed4e6ee883076
    org.apache.lucene.search.TwoPhaseIterator.TwoPhaseIteratorAsDocIdSetIteratorbde4888d90c9b71d
    org.apache.lucene.search.UsageTrackingQueryCachingPolicyb8f47b0b4f586c84
    org.apache.lucene.search.WANDScorer9b455d37735417e4
    org.apache.lucene.search.WANDScorer.1677f7eae4aa6e58d
    org.apache.lucene.search.WANDScorer.27f071d191fb7cb28
    org.apache.lucene.search.Weightf9b0b832cbdab9cc
    org.apache.lucene.search.Weight.19ae964d7e7004115
    org.apache.lucene.search.Weight.DefaultBulkScorer3367fcb4d4550921
    org.apache.lucene.search.similarities.BM25Similarityd69466947ed0f51c
    org.apache.lucene.search.similarities.BM25Similarity.BM25Scorera177d5b0724f1baa
    org.apache.lucene.search.similarities.Similaritya3b6d2798ce43d71
    org.apache.lucene.search.similarities.Similarity.SimScorer67d544ce9feeb21a
    org.apache.lucene.store.BaseDirectory6900d05994ed44b3
    org.apache.lucene.store.BufferedChecksumb94ebe893a9d3711
    org.apache.lucene.store.BufferedChecksumIndexInput173e2b9c65b07cb6
    org.apache.lucene.store.ByteArrayDataInput78632b2460b70e07
    org.apache.lucene.store.ByteArrayDataOutput7e14c81e582b7d2c
    org.apache.lucene.store.ByteBufferGuard259b97c11bbdc71b
    org.apache.lucene.store.ByteBufferIndexInput4167f4c1126b89a3
    org.apache.lucene.store.ByteBufferIndexInput.SingleBufferImpl2a840aec159d9c7d
    org.apache.lucene.store.ByteBuffersDataOutput15456a13d6afd12c
    org.apache.lucene.store.ByteBuffersDataOutput.ByteBufferRecyclerfe108a40cf58b7b1
    org.apache.lucene.store.ChecksumIndexInput76f48af3f68865dd
    org.apache.lucene.store.DataInput5aa170af6f1e947b
    org.apache.lucene.store.DataOutput492e17024cc912e6
    org.apache.lucene.store.Directory7704110da65f03e8
    org.apache.lucene.store.FSDirectory0e228e59762da3b0
    org.apache.lucene.store.FSDirectory.FSIndexOutputd2beb768917b54a0
    org.apache.lucene.store.FSDirectory.FSIndexOutput.1ec3754510e19ee3f
    org.apache.lucene.store.FSLockFactory742892e30a14e87a
    org.apache.lucene.store.FilterDirectoryb2c8389cd77c4d55
    org.apache.lucene.store.FlushInfof9d01f0e9bbb7c7c
    org.apache.lucene.store.IOContext5f42cca474854a9d
    org.apache.lucene.store.IOContext.Context921bb55758e6d8ff
    org.apache.lucene.store.IndexInput06ce5eb19b42b06b
    org.apache.lucene.store.IndexOutput6f483ded93cfafd7
    org.apache.lucene.store.Lock432af1bf641692dc
    org.apache.lucene.store.LockFactoryece396b0fec91411
    org.apache.lucene.store.LockValidatingDirectoryWrapper560f0d73f379987c
    org.apache.lucene.store.MMapDirectorya9942ea0e3192b38
    org.apache.lucene.store.NativeFSLockFactory1cd03d5dd607e96c
    org.apache.lucene.store.NativeFSLockFactory.NativeFSLockc3307e40ef2e24c7
    org.apache.lucene.store.OutputStreamIndexOutput90073bdd6eaf9312
    org.apache.lucene.store.RAMFilea543facba1c62f7f
    org.apache.lucene.store.RAMOutputStreama4d3d0444d01318d
    org.apache.lucene.store.TrackingDirectoryWrapper8f84be302b2ff933
    org.apache.lucene.util.Accountable9caec5fbf170e939
    org.apache.lucene.util.ArrayUtil5954c5d90665398b
    org.apache.lucene.util.AttributeFactoryb1bf0e54e4016761
    org.apache.lucene.util.AttributeFactory.157348402ad295daa
    org.apache.lucene.util.AttributeFactory.DefaultAttributeFactory400586c34d95eefd
    org.apache.lucene.util.AttributeFactory.DefaultAttributeFactory.1e37cb5b075d39222
    org.apache.lucene.util.AttributeFactory.StaticImplementationAttributeFactory7835b4eaf27ad5e5
    org.apache.lucene.util.AttributeImpld2e818115d53c6c8
    org.apache.lucene.util.AttributeSource9ed2301ac94454b9
    org.apache.lucene.util.AttributeSource.2627a422f8bda783c
    org.apache.lucene.util.AttributeSource.Stateee682f69cc19d165
    org.apache.lucene.util.BitSet5a574c88f9713d83
    org.apache.lucene.util.BitUtilfb8b4d3d71d70037
    org.apache.lucene.util.ByteBlockPoolc1f7c99648018d91
    org.apache.lucene.util.ByteBlockPool.Allocatore4273ccf741d8276
    org.apache.lucene.util.ByteBlockPool.DirectTrackingAllocator9bf47627846516db
    org.apache.lucene.util.BytesRef5dc0661c38a5f442
    org.apache.lucene.util.BytesRefBuilder6b39f0d53b571bfe
    org.apache.lucene.util.BytesRefHash86e748e8ab5fa687
    org.apache.lucene.util.BytesRefHash.1e19faf8fa62ab4f4
    org.apache.lucene.util.BytesRefHash.BytesStartArray06370cc4bd47788d
    org.apache.lucene.util.CloseableThreadLocalc837a4897f406f88
    org.apache.lucene.util.CollectionUtild405772039814236
    org.apache.lucene.util.CollectionUtil.ListIntroSorter272e33df47ff8a28
    org.apache.lucene.util.Constants71711c9ebda826d2
    org.apache.lucene.util.Counterdd1fe6fe36dc8723
    org.apache.lucene.util.Counter.AtomicCounter702c4b53893ac12e
    org.apache.lucene.util.Counter.SerialCounter577da4101cbc325f
    org.apache.lucene.util.FixedBitSet92d1cd1d5e4309b2
    org.apache.lucene.util.FrequencyTrackingRingBufferf4e55c7fd66a81d5
    org.apache.lucene.util.FrequencyTrackingRingBuffer.IntBag5de9feffb74916c0
    org.apache.lucene.util.FutureArrayseead70d27728315f
    org.apache.lucene.util.FutureObjectsbb12722ddc092a6a
    org.apache.lucene.util.IOUtilsf9815136f890b195
    org.apache.lucene.util.InPlaceMergeSortera72a3702a3f4d8f1
    org.apache.lucene.util.InfoStream5c1d197ea5ba7a73
    org.apache.lucene.util.InfoStream.NoOutputd0750f16f6d2766e
    org.apache.lucene.util.IntBlockPool73804d638cfb8a37
    org.apache.lucene.util.IntBlockPool.Allocator024ee289b8aaee46
    org.apache.lucene.util.IntroSorter08519c1f1ba4a7de
    org.apache.lucene.util.IntsReff9b7dc817ff99274
    org.apache.lucene.util.IntsRefBuilderb5175ed4b449f9b7
    org.apache.lucene.util.LongValues7d8aee853134ae83
    org.apache.lucene.util.LongValues.1f9fa8f9d563676c5
    org.apache.lucene.util.LongValues.216b39160a62d65d4
    org.apache.lucene.util.LongsRefab3dbc979e310089
    org.apache.lucene.util.MSBRadixSorter9adaa4c4786de287
    org.apache.lucene.util.MathUtil6446df2aeb4ba1d0
    org.apache.lucene.util.NamedSPILoaderbd69495c1a655c32
    org.apache.lucene.util.PriorityQueue86214d87630b6122
    org.apache.lucene.util.PriorityQueue.160a8e49cec5e67af
    org.apache.lucene.util.QueryBuilderf8cdd17d51e120bf
    org.apache.lucene.util.QueryBuilder.TermAndBoost7379a586bc344983
    org.apache.lucene.util.RamUsageEstimator90dd0e4b91d1e1b1
    org.apache.lucene.util.RamUsageEstimator.170b7c06b4a2ba803
    org.apache.lucene.util.SPIClassIterator77e3e7ca7aea78ee
    org.apache.lucene.util.SetOnce1f43b17a7dfc86e4
    org.apache.lucene.util.SetOnce.Wrapperfbdf6ca0565e5886
    org.apache.lucene.util.SmallFloat4b4c055a7d5e7c3d
    org.apache.lucene.util.Sorter91a27f89e094d240
    org.apache.lucene.util.StringHelper548b4986a5429a71
    org.apache.lucene.util.StringMSBRadixSorter09fc2a082184e6e8
    org.apache.lucene.util.StringMSBRadixSorter.12864f721fdd69ffd
    org.apache.lucene.util.UnicodeUtilaa9656ee8c7acf93
    org.apache.lucene.util.Versiond5dc79d50f2c2d1d
    org.apache.lucene.util.compress.LZ474e78555e9692654
    org.apache.lucene.util.compress.LZ4.FastCompressionHashTable455953436870f53c
    org.apache.lucene.util.compress.LZ4.HashTablea875bb203fc16df5
    org.apache.lucene.util.compress.LZ4.HighCompressionHashTablefe6aeae6ddf42ee2
    org.apache.lucene.util.compress.LowercaseAsciiCompressionf447544a6d96e316
    org.apache.lucene.util.fst.BitTableUtilae7a3159aea08377
    org.apache.lucene.util.fst.Builder100b4b21b6b35e4f
    org.apache.lucene.util.fst.Builder.Arc03d7ea3d6f291b24
    org.apache.lucene.util.fst.Builder.CompiledNode611103c7aadde65d
    org.apache.lucene.util.fst.Builder.FixedLengthArcsBufferdc3feeb45753c9cf
    org.apache.lucene.util.fst.Builder.UnCompiledNode008d6d1bfef92929
    org.apache.lucene.util.fst.ByteSequenceOutputs143ca7cb1094029b
    org.apache.lucene.util.fst.BytesRefFSTEnum8c5ff799d80df73e
    org.apache.lucene.util.fst.BytesRefFSTEnum.InputOutputfdff5845aec3a017
    org.apache.lucene.util.fst.BytesStore862a096cc44582bf
    org.apache.lucene.util.fst.BytesStore.265e27783d1fb59c4
    org.apache.lucene.util.fst.FST22daed3fbd13fe0f
    org.apache.lucene.util.fst.FST.Arc87a6bbce0deea5dc
    org.apache.lucene.util.fst.FST.Arc.BitTablecd08373a793c76e2
    org.apache.lucene.util.fst.FST.BytesReader9774f9c52f512c2f
    org.apache.lucene.util.fst.FST.INPUT_TYPE4cca0a4d7eb0fc65
    org.apache.lucene.util.fst.FSTEnumb20a467cecfe037b
    org.apache.lucene.util.fst.NodeHashe5fbe5551fd06a18
    org.apache.lucene.util.fst.OffHeapFSTStorec45fc9986debb081
    org.apache.lucene.util.fst.Outputs01b4adaf56ba7d3f
    org.apache.lucene.util.fst.ReverseBytesReader13eb20434ceaa349
    org.apache.lucene.util.fst.ReverseRandomAccessReader8ca4cafc0fd06de6
    org.apache.lucene.util.fst.Utile497ee1ca74a697c
    org.apache.lucene.util.packed.AbstractPagedMutablec34fc67babfbb425
    org.apache.lucene.util.packed.BulkOperatione703484622617102
    org.apache.lucene.util.packed.BulkOperation.18ed6abb8f3648cf6
    org.apache.lucene.util.packed.BulkOperationPacked829a236b3c71b9c5
    org.apache.lucene.util.packed.BulkOperationPacked14bd02140efa827ba
    org.apache.lucene.util.packed.BulkOperationPacked107871df76ca8b0a6d
    org.apache.lucene.util.packed.BulkOperationPacked1131012a043511a3c2
    org.apache.lucene.util.packed.BulkOperationPacked128c9d61a1c0c22fe2
    org.apache.lucene.util.packed.BulkOperationPacked137c3f7554b1c18d1d
    org.apache.lucene.util.packed.BulkOperationPacked1421e5b4c1bd2627b3
    org.apache.lucene.util.packed.BulkOperationPacked1589157585ca7e8aaf
    org.apache.lucene.util.packed.BulkOperationPacked16bd7857d6862d8611
    org.apache.lucene.util.packed.BulkOperationPacked17ee9c6581a4299e15
    org.apache.lucene.util.packed.BulkOperationPacked18559a5bb48c2c0381
    org.apache.lucene.util.packed.BulkOperationPacked19ce141b930277706f
    org.apache.lucene.util.packed.BulkOperationPacked2af735fb9c7872456
    org.apache.lucene.util.packed.BulkOperationPacked20ec750496cb2b69fc
    org.apache.lucene.util.packed.BulkOperationPacked21fd5faea41a357d0e
    org.apache.lucene.util.packed.BulkOperationPacked22b8b2caf3fa40412b
    org.apache.lucene.util.packed.BulkOperationPacked23d3700bb7e9bbb9e7
    org.apache.lucene.util.packed.BulkOperationPacked2497d220c44b683800
    org.apache.lucene.util.packed.BulkOperationPacked31318d5978b9e3782
    org.apache.lucene.util.packed.BulkOperationPacked470c3af2facc8f326
    org.apache.lucene.util.packed.BulkOperationPacked5d206eeee69238498
    org.apache.lucene.util.packed.BulkOperationPacked62dc5d4490742e4f9
    org.apache.lucene.util.packed.BulkOperationPacked7cf065f84c953d1aa
    org.apache.lucene.util.packed.BulkOperationPacked8f743f629bc8f2eec
    org.apache.lucene.util.packed.BulkOperationPacked920af58a528f116a1
    org.apache.lucene.util.packed.BulkOperationPackedSingleBlocked80270f7be26e06
    org.apache.lucene.util.packed.DeltaPackedLongValues.Builder058b56d9e425c2ec
    org.apache.lucene.util.packed.Direct16f6d3316502557024
    org.apache.lucene.util.packed.Direct81681d7da6313a8e2
    org.apache.lucene.util.packed.DirectMonotonicReader4ca3c68dd3a989a8
    org.apache.lucene.util.packed.DirectMonotonicReader.1ac026cbf03289925
    org.apache.lucene.util.packed.DirectMonotonicReader.Metabd8400ac2b5a5d97
    org.apache.lucene.util.packed.DirectMonotonicWriterab3c850c35c1869b
    org.apache.lucene.util.packed.DirectReader150a3f82db014cc5
    org.apache.lucene.util.packed.DirectReader.DirectPackedReader12763b65d68011c1c4
    org.apache.lucene.util.packed.DirectReader.DirectPackedReader168eb1a1c0c719b770
    org.apache.lucene.util.packed.DirectWriterdffc834e0d38a3e9
    org.apache.lucene.util.packed.GrowableWriter5e5c4629c1cacb32
    org.apache.lucene.util.packed.Packed64caccd5762229d5a5
    org.apache.lucene.util.packed.Packed64SingleBlock3ee3158eebfb2583
    org.apache.lucene.util.packed.Packed64SingleBlock.Packed64SingleBlock125137e3efb8081112
    org.apache.lucene.util.packed.Packed64SingleBlock.Packed64SingleBlock4344d44155104d71f
    org.apache.lucene.util.packed.PackedInts5fce3648bb81aba7
    org.apache.lucene.util.packed.PackedInts.1b5e362f7e4f2669f
    org.apache.lucene.util.packed.PackedInts.Formatf66df8d6fa1eb0bf
    org.apache.lucene.util.packed.PackedInts.Format.13b829c5020510e1e
    org.apache.lucene.util.packed.PackedInts.Format.284c5dbb1792af026
    org.apache.lucene.util.packed.PackedInts.FormatAndBits94bd3ad750fed485
    org.apache.lucene.util.packed.PackedInts.Mutable4220eb680213cd52
    org.apache.lucene.util.packed.PackedInts.MutableImpl07f6a90e6a6b8629
    org.apache.lucene.util.packed.PackedInts.Readerada558745edc141a
    org.apache.lucene.util.packed.PackedInts.ReaderIteratorImpld0ab15244e49ac29
    org.apache.lucene.util.packed.PackedInts.Writera09c912336957fca
    org.apache.lucene.util.packed.PackedLongValuesfcf07dff85fee5e0
    org.apache.lucene.util.packed.PackedLongValues.Builder57417b5ca6cc2f7f
    org.apache.lucene.util.packed.PackedReaderIterator9150185835a6e045
    org.apache.lucene.util.packed.PackedWriterf401186d92e3dfd7
    org.apache.lucene.util.packed.PagedGrowableWriterbf064fd5aabfaffd
    org.apache.maven.plugin.surefire.log.api.NullConsoleLogger9e19e8c6ec7e2af1
    org.apache.maven.surefire.api.booter.BaseProviderFactory3859e78bd81eea39
    org.apache.maven.surefire.api.booter.BiPropertyd22c13c56d5b4593
    org.apache.maven.surefire.api.booter.Command3cd54166633f8826
    org.apache.maven.surefire.api.booter.Constantsdecb9de81c53dc77
    org.apache.maven.surefire.api.booter.DumpErrorSingleton0fb68b22eecee565
    org.apache.maven.surefire.api.booter.ForkedProcessEventTypefb813c97649a2cb4
    org.apache.maven.surefire.api.booter.ForkingReporterFactory43a09ed486105416
    org.apache.maven.surefire.api.booter.ForkingRunListener72fc487c27ef5b8d
    org.apache.maven.surefire.api.booter.MasterProcessCommand4638438d1f9cb2b7
    org.apache.maven.surefire.api.booter.Shutdown22c5299ca66a441d
    org.apache.maven.surefire.api.cli.CommandLineOption4a638448af60a346
    org.apache.maven.surefire.api.filter.NonAbstractClassFilterf9349f28027f7865
    org.apache.maven.surefire.api.provider.AbstractProvidera003e0bc84287c70
    org.apache.maven.surefire.api.report.ConsoleOutputCapture810c9018ba7d1ecc
    org.apache.maven.surefire.api.report.ConsoleOutputCapture.ForwardingPrintStream2c7c3dde8b37b8d9
    org.apache.maven.surefire.api.report.ConsoleOutputCapture.NullOutputStream5731848fa72c76c9
    org.apache.maven.surefire.api.report.ReporterConfigurationa4d0f02ee0a3ce3b
    org.apache.maven.surefire.api.report.RunMode99815bd2f7cf25b8
    org.apache.maven.surefire.api.report.SimpleReportEntrybe57bd60074f466f
    org.apache.maven.surefire.api.stream.AbstractStreamDecoderc51329e6fe95e03f
    org.apache.maven.surefire.api.stream.AbstractStreamDecoder.BufferedStream0e036d9195140045
    org.apache.maven.surefire.api.stream.AbstractStreamDecoder.Memento50fa22818cea4206
    org.apache.maven.surefire.api.stream.AbstractStreamDecoder.Segmentec7b2e9f3dc519b5
    org.apache.maven.surefire.api.stream.AbstractStreamDecoder.StreamReadStatusb28e22fff7af7760
    org.apache.maven.surefire.api.stream.AbstractStreamEncoder5b9d2cab05438b39
    org.apache.maven.surefire.api.stream.SegmentTypea352bcb443bb6539
    org.apache.maven.surefire.api.suite.RunResult14b135b9dcad68f4
    org.apache.maven.surefire.api.testset.DirectoryScannerParameters011c1405154cf543
    org.apache.maven.surefire.api.testset.IncludedExcludedPatternse9dcd696bf90972f
    org.apache.maven.surefire.api.testset.ResolvedTest89f52bebbeb73147
    org.apache.maven.surefire.api.testset.ResolvedTest.ClassMatcherc5f953b9f15d7ab4
    org.apache.maven.surefire.api.testset.ResolvedTest.MethodMatcher7b60e64bb228414b
    org.apache.maven.surefire.api.testset.ResolvedTest.Type2a3fe66966797e51
    org.apache.maven.surefire.api.testset.RunOrderParameters54e3b7abf0f0a29a
    org.apache.maven.surefire.api.testset.TestArtifactInfo534706d1cf843371
    org.apache.maven.surefire.api.testset.TestListResolverdf95312288764ee2
    org.apache.maven.surefire.api.testset.TestRequestc693581994b610fb
    org.apache.maven.surefire.api.util.CloseableIterator1bb59460a90e1562
    org.apache.maven.surefire.api.util.DefaultRunOrderCalculator2be55f855ffc9c23
    org.apache.maven.surefire.api.util.DefaultScanResult3abe973f1a2038a4
    org.apache.maven.surefire.api.util.ReflectionUtils463b61419dafb4bc
    org.apache.maven.surefire.api.util.RunOrdera5c43ed7ff239d28
    org.apache.maven.surefire.api.util.TestsToRun1a59fa62362c2dd4
    org.apache.maven.surefire.api.util.TestsToRun.ClassesIterator3054f1187d144893
    org.apache.maven.surefire.api.util.internal.AbstractNoninterruptibleReadableChannelb76efd5ee4f6a78a
    org.apache.maven.surefire.api.util.internal.AbstractNoninterruptibleWritableChannel7b40a9206100f626
    org.apache.maven.surefire.api.util.internal.Channelsa28ebb2dc3d003c6
    org.apache.maven.surefire.api.util.internal.Channels.31911457c5208109a
    org.apache.maven.surefire.api.util.internal.Channels.461df49d28956b732
    org.apache.maven.surefire.api.util.internal.ClassMethod831eee1f29d6b004
    org.apache.maven.surefire.api.util.internal.DaemonThreadFactory4065ee5e2ad99385
    org.apache.maven.surefire.api.util.internal.DaemonThreadFactory.NamedThreadFactory0dc63f2f250c8f58
    org.apache.maven.surefire.api.util.internal.DumpFileUtils260268350116ea1a
    org.apache.maven.surefire.api.util.internal.ImmutableMapc8d76b0bb433e1e6
    org.apache.maven.surefire.api.util.internal.ImmutableMap.Node61855d8450e86cb5
    org.apache.maven.surefire.api.util.internal.ObjectUtilsd0584b88701e9b97
    org.apache.maven.surefire.api.util.internal.TestClassMethodNameUtilsa01f540094a55e8c
    org.apache.maven.surefire.booter.AbstractPathConfiguration2ad3d057ec281500
    org.apache.maven.surefire.booter.BooterDeserializera2a1a3132d868a74
    org.apache.maven.surefire.booter.ClassLoaderConfiguration5bafac5e09ac0782
    org.apache.maven.surefire.booter.Classpath81f738f937cf4b38
    org.apache.maven.surefire.booter.ClasspathConfigurationb651758fedc3de2d
    org.apache.maven.surefire.booter.CommandReader440cf8805d3444be
    org.apache.maven.surefire.booter.CommandReader.16e995a711f46e676
    org.apache.maven.surefire.booter.CommandReader.CommandRunnable7f7bfee61ebca85e
    org.apache.maven.surefire.booter.ForkedBooterff24aeec916b680b
    org.apache.maven.surefire.booter.ForkedBooter.173179ebb6b41b643
    org.apache.maven.surefire.booter.ForkedBooter.3c51baabea2b75554
    org.apache.maven.surefire.booter.ForkedBooter.468ca1df4a9ada348
    org.apache.maven.surefire.booter.ForkedBooter.608fe853c879dd1a6
    org.apache.maven.surefire.booter.ForkedBooter.78cca77fe0fd3c98d
    org.apache.maven.surefire.booter.ForkedBooter.8779c6068c1dac1db
    org.apache.maven.surefire.booter.ForkedBooter.PingScheduler6e83f53202050979
    org.apache.maven.surefire.booter.ForkedNodeArge055a24d27c554f3
    org.apache.maven.surefire.booter.PpidChecker921ca312a6f63114
    org.apache.maven.surefire.booter.ProcessCheckerType9c8497621409bb1e
    org.apache.maven.surefire.booter.PropertiesWrapperc4362cb430c125af
    org.apache.maven.surefire.booter.ProviderConfiguration84eb716577efc3a7
    org.apache.maven.surefire.booter.StartupConfigurationf457135a627728a6
    org.apache.maven.surefire.booter.SystemPropertyManager0446c7c116836016
    org.apache.maven.surefire.booter.TypeEncodedValue1b039936542eee72
    org.apache.maven.surefire.booter.spi.AbstractMasterProcessChannelProcessorFactoryc30b5b062f066468
    org.apache.maven.surefire.booter.spi.AbstractMasterProcessChannelProcessorFactory.1644e111f23817fd3
    org.apache.maven.surefire.booter.spi.AbstractMasterProcessChannelProcessorFactory.247b08c480603fa8a
    org.apache.maven.surefire.booter.spi.CommandChannelDecoder65f2965c86411193
    org.apache.maven.surefire.booter.spi.EventChannelEncoder114071f00780f71e
    org.apache.maven.surefire.booter.spi.EventChannelEncoder.StackTracee7231bc2c7014c40
    org.apache.maven.surefire.booter.spi.LegacyMasterProcessChannelProcessorFactoryb54085754461a0d1
    org.apache.maven.surefire.booter.spi.SurefireMasterProcessChannelProcessorFactory132a213649249d64
    org.apache.maven.surefire.booter.stream.CommandDecoder0d40efcc428f82e2
    org.apache.maven.surefire.booter.stream.CommandDecoder.19d88d04fa41adab4
    org.apache.maven.surefire.booter.stream.EventEncoder4bdbe84daf58c435
    org.apache.maven.surefire.common.junit3.JUnit3TestCheckerbbad74a9945614a4
    org.apache.maven.surefire.common.junit4.JUnit4ProviderUtilfa2afc137d4ba7b3
    org.apache.maven.surefire.common.junit4.JUnit4Reflector23b83cd8942b7f95
    org.apache.maven.surefire.common.junit4.JUnit4RunListenerd8d5e5130dcf4b9b
    org.apache.maven.surefire.common.junit4.JUnit4RunListenerFactoryccfd1352f097d7b8
    org.apache.maven.surefire.common.junit4.JUnit4TestCheckerf6cf831ca6699119
    org.apache.maven.surefire.common.junit4.JUnitTestFailureListener03f07d8828d7aca4
    org.apache.maven.surefire.common.junit4.Notifiera943b086c230616e
    org.apache.maven.surefire.junit4.JUnit4Provider5d773610b092faec
    org.apache.maven.surefire.junit4.JUnit4Provider.1e7b4bc1546ba10b9
    org.apache.maven.surefire.report.ClassMethodIndexer8b31a053539323b7
    org.apache.maven.surefire.shared.lang3.JavaVersion4e21c3be19560aac
    org.apache.maven.surefire.shared.lang3.SystemUtilse5eafc9ce14dcbec
    org.apache.maven.surefire.shared.lang3.math.NumberUtils11e46630af73f131
    org.apache.maven.surefire.shared.utils.StringUtilsabd8480c7152bf46
    org.apache.maven.surefire.shared.utils.cli.ShutdownHookUtils011b23cd829ec86c
    org.apache.tools.ant.AntClassLoader72a8f9d81db96ce3
    org.apache.tools.ant.AntClassLoader.ResourceEnumeration220c52a881833c45
    org.apache.tools.ant.AntTypeDefinition6db55d84c45e276c
    org.apache.tools.ant.BuildEvent3d805ce99d00e1eb
    org.apache.tools.ant.BuildExceptionabe8753d03f38930
    org.apache.tools.ant.BuildFileRulefc3c590bd85d9d50
    org.apache.tools.ant.BuildFileRule.AntOutputStreamd960e83c1bb6ff2f
    org.apache.tools.ant.BuildFileRule.AntTestListenerf34b841765036d1d
    org.apache.tools.ant.ComponentHelpera215cf0f38e8c4d9
    org.apache.tools.ant.DefaultDefinitionsfee1c441a16bec30
    org.apache.tools.ant.DirectoryScannerd670d506f930b160
    org.apache.tools.ant.IntrospectionHelper4ff85d03c782f6a6
    org.apache.tools.ant.IntrospectionHelper.11f55d0d94d51c269b
    org.apache.tools.ant.IntrospectionHelper.1492959aa6246bbf8c
    org.apache.tools.ant.IntrospectionHelper.16b358e2c96e543c78
    org.apache.tools.ant.IntrospectionHelper.18911db09ad9393ae3
    org.apache.tools.ant.IntrospectionHelper.63ca5f499b00d3cc0
    org.apache.tools.ant.IntrospectionHelper.706d1e80dc11a7769
    org.apache.tools.ant.IntrospectionHelper.9ad9ba5ecfa916c14
    org.apache.tools.ant.IntrospectionHelper.AddNestedCreatora49fe394201ba2f3
    org.apache.tools.ant.IntrospectionHelper.AttributeSetterd94fec1b34398700
    org.apache.tools.ant.IntrospectionHelper.CreateNestedCreator2f3fd0398cdaf953
    org.apache.tools.ant.IntrospectionHelper.Creator2e7001d75b3fcd31
    org.apache.tools.ant.IntrospectionHelper.MethodAndObject2d18ac977aa5ea19
    org.apache.tools.ant.IntrospectionHelper.NestedCreator9267af3714b10c87
    org.apache.tools.ant.Location2c0829c010c60270
    org.apache.tools.ant.Mainc9b23c6a2a540884
    org.apache.tools.ant.Projectf2bc1e2a7ec75efd
    org.apache.tools.ant.Project.AntRefTable13a053faf9cde943
    org.apache.tools.ant.ProjectComponentaf465dfb35253266
    org.apache.tools.ant.ProjectHelperab1906e5aff9a52a
    org.apache.tools.ant.ProjectHelperRepositorycaf41e5dfbad25bb
    org.apache.tools.ant.PropertyHelperaaa8b30e220e994c
    org.apache.tools.ant.PropertyHelper.14445f70bb8a90859
    org.apache.tools.ant.PropertyHelper.221a2527c74737b5c
    org.apache.tools.ant.RuntimeConfigurablebcb97997b542df11
    org.apache.tools.ant.RuntimeConfigurable.AttributeComponentInformationce37e1d9242c06dd
    org.apache.tools.ant.Target35f2e7e5bc716cfa
    org.apache.tools.ant.Task5c2a45c1874d85b1
    org.apache.tools.ant.UnknownElement1dbd9ad478f6b2f8
    org.apache.tools.ant.dispatch.DispatchUtilsb5db4482828525ab
    org.apache.tools.ant.helper.AntXMLContext63faa89bb83421d2
    org.apache.tools.ant.helper.ProjectHelper238b8031d6e6d0d04
    org.apache.tools.ant.helper.ProjectHelper2.AntHandlerbf76a26d1c518577
    org.apache.tools.ant.helper.ProjectHelper2.ElementHandlere782c4b4515e41bd
    org.apache.tools.ant.helper.ProjectHelper2.MainHandler81d10de1ce7911c4
    org.apache.tools.ant.helper.ProjectHelper2.ProjectHandler2fba1d0c511fabc6
    org.apache.tools.ant.helper.ProjectHelper2.RootHandlerfe076780ed07b66f
    org.apache.tools.ant.helper.ProjectHelper2.TargetHandler180c5a36701379cd
    org.apache.tools.ant.input.DefaultInputHandler8bc48f7207fe09df
    org.apache.tools.ant.launch.Locator0301b390c862c776
    org.apache.tools.ant.property.LocalProperties727ffb131796e1fb
    org.apache.tools.ant.property.LocalPropertyStack38e1aeae8d73b57d
    org.apache.tools.ant.property.ParseProperties3e4d594570e23ab7
    org.apache.tools.ant.taskdefs.Antlib53059597da521607
    org.apache.tools.ant.taskdefs.AntlibDefinition26ab6e288f509814
    org.apache.tools.ant.taskdefs.Componentdefbab4fcc868793686
    org.apache.tools.ant.taskdefs.DefBase9b5c9dc7309df9a0
    org.apache.tools.ant.taskdefs.Definer35463a652c096783
    org.apache.tools.ant.taskdefs.Definer.OnError938a463b0b6b47bc
    org.apache.tools.ant.taskdefs.ImportTask6eaec663047a78a2
    org.apache.tools.ant.taskdefs.Taskdefa177315002919daf
    org.apache.tools.ant.taskdefs.Typedefa2839dae10d4eaea
    org.apache.tools.ant.taskdefs.condition.Os5178ac30e5f34493
    org.apache.tools.ant.types.AbstractFileSet9b351418db6605a3
    org.apache.tools.ant.types.DataTypec689cda9edb06993
    org.apache.tools.ant.types.DirSet31189f5b7f487b43
    org.apache.tools.ant.types.EnumeratedAttribute451cbf52555a9234
    org.apache.tools.ant.types.FileList85ce9ed3a27f0ac0
    org.apache.tools.ant.types.FileSet9ead433688f3cb1f
    org.apache.tools.ant.types.FilterSetff0e69c642a2350e
    org.apache.tools.ant.types.FilterSet.OnMissing46f114a1392d50b1
    org.apache.tools.ant.types.FilterSetCollection65fda227a6b7f8cb
    org.apache.tools.ant.types.LogLevel94343e5108ead342
    org.apache.tools.ant.types.PatternSetc7970a94cea03c51
    org.apache.tools.ant.types.PatternSet.NameEntrycb5ddce186edd6cf
    org.apache.tools.ant.types.Resourcecc86cd36bba182de
    org.apache.tools.ant.types.resources.FailFast2f2c4545eb4518d0
    org.apache.tools.ant.types.resources.FileResourcedb551b74c9a5cd6d
    org.apache.tools.ant.types.resources.FileResourceIterator573c8d7c942bedab
    org.apache.tools.ant.types.resources.Resources313c510587f674d1
    org.apache.tools.ant.types.resources.Resources.1266c6742bb2a14b6
    org.apache.tools.ant.types.resources.Resources.MyCollection0068807c1a201be9
    org.apache.tools.ant.types.resources.Resources.MyIteratorda94105b357f554a
    org.apache.tools.ant.types.resources.URLResource8e958ada7661d8c9
    org.apache.tools.ant.types.selectors.SelectorUtils9ba0732b93466fe5
    org.apache.tools.ant.types.selectors.TokenizedPath2051258fe7bb4b4b
    org.apache.tools.ant.types.selectors.TokenizedPattern9920e75654800766
    org.apache.tools.ant.util.ClasspathUtils2e9d37664feaa2d1
    org.apache.tools.ant.util.ClasspathUtils.Delegate4cb3354c9e98cb0a
    org.apache.tools.ant.util.DeweyDecimaldb95f5c7395c2b40
    org.apache.tools.ant.util.FileUtils6956b4c02624343a
    org.apache.tools.ant.util.JAXPUtilsb187847376024f28
    org.apache.tools.ant.util.JavaEnvUtils4aaea73a2a381b9d
    org.apache.tools.ant.util.LoaderUtilse8148f8a0ef559ab
    org.apache.tools.ant.util.ProcessUtil3b17f70013fd129e
    org.apache.tools.ant.util.StreamUtils8eb1c45262c1c4bf
    org.apache.tools.ant.util.VectorSet635732bfbb607abd
    org.apache.tools.zip.AbstractUnicodeExtraField439ad1925593d547
    org.apache.tools.zip.AsiExtraFieldeef2fada8e25f0a9
    org.apache.tools.zip.ExtraFieldUtilscb115ee12978c5ec
    org.apache.tools.zip.ExtraFieldUtils.UnparseableExtraFieldef33b9e2bff55cf9
    org.apache.tools.zip.FallbackZipEncoding78452827bd9c23d9
    org.apache.tools.zip.GeneralPurposeBit86c72b594068c6c9
    org.apache.tools.zip.JarMarker1044186da455a4af
    org.apache.tools.zip.UnicodeCommentExtraField9cdff08906e5f049
    org.apache.tools.zip.UnicodePathExtraField47a23ed6d7508c3f
    org.apache.tools.zip.Zip64ExtendedInformationExtraField2b71b256bec21d02
    org.apache.tools.zip.ZipEncodingHelpere80e5c88eb7284f2
    org.apache.tools.zip.ZipEncodingHelper.SimpleEncodingHoldercc7e2516bfc4dac8
    org.apache.tools.zip.ZipEntry26ab4b07e7637317
    org.apache.tools.zip.ZipFile72883326241df8ea
    org.apache.tools.zip.ZipFile.1a00c0f0595abd7b1
    org.apache.tools.zip.ZipFile.BoundedInputStream9f15cdc890d0732b
    org.apache.tools.zip.ZipFile.Entrye964e086f589d0f7
    org.apache.tools.zip.ZipFile.OffsetEntry346deb237e73ccc2
    org.apache.tools.zip.ZipLong3717840b323d5591
    org.apache.tools.zip.ZipOutputStreamb20685eacc44a180
    org.apache.tools.zip.ZipShort4113085e8f62493d
    org.apache.tools.zip.ZipUtil98b2718db48c2532
    org.apache.velocity.Templatec72326f66c085d1e
    org.apache.velocity.VelocityContext8ed590292b87a588
    org.apache.velocity.app.VelocityEngine9c939265034e0ab2
    org.apache.velocity.app.event.EventCartridgeded346c7951f1697
    org.apache.velocity.app.event.EventHandlerUtil5ac88b357fcf707c
    org.apache.velocity.context.AbstractContext7c2c19e800108a7b
    org.apache.velocity.context.InternalContextAdapterImpl7718d6c7d6f01429
    org.apache.velocity.context.InternalContextBase10fb0c7430dc4018
    org.apache.velocity.runtime.ParserConfigurationbcd56b6221db3c90
    org.apache.velocity.runtime.ParserPoolImpl2a25b051a66adee1
    org.apache.velocity.runtime.RuntimeConstants.SpaceGobbling1008e6924d8f311e
    org.apache.velocity.runtime.RuntimeInstancef8e2f14c6655a562
    org.apache.velocity.runtime.VelocimacroFactory1e9ea54492c3b0d1
    org.apache.velocity.runtime.VelocimacroManager01dfc0b62e0d84ab
    org.apache.velocity.runtime.VelocimacroManager.MacroEntry26d330eaf2fd31ac
    org.apache.velocity.runtime.directive.Block0dc2ea33bfdf1c8e
    org.apache.velocity.runtime.directive.Break9c4c04e7b7293d93
    org.apache.velocity.runtime.directive.Define2da211af6dc4adf2
    org.apache.velocity.runtime.directive.Directive114c6db128f09cfd
    org.apache.velocity.runtime.directive.Evaluatef1de1a698437317b
    org.apache.velocity.runtime.directive.Foreach795e04f024e903bd
    org.apache.velocity.runtime.directive.ForeachScoped638aec353b474e0
    org.apache.velocity.runtime.directive.Include38dbf0ece5fd3ed8
    org.apache.velocity.runtime.directive.InputBase7ab262413b0572f5
    org.apache.velocity.runtime.directive.Macro44425fcba4519651
    org.apache.velocity.runtime.directive.Macro.MacroArga252d6a716c1fbfc
    org.apache.velocity.runtime.directive.Parse73cd754f962b4f40
    org.apache.velocity.runtime.directive.RuntimeMacro11282b3ae9496214
    org.apache.velocity.runtime.directive.Scopedd64d33559d0c3b4
    org.apache.velocity.runtime.directive.Stop4a8d463f36f9ba3a
    org.apache.velocity.runtime.directive.Stop.146208084d16b60f9
    org.apache.velocity.runtime.directive.StopCommand13468231892e1528
    org.apache.velocity.runtime.directive.VelocimacroProxy42117ecd94da7939
    org.apache.velocity.runtime.parser.LogContext8bd2ab8c45781ea3
    org.apache.velocity.runtime.parser.LogContext.17793b8711118b163
    org.apache.velocity.runtime.parser.Parsere4801b5bb37f6031
    org.apache.velocity.runtime.parser.StandardParser8eaabc4fd8395c5d
    org.apache.velocity.runtime.parser.StandardParser.JJCalls1cd79adce175f30b
    org.apache.velocity.runtime.parser.StandardParser.LookaheadSuccess217f6689d0bd148c
    org.apache.velocity.runtime.parser.StandardParserTokenManagerb513a058a5d25bce
    org.apache.velocity.runtime.parser.StandardParserTokenManager.ParserStatee58c59d922a2d1c0
    org.apache.velocity.runtime.parser.Token035daceb00979634
    org.apache.velocity.runtime.parser.VelocityCharStream0fdd7275e5a6d511
    org.apache.velocity.runtime.parser.node.ASTAddNodef7a360fd0ceeb41f
    org.apache.velocity.runtime.parser.node.ASTAndNodecd14b0b2bfc9c2ef
    org.apache.velocity.runtime.parser.node.ASTBinaryOperator8c2ae99e76bfc2d2
    org.apache.velocity.runtime.parser.node.ASTBlock7426c59d7df1a96a
    org.apache.velocity.runtime.parser.node.ASTCommentb6f6e96d43d8ba8f
    org.apache.velocity.runtime.parser.node.ASTComparisonNode7352bd9088770a83
    org.apache.velocity.runtime.parser.node.ASTDirectivebdd000d27e79daab
    org.apache.velocity.runtime.parser.node.ASTEQNodea05682a5af313370
    org.apache.velocity.runtime.parser.node.ASTElseIfStatementcd01606457a3b636
    org.apache.velocity.runtime.parser.node.ASTElseStatement10b9ce434f126173
    org.apache.velocity.runtime.parser.node.ASTExpressione191b0102927df45
    org.apache.velocity.runtime.parser.node.ASTGENodedf404befde820934
    org.apache.velocity.runtime.parser.node.ASTGTNode429c741b43e4423e
    org.apache.velocity.runtime.parser.node.ASTIdentifier681e842674a46467
    org.apache.velocity.runtime.parser.node.ASTIfStatement39cb3d2cbbef8dff
    org.apache.velocity.runtime.parser.node.ASTIntegerLiterale5e50c14ab3e4acc
    org.apache.velocity.runtime.parser.node.ASTLTNode23c5285841d49ed9
    org.apache.velocity.runtime.parser.node.ASTLogicalOperatorfa236397c36b4771
    org.apache.velocity.runtime.parser.node.ASTMathNode22d06eed949108ef
    org.apache.velocity.runtime.parser.node.ASTMethodcc1d6a841b9eec04
    org.apache.velocity.runtime.parser.node.ASTMethod.MethodCacheKeyaf9e51370239a9c4
    org.apache.velocity.runtime.parser.node.ASTMulNode4b3194324ef888d5
    org.apache.velocity.runtime.parser.node.ASTNENode7b01e9808eb0a0ab
    org.apache.velocity.runtime.parser.node.ASTNotNodea51f40cc97c36424
    org.apache.velocity.runtime.parser.node.ASTOrNoded0e443267103c4b8
    org.apache.velocity.runtime.parser.node.ASTReferencec9c9373aa8849276
    org.apache.velocity.runtime.parser.node.ASTSetDirective55fd0a5c9cb9c430
    org.apache.velocity.runtime.parser.node.ASTStringLiteral2f67a986ad5a26f3
    org.apache.velocity.runtime.parser.node.ASTText389346874b271430
    org.apache.velocity.runtime.parser.node.ASTTextblocke99e39fdf682a6db
    org.apache.velocity.runtime.parser.node.ASTTrued1f94f133f80edab
    org.apache.velocity.runtime.parser.node.ASTWord66d75ec7205a4907
    org.apache.velocity.runtime.parser.node.ASTprocessde4ee2191c1ff63c
    org.apache.velocity.runtime.parser.node.AbstractExecutora0e3576d80f60b4f
    org.apache.velocity.runtime.parser.node.BooleanPropertyExecutorfd4eb69c74029461
    org.apache.velocity.runtime.parser.node.GetExecutor2a235ba3f58955fd
    org.apache.velocity.runtime.parser.node.JJTStandardParserState47563f73993d088b
    org.apache.velocity.runtime.parser.node.MapGetExecutor7461d24a11538750
    org.apache.velocity.runtime.parser.node.MathUtils36743f4dc547ee5e
    org.apache.velocity.runtime.parser.node.NodeUtils3c8679658a17f207
    org.apache.velocity.runtime.parser.node.PropertyExecutor94d607bd85fcb1de
    org.apache.velocity.runtime.parser.node.SimpleNode9462478b614a02dd
    org.apache.velocity.runtime.resource.Resourcee1da0d5e9e84f4f3
    org.apache.velocity.runtime.resource.ResourceCacheImpl7ec381111390acb1
    org.apache.velocity.runtime.resource.ResourceCacheImpl.LRUMap25cb4289e6f518c8
    org.apache.velocity.runtime.resource.ResourceManagerImpla50249c3c61edcd2
    org.apache.velocity.runtime.resource.loader.FileResourceLoader61d50ebf2ba17760
    org.apache.velocity.runtime.resource.loader.ResourceLoader8fe06021f04e44d1
    org.apache.velocity.runtime.resource.loader.ResourceLoaderFactory184d14a10476fd52
    org.apache.velocity.shaded.commons.io.FilenameUtilsd4f97baf766e1dee
    org.apache.velocity.util.ClassUtils0740c02f55974cb5
    org.apache.velocity.util.DeprecationAwareExtProperties27d5b5c05e6a6fec
    org.apache.velocity.util.DuckTypee50af2bb413f166d
    org.apache.velocity.util.DuckType.Typesbae2a6708b77175a
    org.apache.velocity.util.ExtPropertiesea3b60c6666140fe
    org.apache.velocity.util.ExtProperties.PropertiesReaderb618a7014140c253
    org.apache.velocity.util.SimplePool4fae8cabf20b16fc
    org.apache.velocity.util.introspection.ClassFieldMap08c07ae2515b1084
    org.apache.velocity.util.introspection.ClassMape8aa0059d0c24712
    org.apache.velocity.util.introspection.ClassMap.MethodCachee879a333bfa71058
    org.apache.velocity.util.introspection.Info7b0899deac2cfcb4
    org.apache.velocity.util.introspection.IntrospectionCacheDatada4e3622ea8bd189
    org.apache.velocity.util.introspection.IntrospectionUtils5600b482789873c7
    org.apache.velocity.util.introspection.Introspectorea0eb025828bb25b
    org.apache.velocity.util.introspection.IntrospectorBasea9523d1d3d9ec81c
    org.apache.velocity.util.introspection.IntrospectorCachecf24bd3e12cff77b
    org.apache.velocity.util.introspection.MethodMap5bc43b57e0eb708b
    org.apache.velocity.util.introspection.MethodMap.Matche9df9a21d7dc07e3
    org.apache.velocity.util.introspection.TypeConversionHandlerImpl2739aba645c510f3
    org.apache.velocity.util.introspection.UberspectImpl9ff3662a2a574180
    org.apache.velocity.util.introspection.UberspectImpl.VelGetterImpl600761c1eb266a6b
    org.apache.velocity.util.introspection.UberspectImpl.VelMethodImpla1520f1ed8867aa3
    org.h2.Driver1f044461dbd822a6
    org.h2.api.ErrorCode840ef5ab229bbf49
    org.h2.api.IntervalQualifier246aae6a9c36f2b7
    org.h2.api.IntervalQualifier.1bf97f880f3318a4a
    org.h2.command.Commandf15559eee5a4b67d
    org.h2.command.CommandContainer7f1438019fc91d17
    org.h2.command.CommandListfddd5691a587a13e
    org.h2.command.Parser2bb8f9e5a4a70b2e
    org.h2.command.Parser.1cb4488aad45d295c
    org.h2.command.Parser.NullConstraintType1f57cffeb49c7540
    org.h2.command.Prepared2afc45f364116e7c
    org.h2.command.Token9041f63f56392fb0
    org.h2.command.Token.CharacterStringTokendfb98b3bd2551690
    org.h2.command.Token.EndOfInputTokence0acd08cca36d96
    org.h2.command.Token.IdentifierToken96fa97b12ec39d26
    org.h2.command.Token.IntegerToken706265d29c73ee40
    org.h2.command.Token.KeywordToken89175f50cf553a38
    org.h2.command.Token.LiteralToken55ac31d811877860
    org.h2.command.Token.ParameterTokena1dbfddba95ea8c7
    org.h2.command.Tokenizer43f9aad9c9c53267
    org.h2.command.ddl.AlterTable7aa39625dc5b307b
    org.h2.command.ddl.AlterTableAddConstraint6b675b8c9348065a
    org.h2.command.ddl.AlterTableAlterColumnc901e4c8571def2f
    org.h2.command.ddl.AlterTableRenameColumn804458f1e4fad270
    org.h2.command.ddl.Analyzed44dcecb13e7b816
    org.h2.command.ddl.Analyze.SelectivityData9d2bf75f8d5ea568
    org.h2.command.ddl.CommandWithColumns5d9315b33ee69573
    org.h2.command.ddl.CreateFunctionAliasd2883f3f10fd8091
    org.h2.command.ddl.CreateIndexf31feb6e3685ea46
    org.h2.command.ddl.CreateSequencef0b8c2a1c5e12476
    org.h2.command.ddl.CreateTablee7275c1615ebec1c
    org.h2.command.ddl.CreateTableData3569f1ca31e74768
    org.h2.command.ddl.CreateUser2695390fae1d1c8e
    org.h2.command.ddl.DefineCommandcdddc9c95e413810
    org.h2.command.ddl.DropTablec459b4654874bc90
    org.h2.command.ddl.DropTable.SchemaAndTable6a855d249c69374b
    org.h2.command.ddl.SchemaCommand37562b22aa4d46eb
    org.h2.command.ddl.SchemaOwnerCommandd933ca320cd38b16
    org.h2.command.ddl.SequenceOptionsac62424e14dc3d1f
    org.h2.command.dml.CommandWithValuesfe71d1b4348da45a
    org.h2.command.dml.DataChangeStatement33e9a83e6aa9a2b0
    org.h2.command.dml.FilteredDataChangeStatementd1f06c41064db97d
    org.h2.command.dml.Insert92b352a399a37d13
    org.h2.command.dml.NoOperation45224ad69233db9a
    org.h2.command.dml.Setd21842a092a85228
    org.h2.command.dml.SetClauseList8d7af84401b9e26f
    org.h2.command.dml.SetClauseList.SetSimple8f716343f11c7e82
    org.h2.command.dml.SetClauseList.UpdateAction1eb72da8fe8e5057
    org.h2.command.dml.SetTypes016d945a5f04106d
    org.h2.command.dml.TransactionCommand3d756d024aef2b4e
    org.h2.command.dml.Update1bc1970970fb06be
    org.h2.command.query.AllColumnsForPlan450f809346d1808b
    org.h2.command.query.Optimizer46f986c336d6a3f6
    org.h2.command.query.Queryb4b2ce90b74182d5
    org.h2.command.query.Query.OffsetFetch19fb6b1d83396f8a
    org.h2.command.query.QueryOrderBy23777a00278ca3a2
    org.h2.command.query.Selectf5dc2c718161fa97
    org.h2.command.query.Select.LazyResultGroupSortedc599665435c0d17c
    org.h2.command.query.Select.LazyResultQueryFlat85da5085987fa500
    org.h2.command.query.Select.LazyResultSelectbccfb20cef56dd5e
    org.h2.command.query.SelectGroups31af3273b4e64a1c
    org.h2.command.query.SelectGroups.Groupede4db5aab5499ea40
    org.h2.compress.CompressLZF4b905f980eac239a
    org.h2.constraint.Constraintf020b750ed00e5a4
    org.h2.constraint.Constraint.Type22cd7378e3a10d3f
    org.h2.constraint.ConstraintActionType5628afb57ab6e865
    org.h2.constraint.ConstraintReferential2a77c026aeb8aab4
    org.h2.constraint.ConstraintUniqued487c96b0517f1bf
    org.h2.engine.Commentaeb6905a57d7cbf6
    org.h2.engine.ConnectionInfo343d6a137cb5b573
    org.h2.engine.Database83e12c5a8547f3c5
    org.h2.engine.DbObjecta1d54de7a70f69aa
    org.h2.engine.DbSettingsc16ca39af0b52094
    org.h2.engine.Engine8d1bef8b32a84ba9
    org.h2.engine.Engine.DatabaseHolderf3e1da4d84fad7c4
    org.h2.engine.IsolationLeveldc3d1e0f909bb346
    org.h2.engine.MetaRecord29bceca9a65575ba
    org.h2.engine.Moded125cf383981bd10
    org.h2.engine.Mode.CharPadding8cf8ff3cbc571739
    org.h2.engine.Mode.ExpressionNames88384897021057f2
    org.h2.engine.Mode.ModeEnuma38cd43a6cd506a3
    org.h2.engine.Mode.UniqueIndexNullsHandling502dde04362c0a05
    org.h2.engine.Mode.ViewExpressionNames5d52fc04ceb58107
    org.h2.engine.OnExitDatabaseCloserbf4571800d7637b7
    org.h2.engine.RightOwnerc6021e43f64032ac
    org.h2.engine.Role094194bad60e1b75
    org.h2.engine.Session64d6d72ad82917c2
    org.h2.engine.SessionLocal51a58f8ace245808
    org.h2.engine.SessionLocal.155f9583f8325b772
    org.h2.engine.SessionLocal.Savepoint781800cec7d35e7d
    org.h2.engine.SessionLocal.State1a3f8ed61a9b559b
    org.h2.engine.SessionRemotef37ba123636968a3
    org.h2.engine.Settingc86b1d51f590b2b5
    org.h2.engine.SettingsBase47dcfc6eb02612ad
    org.h2.engine.SysProperties738fc14326e6697a
    org.h2.engine.User6642d70796bd346f
    org.h2.expression.Alias47aad16dec6f33d9
    org.h2.expression.Expressionbb4614abe3a7154a
    org.h2.expression.ExpressionColumnf3c03411ffc0fd1f
    org.h2.expression.ExpressionVisitorcabab1ad46664b16
    org.h2.expression.Operation0b942a11663e00451
    org.h2.expression.Parameter9867f0e8942380a2
    org.h2.expression.ValueExpressionb0947d3b406882f5
    org.h2.expression.Wildcardd50b73091423744c
    org.h2.expression.aggregate.AbstractAggregatea1557954a9f0e0fd
    org.h2.expression.aggregate.Aggregatede37080964c8db3d
    org.h2.expression.aggregate.Aggregate.128b7d61d336b32ba
    org.h2.expression.aggregate.AggregateType1f12aa2df974eb3f
    org.h2.expression.analysis.DataAnalysisOperation0b8d4789dc81b499
    org.h2.expression.analysis.WindowFunctionType9edb2feb98f39fd3
    org.h2.expression.condition.Comparisonab7a87af7f1330e7
    org.h2.expression.condition.Conditionbb2da5a03aff382e
    org.h2.expression.condition.ConditionAndOr2634baba9064882c
    org.h2.expression.condition.ConditionAndOrN0491a0d6c6b89083
    org.h2.expression.condition.ConditionAndOrN.1cfd803b14c295199
    org.h2.expression.condition.ConditionIne017bd7adb1fec4c
    org.h2.expression.condition.ConditionInConstantSetaddc1ef3077dfa02
    org.h2.expression.function.BuiltinFunctions78766f5d309e1eec
    org.h2.index.Index1437895d5bdaf159
    org.h2.index.Index.1a3373b1a421e99ac
    org.h2.index.IndexCondition0e9d41fbd2afa93d
    org.h2.index.IndexCursor21f3911a0d80a7b2
    org.h2.index.IndexTypedb20d5927a484411
    org.h2.index.SingleRowCursor6f2da13a23aba782
    org.h2.jdbc.JdbcConnectionaa9112f98496def0
    org.h2.jdbc.JdbcDatabaseMetaData4b65250c88adaaa7
    org.h2.jdbc.JdbcPreparedStatement0aaec231f77e8af1
    org.h2.jdbc.JdbcResultSet6616d9dd2dd82d4f
    org.h2.jdbc.JdbcSQLSyntaxErrorException2bd1ec0ceace2a26
    org.h2.jdbc.JdbcStatementdf8e9ff4d1b735bd
    org.h2.jdbc.meta.DatabaseMeta379d6005c31973cb
    org.h2.jdbc.meta.DatabaseMetaLocal9825c2b1e6cec520
    org.h2.jdbc.meta.DatabaseMetaLocalBasea42ca75579848556
    org.h2.message.DbException3f0e60c471f39e98
    org.h2.message.Trace491f3dad3147c898
    org.h2.message.TraceObjectc9beab9cd4384a9d
    org.h2.message.TraceSystemaa8bb0c0af8cc8c0
    org.h2.mode.DefaultNullOrderingd83aa2fead8d7efe
    org.h2.mode.ModeFunction03b3e1d15a53837f
    org.h2.mvstore.Chunk2b8a58455a4c2e7c
    org.h2.mvstore.Chunk.PositionComparator717579c9b8e61fcb
    org.h2.mvstore.Cursor5d963e5e8ab0be55
    org.h2.mvstore.CursorPosd146fb9483aa8712
    org.h2.mvstore.DataUtils6f9e8b0e67603e41
    org.h2.mvstore.FileStore4d01e40aea5428e5
    org.h2.mvstore.FreeSpaceBitSet55db07b87d11e2d4
    org.h2.mvstore.MVMap32c3349a2372c157
    org.h2.mvstore.MVMap.48673b0dfdf29edc4
    org.h2.mvstore.MVMap.BasicBuilder12a8106056e3784e
    org.h2.mvstore.MVMap.Builder51c13779e4e1a2de
    org.h2.mvstore.MVMap.Decision2391341a8b4c7da2
    org.h2.mvstore.MVMap.DecisionMaker7fe21a9c95f0236a
    org.h2.mvstore.MVMap.DecisionMaker.159f115a410484a7f
    org.h2.mvstore.MVMap.DecisionMaker.26070fe88d005eac4
    org.h2.mvstore.MVMap.DecisionMaker.3be1c10e28ff6d6ed
    org.h2.mvstore.MVMap.DecisionMaker.4f9827774c99da346
    org.h2.mvstore.MVMap.DecisionMaker.5275afe4d593556c7
    org.h2.mvstore.MVMap.IntValueHolderfb1881f08df938cf
    org.h2.mvstore.MVMap.RewriteDecisionMaker3e5cd264616ca1dc
    org.h2.mvstore.MVStore4fc94bbd472340df
    org.h2.mvstore.MVStore.BackgroundWriterThread5e4fe6f9b6650f62
    org.h2.mvstore.MVStore.Builder22b94348c270ef84
    org.h2.mvstore.MVStore.RemovedPageInfo31c493fb15eead92
    org.h2.mvstore.MVStore.TxCounterf5c51e97efd048ff
    org.h2.mvstore.MVStoreTool40622d2c8e8a8fae
    org.h2.mvstore.MVStoreTool.GenericDataTypeabe626abc33a1797
    org.h2.mvstore.Page5b32006674721ed6
    org.h2.mvstore.Page.Leaf48d9ba9ba9662350
    org.h2.mvstore.Page.NonLeafbd593ef4c947b0e0
    org.h2.mvstore.Page.PageReferencea98dbb4602145de4
    org.h2.mvstore.RootReference8b29fe57e28baad2
    org.h2.mvstore.StreamStorea4b55720e4fa8a71
    org.h2.mvstore.WriteBufferf98e4194dfd876cb
    org.h2.mvstore.cache.CacheLongKeyLIRS70a2cf8ef58af26d
    org.h2.mvstore.cache.CacheLongKeyLIRS.Configab6a58ffa39c6717
    org.h2.mvstore.cache.CacheLongKeyLIRS.Entry7e7768c4cf65b4d3
    org.h2.mvstore.cache.CacheLongKeyLIRS.Segmentf45e9bdce23b5c6a
    org.h2.mvstore.cache.FilePathCache5cc88ecfa563617d
    org.h2.mvstore.db.LobStorageMapeee0296b34855abd
    org.h2.mvstore.db.LobStorageMap.BlobMeta.Type56a8bacb3e75d3c8
    org.h2.mvstore.db.LobStorageMap.BlobReference.Type9792efaa202c63aa
    org.h2.mvstore.db.MVDelegateIndex75a01b645f8a059b
    org.h2.mvstore.db.MVIndex30888e50fac82aa6
    org.h2.mvstore.db.MVPrimaryIndex4f32c68b3cab90d0
    org.h2.mvstore.db.MVPrimaryIndex.MVStoreCursorca89bfad0dcdffb4
    org.h2.mvstore.db.MVSecondaryIndex9c8fdcc12dea3c65
    org.h2.mvstore.db.MVSecondaryIndex.MVStoreCursor790db329af86c31a
    org.h2.mvstore.db.MVTablef4e542fe436bca97
    org.h2.mvstore.db.MVTable.TraceLockEvent2c65ff40346dd416
    org.h2.mvstore.db.NullValueDataType75887b246893f2df
    org.h2.mvstore.db.RowDataType415fc270aba4597d
    org.h2.mvstore.db.RowDataType.Factory61377fce7824577e
    org.h2.mvstore.db.Store9aa6802d26be5c1b
    org.h2.mvstore.db.ValueDataTypeddc57cbd4a05c876
    org.h2.mvstore.db.ValueDataType.Factory03156b0134bc4c6d
    org.h2.mvstore.tx.CommitDecisionMakerae621b8defbb83c6
    org.h2.mvstore.tx.Record254f69f363a486df
    org.h2.mvstore.tx.Record.Type13c88f7aecc610aa
    org.h2.mvstore.tx.Snapshot7825bd583d62dd0e
    org.h2.mvstore.tx.Transaction75932f57c40d96dc
    org.h2.mvstore.tx.TransactionMapa4908653e3ce2a56
    org.h2.mvstore.tx.TransactionMap.25cafec78b793e40f
    org.h2.mvstore.tx.TransactionMap.CommittedIterator22e94be11a21d3ac
    org.h2.mvstore.tx.TransactionMap.TMIterator80572a0d1caf43d1
    org.h2.mvstore.tx.TransactionMap.UncommittedIterator57853f3b6dbd4d83
    org.h2.mvstore.tx.TransactionMap.ValidationIterator75ff7710527bb148
    org.h2.mvstore.tx.TransactionStore5a88a95b9fb34fd5
    org.h2.mvstore.tx.TransactionStore.TxMapBuilder57e161cc52d96ce9
    org.h2.mvstore.tx.TransactionStore.TxMapBuilder.TMVMapf60431e734e35b1e
    org.h2.mvstore.tx.TxDecisionMaker85e444859e7357fd
    org.h2.mvstore.tx.TxDecisionMaker.LockDecisionMaker7ea1a788b9a585d7
    org.h2.mvstore.tx.TxDecisionMaker.PutIfAbsentDecisionMaker1259ec8cbd8d5f8c
    org.h2.mvstore.tx.VersionedBitSetcb03917e9303dd05
    org.h2.mvstore.tx.VersionedValueCommitted1f63835704f93873
    org.h2.mvstore.tx.VersionedValueTypee90353e002224186
    org.h2.mvstore.tx.VersionedValueType.Factoryb6f7352cd3439a49
    org.h2.mvstore.tx.VersionedValueUncommitted5871ba85ec76be11
    org.h2.mvstore.type.BasicDataType21b8242aa76782c6
    org.h2.mvstore.type.ByteArrayDataTypee926b9099661c292
    org.h2.mvstore.type.LongDataTypea03799f8c42a57d4
    org.h2.mvstore.type.MetaType1b436879079fb452
    org.h2.mvstore.type.ObjectDataType0579ed66fbb3a9d1
    org.h2.mvstore.type.ObjectDataType.AutoDetectDataTyped93d15cbc56bc2c0
    org.h2.mvstore.type.ObjectDataType.NullType9b8599d75350eb1b
    org.h2.mvstore.type.StringDataType4997f0a656a9b7fc
    org.h2.result.DefaultRowa9aef564d7a9fe69
    org.h2.result.FetchedResult2008c917d16b1cc3
    org.h2.result.LazyResult432ec92435f96622
    org.h2.result.LocalResult9de4335bee1fec76
    org.h2.result.ResultWithGeneratedKeys56dd718df0035863
    org.h2.result.Rowe004551f934d55a4
    org.h2.result.RowFactory301cd649330026d4
    org.h2.result.RowFactory.DefaultRowFactory5ab0b7f9f28099de
    org.h2.result.RowFactory.Holder41f1cc54c079c8d7
    org.h2.result.SearchRowd20e3d81378dc409
    org.h2.result.SimpleRowValueb7d88298dd608b52
    org.h2.result.SortOrder497173c7c397dac3
    org.h2.result.Sparseb44a8f52a128b90c
    org.h2.schema.FunctionAlias2e55d18c6db10dae
    org.h2.schema.FunctionAlias.JavaMethod85554b6f739981d5
    org.h2.schema.InformationSchema5e171fc1d52567fb
    org.h2.schema.MetaSchemac20f6c35b912334c
    org.h2.schema.Schemaf6454b28cba42d52
    org.h2.schema.SchemaObject36331feedf964ee6
    org.h2.schema.Sequence11a6133ecefc8aa4
    org.h2.schema.Sequence.Cycleb813b944f3b57fe2
    org.h2.schema.UserDefinedFunctionfbc4095ef115a3ff
    org.h2.security.SHA2561377489050965973
    org.h2.store.FileLockMethod0a5e8bccdf92e35d
    org.h2.store.fs.FilePath3e0e7373c74033d1
    org.h2.store.fs.FilePathWrapper87d875796781afee
    org.h2.store.fs.FileUtils060a02c4aa2ff96e
    org.h2.store.fs.async.FilePathAsync16b33a44b1b5c235
    org.h2.store.fs.disk.FilePathDisk9ad70347c3c53b77
    org.h2.store.fs.mem.FileMemData659f85e22c47f221
    org.h2.store.fs.mem.FileMemData.Cachec73e11e6de2d8b69
    org.h2.store.fs.mem.FilePathMem595d031b8b0ce4b0
    org.h2.store.fs.mem.FilePathMemLZFfd5d7643ab9b5c2f
    org.h2.store.fs.niomapped.FilePathNioMapped67f5832e83405fcb
    org.h2.store.fs.niomem.FilePathNioMemf67f0322fbf112b5
    org.h2.store.fs.niomem.FilePathNioMemLZF132bbce83f940aba
    org.h2.store.fs.retry.FilePathRetryOnInterrupt3d5668f3ef57ef12
    org.h2.store.fs.split.FilePathSplite0332cdbd53823fa
    org.h2.store.fs.zip.FilePathZip571394bd7911f1b6
    org.h2.table.Column500d643f327e8cd1
    org.h2.table.ColumnResolver4b2aaf94f471a049
    org.h2.table.DataChangeDeltaTablecfef12b2b35a029b
    org.h2.table.DataChangeDeltaTable.ResultOption73e3b4dbc5058973
    org.h2.table.IndexColumnc5ce22adf3f59bf5
    org.h2.table.Plan612dabb67cb62cc8
    org.h2.table.PlanItem2def26bf3b87d892
    org.h2.table.Tableed8d3f8796b74a1d
    org.h2.table.TableBasef9650065ef79d0f9
    org.h2.table.TableFilter1580e6e3d1837400
    org.h2.table.TableFilter.MapColumnsVisitor931d604ec2d424fa
    org.h2.table.TableType56836f7ea831c8ba
    org.h2.table.TableView637347b8559c044a
    org.h2.util.CloseWatcherd678edef8d7cbcbd
    org.h2.util.DateTimeUtilsacbb58d9000f572f
    org.h2.util.IOUtils06d92b9f3551d003
    org.h2.util.JdbcUtilsa7cfc728a8939a3e
    org.h2.util.MathUtilsbdf93c5de1c6efb3
    org.h2.util.MemoryEstimator7bd6b84998f4470b
    org.h2.util.ParserUtil398474903b80ed1c
    org.h2.util.Permutations1c369f58220c466d
    org.h2.util.SmallLRUCache63a9505e4a72e86e
    org.h2.util.StringUtilscf6054820621813b
    org.h2.util.TempFileDeletere68e70f0f01e6e19
    org.h2.util.TimeZoneProvidera9c2d46d5ee1d017
    org.h2.util.TimeZoneProvider.Simpled186373cefabcbb3
    org.h2.util.Utils2e2bbc2f742b19b6
    org.h2.value.CompareMode58b22695ed1120a6
    org.h2.value.DataTypebe6090f80ecffcac
    org.h2.value.ExtTypeInfo8a940de3624beb39
    org.h2.value.ExtTypeInfoNumeric3f914c76eef2be60
    org.h2.value.ExtTypeInfoRowdeaab78daddc8908
    org.h2.value.TypeInfo9580e5a8b9802809
    org.h2.value.Valuead2c19061ba2725c
    org.h2.value.ValueBigDecimalBase215bf47c3c8205bb
    org.h2.value.ValueBigint8ec2db6a6c646098
    org.h2.value.ValueBoolean4f6af7c87c5a47ef
    org.h2.value.ValueChar05adce8c2875c4f5
    org.h2.value.ValueInteger3d79aac636fd91c9
    org.h2.value.ValueNull51a52bf735d3f5c0
    org.h2.value.ValueNumeric0d8483876bb2fdff
    org.h2.value.ValueSmallintb08c69d5b0149bd7
    org.h2.value.ValueStringBaseeb1bace27aaac6ab
    org.h2.value.ValueTimestampTimeZonee96caed7fa609eb6
    org.h2.value.ValueToObjectConverter2eb11fd432392fbc
    org.h2.value.ValueToObjectConverter25f48ffd2c93ddbd9
    org.h2.value.ValueVarchara2d834fe0bd70399
    org.h2.value.VersionedValueb8b9a78f680ab7c6
    org.junit.Asserteda6db924019425b
    org.junit.internal.Checks5f543b0bb87b92da
    org.junit.internal.MethodSortera26607ae067f7352
    org.junit.internal.MethodSorter.1d3997b4bdb7889c1
    org.junit.internal.MethodSorter.2c8e6351cbf098013
    org.junit.internal.builders.AllDefaultPossibilitiesBuilder4f18a1d7932cb8ab
    org.junit.internal.builders.AnnotatedBuilder0faf353d180c9332
    org.junit.internal.builders.IgnoredBuildere152f333c53967a6
    org.junit.internal.builders.JUnit3Builder4a2cc8e608e1275e
    org.junit.internal.builders.JUnit4Builderf2e00a3e1fc23005
    org.junit.internal.builders.SuiteMethodBuilder1df136431e07e393
    org.junit.internal.requests.ClassRequest47dbc61675e5a92e
    org.junit.internal.requests.ClassRequest.CustomAllDefaultPossibilitiesBuilderea1c269d9656f543
    org.junit.internal.requests.ClassRequest.CustomSuiteMethodBuilder03d01020b1c503c7
    org.junit.internal.requests.MemoizingRequest1e70801476dbab8f
    org.junit.internal.runners.model.EachTestNotifier077481995383e000
    org.junit.internal.runners.model.ReflectiveCallabled591724635588bcb
    org.junit.internal.runners.rules.RuleMemberValidator95b5ee2068ec6875
    org.junit.internal.runners.rules.RuleMemberValidator.Builderf24845fa6fd065af
    org.junit.internal.runners.rules.RuleMemberValidator.DeclaringClassMustBePublic1de994463c748d89
    org.junit.internal.runners.rules.RuleMemberValidator.FieldMustBeARulee24e9f59de6fe5b7
    org.junit.internal.runners.rules.RuleMemberValidator.FieldMustBeATestRule690823bd2992f52e
    org.junit.internal.runners.rules.RuleMemberValidator.MemberMustBeNonStaticOrAlsoClassRule1e703fb3e7f4e533
    org.junit.internal.runners.rules.RuleMemberValidator.MemberMustBePublic806c174eb921b478
    org.junit.internal.runners.rules.RuleMemberValidator.MemberMustBeStaticac28a03dd36b2b5a
    org.junit.internal.runners.rules.RuleMemberValidator.MethodMustBeARule88ea4a2237de2b8b
    org.junit.internal.runners.rules.RuleMemberValidator.MethodMustBeATestRule9f4dd18a26005c18
    org.junit.internal.runners.statements.InvokeMethod05a7aa636afa2c39
    org.junit.internal.runners.statements.RunAfters14a998d07920cd7b
    org.junit.internal.runners.statements.RunBeforesef86a61ca3ab20ba
    org.junit.rules.ExternalResourcefe234abb7ed11f04
    org.junit.rules.ExternalResource.108b5108fb33b03cb
    org.junit.runner.Description1d6f7ddbbf223f9a
    org.junit.runner.Request214d9ade1c7dc38d
    org.junit.runner.Resultecf6c1c04298ff7d
    org.junit.runner.Result.Listenercf649a4ffbe55db9
    org.junit.runner.Runnerf5abacc70e2e08a4
    org.junit.runner.notification.RunListener69d2c783b42f6720
    org.junit.runner.notification.RunNotifierf6313076e2224ebb
    org.junit.runner.notification.RunNotifier.1e31025c12b4dbdee
    org.junit.runner.notification.RunNotifier.24c7314c6d595dc3e
    org.junit.runner.notification.RunNotifier.3df2bada5cb3794f3
    org.junit.runner.notification.RunNotifier.4fbdd84204c215de7
    org.junit.runner.notification.RunNotifier.5f62dc396b601f8bd
    org.junit.runner.notification.RunNotifier.9c3c3d54b8ed47ee1
    org.junit.runner.notification.RunNotifier.SafeNotifier0b43c10299733bfb
    org.junit.runner.notification.SynchronizedRunListener2b59d5cb3b105225
    org.junit.runners.BlockJUnit4ClassRunner95752fb34ff12f3f
    org.junit.runners.BlockJUnit4ClassRunner.1d0f63145230a5f42
    org.junit.runners.BlockJUnit4ClassRunner.2f93eace695ddd30e
    org.junit.runners.BlockJUnit4ClassRunner.RuleCollector9c768e710e39c989
    org.junit.runners.JUnit46d26e2305347fe01
    org.junit.runners.ParentRunner335ee90b10f96ea1
    org.junit.runners.ParentRunner.1ecc6961e8bc209c4
    org.junit.runners.ParentRunner.2c5cb913a629ec4c8
    org.junit.runners.ParentRunner.320bad8188aebc0f2
    org.junit.runners.ParentRunner.480476dbdcb8d52cc
    org.junit.runners.ParentRunner.ClassRuleCollector26f7fb338afcd13b
    org.junit.runners.RuleContainerd44c3ba6dc65af53
    org.junit.runners.RuleContainer.157bbc73f6f47763b
    org.junit.runners.RuleContainer.RuleEntry33c112e80f79db7f
    org.junit.runners.model.FrameworkField2fe27c284e7d39f4
    org.junit.runners.model.FrameworkMemberbfd059486f267475
    org.junit.runners.model.FrameworkMethodf293b82d5aa86323
    org.junit.runners.model.FrameworkMethod.18fd5e02769c0e0c2
    org.junit.runners.model.MultipleFailureException187a72c573c34bac
    org.junit.runners.model.RunnerBuilder585cad2d320dc86e
    org.junit.runners.model.Statement9a75aa5de27bf4d5
    org.junit.runners.model.TestClass7e71209792391ee8
    org.junit.runners.model.TestClass.FieldComparator1b96cd3d5c4aeb07
    org.junit.runners.model.TestClass.MethodComparator0369eb29eb04248a
    org.junit.validator.AnnotationValidatorFactorye1e5570798173ab9
    org.junit.validator.AnnotationsValidator6cbe8454c9a93bb8
    org.junit.validator.AnnotationsValidator.AnnotatableValidatord211a963f22be103
    org.junit.validator.AnnotationsValidator.ClassValidator1b463c4e6642e880
    org.junit.validator.AnnotationsValidator.FieldValidator64068b954dc56a31
    org.junit.validator.AnnotationsValidator.MethodValidatorf16b57f17c787036
    org.junit.validator.PublicClassValidator3bac248cf06b18e4
    org.owasp.dependencycheck.AnalysisTaske7c73a60a930646f
    org.owasp.dependencycheck.BaseDBTestCase101fc405e6360a86
    org.owasp.dependencycheck.BaseTestbc884ee1d021a45f
    org.owasp.dependencycheck.Engine9eb4069cf91f3cee
    org.owasp.dependencycheck.Engine.Mode3f6a6fa06c5db5ef
    org.owasp.dependencycheck.agent.DependencyCheckScanAgentde6949324a1aad84
    org.owasp.dependencycheck.analyzer.AbstractAnalyzer53c2c707332e447f
    org.owasp.dependencycheck.analyzer.AbstractDependencyComparingAnalyzere5687426d9a0f66f
    org.owasp.dependencycheck.analyzer.AbstractFileTypeAnalyzercb75e41db9829ee7
    org.owasp.dependencycheck.analyzer.AbstractNpmAnalyzerf1f4584a14215949
    org.owasp.dependencycheck.analyzer.AbstractSuppressionAnalyzerfac2a53fa568132a
    org.owasp.dependencycheck.analyzer.AnalysisPhase8a2dd7e79126521a
    org.owasp.dependencycheck.analyzer.AnalyzerServicec83777cdc46bc2d2
    org.owasp.dependencycheck.analyzer.ArchiveAnalyzerc4afb05e99324933
    org.owasp.dependencycheck.analyzer.ArtifactoryAnalyzeraba5274b7a2d3c9c
    org.owasp.dependencycheck.analyzer.AssemblyAnalyzerb4f040a2e12ea447
    org.owasp.dependencycheck.analyzer.AutoconfAnalyzera61c7303a707d079
    org.owasp.dependencycheck.analyzer.CMakeAnalyzer466e5b6cfb32f8a0
    org.owasp.dependencycheck.analyzer.CPEAnalyzer8a5ab88772203ff1
    org.owasp.dependencycheck.analyzer.CPEAnalyzer.IdentifierConfidence68c0332006ac0f99
    org.owasp.dependencycheck.analyzer.CPEAnalyzer.IdentifierMatch92606f5613402d4c
    org.owasp.dependencycheck.analyzer.CentralAnalyzer8510025c8aaa3199
    org.owasp.dependencycheck.analyzer.CocoaPodsAnalyzer109d2f01d2ded1e1
    org.owasp.dependencycheck.analyzer.ComposerLockAnalyzer9d4ee64cf0474215
    org.owasp.dependencycheck.analyzer.CpeSuppressionAnalyzer0e15da288e35d32d
    org.owasp.dependencycheck.analyzer.DartAnalyzeraa59897e89b30f0b
    org.owasp.dependencycheck.analyzer.DependencyBundlingAnalyzer07c8f954686b5590
    org.owasp.dependencycheck.analyzer.DependencyMergingAnalyzer5b61b9ea1c73787a
    org.owasp.dependencycheck.analyzer.ElixirMixAuditAnalyzerdc7b13faacac2682
    org.owasp.dependencycheck.analyzer.FalsePositiveAnalyzer5d1e642680217c34
    org.owasp.dependencycheck.analyzer.FileNameAnalyzer6bd5616bd35b083c
    org.owasp.dependencycheck.analyzer.GolangDepAnalyzerfecafc9c62047e06
    org.owasp.dependencycheck.analyzer.GolangModAnalyzerb227db299327983e
    org.owasp.dependencycheck.analyzer.HintAnalyzer06857ac00a5b69bc
    org.owasp.dependencycheck.analyzer.JarAnalyzerd0852a5718eb3822
    org.owasp.dependencycheck.analyzer.JarAnalyzer.ClassNameInformationf7a6b8b47c825c6a
    org.owasp.dependencycheck.analyzer.KnownExploitedVulnerabilityAnalyzer3af076909f651f0b
    org.owasp.dependencycheck.analyzer.LibmanAnalyzerb71bb3bbd512db80
    org.owasp.dependencycheck.analyzer.MSBuildProjectAnalyzer0c1951f7a7176b6a
    org.owasp.dependencycheck.analyzer.NexusAnalyzer0e8b9d66c36140bb
    org.owasp.dependencycheck.analyzer.NodeAuditAnalyzer9b08dc840a569526
    org.owasp.dependencycheck.analyzer.NodePackageAnalyzer4f9c2855819b2a43
    org.owasp.dependencycheck.analyzer.NpmCPEAnalyzerc3b313265c0390a9
    org.owasp.dependencycheck.analyzer.NugetconfAnalyzerd7864bd059634c88
    org.owasp.dependencycheck.analyzer.NuspecAnalyzer51b5c3840fe8ede7
    org.owasp.dependencycheck.analyzer.NvdCveAnalyzer462c94a163d9bd80
    org.owasp.dependencycheck.analyzer.OpenSSLAnalyzerc05ed6ced1a77cd1
    org.owasp.dependencycheck.analyzer.OssIndexAnalyzere0ec285a8210cefd
    org.owasp.dependencycheck.analyzer.PEAnalyzerf1cf15bf017a345f
    org.owasp.dependencycheck.analyzer.PerlCpanfileAnalyzerf460b2c9a36956f5
    org.owasp.dependencycheck.analyzer.PinnedMavenInstallAnalyzerbabb05304288744c
    org.owasp.dependencycheck.analyzer.PipAnalyzer4eb3e3df5fc1d9eb
    org.owasp.dependencycheck.analyzer.PipfileAnalyzer94f81965a1d6f8bb
    org.owasp.dependencycheck.analyzer.PipfilelockAnalyzer090000f0d80906ed
    org.owasp.dependencycheck.analyzer.PnpmAuditAnalyzer8a0332fc7129d211
    org.owasp.dependencycheck.analyzer.PoetryAnalyzerfd3b1fd402042898
    org.owasp.dependencycheck.analyzer.PythonDistributionAnalyzer48872d7099105b81
    org.owasp.dependencycheck.analyzer.PythonPackageAnalyzer9e40fde1c8c573e3
    org.owasp.dependencycheck.analyzer.RetireJsAnalyzerbb886f09d58624f9
    org.owasp.dependencycheck.analyzer.RubyBundleAuditAnalyzere2fc7cdb41f163c8
    org.owasp.dependencycheck.analyzer.RubyBundlerAnalyzer5d486951fecfd610
    org.owasp.dependencycheck.analyzer.RubyGemspecAnalyzera1eb61175c0b726b
    org.owasp.dependencycheck.analyzer.SwiftPackageManagerAnalyzer2b236be3ad4379b4
    org.owasp.dependencycheck.analyzer.SwiftPackageResolvedAnalyzer602846b272882529
    org.owasp.dependencycheck.analyzer.UnusedSuppressionRuleAnalyzer96a130c36e2feb7c
    org.owasp.dependencycheck.analyzer.VersionFilterAnalyzerbccf328c51e5abce
    org.owasp.dependencycheck.analyzer.VulnerabilitySuppressionAnalyzer120f6770a484b62e
    org.owasp.dependencycheck.analyzer.YarnAuditAnalyzer29123c83238a50f8
    org.owasp.dependencycheck.ant.logging.AntLoggerAdapterf04b94e8383fc94c
    org.owasp.dependencycheck.ant.logging.AntLoggerFactoryc948ac151502cb6c
    org.owasp.dependencycheck.data.cache.DataCache45c535388c562524
    org.owasp.dependencycheck.data.cache.DataCacheFactory1f8c9b237297367c
    org.owasp.dependencycheck.data.cache.DataCacheFactory.CacheType137a3e5cbb2df174
    org.owasp.dependencycheck.data.cpe.AbstractMemoryIndex2ed8bf08d002c7f0
    org.owasp.dependencycheck.data.cpe.CpeMemoryIndex90c84bb62b80575d
    org.owasp.dependencycheck.data.cpe.IndexEntry21d883b53737f9ed
    org.owasp.dependencycheck.data.cwe.CweDB4b200943564bdb3c
    org.owasp.dependencycheck.data.lucene.AbstractTokenizingFilteref2bdf555ac30e13
    org.owasp.dependencycheck.data.lucene.AlphaNumericFilterd338a5925b823b3a
    org.owasp.dependencycheck.data.lucene.LuceneUtils3f465d0437852575
    org.owasp.dependencycheck.data.lucene.SearchFieldAnalyzer8c548705eb3be048
    org.owasp.dependencycheck.data.lucene.TokenPairConcatenatingFilter66727c35667a1e7f
    org.owasp.dependencycheck.data.lucene.UrlTokenizingFilter195de16b342dfeb9
    org.owasp.dependencycheck.data.nvd.ecosystem.Ecosystemf52dd17aa636a878
    org.owasp.dependencycheck.data.nvdcve.CveDBc840fdb7effcf59c
    org.owasp.dependencycheck.data.nvdcve.CveDB.PreparedStatementCveDb412e4dfd99bf4695
    org.owasp.dependencycheck.data.nvdcve.CveItemOperatoreab73d1ca7076e35
    org.owasp.dependencycheck.data.nvdcve.DatabaseManagerc8bfc4255f1ef4d5
    org.owasp.dependencycheck.data.nvdcve.DatabaseProperties0e2c7fb8c0ff158f
    org.owasp.dependencycheck.data.nvdcve.DriverLoader6f00b4d9849d8d88
    org.owasp.dependencycheck.data.nvdcve.DriverShim100a9676ec7c4389
    org.owasp.dependencycheck.data.update.cpe.CpePlusa4daec4d8fade7cd
    org.owasp.dependencycheck.dependency.Confidence8b1646fd73165f3d
    org.owasp.dependencycheck.dependency.CweSet92d71b148062e632
    org.owasp.dependencycheck.dependency.Dependencyad6f1800ed8875c2
    org.owasp.dependencycheck.dependency.Evidencea56eb960dbb41fa1
    org.owasp.dependencycheck.dependency.EvidenceCollection796f8ebade5a0ac6
    org.owasp.dependencycheck.dependency.EvidenceCollection.1c43d6c035fe1f0ab
    org.owasp.dependencycheck.dependency.EvidenceCollection.263ec251053ab3814
    org.owasp.dependencycheck.dependency.EvidenceCollection.339c4b6f5b69d425d
    org.owasp.dependencycheck.dependency.EvidenceCollection.486c481e087971d1f
    org.owasp.dependencycheck.dependency.EvidenceCollection.56d0ef220d6d3eb18
    org.owasp.dependencycheck.dependency.EvidenceType80374dc893ee62b6
    org.owasp.dependencycheck.dependency.Referencea2e6d658cd4f904f
    org.owasp.dependencycheck.dependency.Vulnerability5547976019a46a50
    org.owasp.dependencycheck.dependency.Vulnerability.Source972bf446c0b0bb2a
    org.owasp.dependencycheck.dependency.VulnerableSoftware8585e0e1fa3beeb8
    org.owasp.dependencycheck.dependency.VulnerableSoftwareBuildere0de1be074de33d1
    org.owasp.dependencycheck.dependency.naming.CpeIdentifierf5758c4da3e20472
    org.owasp.dependencycheck.reporting.EscapeToolcf686f5c98110b7f
    org.owasp.dependencycheck.reporting.ReportGeneratorb3e530fe266a825a
    org.owasp.dependencycheck.reporting.ReportGenerator.Formatc008dae7884b691a
    org.owasp.dependencycheck.reporting.ReportTool6d98d89de82875d4
    org.owasp.dependencycheck.taskdefs.Check971a7be71124ec92
    org.owasp.dependencycheck.taskdefs.Check.ReportFormatf3c5eeb12845dab6
    org.owasp.dependencycheck.taskdefs.Check.ReportFormats52344c68cfbd6b6e
    org.owasp.dependencycheck.taskdefs.DependencyCheckTaskIT6ff254a245c72c3d
    org.owasp.dependencycheck.taskdefs.Purge9dde358ab1aba210
    org.owasp.dependencycheck.taskdefs.RetirejsFilterad0bf22ce0a782f8
    org.owasp.dependencycheck.taskdefs.SuppressionFile809596fbe276003e
    org.owasp.dependencycheck.taskdefs.Update25fe50ec40dfea75
    org.owasp.dependencycheck.utils.Checksumd3d032adcf9f83ac
    org.owasp.dependencycheck.utils.Checksum.FileChecksumsee01483ef72b41eb
    org.owasp.dependencycheck.utils.DBUtils5a736a1e9db30930
    org.owasp.dependencycheck.utils.DependencyVersionc76be697ccf1be3e
    org.owasp.dependencycheck.utils.DependencyVersionUtil6a41259161e9d641
    org.owasp.dependencycheck.utils.FileFilterBuilderb6f3bba13d18ff4a
    org.owasp.dependencycheck.utils.FileUtilsb4bc6fabbcb815d7
    org.owasp.dependencycheck.utils.Filterdf3734618639a9b3
    org.owasp.dependencycheck.utils.Filter.FilterIteratord1a81c541dfce734
    org.owasp.dependencycheck.utils.Pair7b0fe8cac5057419
    org.owasp.dependencycheck.utils.Settings54ff44735c3537b2
    org.owasp.dependencycheck.utils.SeverityUtil2aa3a7803e3bc489
    org.owasp.dependencycheck.utils.UrlStringUtils13ac88d7b902ba2e
    org.owasp.dependencycheck.utils.Utils2388cf60ae13d515
    org.owasp.dependencycheck.utils.WriteLock38fa2d9af95f448e
    org.owasp.dependencycheck.utils.WriteLockCleanupHookf4959b4938fb442b
    org.owasp.dependencycheck.utils.WriteLockShutdownHook53b3f5b037d6b82e
    org.owasp.dependencycheck.utils.WriteLockShutdownHookFactory7856e6c15668c9d5
    org.owasp.dependencycheck.utils.XmlUtils3db31a3238d69ec0
    org.owasp.dependencycheck.xml.hints.EvidenceMatcherce8cbfbe4740ac69
    org.owasp.dependencycheck.xml.hints.HintErrorHandleraa3882d7c7c5cc67
    org.owasp.dependencycheck.xml.hints.HintHandlere93cf0a863214916
    org.owasp.dependencycheck.xml.hints.HintHandler.1a7e8cba20e8af505
    org.owasp.dependencycheck.xml.hints.HintHandler.ParentTypef24faabcce5f4c72
    org.owasp.dependencycheck.xml.hints.HintParserd88f1d17c3864870
    org.owasp.dependencycheck.xml.hints.HintRule58dd9d52018d064f
    org.owasp.dependencycheck.xml.hints.VendorDuplicatingHintRulef590e0aa1fffc212
    org.owasp.dependencycheck.xml.suppression.PropertyType88e0dda4979f444f
    org.owasp.dependencycheck.xml.suppression.SuppressionErrorHandlerf0b45bf0579463da
    org.owasp.dependencycheck.xml.suppression.SuppressionHandler4ba9da2c9f4c384b
    org.owasp.dependencycheck.xml.suppression.SuppressionParserd5b7ee2be33418e9
    org.owasp.dependencycheck.xml.suppression.SuppressionParser.ClassloaderResolver166296f9153760dd
    org.owasp.dependencycheck.xml.suppression.SuppressionRule1e5fc4cd38ec8b4d
    org.slf4j.LoggerFactorya381b7ddf19bf47d
    org.slf4j.helpers.FormattingTuple46e388b1eb4cb5c1
    org.slf4j.helpers.MarkerIgnoringBase7ebf011a62144edb
    org.slf4j.helpers.MessageFormatter42e7db43bad15507
    org.slf4j.helpers.NOPLoggerFactory54f5632bfcb8d8d5
    org.slf4j.helpers.NamedLoggerBase528e06b7f120faa1
    org.slf4j.helpers.SubstituteLoggerFactorydc7efc0107a4a62d
    org.slf4j.helpers.Util857ff3acc0576435
    org.slf4j.impl.StaticLoggerBinderb1887a26b81f7fe9
    us.springett.parsers.cpe.Cpe6dcbf890483207ec
    us.springett.parsers.cpe.CpeBuildera8a545e97ba6c683
    us.springett.parsers.cpe.util.Convertd44be2fdb506753e
    us.springett.parsers.cpe.util.Statusa1e82b1c21855dd4
    us.springett.parsers.cpe.util.Validate4c1a3e0799b4658a
    us.springett.parsers.cpe.values.LogicalValue77dbdb0651fff32c
    us.springett.parsers.cpe.values.Partc2b878523b4c15a0
    \ No newline at end of file +Sessions

    Sessions

    This coverage report is based on execution data from the following sessions:

    SessionStart TimeDump Time
    fv-az1110-746-e246ee5Dec 13, 2023 11:48:07 AMDec 13, 2023 11:48:40 AM

    Execution data for the following classes is considered in this report:

    ClassId
    com.fasterxml.jackson.annotation.JsonAutoDetect.16be52ec71dcf28a2
    com.fasterxml.jackson.annotation.JsonAutoDetect.Visibilitye56bcd385626eead
    com.fasterxml.jackson.annotation.JsonFormat.Featuree632f8db525e6519
    com.fasterxml.jackson.annotation.JsonFormat.Features75fb2eb9717dc62a
    com.fasterxml.jackson.annotation.JsonFormat.Shapec19c22f9661f3b7d
    com.fasterxml.jackson.annotation.JsonFormat.Value0eb8231d09bfd09a
    com.fasterxml.jackson.annotation.JsonIgnoreProperties.Value4f0da3cf85f6ca76
    com.fasterxml.jackson.annotation.JsonInclude.Include30ab0a782ad08747
    com.fasterxml.jackson.annotation.JsonInclude.Valuea558d9f40414e748
    com.fasterxml.jackson.annotation.JsonIncludeProperties.Value7ed084480a07ee84
    com.fasterxml.jackson.annotation.JsonProperty.Accessb5322e85ff85e8b9
    com.fasterxml.jackson.annotation.JsonSetter.Value6ee26ce006658a00
    com.fasterxml.jackson.annotation.Nulls724f990ec72b618f
    com.fasterxml.jackson.annotation.PropertyAccessora506c0b4a9292088
    com.fasterxml.jackson.core.Base64Variant820db952b2ce1918
    com.fasterxml.jackson.core.Base64Variant.PaddingReadBehaviourdd0e63a614fe004b
    com.fasterxml.jackson.core.Base64Variantse646bbe091ae79c0
    com.fasterxml.jackson.core.ErrorReportConfiguration6ae7b9c14364f861
    com.fasterxml.jackson.core.JsonFactory4b6dbe517dc74f05
    com.fasterxml.jackson.core.JsonFactory.Feature6053a66ef91d8599
    com.fasterxml.jackson.core.JsonGenerator8a53f1394a871e41
    com.fasterxml.jackson.core.JsonGenerator.Featuredca43627a1b1d378
    com.fasterxml.jackson.core.JsonParserbfa2b2aaf45dbdaf
    com.fasterxml.jackson.core.JsonParser.Feature7e095b73debaa45f
    com.fasterxml.jackson.core.JsonParser.NumberType88e7ccc17e76b9de
    com.fasterxml.jackson.core.JsonStreamContext369abe89770bcf3d
    com.fasterxml.jackson.core.JsonTokeneed63a6e4a8e9120
    com.fasterxml.jackson.core.ObjectCodec4de1a295d9dc31ca
    com.fasterxml.jackson.core.PrettyPrinterf27d5528a26794c9
    com.fasterxml.jackson.core.StreamReadCapabilitya4c561ff4de25114
    com.fasterxml.jackson.core.StreamReadConstraintsfef85c00a0df6225
    com.fasterxml.jackson.core.StreamWriteCapability20b236b266d25323
    com.fasterxml.jackson.core.StreamWriteConstraintsf2bb5b3756dacf82
    com.fasterxml.jackson.core.TokenStreamFactory41de330f27eca392
    com.fasterxml.jackson.core.TreeCodec18594f8a8dcec6a2
    com.fasterxml.jackson.core.base.GeneratorBase769b434d47814ead
    com.fasterxml.jackson.core.base.ParserBase7ea5c57b85e68f85
    com.fasterxml.jackson.core.base.ParserMinimalBasedafc6c7b6eb27cb5
    com.fasterxml.jackson.core.io.CharTypes07a8747913d8e991
    com.fasterxml.jackson.core.io.ContentReferencec1bf9547a5b31574
    com.fasterxml.jackson.core.io.IOContext92f945a4db96d4d1
    com.fasterxml.jackson.core.io.JsonStringEncodercaf3b669acbbe223
    com.fasterxml.jackson.core.io.SegmentedStringWriteraf9b17af11ce151f
    com.fasterxml.jackson.core.io.SerializedStringde06c047872018ad
    com.fasterxml.jackson.core.json.JsonGeneratorImpl62f7e0732a7b3f16
    com.fasterxml.jackson.core.json.JsonReadContext7fe93ff4dfcd910a
    com.fasterxml.jackson.core.json.JsonWriteContext80adf9bb4918112e
    com.fasterxml.jackson.core.json.ReaderBasedJsonParser5a748aacc97cbeaf
    com.fasterxml.jackson.core.json.WriterBasedJsonGenerator4c9c68d95ea16405
    com.fasterxml.jackson.core.sym.ByteQuadsCanonicalizer5054f4087e115bac
    com.fasterxml.jackson.core.sym.ByteQuadsCanonicalizer.TableInfoeb0211d6faa23d01
    com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer098437effe93aab8
    com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer.TableInfo7f8a1e78ae4259c6
    com.fasterxml.jackson.core.type.ResolvedType8a4589ad9960ed59
    com.fasterxml.jackson.core.util.BufferRecycler130f2ce298e329d8
    com.fasterxml.jackson.core.util.BufferRecyclers4e7bee8eece90b3a
    com.fasterxml.jackson.core.util.DefaultIndenter18913563e8366f39
    com.fasterxml.jackson.core.util.DefaultPrettyPrinterdffce786178e5ff1
    com.fasterxml.jackson.core.util.DefaultPrettyPrinter.FixedSpaceIndenter418687d575a4f083
    com.fasterxml.jackson.core.util.DefaultPrettyPrinter.NopIndenter110c0bf83e5c079c
    com.fasterxml.jackson.core.util.InternCacheb55c4c122f488f2e
    com.fasterxml.jackson.core.util.JacksonFeatureSet69b6b3d8af7f13b3
    com.fasterxml.jackson.core.util.JsonRecyclerPoolsbb15cd8e45e37fee
    com.fasterxml.jackson.core.util.JsonRecyclerPools.ThreadLocalPoolb47528b0197c08e2
    com.fasterxml.jackson.core.util.ReadConstrainedTextBuffer23fc9ce24061d845
    com.fasterxml.jackson.core.util.RecyclerPool.ThreadLocalPoolBase23bd83512f98e1cd
    com.fasterxml.jackson.core.util.Separatorsdb601d3f3bad91c2
    com.fasterxml.jackson.core.util.Separators.Spacing511422cc9db17520
    com.fasterxml.jackson.core.util.TextBuffere0024e1d666b4905
    com.fasterxml.jackson.databind.AnnotationIntrospector905eb800c47f61a4
    com.fasterxml.jackson.databind.AnnotationIntrospector.ReferenceProperty09f92466c78dd697
    com.fasterxml.jackson.databind.AnnotationIntrospector.ReferenceProperty.Typed90a083248c5b3dc
    com.fasterxml.jackson.databind.BeanDescriptionb72f4d814c7d9796
    com.fasterxml.jackson.databind.DatabindContext190fc61056492212
    com.fasterxml.jackson.databind.DeserializationConfiga66abddaffd0eeda
    com.fasterxml.jackson.databind.DeserializationContexte42cf81978826049
    com.fasterxml.jackson.databind.DeserializationFeaturee8c5e101ec4650d4
    com.fasterxml.jackson.databind.JavaType4b4e8dfd897d7a79
    com.fasterxml.jackson.databind.JsonDeserializerf155d5de89ce5a60
    com.fasterxml.jackson.databind.JsonSerializeradb9d1fae01b02c7
    com.fasterxml.jackson.databind.MapperFeatured7d85f4bfd3cff7a
    com.fasterxml.jackson.databind.MappingJsonFactory65cdd9294dfaf29a
    com.fasterxml.jackson.databind.ObjectMapper1267d692f0f6e0ba
    com.fasterxml.jackson.databind.ObjectReader1d24d1af08075eb3
    com.fasterxml.jackson.databind.PropertyMetadata56620abf8cdd07c8
    com.fasterxml.jackson.databind.PropertyName217cf81be2326911
    com.fasterxml.jackson.databind.SerializationConfig40620b2ae2347380
    com.fasterxml.jackson.databind.SerializationFeature9609ec0ec1e8bc2a
    com.fasterxml.jackson.databind.SerializerProvider10f427a250ca2427
    com.fasterxml.jackson.databind.cfg.BaseSettings74949427e8604cd4
    com.fasterxml.jackson.databind.cfg.CoercionAction9e15561f16680f97
    com.fasterxml.jackson.databind.cfg.CoercionConfigffad61191adeb87e
    com.fasterxml.jackson.databind.cfg.CoercionConfigs8937a55c926c734f
    com.fasterxml.jackson.databind.cfg.CoercionInputShape90aad4e377b3dccd
    com.fasterxml.jackson.databind.cfg.ConfigOverridef1771a0d408303c8
    com.fasterxml.jackson.databind.cfg.ConfigOverride.Empty3372ed519d9bafb4
    com.fasterxml.jackson.databind.cfg.ConfigOverrides7943101710d9f910
    com.fasterxml.jackson.databind.cfg.ConstructorDetector9af1c9a41cb4b83d
    com.fasterxml.jackson.databind.cfg.ConstructorDetector.SingleArgConstructorb0c67222cebc30be
    com.fasterxml.jackson.databind.cfg.ContextAttributes216e6db5a97ae48a
    com.fasterxml.jackson.databind.cfg.ContextAttributes.Implede427cff276c0b8
    com.fasterxml.jackson.databind.cfg.DatatypeFeaturesf4893ef156575441
    com.fasterxml.jackson.databind.cfg.DatatypeFeatures.DefaultHolder81838084595fa0c8
    com.fasterxml.jackson.databind.cfg.DefaultCacheProvider6bbb2aa855b50726
    com.fasterxml.jackson.databind.cfg.DeserializerFactoryConfig7861ff22cec5640b
    com.fasterxml.jackson.databind.cfg.EnumFeature16e95ce7a3f1f1ee
    com.fasterxml.jackson.databind.cfg.JsonNodeFeature93b45511772e9fc3
    com.fasterxml.jackson.databind.cfg.MapperConfigc7b0b1bb3bc6f9f1
    com.fasterxml.jackson.databind.cfg.MapperConfigBase5bb7b8ef48c720d7
    com.fasterxml.jackson.databind.cfg.MutableCoercionConfig262e6b36c9ca989e
    com.fasterxml.jackson.databind.cfg.SerializerFactoryConfigd93f22d3258ee4c0
    com.fasterxml.jackson.databind.deser.BasicDeserializerFactory3944ee9b76fde7a2
    com.fasterxml.jackson.databind.deser.BasicDeserializerFactory.ContainerDefaultMappingsdf7805e17fdc7522
    com.fasterxml.jackson.databind.deser.BasicDeserializerFactory.CreatorCollectionStatef0dbb90499e14fa4
    com.fasterxml.jackson.databind.deser.BeanDeserializer51262781f5e28489
    com.fasterxml.jackson.databind.deser.BeanDeserializerBasedf7ad1189a3b508b
    com.fasterxml.jackson.databind.deser.BeanDeserializerBuilderd5bdf1bb9953f729
    com.fasterxml.jackson.databind.deser.BeanDeserializerFactory65809d9bdea9493b
    com.fasterxml.jackson.databind.deser.DefaultDeserializationContext5756779a22fd7d68
    com.fasterxml.jackson.databind.deser.DefaultDeserializationContext.Impl8057860fe47eb5da
    com.fasterxml.jackson.databind.deser.DeserializerCache7d85f058f583e5dd
    com.fasterxml.jackson.databind.deser.DeserializerFactory2ebdf24d93849f1a
    com.fasterxml.jackson.databind.deser.SettableBeanPropertye32815b47681953f
    com.fasterxml.jackson.databind.deser.ValueInstantiator500a74eea26ebb5d
    com.fasterxml.jackson.databind.deser.ValueInstantiator.Base56fce65bc9fdb762
    com.fasterxml.jackson.databind.deser.impl.BeanPropertyMapabab716eded67ac2
    com.fasterxml.jackson.databind.deser.impl.CreatorCollector0f8b3def4682a020
    com.fasterxml.jackson.databind.deser.impl.FailingDeserializer4904d8577f214eb3
    com.fasterxml.jackson.databind.deser.impl.FieldProperty79a77498e066a15d
    com.fasterxml.jackson.databind.deser.impl.JDKValueInstantiators008ddf7a64eb2d4a
    com.fasterxml.jackson.databind.deser.impl.JDKValueInstantiators.ArrayListInstantiator187a1232f1bf2643
    com.fasterxml.jackson.databind.deser.impl.NullsConstantProvider83cd716157aa0f9a
    com.fasterxml.jackson.databind.deser.std.CollectionDeserializer264403aa8c0a30f7
    com.fasterxml.jackson.databind.deser.std.ContainerDeserializerBase0f7cf99ff0b0c8a0
    com.fasterxml.jackson.databind.deser.std.FromStringDeserializerb5093028e19eaf91
    com.fasterxml.jackson.databind.deser.std.JdkDeserializersa7ac27fec28e8de9
    com.fasterxml.jackson.databind.deser.std.StdDeserializer2122bf750d1b5b89
    com.fasterxml.jackson.databind.deser.std.StdKeyDeserializers2ca4ab5d0f0b71dd
    com.fasterxml.jackson.databind.deser.std.StdScalarDeserializer25286f364997b846
    com.fasterxml.jackson.databind.deser.std.StdValueInstantiator34181f4c11253cc9
    com.fasterxml.jackson.databind.deser.std.StringArrayDeserializerdbeac8e57a8a807e
    com.fasterxml.jackson.databind.deser.std.StringDeserializer36ba9f92a53b7892
    com.fasterxml.jackson.databind.ext.Java7Handlers31410c423d95a2d0
    com.fasterxml.jackson.databind.ext.Java7HandlersImpl423b0b9d126fb382
    com.fasterxml.jackson.databind.ext.Java7Support4b7557784caa415a
    com.fasterxml.jackson.databind.ext.Java7SupportImpl94a94fc44678f7e9
    com.fasterxml.jackson.databind.ext.OptionalHandlerFactorya873be98e8f52009
    com.fasterxml.jackson.databind.introspect.AccessorNamingStrategy3d3b7f563f5ca70a
    com.fasterxml.jackson.databind.introspect.AccessorNamingStrategy.Provider6026222786456f26
    com.fasterxml.jackson.databind.introspect.Annotated47d3d49f2b832d54
    com.fasterxml.jackson.databind.introspect.AnnotatedClass208d1216b93f97d9
    com.fasterxml.jackson.databind.introspect.AnnotatedClass.Creatorsecbba5a1c87c995f
    com.fasterxml.jackson.databind.introspect.AnnotatedClassResolver9c1435b88f5e9e91
    com.fasterxml.jackson.databind.introspect.AnnotatedConstructoreaf946db37898a44
    com.fasterxml.jackson.databind.introspect.AnnotatedCreatorCollectorf1dbd789d7b2161e
    com.fasterxml.jackson.databind.introspect.AnnotatedFielde6e45b21b9cdeda3
    com.fasterxml.jackson.databind.introspect.AnnotatedFieldCollectord6830919dea39e8f
    com.fasterxml.jackson.databind.introspect.AnnotatedFieldCollector.FieldBuilder571d9e7fb561d385
    com.fasterxml.jackson.databind.introspect.AnnotatedMember5879537c033bd580
    com.fasterxml.jackson.databind.introspect.AnnotatedMethodad2f0bf303d90ae0
    com.fasterxml.jackson.databind.introspect.AnnotatedMethodCollectore8e34bff5e47f125
    com.fasterxml.jackson.databind.introspect.AnnotatedMethodCollector.MethodBuilderb522d96f88a7ade4
    com.fasterxml.jackson.databind.introspect.AnnotatedMethodMapd69be24a07cecf16
    com.fasterxml.jackson.databind.introspect.AnnotatedWithParams54f7d4537c15cfdb
    com.fasterxml.jackson.databind.introspect.AnnotationCollectorc389709d2ffbb364
    com.fasterxml.jackson.databind.introspect.AnnotationCollector.EmptyCollectora87b6b2439611ec7
    com.fasterxml.jackson.databind.introspect.AnnotationCollector.NoAnnotations9173d7167a075d90
    com.fasterxml.jackson.databind.introspect.AnnotationCollector.OneCollector4d7ed4cd12d6011c
    com.fasterxml.jackson.databind.introspect.AnnotationMap78aa63dcada1ee05
    com.fasterxml.jackson.databind.introspect.BasicBeanDescription4f0d484434fb6325
    com.fasterxml.jackson.databind.introspect.BasicClassIntrospectorfcecadfe75a5c2af
    com.fasterxml.jackson.databind.introspect.BeanPropertyDefinitiond3bbcf006607ecb0
    com.fasterxml.jackson.databind.introspect.ClassIntrospectorb20a1133edfcf6b5
    com.fasterxml.jackson.databind.introspect.CollectorBasefec0f38373f479ba
    com.fasterxml.jackson.databind.introspect.ConcreteBeanPropertyBasefa5bde6be1d392b1
    com.fasterxml.jackson.databind.introspect.DefaultAccessorNamingStrategyefc1568392fc0098
    com.fasterxml.jackson.databind.introspect.DefaultAccessorNamingStrategy.Provider9679bb882d2d354f
    com.fasterxml.jackson.databind.introspect.JacksonAnnotationIntrospector9d54114155341c05
    com.fasterxml.jackson.databind.introspect.MemberKey0e604899c13122c4
    com.fasterxml.jackson.databind.introspect.POJOPropertiesCollector1821e69f144ab189
    com.fasterxml.jackson.databind.introspect.POJOPropertyBuilder87b50c8168df5d0b
    com.fasterxml.jackson.databind.introspect.POJOPropertyBuilder.1925ffe3a324d008c
    com.fasterxml.jackson.databind.introspect.POJOPropertyBuilder.2f9f5816009560a85
    com.fasterxml.jackson.databind.introspect.POJOPropertyBuilder.4ccfa1b83e27ecd92
    com.fasterxml.jackson.databind.introspect.POJOPropertyBuilder.58bc5c843a115ba34
    com.fasterxml.jackson.databind.introspect.POJOPropertyBuilder.6a2d5a4cee9bda8de
    com.fasterxml.jackson.databind.introspect.POJOPropertyBuilder.Linkedef62b5db9e7546d6
    com.fasterxml.jackson.databind.introspect.SimpleMixInResolver6a0721d817cbf413
    com.fasterxml.jackson.databind.introspect.TypeResolutionContext.Basic09190ef225acb240
    com.fasterxml.jackson.databind.introspect.VisibilityChecker.Std86f77996bd544f4e
    com.fasterxml.jackson.databind.jsontype.PolymorphicTypeValidatorff1c7cc76de984ce
    com.fasterxml.jackson.databind.jsontype.PolymorphicTypeValidator.Baseea9ae0e64ce11069
    com.fasterxml.jackson.databind.jsontype.SubtypeResolverb2ed8bc0e5fe669c
    com.fasterxml.jackson.databind.jsontype.impl.LaissezFaireSubTypeValidatord02dab29b87ed521
    com.fasterxml.jackson.databind.jsontype.impl.StdSubtypeResolver342823e6800eb76b
    com.fasterxml.jackson.databind.jsontype.impl.SubTypeValidatora7ad2f19c2210a88
    com.fasterxml.jackson.databind.node.JsonNodeFactoryb407554ab061d84d
    com.fasterxml.jackson.databind.ser.BasicSerializerFactoryda909c46cb0d91a4
    com.fasterxml.jackson.databind.ser.BeanSerializerFactory16faed09cf6c52b8
    com.fasterxml.jackson.databind.ser.ContainerSerializer67b35562bf415143
    com.fasterxml.jackson.databind.ser.DefaultSerializerProvider7081bda43dcfcb52
    com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.Implbb7a481d8d11e37e
    com.fasterxml.jackson.databind.ser.SerializerCache05a580ec11f5621f
    com.fasterxml.jackson.databind.ser.SerializerFactorya96ec5a87f2a9dec
    com.fasterxml.jackson.databind.ser.impl.FailingSerializer96696f091a076f00
    com.fasterxml.jackson.databind.ser.impl.IndexedListSerializercd4efc50b27864f0
    com.fasterxml.jackson.databind.ser.impl.PropertySerializerMapb896860192138c16
    com.fasterxml.jackson.databind.ser.impl.PropertySerializerMap.Empty3dce91f99b61f9c6
    com.fasterxml.jackson.databind.ser.impl.PropertySerializerMap.SerializerAndMapResult7726b41f965932aa
    com.fasterxml.jackson.databind.ser.impl.PropertySerializerMap.Singlee5e537120154be9c
    com.fasterxml.jackson.databind.ser.impl.ReadOnlyClassToSerializerMapf7673b78d4dbb21a
    com.fasterxml.jackson.databind.ser.impl.UnknownSerializer0f0b100c24ae521b
    com.fasterxml.jackson.databind.ser.std.AsArraySerializerBase7c963189f626505a
    com.fasterxml.jackson.databind.ser.std.BooleanSerializera5e7ba6f955baf41
    com.fasterxml.jackson.databind.ser.std.CalendarSerializerda6df272674c3c19
    com.fasterxml.jackson.databind.ser.std.DateSerializerdcf355b20d60965d
    com.fasterxml.jackson.databind.ser.std.DateTimeSerializerBasefb1c17ba4f02cbe0
    com.fasterxml.jackson.databind.ser.std.NullSerializer55885eb24739c250
    com.fasterxml.jackson.databind.ser.std.NumberSerializer2b09bf235752694e
    com.fasterxml.jackson.databind.ser.std.NumberSerializersdfe8936a5bca95d8
    com.fasterxml.jackson.databind.ser.std.NumberSerializers.Base243c88192bb86ee4
    com.fasterxml.jackson.databind.ser.std.NumberSerializers.DoubleSerializer5b65fb8c8ea04f02
    com.fasterxml.jackson.databind.ser.std.NumberSerializers.FloatSerializer0849cda863777be8
    com.fasterxml.jackson.databind.ser.std.NumberSerializers.IntLikeSerializer37f949791419da14
    com.fasterxml.jackson.databind.ser.std.NumberSerializers.IntegerSerializer8572ad7f464034dd
    com.fasterxml.jackson.databind.ser.std.NumberSerializers.LongSerializer1bcc67c140cfbe03
    com.fasterxml.jackson.databind.ser.std.NumberSerializers.ShortSerializera678b068eca9e8b6
    com.fasterxml.jackson.databind.ser.std.StdJdkSerializersb1d950d41858d3ba
    com.fasterxml.jackson.databind.ser.std.StdScalarSerializer294ce690d4fde5d1
    com.fasterxml.jackson.databind.ser.std.StdSerializer2eb989e3aa9ebf8b
    com.fasterxml.jackson.databind.ser.std.StringSerializerb6342c9e6a90d477
    com.fasterxml.jackson.databind.ser.std.ToEmptyObjectSerializerdcbbfaf250568a42
    com.fasterxml.jackson.databind.ser.std.ToStringSerializerb965af9d2adb22d7
    com.fasterxml.jackson.databind.ser.std.ToStringSerializerBase4df4671bce83caa1
    com.fasterxml.jackson.databind.ser.std.UUIDSerializer9825ed90a3a1ea38
    com.fasterxml.jackson.databind.type.ArrayTypeada34943c659785c
    com.fasterxml.jackson.databind.type.ClassStackb4e39752aaaff8ce
    com.fasterxml.jackson.databind.type.CollectionLikeTypefdca9c74891003b6
    com.fasterxml.jackson.databind.type.CollectionType754ccfd8e93b2fdd
    com.fasterxml.jackson.databind.type.LogicalTypee0e08cb4c4d717b1
    com.fasterxml.jackson.databind.type.SimpleType9bf726d4e15bb139
    com.fasterxml.jackson.databind.type.TypeBase84e347a8123ba86e
    com.fasterxml.jackson.databind.type.TypeBindings69af78e44b169d2b
    com.fasterxml.jackson.databind.type.TypeBindings.AsKey3cf63795dd54b8b7
    com.fasterxml.jackson.databind.type.TypeBindings.TypeParamStashc0b0ab8001879ee4
    com.fasterxml.jackson.databind.type.TypeFactory3596cbf80365f39f
    com.fasterxml.jackson.databind.type.TypeParser539ac466374b5334
    com.fasterxml.jackson.databind.util.AccessPattern44bf82acd8a3fffc
    com.fasterxml.jackson.databind.util.ArrayIteratore4c9e4d38ac21c90
    com.fasterxml.jackson.databind.util.BeanUtilaca352d66ffbab01
    com.fasterxml.jackson.databind.util.ClassUtil7a2a6f716f5500a1
    com.fasterxml.jackson.databind.util.ClassUtil.Ctor1fd4710f90ff53de
    com.fasterxml.jackson.databind.util.IgnorePropertiesUtil81001725c2203f99
    com.fasterxml.jackson.databind.util.LRUMapc487e14750ddd25e
    com.fasterxml.jackson.databind.util.LinkedNode73ca05873e25cb2e
    com.fasterxml.jackson.databind.util.ObjectBuffer14fbae37b93a957b
    com.fasterxml.jackson.databind.util.RootNameLookupadd4d1fb1a084862
    com.fasterxml.jackson.databind.util.StdDateFormatc6d4539431425f11
    com.fasterxml.jackson.databind.util.TypeKey32162ed128b7bbbd
    com.fasterxml.jackson.databind.util.internal.LinkedDeque9bfc4fbb2b0b1196
    com.fasterxml.jackson.databind.util.internal.PrivateMaxEntriesMap3f0ff22fe5779861
    com.fasterxml.jackson.databind.util.internal.PrivateMaxEntriesMap.AddTask866aec97a77c2650
    com.fasterxml.jackson.databind.util.internal.PrivateMaxEntriesMap.Builderdcc244062522bdc6
    com.fasterxml.jackson.databind.util.internal.PrivateMaxEntriesMap.DrainStatusa1e26b7a083af651
    com.fasterxml.jackson.databind.util.internal.PrivateMaxEntriesMap.DrainStatus.12de09d3a3bfcdca6
    com.fasterxml.jackson.databind.util.internal.PrivateMaxEntriesMap.DrainStatus.22928516020b2e91a
    com.fasterxml.jackson.databind.util.internal.PrivateMaxEntriesMap.DrainStatus.326e6a18539bc3d80
    com.fasterxml.jackson.databind.util.internal.PrivateMaxEntriesMap.EntryIterator86fc40b47b6d46b6
    com.fasterxml.jackson.databind.util.internal.PrivateMaxEntriesMap.EntrySet69a473f3bfd1c6f1
    com.fasterxml.jackson.databind.util.internal.PrivateMaxEntriesMap.Node2dc3669c077d2e56
    com.fasterxml.jackson.databind.util.internal.PrivateMaxEntriesMap.WeightedValuec5874d009c2eaa54
    com.google.common.base.Absentde1298f27b4c0693
    com.google.common.base.MoreObjects2565f99d2ba4b7cf
    com.google.common.base.Optionala4c1dc586be5462d
    com.google.common.base.Preconditionsa5fabd1b8022b288
    com.google.common.io.ByteSource68686fa428221aec
    com.google.common.io.ByteSource.AsCharSource181f8e24cb6711f8
    com.google.common.io.ByteStreams54fcce135598266c
    com.google.common.io.ByteStreams.12b43e9d0abf526aa
    com.google.common.io.CharSourcebc0c0f9fc3e87ec6
    com.google.common.io.Closerf172748005764c91
    com.google.common.io.Closer.SuppressingSuppressore6d89820611fa8e8
    com.google.common.io.Resourcesf568e92af131e150
    com.google.common.io.Resources.UrlByteSource3abc3d7530912c7f
    com.google.common.math.IntMathe5dfbae9828a34c5
    com.google.common.primitives.Intsc5ac9c1a28bb42ab
    io.github.jeremylong.jcs3.slf4j.Slf4jAdapter6faeb93da707d61c
    io.github.jeremylong.jcs3.slf4j.Slf4jLogFactoryf96607e602f6e2af
    io.github.jeremylong.openvulnerability.client.nvd.CvssV2c598dccdeb0796d4
    io.github.jeremylong.openvulnerability.client.nvd.CvssV2.Typec8a5f42e14588744
    io.github.jeremylong.openvulnerability.client.nvd.CvssV2Data46cf1489bdb16e2c
    io.github.jeremylong.openvulnerability.client.nvd.CvssV2Data.AccessComplexityType4b727756fd7afc8f
    io.github.jeremylong.openvulnerability.client.nvd.CvssV2Data.AccessVectorType9be7812343637a98
    io.github.jeremylong.openvulnerability.client.nvd.CvssV2Data.AuthenticationTypef9e66c082b7d5b7f
    io.github.jeremylong.openvulnerability.client.nvd.CvssV2Data.CiaType6825e093146ac4fd
    io.github.jeremylong.openvulnerability.client.nvd.CvssV2Data.Version29d3f3d317564b7c
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3bed953eb3208b3b5
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3Data5b1476d2f8696d14
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3Data.AttackComplexityType0c7b7fa26bb8364e
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3Data.AttackVectorTypef9692d23fc4d0814
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3Data.CiaRequirementTypee25b27974539d0e2
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3Data.CiaType65b3e0a08371ce41
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3Data.ConfidenceTypefe24e867fbd6445d
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3Data.ExploitCodeMaturityTyped0c528d24ff9be40
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3Data.ModifiedAttackComplexityTypeb9c63569c8d42c4f
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3Data.ModifiedAttackVectorTypee055d6e53e32180d
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3Data.ModifiedCiaTypedafe385378718922
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3Data.ModifiedPrivilegesRequiredType8e153d53da7dbccb
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3Data.ModifiedScopeTypeeac977b8fdb58555
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3Data.ModifiedUserInteractionTyped0242304dffe7c2c
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3Data.PrivilegesRequiredTypec6b3e30c55fedb48
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3Data.RemediationLevelType5bfb96dfad679414
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3Data.ScopeTyped521a47d32508edc
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3Data.SeverityType7dba5f64a6708bdf
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3Data.UserInteractionTypee65ee421331e824b
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3Data.Versiondb94623c16eb505c
    mockit.Invocationa96336e1f386171f
    mockit.MockUpe8171f437ed496ae
    mockit.asm.AnnotatedReadercd282e0a5a53baea
    mockit.asm.BaseWriter582f5e60cf7a7aa4
    mockit.asm.SignatureWriterdf63ed411efbf4b6
    mockit.asm.annotations.AnnotationReader1a8efb95d77d1cc4
    mockit.asm.classes.ClassInfo373729acd80f0ac2
    mockit.asm.classes.ClassReader35b19ee242b52e68
    mockit.asm.classes.ClassVisitorecc8c148efb1fb05
    mockit.asm.classes.ClassWriter138f6d9fdc880f33
    mockit.asm.classes.ConstantPoolCopyinge69830abde6594e3
    mockit.asm.classes.InnerClassesWriter161eb63681ff89cf
    mockit.asm.classes.SourceFileWritere8fc300748dc0805
    mockit.asm.classes.WrappingClassVisitor05ea9f6f99307be6
    mockit.asm.constantPool.AttributeWriter14f301dde0efc458
    mockit.asm.constantPool.ClassMemberItemaa126e5329780a07
    mockit.asm.constantPool.ConstantPoolGeneration0fa17a48409c3309
    mockit.asm.constantPool.DoubleItem34f414546b36c4df
    mockit.asm.constantPool.DynamicItem3cea8c55017846c0
    mockit.asm.constantPool.FloatItembd61b107266c3b95
    mockit.asm.constantPool.IntItemd97e2f1dc717a13e
    mockit.asm.constantPool.IntValueItem98e99f11b2caca0e
    mockit.asm.constantPool.Itemd068fa4ff3fcee61
    mockit.asm.constantPool.LongItem6b22c746ea1433c1
    mockit.asm.constantPool.LongValueItem2ccc0f1c20cad69e
    mockit.asm.constantPool.MergedTypeTableItem0d0b1da6270fd88c
    mockit.asm.constantPool.MethodHandleItem39bcee524a8a7b98
    mockit.asm.constantPool.NameAndTypeItemb7bb836a0ec0d51d
    mockit.asm.constantPool.NormalTypeTableItem0f252ab8f9880312
    mockit.asm.constantPool.StringItem88ca5a93ae8a30e1
    mockit.asm.constantPool.TypeOrMemberItemdab75af23a47e2b1
    mockit.asm.constantPool.TypeTableItemd8a8ef64ff3ac452
    mockit.asm.constantPool.UninitializedTypeTableItem370461ef51a65392
    mockit.asm.controlFlow.CFGAnalysisa06e124c809928c9
    mockit.asm.controlFlow.Edge5d83111f9538c66f
    mockit.asm.controlFlow.Frame386d35773c19369a
    mockit.asm.controlFlow.Label5bca527bd719557c
    mockit.asm.controlFlow.StackMapTableWriter7bcdf022caa20775
    mockit.asm.exceptionHandling.ExceptionHandling286f458f00be3947
    mockit.asm.fields.FieldReader053ae610f8947b76
    mockit.asm.fields.FieldVisitor6c321d4980a2d7f3
    mockit.asm.jvmConstants.Access642ded812da66040
    mockit.asm.jvmConstants.JVMInstructiondeeb476cf4f7665b
    mockit.asm.metadata.ClassMetadataReader86fe7615054981b5
    mockit.asm.metadata.ClassMetadataReader.AnnotationInfobc09c40a0f38e185
    mockit.asm.metadata.ClassMetadataReader.Attribute6d901176eb06252c
    mockit.asm.metadata.ClassMetadataReader.ConstantPoolTag83ba5ffd57f73b11
    mockit.asm.metadata.ClassMetadataReader.MemberInfodd16bea0c59df08f
    mockit.asm.metadata.ClassMetadataReader.MethodInfo3e1c9829877de254
    mockit.asm.metadata.ObjectWithAttributese089abe59f8ade12
    mockit.asm.methods.ExceptionsWritere5e41e85406ed2b8
    mockit.asm.methods.LineNumberTableWriter7fa755996e63e0b5
    mockit.asm.methods.LocalVariableTableWriter0ff2250f9d363442
    mockit.asm.methods.MethodReader0d46bdb10e1cb567
    mockit.asm.methods.MethodVisitor6aafdb0e0bd9f04d
    mockit.asm.methods.MethodWriterc77ca17c110fc381
    mockit.asm.methods.WrappingMethodVisitorfe2114a373ed09e3
    mockit.asm.types.ArrayType3897ad248dad3058
    mockit.asm.types.JavaType6a617aca55015b96
    mockit.asm.types.ObjectType439dacb2d6b69467
    mockit.asm.types.PrimitiveType9907457aea9de70c
    mockit.asm.types.ReferenceTypec3a32354b2fe0c85
    mockit.asm.util.ByteVectoradf5209dcdaf01d5
    mockit.asm.util.BytecodeReaderad4c2af17a40d4d0
    mockit.coverage.CodeCoverage57c4b93cf9705048
    mockit.coverage.Configuration0f191cfcb58e3996
    mockit.coverage.testRedundancy.TestCoveragee7294c8646aeb601
    mockit.integration.TestRunnerDecorator10c6d4d07e4bb526
    mockit.integration.junit4.FakeFrameworkMethod202fa832304031cd
    mockit.integration.junit4.FakeRunNotifierf2d8e332a2590c60
    mockit.integration.junit4.JUnit4TestRunnerDecoratorc2eadb5bf6beaf6c
    mockit.internal.BaseClassModifiere801aefb4d7fd037
    mockit.internal.BaseClassModifier.1cd1242b388012ca6
    mockit.internal.BaseClassModifier.DynamicModifierc5d17ff8720815cc
    mockit.internal.BaseInvocationf7de466f17f4adbb
    mockit.internal.ClassFile41b638065ae166a7
    mockit.internal.ClassLoadingBridgee658793228cc4a49
    mockit.internal.expectations.RecordAndReplayExecutionf879ec0212b83007
    mockit.internal.expectations.mocking.FieldTypeRedefinitionsc4cb3bcb5359dd6a
    mockit.internal.expectations.mocking.MockedBridge331090874886c8c7
    mockit.internal.expectations.mocking.MockedTypeb261d998676dfb65
    mockit.internal.expectations.mocking.TypeRedefinitions055dc33e135fb36a
    mockit.internal.expectations.state.CascadingTypesb9acfb27aa4a8790
    mockit.internal.expectations.state.ExecutingTestacf34225777d2f3b
    mockit.internal.expectations.state.ExecutingTest.13b09910b1e29a191
    mockit.internal.expectations.transformation.ExpectationsTransformereaac4e9336d5ca40
    mockit.internal.faking.FakeBridgeda78f19ce898d263
    mockit.internal.faking.FakeClassSetupe4606a4618ad323c
    mockit.internal.faking.FakeClasses3cd46eb6591366cb
    mockit.internal.faking.FakeClasses.SavePointfecc58d760c6ed06
    mockit.internal.faking.FakeInvocatione3e355bfb78d2072
    mockit.internal.faking.FakeMethodBridge2fd5b959860f5d53
    mockit.internal.faking.FakeMethodCollectoraa97db550361bc87
    mockit.internal.faking.FakeMethods471e51097727667e
    mockit.internal.faking.FakeMethods.FakeMethodb5d99f462770e149
    mockit.internal.faking.FakeState01259986b514ed46
    mockit.internal.faking.FakeStatese760ab91481812c0
    mockit.internal.faking.FakedClassModifier28fa1e02ea9dd34f
    mockit.internal.injection.InjectionProvider1076f7e808be8615
    mockit.internal.injection.InjectionProviders62b38f89bfedb6c7
    mockit.internal.injection.InjectionState6e9537644e97642f
    mockit.internal.injection.InterfaceResolutionc5428bf18cac5f85
    mockit.internal.injection.InterfaceResolution.130a49c92c2d8b04f
    mockit.internal.injection.LifecycleMethodsed1a5aaae6cf42e3
    mockit.internal.injection.TestedClassInstantiationsbfc9ebb0ae421152
    mockit.internal.injection.TestedObjectbdd0e59488a17cbb
    mockit.internal.reflection.GenericTypeReflectiona556abe88b104f52
    mockit.internal.startup.ClassLoadingBridgeFields29d0d6d7f507fa33
    mockit.internal.startup.ClassLoadingBridgeFields.FieldAdditionTransformer682a4d5236ea1c37
    mockit.internal.startup.ClassLoadingBridgeFields.FieldAdditionTransformer.12e9fd2fdf39cd8c3
    mockit.internal.startup.JMockitInitialization1f5ea374ed1901b8
    mockit.internal.startup.Startup177b14c50aa68246
    mockit.internal.state.CachedClassfiles231a21c71ced4214
    mockit.internal.state.MockFixture394c3264450f978b
    mockit.internal.state.ParameterNames9f70a2910daf7cd7
    mockit.internal.state.SavePointda4c7e434f406431
    mockit.internal.state.TestRun6409fd3c8b761b63
    mockit.internal.state.TestRun.17d6ccf983062f278
    mockit.internal.util.ClassLoad5bd538d4254708e6
    mockit.internal.util.ClassNaming53e8188d1e80d2e0
    mockit.internal.util.ParameterNameExtractor23af23efb21b6d24
    mockit.internal.util.TypeConversione064dff353fc3c14
    org.apache.commons.collections.map.AbstractHashedMap0ffd2ece819fe2bb
    org.apache.commons.collections.map.AbstractHashedMap.HashEntry06168f711b5d9f03
    org.apache.commons.collections.map.AbstractReferenceMap24c5cfa48d1b3dc0
    org.apache.commons.collections.map.AbstractReferenceMap.ReferenceEntry527d4048e51dfc8b
    org.apache.commons.collections.map.AbstractReferenceMap.SoftRef87effea5a7f83649
    org.apache.commons.collections.map.ReferenceMapde0ddfb544d7f809
    org.apache.commons.compress.utils.IOUtils1bbef919f9fe90cf
    org.apache.commons.dbcp2.AbandonedTraceca6d746e5eecfa26
    org.apache.commons.dbcp2.BasicDataSource8f01e6e1f3426242
    org.apache.commons.dbcp2.ConnectionFactoryFactory5ee86737323f033e
    org.apache.commons.dbcp2.DataSourceMXBeanaef3515de3dd4cd7
    org.apache.commons.dbcp2.DelegatingConnection4ce1222f6c8b1f43
    org.apache.commons.dbcp2.DelegatingPreparedStatement2577746074f2a300
    org.apache.commons.dbcp2.DelegatingResultSet3e7d628a34a233d5
    org.apache.commons.dbcp2.DelegatingStatement3eececad9c1f49a4
    org.apache.commons.dbcp2.DriverConnectionFactory587516231985bd76
    org.apache.commons.dbcp2.DriverFactory2e2b684de502c2b5
    org.apache.commons.dbcp2.ObjectNameWrapper60e6f7ddb2d7e6c9
    org.apache.commons.dbcp2.PoolableConnectionbaf5bf7087e41b95
    org.apache.commons.dbcp2.PoolableConnectionFactoryb8db125bd27adcfb
    org.apache.commons.dbcp2.PoolingDataSource4006b0952a9497bf
    org.apache.commons.dbcp2.PoolingDataSource.PoolGuardConnectionWrapper231a4e4e28d22d6c
    org.apache.commons.dbcp2.SwallowedExceptionLogger169d551a035fbaac
    org.apache.commons.dbcp2.Utilsee3a6af61d9672d1
    org.apache.commons.io.ByteOrderMark72bc2458d6ae539e
    org.apache.commons.io.FileSystem01b6ca84e51e84c9
    org.apache.commons.io.FileUtilsb05a09ee270979e9
    org.apache.commons.io.FilenameUtils3144089e135875ac
    org.apache.commons.io.IOCaseeb2adab60f66048e
    org.apache.commons.io.IOUtils6ee4556e7885ab91
    org.apache.commons.io.StandardLineSeparator40b593b9edc3531e
    org.apache.commons.io.build.AbstractStreamBuilder57c8b0ea90b8d3a8
    org.apache.commons.io.file.Counters3347b40442150325
    org.apache.commons.io.file.Counters.AbstractPathCountersf029129367b66185
    org.apache.commons.io.file.Counters.LongCounter8a0e15c3b7aab6f0
    org.apache.commons.io.file.Counters.LongPathCounters4d05a3ec2389a891
    org.apache.commons.io.file.CountingPathVisitor1a0297f6692d68b7
    org.apache.commons.io.file.DeletingPathVisitor380d01f344f0b03a
    org.apache.commons.io.file.PathUtilsc186f18e4d52fa5b
    org.apache.commons.io.file.SimplePathVisitor42930704cb1f97c1
    org.apache.commons.io.file.StandardDeleteOption670e1c1e2863e0b5
    org.apache.commons.io.filefilter.AbstractFileFilter92dd8bb7f7b80944
    org.apache.commons.io.filefilter.IOFileFilter4896a5eee1f88d05
    org.apache.commons.io.filefilter.NameFileFilterc5f07e722b3a2343
    org.apache.commons.io.filefilter.OrFileFilter6742278773fc9137
    org.apache.commons.io.filefilter.SuffixFileFilterd8b318786a82151d
    org.apache.commons.io.filefilter.SymbolicLinkFileFilterd7784b41fab5d1af
    org.apache.commons.io.filefilter.TrueFileFilterfabf6490458c9b57
    org.apache.commons.io.function.IOConsumer7aab5cab2aee4ea3
    org.apache.commons.io.input.BOMInputStream6b5d217ef3da5d6c
    org.apache.commons.io.input.BOMInputStream.Builderefe9786c70781fac
    org.apache.commons.io.input.ProxyInputStream76d45bc21d35b3af
    org.apache.commons.jcs3.JCS8f519401d676cf6b
    org.apache.commons.jcs3.access.AbstractCacheAccesse81ba2880f7423d5
    org.apache.commons.jcs3.access.CacheAccess60fee977c9a4f6ef
    org.apache.commons.jcs3.admin.JCSAdminBean335bac09272c6ddd
    org.apache.commons.jcs3.auxiliary.AbstractAuxiliaryCachec3b435f52c91e41d
    org.apache.commons.jcs3.auxiliary.AbstractAuxiliaryCacheAttributesc42716886bb512ba
    org.apache.commons.jcs3.auxiliary.AbstractAuxiliaryCacheEventLogginga78f5b7138667460
    org.apache.commons.jcs3.auxiliary.AbstractAuxiliaryCacheFactory79d59581986a1bdd
    org.apache.commons.jcs3.auxiliary.AuxiliaryCacheConfigurator4f03af1ec3db3c06
    org.apache.commons.jcs3.auxiliary.AuxiliaryCacheFactory0321a405678228d2
    org.apache.commons.jcs3.auxiliary.disk.AbstractDiskCache67671715de055295
    org.apache.commons.jcs3.auxiliary.disk.AbstractDiskCache.MyCacheListenerc9cbc2ab7af25ca4
    org.apache.commons.jcs3.auxiliary.disk.AbstractDiskCacheAttributesedebc5b24fc7e7ec
    org.apache.commons.jcs3.auxiliary.disk.behavior.IDiskCacheAttributes.DiskLimitType9c89d487ae2639b0
    org.apache.commons.jcs3.auxiliary.disk.indexed.IndexedDisk3159cf09ae265a44
    org.apache.commons.jcs3.auxiliary.disk.indexed.IndexedDiskCachedb85afec6bd28591
    org.apache.commons.jcs3.auxiliary.disk.indexed.IndexedDiskCache.LRUMapCountLimited3e0dcede1f60ced6
    org.apache.commons.jcs3.auxiliary.disk.indexed.IndexedDiskCache.PositionComparator6a375a20224a6491
    org.apache.commons.jcs3.auxiliary.disk.indexed.IndexedDiskCacheAttributes3e721f210f5f73d7
    org.apache.commons.jcs3.auxiliary.disk.indexed.IndexedDiskCacheFactoryf3d2fd9bfe5fcbcc
    org.apache.commons.jcs3.engine.AbstractCacheEventQueue1dd87bdda01b32c9
    org.apache.commons.jcs3.engine.CacheEventQueueFactoryd47896e66d68cd29
    org.apache.commons.jcs3.engine.CacheInfodc3fc0a57a91cc16
    org.apache.commons.jcs3.engine.CacheStatus9e643f244bdbedd6
    org.apache.commons.jcs3.engine.CompositeCacheAttributesdc56debe6e362ccc
    org.apache.commons.jcs3.engine.ElementAttributesc298365f45057415
    org.apache.commons.jcs3.engine.PooledCacheEventQueue1f5b5ca7363a76c5
    org.apache.commons.jcs3.engine.behavior.ICacheEventQueue.QueueTyped36e1adea94244a8
    org.apache.commons.jcs3.engine.behavior.ICacheType.CacheTypee15e922fbbc521a9
    org.apache.commons.jcs3.engine.behavior.ICompositeCacheAttributes.DiskUsagePattern065fe6118e459fb8
    org.apache.commons.jcs3.engine.behavior.IElementSerializer4e17fbd8ff5fa2eb
    org.apache.commons.jcs3.engine.behavior.IElementSerializer.153d5ac924a980857
    org.apache.commons.jcs3.engine.control.CompositeCache2f4c41ef1df85706
    org.apache.commons.jcs3.engine.control.CompositeCacheConfiguratorda10a9e1882f0a7e
    org.apache.commons.jcs3.engine.control.CompositeCacheManager7a43e45c9078f783
    org.apache.commons.jcs3.engine.control.event.ElementEventQueuecb2c41edee90aabe
    org.apache.commons.jcs3.engine.logging.CacheEvente10345bb4afea3ce
    org.apache.commons.jcs3.engine.match.KeyMatcherPatternImpl06d95d21fd7250d0
    org.apache.commons.jcs3.engine.memory.AbstractDoubleLinkedListMemoryCachee3eb93db1ef1802e
    org.apache.commons.jcs3.engine.memory.AbstractMemoryCachebf41e6296592d86a
    org.apache.commons.jcs3.engine.memory.lru.LRUMemoryCachea13109c445649a8d
    org.apache.commons.jcs3.log.JulLogFactorya8b084a513d8f2ac
    org.apache.commons.jcs3.log.LogManager0cd6d34c5624f85e
    org.apache.commons.jcs3.log.LogManager.LogFactoryHolder99d60610207d179b
    org.apache.commons.jcs3.utils.config.OptionConverterb6be9d611cb399e3
    org.apache.commons.jcs3.utils.config.PropertySetter9ce8929e58315d98
    org.apache.commons.jcs3.utils.serialization.StandardSerializerc3182262f045cc00
    org.apache.commons.jcs3.utils.struct.AbstractLRUMap8710b38b6376d281
    org.apache.commons.jcs3.utils.struct.DoubleLinkedList96b73a167e3dd555
    org.apache.commons.jcs3.utils.struct.LRUMap134ebdccaf71b63a
    org.apache.commons.jcs3.utils.threadpool.DaemonThreadFactory90fe18bad604a2e0
    org.apache.commons.jcs3.utils.threadpool.PoolConfiguratione30c6c5b19e2121a
    org.apache.commons.jcs3.utils.threadpool.PoolConfiguration.WhenBlockedPolicyebdbc72499040e4a
    org.apache.commons.jcs3.utils.threadpool.ThreadPoolManagerce4c901d54ed755c
    org.apache.commons.jcs3.utils.threadpool.ThreadPoolManager.101b790dc167d2bc8
    org.apache.commons.jcs3.utils.threadpool.ThreadPoolManager.ThreadPoolManagerHolder6d5c097ee63ac3ce
    org.apache.commons.jcs3.utils.timing.ElapsedTimeredfda6ab2faf0ae5
    org.apache.commons.lang3.ArrayUtils55cd090cc4afae67
    org.apache.commons.lang3.CharSequenceUtils34f2613940096184
    org.apache.commons.lang3.ObjectUtils1c157e9ecfc781f4
    org.apache.commons.lang3.ObjectUtils.Nullbc56db2ba4a397f4
    org.apache.commons.lang3.Range7a388bd8ca7c6565
    org.apache.commons.lang3.Range.ComparableComparator31209bc50fe79100
    org.apache.commons.lang3.StringUtilsb53e9ceb7cab46c1
    org.apache.commons.lang3.Validate1641aabfdb381324
    org.apache.commons.lang3.builder.CompareToBuilder0535d4fc6cf3c03f
    org.apache.commons.lang3.builder.EqualsBuilderaa8ad870ff53852c
    org.apache.commons.lang3.builder.HashCodeBuilder2143ccbdbc7e1ea5
    org.apache.commons.lang3.mutable.MutableInt69453bf70a893014
    org.apache.commons.lang3.reflect.TypeUtilsdf817998efe361cb
    org.apache.commons.lang3.reflect.TypeUtils.WildcardTypeBuilder5936e9c8d409a438
    org.apache.commons.lang3.reflect.TypeUtils.WildcardTypeImpl5c07c9d0130a96a3
    org.apache.commons.lang3.stream.LangCollectors3ea5549a7ed3c3d7
    org.apache.commons.lang3.stream.LangCollectors.SimpleCollector91fc89bcf302c34b
    org.apache.commons.lang3.stream.Streams954246a3678faf93
    org.apache.commons.lang3.tuple.ImmutablePairea1fdd387104f342
    org.apache.commons.lang3.tuple.Pair24fcf8d25a997dff
    org.apache.commons.logging.LogFactory5c9b6286a0ecaeeb
    org.apache.commons.logging.LogFactory.135cd3441e691f91d
    org.apache.commons.logging.LogFactory.2f1244e6e80ab4e4c
    org.apache.commons.logging.LogFactory.308e35df1f60483aa
    org.apache.commons.logging.LogFactory.4fb4611c54b1bc610
    org.apache.commons.logging.LogFactory.6367c055e3172a33e
    org.apache.commons.logging.impl.SLF4JLogce165f20e303ae60
    org.apache.commons.logging.impl.SLF4JLogFactoryd78e8c8092c84bef
    org.apache.commons.logging.impl.WeakHashtablebda06549392c232d
    org.apache.commons.logging.impl.WeakHashtable.Referenced7e6bd0a967376754
    org.apache.commons.logging.impl.WeakHashtable.WeakKey3c62431e0d7eba54
    org.apache.commons.pool2.BaseObjecta9dd39289abe1d31
    org.apache.commons.pool2.DestroyMode5d1105fc83d83c0d
    org.apache.commons.pool2.ObjectPoolccb6589e8f774501
    org.apache.commons.pool2.PooledObject726d4666486bb8f9
    org.apache.commons.pool2.PooledObjectStatefb0e5d346be6cd55
    org.apache.commons.pool2.impl.BaseGenericObjectPool070a5acff5535437
    org.apache.commons.pool2.impl.BaseGenericObjectPool.IdentityWrapper434e773f29c6ef0b
    org.apache.commons.pool2.impl.BaseGenericObjectPool.StatsStore514c54abe01e16c7
    org.apache.commons.pool2.impl.BaseObjectPoolConfig9bee83eab719802c
    org.apache.commons.pool2.impl.DefaultEvictionPolicy56c4bc556e98d1be
    org.apache.commons.pool2.impl.DefaultPooledObjectddc5b9974a86b680
    org.apache.commons.pool2.impl.GenericObjectPoolfe1a47c0c894e580
    org.apache.commons.pool2.impl.GenericObjectPoolConfig2215008ece83d1da
    org.apache.commons.pool2.impl.InterruptibleReentrantLockef01e1d3943b5184
    org.apache.commons.pool2.impl.LinkedBlockingDequebb1a4d70c6b14c3f
    org.apache.commons.pool2.impl.LinkedBlockingDeque.Node78ac878c7ddd5998
    org.apache.commons.pool2.impl.NoOpCallStacke7f11c61124edc8b
    org.apache.commons.pool2.impl.PoolImplUtils65b544d8439b4d9e
    org.apache.commons.text.StringEscapeUtils5bc5b74e30d7e8bf
    org.apache.commons.text.StringEscapeUtils.XsiUnescaper5a061ee95766f1d3
    org.apache.commons.text.WordUtilsf85094830885a3dc
    org.apache.commons.text.translate.AggregateTranslator9e2a5e3e1c4ed249
    org.apache.commons.text.translate.CharSequenceTranslator84c8f5343c402da6
    org.apache.commons.text.translate.CodePointTranslatorea9fcdc7e5c87a70
    org.apache.commons.text.translate.CsvTranslators77360b05d66a2c8b
    org.apache.commons.text.translate.CsvTranslators.CsvEscaperbe76c35fab7f3dc3
    org.apache.commons.text.translate.CsvTranslators.CsvUnescaper09ac0d4ea60a4c5a
    org.apache.commons.text.translate.EntityArrayseff4bd7528ae958b
    org.apache.commons.text.translate.JavaUnicodeEscaperba174f1a55a33368
    org.apache.commons.text.translate.LookupTranslatorb47bcb49ef353b91
    org.apache.commons.text.translate.NumericEntityEscaperfed36f3c6d451e6b
    org.apache.commons.text.translate.NumericEntityUnescapercca6054255a84ade
    org.apache.commons.text.translate.NumericEntityUnescaper.OPTIONcd3ec6bfbd85a55d
    org.apache.commons.text.translate.OctalUnescaperc72a48b363be373d
    org.apache.commons.text.translate.SinglePassTranslator49d6016a555b6c1a
    org.apache.commons.text.translate.UnicodeEscaper9dad545c5206284f
    org.apache.commons.text.translate.UnicodeUnescapere15b1cf1266b58bf
    org.apache.commons.text.translate.UnicodeUnpairedSurrogateRemover678cce4230e90a18
    org.apache.lucene.analysis.Analyzerb3fbc3d4c894fea4
    org.apache.lucene.analysis.Analyzer.12588c4a52a03d489
    org.apache.lucene.analysis.Analyzer.2b11ec0b046fb0739
    org.apache.lucene.analysis.Analyzer.ReuseStrategy373c30afd7c4e7e0
    org.apache.lucene.analysis.Analyzer.TokenStreamComponents07ec7e6a7685910d
    org.apache.lucene.analysis.AnalyzerWrapperfea68ba019e933f5
    org.apache.lucene.analysis.CachingTokenFilter7948742bc70cfc8a
    org.apache.lucene.analysis.CharArrayMap5b74a1ab488fac15
    org.apache.lucene.analysis.CharArrayMap.EmptyCharArrayMap6ce1b3c28f6c4a11
    org.apache.lucene.analysis.CharArrayMap.EntryIteratora87ee307a838f240
    org.apache.lucene.analysis.CharArrayMap.EntrySet2025bc28ce5f11cc
    org.apache.lucene.analysis.CharArrayMap.MapEntry73ae6df3a549c4af
    org.apache.lucene.analysis.CharArrayMap.UnmodifiableCharArrayMap8bab8a3a7f9cd4a6
    org.apache.lucene.analysis.CharArraySet111b4a78749d9f46
    org.apache.lucene.analysis.CharacterUtilsb8ca5cbf25fdfeed
    org.apache.lucene.analysis.CharacterUtils.CharacterBuffer18d395cdbdb60911
    org.apache.lucene.analysis.DelegatingAnalyzerWrapper9c301ae9d9f5cd8a
    org.apache.lucene.analysis.DelegatingAnalyzerWrapper.DelegatingReuseStrategy76fa58dd625c2849
    org.apache.lucene.analysis.FilteringTokenFilterf403409105fbb533
    org.apache.lucene.analysis.LowerCaseFilterbcfd3a6a56a4fadf
    org.apache.lucene.analysis.ReusableStringReaderc9f6ec8eb7023f1c
    org.apache.lucene.analysis.StopFilter4230021c4e77a6d7
    org.apache.lucene.analysis.TokenFilter9e43d230548551cf
    org.apache.lucene.analysis.TokenStream184dbe299c64e6c6
    org.apache.lucene.analysis.Tokenizer7379ed627ab2912a
    org.apache.lucene.analysis.Tokenizer.1bc547a7b9c0cc19f
    org.apache.lucene.analysis.core.KeywordAnalyzer698cf9e1f8021717
    org.apache.lucene.analysis.core.LowerCaseFilterba2c1b7980c14a72
    org.apache.lucene.analysis.core.StopFilter8641c6193f901c17
    org.apache.lucene.analysis.core.WhitespaceTokenizer115580a151439e88
    org.apache.lucene.analysis.en.EnglishAnalyzercc688ebf7db7d878
    org.apache.lucene.analysis.miscellaneous.PerFieldAnalyzerWrapperdad7892fd718e4df
    org.apache.lucene.analysis.miscellaneous.WordDelimiterGraphFilterbc9fe7a967fdcfa0
    org.apache.lucene.analysis.miscellaneous.WordDelimiterGraphFilter.PositionSorter2cd32a2ee34c7dce
    org.apache.lucene.analysis.miscellaneous.WordDelimiterGraphFilter.WordDelimiterConcatenation460ee77062ef67d3
    org.apache.lucene.analysis.miscellaneous.WordDelimiterIterator28629af5aededfc5
    org.apache.lucene.analysis.tokenattributes.CharTermAttributeImpl6f123fa71f95b8a2
    org.apache.lucene.analysis.tokenattributes.KeywordAttributeImpl1407e968afc08f38
    org.apache.lucene.analysis.tokenattributes.PackedTokenAttributeImplc920cac0bdae9098
    org.apache.lucene.analysis.util.CharTokenizer6ca65685e9be18b0
    org.apache.lucene.codecs.BlockTermStateae9ca3d409bef070
    org.apache.lucene.codecs.Codec7d385f022790e396
    org.apache.lucene.codecs.Codec.Holder954feab31b29306c
    org.apache.lucene.codecs.CodecUtil157ab3df291cad53
    org.apache.lucene.codecs.CompetitiveImpactAccumulator3313639ea91339f0
    org.apache.lucene.codecs.CompetitiveImpactAccumulator.1cbf4c621aff70903
    org.apache.lucene.codecs.CompoundDirectory105adc33fae31203
    org.apache.lucene.codecs.CompoundFormatb6f7adfa57db14e8
    org.apache.lucene.codecs.DocValuesFormat59fc29b0272a381d
    org.apache.lucene.codecs.FieldInfosFormatbbc25871d2052537
    org.apache.lucene.codecs.FieldsConsumer8ac90826db599118
    org.apache.lucene.codecs.FieldsProducer5414d54969b0a428
    org.apache.lucene.codecs.LiveDocsFormat37ab5fda48936c8e
    org.apache.lucene.codecs.MultiLevelSkipListReader154c0dde48784630
    org.apache.lucene.codecs.MultiLevelSkipListWriter271c1c2a90febec5
    org.apache.lucene.codecs.NormsFormat666a4c99b55172f0
    org.apache.lucene.codecs.PointsFormat893fa9d6f57ed303
    org.apache.lucene.codecs.PointsFormat.1b7e29ffebcefbee5
    org.apache.lucene.codecs.PostingsFormat5c5d51d1200cda53
    org.apache.lucene.codecs.PostingsFormat.Holdercd21b5e5af08083b
    org.apache.lucene.codecs.PostingsReaderBase69fbc8d7a772c1ba
    org.apache.lucene.codecs.PostingsWriterBase70833c5afb411658
    org.apache.lucene.codecs.PushPostingsWriterBase09459ba2fcc66071
    org.apache.lucene.codecs.SegmentInfoFormat186f50b8ba40fe34
    org.apache.lucene.codecs.StoredFieldsFormatf0635529da3f816b
    org.apache.lucene.codecs.StoredFieldsReader44377ce9cabec7b7
    org.apache.lucene.codecs.StoredFieldsWriter18287965dde32b41
    org.apache.lucene.codecs.TermVectorsFormatabae86cbdd868241
    org.apache.lucene.codecs.blocktree.BlockTreeTermsReader4a5eb3e67f7fa9f7
    org.apache.lucene.codecs.blocktree.BlockTreeTermsWriterb036adb9f5245c23
    org.apache.lucene.codecs.blocktree.BlockTreeTermsWriter.PendingBlockc6f4f170bf8bd277
    org.apache.lucene.codecs.blocktree.BlockTreeTermsWriter.PendingEntryf940bc41257f9ec1
    org.apache.lucene.codecs.blocktree.BlockTreeTermsWriter.PendingTerm6e393f062014fa45
    org.apache.lucene.codecs.blocktree.BlockTreeTermsWriter.StatsWriteradd454e2523a11b5
    org.apache.lucene.codecs.blocktree.BlockTreeTermsWriter.TermsWriter0fc215d15cf4d2ff
    org.apache.lucene.codecs.blocktree.CompressionAlgorithmcd5f2e1bcb83ac78
    org.apache.lucene.codecs.blocktree.CompressionAlgorithm.1b89067b1068100c6
    org.apache.lucene.codecs.blocktree.CompressionAlgorithm.25d39130de56dffa9
    org.apache.lucene.codecs.blocktree.CompressionAlgorithm.373218b346be9521d
    org.apache.lucene.codecs.blocktree.FieldReader9ffc10d155e4863b
    org.apache.lucene.codecs.blocktree.SegmentTermsEnumce57a3db048cb9ef
    org.apache.lucene.codecs.blocktree.SegmentTermsEnumFramedcfdb1defbeb4bf6
    org.apache.lucene.codecs.compressing.CompressingStoredFieldsFormat896fa678ffe81c92
    org.apache.lucene.codecs.compressing.CompressingStoredFieldsReaderfed51f9077208bb6
    org.apache.lucene.codecs.compressing.CompressingStoredFieldsReader.17bddfb5935f04284
    org.apache.lucene.codecs.compressing.CompressingStoredFieldsReader.BlockStated3812bfab13be812
    org.apache.lucene.codecs.compressing.CompressingStoredFieldsReader.SerializedDocument4cc23a5abef95aaf
    org.apache.lucene.codecs.compressing.CompressingStoredFieldsWriter2dad7ad136db8d57
    org.apache.lucene.codecs.compressing.CompressingTermVectorsFormat873c98aa0b112460
    org.apache.lucene.codecs.compressing.CompressionMode40a206f9a035f885
    org.apache.lucene.codecs.compressing.CompressionMode.15222ebc3d273a019
    org.apache.lucene.codecs.compressing.CompressionMode.2f6685a7e7bb3771a
    org.apache.lucene.codecs.compressing.CompressionMode.3196e0c9c4cbfa662
    org.apache.lucene.codecs.compressing.CompressionMode.477d32d5ef9354e6e
    org.apache.lucene.codecs.compressing.Compressorb0dd429aca65b80e
    org.apache.lucene.codecs.compressing.Decompressor5a441b8b2ca96e65
    org.apache.lucene.codecs.compressing.FieldsIndexe7d850a894e41f41
    org.apache.lucene.codecs.compressing.FieldsIndexReaderefa174465074bfbd
    org.apache.lucene.codecs.compressing.FieldsIndexWriter10a973070f4bf7a4
    org.apache.lucene.codecs.idversion.IDVersionPostingsFormatc2da72d126aba544
    org.apache.lucene.codecs.lucene50.Lucene50CompoundFormat385a35dbd700d7bd
    org.apache.lucene.codecs.lucene50.Lucene50CompoundReaderf79625b845ff1a72
    org.apache.lucene.codecs.lucene50.Lucene50CompoundReader.FileEntryca388693c592b376
    org.apache.lucene.codecs.lucene50.Lucene50LiveDocsFormatdad069b09c8ebe30
    org.apache.lucene.codecs.lucene50.Lucene50TermVectorsFormate177ce04f8f4313d
    org.apache.lucene.codecs.lucene60.Lucene60FieldInfosFormatbea4d612bda522b3
    org.apache.lucene.codecs.lucene60.Lucene60FieldInfosFormat.1a5faf788eebfcf53
    org.apache.lucene.codecs.lucene80.Lucene80DocValuesFormat18b32b386e539057
    org.apache.lucene.codecs.lucene80.Lucene80DocValuesFormat.Mode86ca2b1c37fd2c44
    org.apache.lucene.codecs.lucene80.Lucene80NormsFormat1e44bf93a20abf13
    org.apache.lucene.codecs.lucene84.ForDeltaUtilbfe1bbad9d2e544b
    org.apache.lucene.codecs.lucene84.ForUtilde15f512bc648fc1
    org.apache.lucene.codecs.lucene84.Lucene84PostingsFormatbf59ad8fdebd5d74
    org.apache.lucene.codecs.lucene84.Lucene84PostingsFormat.IntBlockTermStatef10b9e05ba79b752
    org.apache.lucene.codecs.lucene84.Lucene84PostingsReader429c11d1836706b4
    org.apache.lucene.codecs.lucene84.Lucene84PostingsReader.BlockDocsEnum757838073fe69387
    org.apache.lucene.codecs.lucene84.Lucene84PostingsReader.BlockImpactsDocsEnum195ba8c2070ddaf5
    org.apache.lucene.codecs.lucene84.Lucene84PostingsWriter2cab59acfc3bb8a5
    org.apache.lucene.codecs.lucene84.Lucene84ScoreSkipReaderc1a818e91bb523bd
    org.apache.lucene.codecs.lucene84.Lucene84ScoreSkipReader.13d1e1fee9c8ae8f2
    org.apache.lucene.codecs.lucene84.Lucene84ScoreSkipReader.MutableImpactList5439f55d0eafe5f6
    org.apache.lucene.codecs.lucene84.Lucene84SkipReader1f7fa252de511870
    org.apache.lucene.codecs.lucene84.Lucene84SkipWriter76f5bd9c5e6e9e31
    org.apache.lucene.codecs.lucene84.PForUtile08db33b54b22cfd
    org.apache.lucene.codecs.lucene86.Lucene86PointsFormatf64406f00a5abe31
    org.apache.lucene.codecs.lucene86.Lucene86SegmentInfoFormat586cf6377df4154e
    org.apache.lucene.codecs.lucene87.DeflateWithPresetDictCompressionModeeef2871dedd17ce4
    org.apache.lucene.codecs.lucene87.LZ4WithPresetDictCompressionModed862ddb8f965ccb4
    org.apache.lucene.codecs.lucene87.LZ4WithPresetDictCompressionMode.LZ4WithPresetDictCompressore6d7dc198735025e
    org.apache.lucene.codecs.lucene87.LZ4WithPresetDictCompressionMode.LZ4WithPresetDictDecompressorcdef0ff6ed46a9fd
    org.apache.lucene.codecs.lucene87.Lucene87Codec9911310a45d92bb3
    org.apache.lucene.codecs.lucene87.Lucene87Codec.128723482ca6440d7
    org.apache.lucene.codecs.lucene87.Lucene87Codec.206911be072d66b12
    org.apache.lucene.codecs.lucene87.Lucene87Codec.Mode0cdb8b76874bda63
    org.apache.lucene.codecs.lucene87.Lucene87StoredFieldsFormat95ec1a8a217a9696
    org.apache.lucene.codecs.lucene87.Lucene87StoredFieldsFormat.1df56e677e7cde89d
    org.apache.lucene.codecs.lucene87.Lucene87StoredFieldsFormat.Mode54f5b49dea8b8336
    org.apache.lucene.codecs.perfield.PerFieldDocValuesFormat999be7b49946c809
    org.apache.lucene.codecs.perfield.PerFieldPostingsFormatf4cf062fe4480103
    org.apache.lucene.codecs.perfield.PerFieldPostingsFormat.FieldsGroupa9f65c90021ba143
    org.apache.lucene.codecs.perfield.PerFieldPostingsFormat.FieldsGroup.Buildercf3e5a1c6f5d87c6
    org.apache.lucene.codecs.perfield.PerFieldPostingsFormat.FieldsReader23133a0a2e3e3d10
    org.apache.lucene.codecs.perfield.PerFieldPostingsFormat.FieldsWriter39e6a18f2c347e15
    org.apache.lucene.codecs.perfield.PerFieldPostingsFormat.FieldsWriter.1d45ea394ce4e87d2
    org.apache.lucene.document.Documente1b4f587d42b8bee
    org.apache.lucene.document.DocumentStoredFieldVisitor66c1e4b20aa4d347
    org.apache.lucene.document.Field7f482656d4ca1583
    org.apache.lucene.document.FieldTypeb7c621c07031e9cf
    org.apache.lucene.document.StoredFieldc2d3990da920bf93
    org.apache.lucene.document.TextField3884cff56ab2e8d5
    org.apache.lucene.index.BaseCompositeReaderd97e90ccc7f968ed
    org.apache.lucene.index.BaseTermsEnum98f6b1ecedb5374e
    org.apache.lucene.index.BufferedUpdates87ddb653a8568589
    org.apache.lucene.index.BufferedUpdatesStream826f0e27162b764b
    org.apache.lucene.index.BufferedUpdatesStream.FinishedSegments16a71e5037793419
    org.apache.lucene.index.ByteSliceReader013997c1da8668b7
    org.apache.lucene.index.CodecReader664ad067a4634f30
    org.apache.lucene.index.CompositeReader1ac667c88af4f805
    org.apache.lucene.index.CompositeReaderContext7e031115b0dba787
    org.apache.lucene.index.CompositeReaderContext.Builder071e9447b79df71a
    org.apache.lucene.index.ConcurrentMergeScheduler7192a79827ef3c6d
    org.apache.lucene.index.DefaultIndexingChaind2d4569721a2c208
    org.apache.lucene.index.DefaultIndexingChain.IntBlockAllocatorf8ba5af8ae2348f4
    org.apache.lucene.index.DefaultIndexingChain.PerFieldcce61152033abf01
    org.apache.lucene.index.DirectoryReader872b9ecc9a6593a5
    org.apache.lucene.index.DocConsumere1f0c74a0a5799b0
    org.apache.lucene.index.DocValuesType7e1ae71ed4ea7003
    org.apache.lucene.index.DocsWithFieldSet8d19e1081ed95385
    org.apache.lucene.index.DocumentsWriter7cc357393fcb7704
    org.apache.lucene.index.DocumentsWriterDeleteQueue13f9cf08d569e3e2
    org.apache.lucene.index.DocumentsWriterDeleteQueue.DeleteSlicef1270dfe524b0475
    org.apache.lucene.index.DocumentsWriterDeleteQueue.Nodee35b7bfe790524e5
    org.apache.lucene.index.DocumentsWriterFlushControlf0c2fa30940cc6eb
    org.apache.lucene.index.DocumentsWriterFlushQueue2c7673b354c8e663
    org.apache.lucene.index.DocumentsWriterFlushQueue.FlushTicket89df1c2221a6fcc6
    org.apache.lucene.index.DocumentsWriterPerThread04669483a6b45471
    org.apache.lucene.index.DocumentsWriterPerThread.12e2a89a263831e28
    org.apache.lucene.index.DocumentsWriterPerThread.FlushedSegment0b6ff5c256c820c9
    org.apache.lucene.index.DocumentsWriterPerThread.IndexingChaina80ec889dc78a499
    org.apache.lucene.index.DocumentsWriterPerThreadPoolebeda4d160ec6dcd
    org.apache.lucene.index.DocumentsWriterStallControl58d97a046f2a5e61
    org.apache.lucene.index.FieldInfo5d3240edb51a9c8e
    org.apache.lucene.index.FieldInfos0cd129ec82608462
    org.apache.lucene.index.FieldInfos.Builder172eff8db3205492
    org.apache.lucene.index.FieldInfos.FieldNumbers32bc1472e7a4ffd6
    org.apache.lucene.index.FieldInvertState9d275e86858587ac
    org.apache.lucene.index.Fieldseef2020978da652b
    org.apache.lucene.index.FilterLeafReader.FilterFieldsfa901dce56bcbd4a
    org.apache.lucene.index.FlushByRamOrCountsPolicy88d230f4879c8846
    org.apache.lucene.index.FlushPolicyf82b82ae268a26e6
    org.apache.lucene.index.FreqProxFieldse7a3eefa6739fbaf
    org.apache.lucene.index.FreqProxFields.FreqProxDocsEnum9b5450dfccaeb430
    org.apache.lucene.index.FreqProxFields.FreqProxTermsdedfdef25735032c
    org.apache.lucene.index.FreqProxFields.FreqProxTermsEnum3601506a252c0835
    org.apache.lucene.index.FreqProxTermsWriterdd9e5dfaa06e7132
    org.apache.lucene.index.FreqProxTermsWriterPerField1e6792a1afdb8706
    org.apache.lucene.index.FreqProxTermsWriterPerField.FreqProxPostingsArraya2d8410c7d62b204
    org.apache.lucene.index.Impact882e84c41ed12353
    org.apache.lucene.index.Impacts86133783ef6f8339
    org.apache.lucene.index.ImpactsEnum952b956e16147b18
    org.apache.lucene.index.IndexCommit2c603d2695fc5325
    org.apache.lucene.index.IndexDeletionPolicy74de12c334f0ff0b
    org.apache.lucene.index.IndexFileDeleter864842f2ab2489df
    org.apache.lucene.index.IndexFileDeleter.CommitPointb03c283521652ed6
    org.apache.lucene.index.IndexFileDeleter.RefCount9d0a0ab0f621189a
    org.apache.lucene.index.IndexFileNames5a0676f33d0dd869
    org.apache.lucene.index.IndexOptions3f91d827d790b03c
    org.apache.lucene.index.IndexReader7350521cd77caecb
    org.apache.lucene.index.IndexReader.CacheKeyb51d6a55a323e37e
    org.apache.lucene.index.IndexReaderContext04e32f4b9c330127
    org.apache.lucene.index.IndexWritere0325aeb804ee9cd
    org.apache.lucene.index.IndexWriter.11648142e65802354
    org.apache.lucene.index.IndexWriter.4f13f02d787c63977
    org.apache.lucene.index.IndexWriter.EventQueue036f9bbdb7eaba28
    org.apache.lucene.index.IndexWriter.IndexWriterMergeSourcecf8a98cb877c1183
    org.apache.lucene.index.IndexWriter.Merges2e1fc51eb330086c
    org.apache.lucene.index.IndexWriterConfigd701914f0d6658b6
    org.apache.lucene.index.IndexWriterConfig.OpenMode7cb49344ea5c6351
    org.apache.lucene.index.KeepOnlyLastCommitDeletionPolicy9f22fe8c738d9952
    org.apache.lucene.index.LeafMetaDatabbff7ff01b4134e0
    org.apache.lucene.index.LeafReaderfa1ce8df2ae26a6e
    org.apache.lucene.index.LeafReaderContextfc6c719b81d116df
    org.apache.lucene.index.LiveIndexWriterConfiga2067f8ef3677fdc
    org.apache.lucene.index.MergePolicye4754a4a63055e7b
    org.apache.lucene.index.MergeScheduler647d19e97498fe90
    org.apache.lucene.index.MergeTrigger8b1aa8130dc2b264
    org.apache.lucene.index.NormValuesWriter46f5e71221ca6e02
    org.apache.lucene.index.OrdTermState43005a4850ff3eee
    org.apache.lucene.index.ParallelPostingsArray9e8709952ddc86a9
    org.apache.lucene.index.PostingsEnum13ee3bbe2a9a135b
    org.apache.lucene.index.ReaderPool196c2a1e4e1cb021
    org.apache.lucene.index.ReaderUtil4a74f8dbf0455564
    org.apache.lucene.index.SegmentCommitInfo361389f17f161615
    org.apache.lucene.index.SegmentCoreReaders329963e565bed71e
    org.apache.lucene.index.SegmentCoreReaders.14c22a3a7e7a3464b
    org.apache.lucene.index.SegmentCoreReaders.2f94d04d48a8e6732
    org.apache.lucene.index.SegmentCoreReaders.30dcca50ca892de5e
    org.apache.lucene.index.SegmentDocValues8c267f5425938996
    org.apache.lucene.index.SegmentInfod59792dbd411f918
    org.apache.lucene.index.SegmentInfos8e0cfc1c34a793bc
    org.apache.lucene.index.SegmentInfos.FindSegmentsFile57064a938b60a18c
    org.apache.lucene.index.SegmentReadStatef7f57f7389b9e4aa
    org.apache.lucene.index.SegmentReader63c8cf9560aa58ed
    org.apache.lucene.index.SegmentReader.1007c5e078ca5b49c
    org.apache.lucene.index.SegmentReader.2f1871b747f8ea7f6
    org.apache.lucene.index.SegmentWriteState3df2c751683e36f5
    org.apache.lucene.index.SlowImpactsEnum1474c9337a65b539
    org.apache.lucene.index.SlowImpactsEnum.1d5bb02ac6cfb08ba
    org.apache.lucene.index.StandardDirectoryReader3fc892a97e1fcf74
    org.apache.lucene.index.StandardDirectoryReader.170ecfd4176b47247
    org.apache.lucene.index.StandardDirectoryReader.3ca361c5e2d8fe939
    org.apache.lucene.index.StoredFieldVisitorc234cad09dc1c771
    org.apache.lucene.index.StoredFieldVisitor.Status9cb9d093a6117d87
    org.apache.lucene.index.StoredFieldsConsumer3e50d154a538cc4a
    org.apache.lucene.index.Term998f0369ca56ca77
    org.apache.lucene.index.TermStated94a8fc5aa8fb053
    org.apache.lucene.index.TermStates51833d55b04ca4cd
    org.apache.lucene.index.TermStates.1ec6a01c059b307f9
    org.apache.lucene.index.TermVectorsConsumer5da357250a0de7f2
    org.apache.lucene.index.TermVectorsConsumerPerField1208c70ca8670152
    org.apache.lucene.index.TermVectorsConsumerPerField.TermVectorsPostingsArrayc0105255a2cecf00
    org.apache.lucene.index.Terms7ca39f3bdd238e2b
    org.apache.lucene.index.TermsEnumdfe1f9b0994d664f
    org.apache.lucene.index.TermsEnum.1249f31e05c710308
    org.apache.lucene.index.TermsEnum.SeekStatus8b3a7bcd9e7da648
    org.apache.lucene.index.TermsHashc630c8de6506aac1
    org.apache.lucene.index.TermsHashPerField1b7a39be6c997509
    org.apache.lucene.index.TermsHashPerField.PostingsBytesStartArray5e5e00daabc62112
    org.apache.lucene.index.TieredMergePolicyc430a128b00f05d4
    org.apache.lucene.index.TieredMergePolicy.MERGE_TYPEee4ce8703565589c
    org.apache.lucene.index.TieredMergePolicy.SegmentSizeAndDocs13066978ebee0cf5
    org.apache.lucene.queryparser.classic.FastCharStream921f61bd34d336b7
    org.apache.lucene.queryparser.classic.QueryParser58a639d223811485
    org.apache.lucene.queryparser.classic.QueryParser.JJCallsb4aa6347602075fe
    org.apache.lucene.queryparser.classic.QueryParser.LookaheadSuccess1e68eb728086b64d
    org.apache.lucene.queryparser.classic.QueryParser.Operatorc369979182f4a099
    org.apache.lucene.queryparser.classic.QueryParserBasec083122d7fdf3d7d
    org.apache.lucene.queryparser.classic.QueryParserTokenManager98e97e8b3adc403b
    org.apache.lucene.queryparser.classic.Tokend87570aef642ebc9
    org.apache.lucene.search.BlockMaxConjunctionScorer061e44a27a9e97e7
    org.apache.lucene.search.BlockMaxConjunctionScorer.174c433408ff6b3bd
    org.apache.lucene.search.BlockMaxConjunctionScorer.23ea95fe22eaa4f92
    org.apache.lucene.search.Boolean2ScorerSupplierc583418a25057486
    org.apache.lucene.search.BooleanClause5517b155135643c4
    org.apache.lucene.search.BooleanClause.Occur734a3ee59f624d3a
    org.apache.lucene.search.BooleanClause.Occur.1844152c852706967
    org.apache.lucene.search.BooleanClause.Occur.2314312e6be9e3919
    org.apache.lucene.search.BooleanClause.Occur.382ed509b5f202c18
    org.apache.lucene.search.BooleanClause.Occur.4daeb1927527fbfcf
    org.apache.lucene.search.BooleanQuery96c1ac631fbd6b0e
    org.apache.lucene.search.BooleanQuery.Builder7e6d4552da2ff245
    org.apache.lucene.search.BooleanWeight174f45125f19caf2
    org.apache.lucene.search.BooleanWeight.WeightedBooleanClause166652adc0fe198e
    org.apache.lucene.search.BoostAttributeImplf093b8b530992fa9
    org.apache.lucene.search.BoostQuery83694dbca36799f8
    org.apache.lucene.search.BulkScorer0cdfc6b4ad3daf0c
    org.apache.lucene.search.CollectionStatistics5ec48820d8f08861
    org.apache.lucene.search.DisiPriorityQueuecd6e7ceb6bb4a75c
    org.apache.lucene.search.DisiWrapperc464918fcb4dc917
    org.apache.lucene.search.DocIdSet5365aa0bacf9a6e7
    org.apache.lucene.search.DocIdSet.131119c239a3307e0
    org.apache.lucene.search.DocIdSetIteratorb2f8b47fe6931904
    org.apache.lucene.search.Explanationf9b8483b4a27fc0e
    org.apache.lucene.search.HitQueue1b55fd31915c139a
    org.apache.lucene.search.HitsThresholdCheckercbcf7b80177ffd7d
    org.apache.lucene.search.HitsThresholdChecker.LocalHitsThresholdChecker0af70e4877c39078
    org.apache.lucene.search.ImpactsDISI13342a2866448a60
    org.apache.lucene.search.IndexSearcher73336568d9558b83
    org.apache.lucene.search.IndexSearcher.28a80822a11869ba3
    org.apache.lucene.search.LRUQueryCachef119ed15eba21643
    org.apache.lucene.search.LRUQueryCache.MinSegmentSizePredicatee8546c497dd5c047
    org.apache.lucene.search.LeafCollector610577ef49520501
    org.apache.lucene.search.LeafSimScorerdae74001f09e0d4b
    org.apache.lucene.search.MaxScoreCacheb0fab390a2eeb1ff
    org.apache.lucene.search.MaxScoreSumPropagator5a91caaf7298e99b
    org.apache.lucene.search.MaxScoreSumPropagator.15ee8239fddd1a671
    org.apache.lucene.search.MultiTermQuery2b75d54f87e0a440
    org.apache.lucene.search.MultiTermQuery.16c9d933f8b8f27ac
    org.apache.lucene.search.MultiTermQuery.RewriteMethoddccbda72605e36e9
    org.apache.lucene.search.Multiset19d136ff7551a790
    org.apache.lucene.search.Multiset.13b110197a7d930cc
    org.apache.lucene.search.Queryc165f884ce594f28
    org.apache.lucene.search.Scorablece3faa2bf0d13526
    org.apache.lucene.search.ScoreDoc7bfc4d6df3c15e4f
    org.apache.lucene.search.ScoreMode5083adba207caf07
    org.apache.lucene.search.Scorera2e3c4802bca7246
    org.apache.lucene.search.ScorerSupplier50ccb984640f5a29
    org.apache.lucene.search.ScorerUtil4858996195e514c9
    org.apache.lucene.search.ScorerUtil.10d12a67987763dd8
    org.apache.lucene.search.ScoringRewrite53dda8cd115a1b80
    org.apache.lucene.search.ScoringRewrite.1726bc5187a7d9169
    org.apache.lucene.search.ScoringRewrite.2c8ed0d3ea02d9ba7
    org.apache.lucene.search.TermCollectingRewrite3c6917b7de289c31
    org.apache.lucene.search.TermQuery32c14fb4749e12de
    org.apache.lucene.search.TermQuery.TermWeight8232b1155cdcaa35
    org.apache.lucene.search.TermScorerc300e5abbc794b3b
    org.apache.lucene.search.TermStatistics2889bba2906e16a2
    org.apache.lucene.search.TopDocs012373f68cd76882
    org.apache.lucene.search.TopDocs.ScoreMergeSortQueue0d229ef686a287eb
    org.apache.lucene.search.TopDocs.ShardRef645ec85cd874e13e
    org.apache.lucene.search.TopDocsCollectord619b8b8e24362ae
    org.apache.lucene.search.TopScoreDocCollectorf0f271377b503622
    org.apache.lucene.search.TopScoreDocCollector.ScorerLeafCollector0916b64fdd6310f8
    org.apache.lucene.search.TopScoreDocCollector.SimpleTopScoreDocCollectore89ce7447d46c23d
    org.apache.lucene.search.TopScoreDocCollector.SimpleTopScoreDocCollector.1b7fd297ad7b8e993
    org.apache.lucene.search.TotalHitsc054cc870c4bc713
    org.apache.lucene.search.TotalHits.Relationcd9e19742f0a5fea
    org.apache.lucene.search.TwoPhaseIteratorf59ed4e6ee883076
    org.apache.lucene.search.TwoPhaseIterator.TwoPhaseIteratorAsDocIdSetIteratorbde4888d90c9b71d
    org.apache.lucene.search.UsageTrackingQueryCachingPolicyb8f47b0b4f586c84
    org.apache.lucene.search.WANDScorer9b455d37735417e4
    org.apache.lucene.search.WANDScorer.1677f7eae4aa6e58d
    org.apache.lucene.search.WANDScorer.27f071d191fb7cb28
    org.apache.lucene.search.Weightf9b0b832cbdab9cc
    org.apache.lucene.search.Weight.19ae964d7e7004115
    org.apache.lucene.search.Weight.DefaultBulkScorer3367fcb4d4550921
    org.apache.lucene.search.similarities.BM25Similarityd69466947ed0f51c
    org.apache.lucene.search.similarities.BM25Similarity.BM25Scorera177d5b0724f1baa
    org.apache.lucene.search.similarities.Similaritya3b6d2798ce43d71
    org.apache.lucene.search.similarities.Similarity.SimScorer67d544ce9feeb21a
    org.apache.lucene.store.BaseDirectory6900d05994ed44b3
    org.apache.lucene.store.BufferedChecksumb94ebe893a9d3711
    org.apache.lucene.store.BufferedChecksumIndexInput173e2b9c65b07cb6
    org.apache.lucene.store.ByteArrayDataInput78632b2460b70e07
    org.apache.lucene.store.ByteArrayDataOutput7e14c81e582b7d2c
    org.apache.lucene.store.ByteBufferGuard259b97c11bbdc71b
    org.apache.lucene.store.ByteBufferIndexInput4167f4c1126b89a3
    org.apache.lucene.store.ByteBufferIndexInput.SingleBufferImpl2a840aec159d9c7d
    org.apache.lucene.store.ByteBuffersDataOutput15456a13d6afd12c
    org.apache.lucene.store.ByteBuffersDataOutput.ByteBufferRecyclerfe108a40cf58b7b1
    org.apache.lucene.store.ChecksumIndexInput76f48af3f68865dd
    org.apache.lucene.store.DataInput5aa170af6f1e947b
    org.apache.lucene.store.DataOutput492e17024cc912e6
    org.apache.lucene.store.Directory7704110da65f03e8
    org.apache.lucene.store.FSDirectory0e228e59762da3b0
    org.apache.lucene.store.FSDirectory.FSIndexOutputd2beb768917b54a0
    org.apache.lucene.store.FSDirectory.FSIndexOutput.1ec3754510e19ee3f
    org.apache.lucene.store.FSLockFactory742892e30a14e87a
    org.apache.lucene.store.FilterDirectoryb2c8389cd77c4d55
    org.apache.lucene.store.FlushInfof9d01f0e9bbb7c7c
    org.apache.lucene.store.IOContext5f42cca474854a9d
    org.apache.lucene.store.IOContext.Context921bb55758e6d8ff
    org.apache.lucene.store.IndexInput06ce5eb19b42b06b
    org.apache.lucene.store.IndexOutput6f483ded93cfafd7
    org.apache.lucene.store.Lock432af1bf641692dc
    org.apache.lucene.store.LockFactoryece396b0fec91411
    org.apache.lucene.store.LockValidatingDirectoryWrapper560f0d73f379987c
    org.apache.lucene.store.MMapDirectorya9942ea0e3192b38
    org.apache.lucene.store.NativeFSLockFactory1cd03d5dd607e96c
    org.apache.lucene.store.NativeFSLockFactory.NativeFSLockc3307e40ef2e24c7
    org.apache.lucene.store.OutputStreamIndexOutput90073bdd6eaf9312
    org.apache.lucene.store.RAMFilea543facba1c62f7f
    org.apache.lucene.store.RAMOutputStreama4d3d0444d01318d
    org.apache.lucene.store.TrackingDirectoryWrapper8f84be302b2ff933
    org.apache.lucene.util.Accountable9caec5fbf170e939
    org.apache.lucene.util.ArrayUtil5954c5d90665398b
    org.apache.lucene.util.AttributeFactoryb1bf0e54e4016761
    org.apache.lucene.util.AttributeFactory.157348402ad295daa
    org.apache.lucene.util.AttributeFactory.DefaultAttributeFactory400586c34d95eefd
    org.apache.lucene.util.AttributeFactory.DefaultAttributeFactory.1e37cb5b075d39222
    org.apache.lucene.util.AttributeFactory.StaticImplementationAttributeFactory7835b4eaf27ad5e5
    org.apache.lucene.util.AttributeImpld2e818115d53c6c8
    org.apache.lucene.util.AttributeSource9ed2301ac94454b9
    org.apache.lucene.util.AttributeSource.2627a422f8bda783c
    org.apache.lucene.util.AttributeSource.Stateee682f69cc19d165
    org.apache.lucene.util.BitSet5a574c88f9713d83
    org.apache.lucene.util.BitUtilfb8b4d3d71d70037
    org.apache.lucene.util.ByteBlockPoolc1f7c99648018d91
    org.apache.lucene.util.ByteBlockPool.Allocatore4273ccf741d8276
    org.apache.lucene.util.ByteBlockPool.DirectTrackingAllocator9bf47627846516db
    org.apache.lucene.util.BytesRef5dc0661c38a5f442
    org.apache.lucene.util.BytesRefBuilder6b39f0d53b571bfe
    org.apache.lucene.util.BytesRefHash86e748e8ab5fa687
    org.apache.lucene.util.BytesRefHash.1e19faf8fa62ab4f4
    org.apache.lucene.util.BytesRefHash.BytesStartArray06370cc4bd47788d
    org.apache.lucene.util.CloseableThreadLocalc837a4897f406f88
    org.apache.lucene.util.CollectionUtild405772039814236
    org.apache.lucene.util.CollectionUtil.ListIntroSorter272e33df47ff8a28
    org.apache.lucene.util.Constants71711c9ebda826d2
    org.apache.lucene.util.Counterdd1fe6fe36dc8723
    org.apache.lucene.util.Counter.AtomicCounter702c4b53893ac12e
    org.apache.lucene.util.Counter.SerialCounter577da4101cbc325f
    org.apache.lucene.util.FixedBitSet92d1cd1d5e4309b2
    org.apache.lucene.util.FrequencyTrackingRingBufferf4e55c7fd66a81d5
    org.apache.lucene.util.FrequencyTrackingRingBuffer.IntBag5de9feffb74916c0
    org.apache.lucene.util.FutureArrayseead70d27728315f
    org.apache.lucene.util.FutureObjectsbb12722ddc092a6a
    org.apache.lucene.util.IOUtilsf9815136f890b195
    org.apache.lucene.util.InPlaceMergeSortera72a3702a3f4d8f1
    org.apache.lucene.util.InfoStream5c1d197ea5ba7a73
    org.apache.lucene.util.InfoStream.NoOutputd0750f16f6d2766e
    org.apache.lucene.util.IntBlockPool73804d638cfb8a37
    org.apache.lucene.util.IntBlockPool.Allocator024ee289b8aaee46
    org.apache.lucene.util.IntroSorter08519c1f1ba4a7de
    org.apache.lucene.util.IntsReff9b7dc817ff99274
    org.apache.lucene.util.IntsRefBuilderb5175ed4b449f9b7
    org.apache.lucene.util.LongValues7d8aee853134ae83
    org.apache.lucene.util.LongValues.1f9fa8f9d563676c5
    org.apache.lucene.util.LongValues.216b39160a62d65d4
    org.apache.lucene.util.LongsRefab3dbc979e310089
    org.apache.lucene.util.MSBRadixSorter9adaa4c4786de287
    org.apache.lucene.util.MathUtil6446df2aeb4ba1d0
    org.apache.lucene.util.NamedSPILoaderbd69495c1a655c32
    org.apache.lucene.util.PriorityQueue86214d87630b6122
    org.apache.lucene.util.PriorityQueue.160a8e49cec5e67af
    org.apache.lucene.util.QueryBuilderf8cdd17d51e120bf
    org.apache.lucene.util.QueryBuilder.TermAndBoost7379a586bc344983
    org.apache.lucene.util.RamUsageEstimator90dd0e4b91d1e1b1
    org.apache.lucene.util.RamUsageEstimator.170b7c06b4a2ba803
    org.apache.lucene.util.SPIClassIterator77e3e7ca7aea78ee
    org.apache.lucene.util.SetOnce1f43b17a7dfc86e4
    org.apache.lucene.util.SetOnce.Wrapperfbdf6ca0565e5886
    org.apache.lucene.util.SmallFloat4b4c055a7d5e7c3d
    org.apache.lucene.util.Sorter91a27f89e094d240
    org.apache.lucene.util.StringHelper548b4986a5429a71
    org.apache.lucene.util.StringMSBRadixSorter09fc2a082184e6e8
    org.apache.lucene.util.StringMSBRadixSorter.12864f721fdd69ffd
    org.apache.lucene.util.UnicodeUtilaa9656ee8c7acf93
    org.apache.lucene.util.Versiond5dc79d50f2c2d1d
    org.apache.lucene.util.compress.LZ474e78555e9692654
    org.apache.lucene.util.compress.LZ4.FastCompressionHashTable455953436870f53c
    org.apache.lucene.util.compress.LZ4.HashTablea875bb203fc16df5
    org.apache.lucene.util.compress.LZ4.HighCompressionHashTablefe6aeae6ddf42ee2
    org.apache.lucene.util.compress.LowercaseAsciiCompressionf447544a6d96e316
    org.apache.lucene.util.fst.BitTableUtilae7a3159aea08377
    org.apache.lucene.util.fst.Builder100b4b21b6b35e4f
    org.apache.lucene.util.fst.Builder.Arc03d7ea3d6f291b24
    org.apache.lucene.util.fst.Builder.CompiledNode611103c7aadde65d
    org.apache.lucene.util.fst.Builder.FixedLengthArcsBufferdc3feeb45753c9cf
    org.apache.lucene.util.fst.Builder.UnCompiledNode008d6d1bfef92929
    org.apache.lucene.util.fst.ByteSequenceOutputs143ca7cb1094029b
    org.apache.lucene.util.fst.BytesRefFSTEnum8c5ff799d80df73e
    org.apache.lucene.util.fst.BytesRefFSTEnum.InputOutputfdff5845aec3a017
    org.apache.lucene.util.fst.BytesStore862a096cc44582bf
    org.apache.lucene.util.fst.BytesStore.265e27783d1fb59c4
    org.apache.lucene.util.fst.FST22daed3fbd13fe0f
    org.apache.lucene.util.fst.FST.Arc87a6bbce0deea5dc
    org.apache.lucene.util.fst.FST.Arc.BitTablecd08373a793c76e2
    org.apache.lucene.util.fst.FST.BytesReader9774f9c52f512c2f
    org.apache.lucene.util.fst.FST.INPUT_TYPE4cca0a4d7eb0fc65
    org.apache.lucene.util.fst.FSTEnumb20a467cecfe037b
    org.apache.lucene.util.fst.NodeHashe5fbe5551fd06a18
    org.apache.lucene.util.fst.OffHeapFSTStorec45fc9986debb081
    org.apache.lucene.util.fst.Outputs01b4adaf56ba7d3f
    org.apache.lucene.util.fst.ReverseBytesReader13eb20434ceaa349
    org.apache.lucene.util.fst.ReverseRandomAccessReader8ca4cafc0fd06de6
    org.apache.lucene.util.fst.Utile497ee1ca74a697c
    org.apache.lucene.util.packed.AbstractPagedMutablec34fc67babfbb425
    org.apache.lucene.util.packed.BulkOperatione703484622617102
    org.apache.lucene.util.packed.BulkOperation.18ed6abb8f3648cf6
    org.apache.lucene.util.packed.BulkOperationPacked829a236b3c71b9c5
    org.apache.lucene.util.packed.BulkOperationPacked14bd02140efa827ba
    org.apache.lucene.util.packed.BulkOperationPacked107871df76ca8b0a6d
    org.apache.lucene.util.packed.BulkOperationPacked1131012a043511a3c2
    org.apache.lucene.util.packed.BulkOperationPacked128c9d61a1c0c22fe2
    org.apache.lucene.util.packed.BulkOperationPacked137c3f7554b1c18d1d
    org.apache.lucene.util.packed.BulkOperationPacked1421e5b4c1bd2627b3
    org.apache.lucene.util.packed.BulkOperationPacked1589157585ca7e8aaf
    org.apache.lucene.util.packed.BulkOperationPacked16bd7857d6862d8611
    org.apache.lucene.util.packed.BulkOperationPacked17ee9c6581a4299e15
    org.apache.lucene.util.packed.BulkOperationPacked18559a5bb48c2c0381
    org.apache.lucene.util.packed.BulkOperationPacked19ce141b930277706f
    org.apache.lucene.util.packed.BulkOperationPacked2af735fb9c7872456
    org.apache.lucene.util.packed.BulkOperationPacked20ec750496cb2b69fc
    org.apache.lucene.util.packed.BulkOperationPacked21fd5faea41a357d0e
    org.apache.lucene.util.packed.BulkOperationPacked22b8b2caf3fa40412b
    org.apache.lucene.util.packed.BulkOperationPacked23d3700bb7e9bbb9e7
    org.apache.lucene.util.packed.BulkOperationPacked2497d220c44b683800
    org.apache.lucene.util.packed.BulkOperationPacked31318d5978b9e3782
    org.apache.lucene.util.packed.BulkOperationPacked470c3af2facc8f326
    org.apache.lucene.util.packed.BulkOperationPacked5d206eeee69238498
    org.apache.lucene.util.packed.BulkOperationPacked62dc5d4490742e4f9
    org.apache.lucene.util.packed.BulkOperationPacked7cf065f84c953d1aa
    org.apache.lucene.util.packed.BulkOperationPacked8f743f629bc8f2eec
    org.apache.lucene.util.packed.BulkOperationPacked920af58a528f116a1
    org.apache.lucene.util.packed.BulkOperationPackedSingleBlocked80270f7be26e06
    org.apache.lucene.util.packed.DeltaPackedLongValues.Builder058b56d9e425c2ec
    org.apache.lucene.util.packed.Direct16f6d3316502557024
    org.apache.lucene.util.packed.Direct81681d7da6313a8e2
    org.apache.lucene.util.packed.DirectMonotonicReader4ca3c68dd3a989a8
    org.apache.lucene.util.packed.DirectMonotonicReader.1ac026cbf03289925
    org.apache.lucene.util.packed.DirectMonotonicReader.Metabd8400ac2b5a5d97
    org.apache.lucene.util.packed.DirectMonotonicWriterab3c850c35c1869b
    org.apache.lucene.util.packed.DirectReader150a3f82db014cc5
    org.apache.lucene.util.packed.DirectReader.DirectPackedReader12763b65d68011c1c4
    org.apache.lucene.util.packed.DirectReader.DirectPackedReader168eb1a1c0c719b770
    org.apache.lucene.util.packed.DirectWriterdffc834e0d38a3e9
    org.apache.lucene.util.packed.GrowableWriter5e5c4629c1cacb32
    org.apache.lucene.util.packed.Packed64caccd5762229d5a5
    org.apache.lucene.util.packed.Packed64SingleBlock3ee3158eebfb2583
    org.apache.lucene.util.packed.Packed64SingleBlock.Packed64SingleBlock125137e3efb8081112
    org.apache.lucene.util.packed.Packed64SingleBlock.Packed64SingleBlock4344d44155104d71f
    org.apache.lucene.util.packed.PackedInts5fce3648bb81aba7
    org.apache.lucene.util.packed.PackedInts.1b5e362f7e4f2669f
    org.apache.lucene.util.packed.PackedInts.Formatf66df8d6fa1eb0bf
    org.apache.lucene.util.packed.PackedInts.Format.13b829c5020510e1e
    org.apache.lucene.util.packed.PackedInts.Format.284c5dbb1792af026
    org.apache.lucene.util.packed.PackedInts.FormatAndBits94bd3ad750fed485
    org.apache.lucene.util.packed.PackedInts.Mutable4220eb680213cd52
    org.apache.lucene.util.packed.PackedInts.MutableImpl07f6a90e6a6b8629
    org.apache.lucene.util.packed.PackedInts.Readerada558745edc141a
    org.apache.lucene.util.packed.PackedInts.ReaderIteratorImpld0ab15244e49ac29
    org.apache.lucene.util.packed.PackedInts.Writera09c912336957fca
    org.apache.lucene.util.packed.PackedLongValuesfcf07dff85fee5e0
    org.apache.lucene.util.packed.PackedLongValues.Builder57417b5ca6cc2f7f
    org.apache.lucene.util.packed.PackedReaderIterator9150185835a6e045
    org.apache.lucene.util.packed.PackedWriterf401186d92e3dfd7
    org.apache.lucene.util.packed.PagedGrowableWriterbf064fd5aabfaffd
    org.apache.maven.plugin.surefire.log.api.NullConsoleLogger9e19e8c6ec7e2af1
    org.apache.maven.surefire.api.booter.BaseProviderFactory3859e78bd81eea39
    org.apache.maven.surefire.api.booter.BiPropertyd22c13c56d5b4593
    org.apache.maven.surefire.api.booter.Command3cd54166633f8826
    org.apache.maven.surefire.api.booter.Constantsdecb9de81c53dc77
    org.apache.maven.surefire.api.booter.DumpErrorSingleton0fb68b22eecee565
    org.apache.maven.surefire.api.booter.ForkedProcessEventTypefb813c97649a2cb4
    org.apache.maven.surefire.api.booter.ForkingReporterFactory43a09ed486105416
    org.apache.maven.surefire.api.booter.ForkingRunListener72fc487c27ef5b8d
    org.apache.maven.surefire.api.booter.MasterProcessCommand4638438d1f9cb2b7
    org.apache.maven.surefire.api.booter.Shutdown22c5299ca66a441d
    org.apache.maven.surefire.api.cli.CommandLineOption4a638448af60a346
    org.apache.maven.surefire.api.filter.NonAbstractClassFilterf9349f28027f7865
    org.apache.maven.surefire.api.provider.AbstractProvidera003e0bc84287c70
    org.apache.maven.surefire.api.report.ConsoleOutputCapture810c9018ba7d1ecc
    org.apache.maven.surefire.api.report.ConsoleOutputCapture.ForwardingPrintStream2c7c3dde8b37b8d9
    org.apache.maven.surefire.api.report.ConsoleOutputCapture.NullOutputStream5731848fa72c76c9
    org.apache.maven.surefire.api.report.ReporterConfigurationa4d0f02ee0a3ce3b
    org.apache.maven.surefire.api.report.RunMode99815bd2f7cf25b8
    org.apache.maven.surefire.api.report.SimpleReportEntrybe57bd60074f466f
    org.apache.maven.surefire.api.stream.AbstractStreamDecoderc51329e6fe95e03f
    org.apache.maven.surefire.api.stream.AbstractStreamDecoder.BufferedStream0e036d9195140045
    org.apache.maven.surefire.api.stream.AbstractStreamDecoder.Memento50fa22818cea4206
    org.apache.maven.surefire.api.stream.AbstractStreamDecoder.Segmentec7b2e9f3dc519b5
    org.apache.maven.surefire.api.stream.AbstractStreamDecoder.StreamReadStatusb28e22fff7af7760
    org.apache.maven.surefire.api.stream.AbstractStreamEncoder5b9d2cab05438b39
    org.apache.maven.surefire.api.stream.SegmentTypea352bcb443bb6539
    org.apache.maven.surefire.api.suite.RunResult14b135b9dcad68f4
    org.apache.maven.surefire.api.testset.DirectoryScannerParameters011c1405154cf543
    org.apache.maven.surefire.api.testset.IncludedExcludedPatternse9dcd696bf90972f
    org.apache.maven.surefire.api.testset.ResolvedTest89f52bebbeb73147
    org.apache.maven.surefire.api.testset.ResolvedTest.ClassMatcherc5f953b9f15d7ab4
    org.apache.maven.surefire.api.testset.ResolvedTest.MethodMatcher7b60e64bb228414b
    org.apache.maven.surefire.api.testset.ResolvedTest.Type2a3fe66966797e51
    org.apache.maven.surefire.api.testset.RunOrderParameters54e3b7abf0f0a29a
    org.apache.maven.surefire.api.testset.TestArtifactInfo534706d1cf843371
    org.apache.maven.surefire.api.testset.TestListResolverdf95312288764ee2
    org.apache.maven.surefire.api.testset.TestRequestc693581994b610fb
    org.apache.maven.surefire.api.util.CloseableIterator1bb59460a90e1562
    org.apache.maven.surefire.api.util.DefaultRunOrderCalculator2be55f855ffc9c23
    org.apache.maven.surefire.api.util.DefaultScanResult3abe973f1a2038a4
    org.apache.maven.surefire.api.util.ReflectionUtils463b61419dafb4bc
    org.apache.maven.surefire.api.util.RunOrdera5c43ed7ff239d28
    org.apache.maven.surefire.api.util.TestsToRun1a59fa62362c2dd4
    org.apache.maven.surefire.api.util.TestsToRun.ClassesIterator3054f1187d144893
    org.apache.maven.surefire.api.util.internal.AbstractNoninterruptibleReadableChannelb76efd5ee4f6a78a
    org.apache.maven.surefire.api.util.internal.AbstractNoninterruptibleWritableChannel7b40a9206100f626
    org.apache.maven.surefire.api.util.internal.Channelsa28ebb2dc3d003c6
    org.apache.maven.surefire.api.util.internal.Channels.31911457c5208109a
    org.apache.maven.surefire.api.util.internal.Channels.461df49d28956b732
    org.apache.maven.surefire.api.util.internal.ClassMethod831eee1f29d6b004
    org.apache.maven.surefire.api.util.internal.DaemonThreadFactory4065ee5e2ad99385
    org.apache.maven.surefire.api.util.internal.DaemonThreadFactory.NamedThreadFactory0dc63f2f250c8f58
    org.apache.maven.surefire.api.util.internal.DumpFileUtils260268350116ea1a
    org.apache.maven.surefire.api.util.internal.ImmutableMapc8d76b0bb433e1e6
    org.apache.maven.surefire.api.util.internal.ImmutableMap.Node61855d8450e86cb5
    org.apache.maven.surefire.api.util.internal.ObjectUtilsd0584b88701e9b97
    org.apache.maven.surefire.api.util.internal.TestClassMethodNameUtilsa01f540094a55e8c
    org.apache.maven.surefire.booter.AbstractPathConfiguration2ad3d057ec281500
    org.apache.maven.surefire.booter.BooterDeserializera2a1a3132d868a74
    org.apache.maven.surefire.booter.ClassLoaderConfiguration5bafac5e09ac0782
    org.apache.maven.surefire.booter.Classpath81f738f937cf4b38
    org.apache.maven.surefire.booter.ClasspathConfigurationb651758fedc3de2d
    org.apache.maven.surefire.booter.CommandReader440cf8805d3444be
    org.apache.maven.surefire.booter.CommandReader.16e995a711f46e676
    org.apache.maven.surefire.booter.CommandReader.CommandRunnable7f7bfee61ebca85e
    org.apache.maven.surefire.booter.ForkedBooterff24aeec916b680b
    org.apache.maven.surefire.booter.ForkedBooter.173179ebb6b41b643
    org.apache.maven.surefire.booter.ForkedBooter.3c51baabea2b75554
    org.apache.maven.surefire.booter.ForkedBooter.468ca1df4a9ada348
    org.apache.maven.surefire.booter.ForkedBooter.608fe853c879dd1a6
    org.apache.maven.surefire.booter.ForkedBooter.78cca77fe0fd3c98d
    org.apache.maven.surefire.booter.ForkedBooter.8779c6068c1dac1db
    org.apache.maven.surefire.booter.ForkedBooter.PingScheduler6e83f53202050979
    org.apache.maven.surefire.booter.ForkedNodeArge055a24d27c554f3
    org.apache.maven.surefire.booter.PpidChecker921ca312a6f63114
    org.apache.maven.surefire.booter.ProcessCheckerType9c8497621409bb1e
    org.apache.maven.surefire.booter.PropertiesWrapperc4362cb430c125af
    org.apache.maven.surefire.booter.ProviderConfiguration84eb716577efc3a7
    org.apache.maven.surefire.booter.StartupConfigurationf457135a627728a6
    org.apache.maven.surefire.booter.SystemPropertyManager0446c7c116836016
    org.apache.maven.surefire.booter.TypeEncodedValue1b039936542eee72
    org.apache.maven.surefire.booter.spi.AbstractMasterProcessChannelProcessorFactoryc30b5b062f066468
    org.apache.maven.surefire.booter.spi.AbstractMasterProcessChannelProcessorFactory.1644e111f23817fd3
    org.apache.maven.surefire.booter.spi.AbstractMasterProcessChannelProcessorFactory.247b08c480603fa8a
    org.apache.maven.surefire.booter.spi.CommandChannelDecoder65f2965c86411193
    org.apache.maven.surefire.booter.spi.EventChannelEncoder114071f00780f71e
    org.apache.maven.surefire.booter.spi.EventChannelEncoder.StackTracee7231bc2c7014c40
    org.apache.maven.surefire.booter.spi.LegacyMasterProcessChannelProcessorFactoryb54085754461a0d1
    org.apache.maven.surefire.booter.spi.SurefireMasterProcessChannelProcessorFactory132a213649249d64
    org.apache.maven.surefire.booter.stream.CommandDecoder0d40efcc428f82e2
    org.apache.maven.surefire.booter.stream.CommandDecoder.19d88d04fa41adab4
    org.apache.maven.surefire.booter.stream.EventEncoder4bdbe84daf58c435
    org.apache.maven.surefire.common.junit3.JUnit3TestCheckerbbad74a9945614a4
    org.apache.maven.surefire.common.junit4.JUnit4ProviderUtilfa2afc137d4ba7b3
    org.apache.maven.surefire.common.junit4.JUnit4Reflector23b83cd8942b7f95
    org.apache.maven.surefire.common.junit4.JUnit4RunListenerd8d5e5130dcf4b9b
    org.apache.maven.surefire.common.junit4.JUnit4RunListenerFactoryccfd1352f097d7b8
    org.apache.maven.surefire.common.junit4.JUnit4TestCheckerf6cf831ca6699119
    org.apache.maven.surefire.common.junit4.JUnitTestFailureListener03f07d8828d7aca4
    org.apache.maven.surefire.common.junit4.Notifiera943b086c230616e
    org.apache.maven.surefire.junit4.JUnit4Provider5d773610b092faec
    org.apache.maven.surefire.junit4.JUnit4Provider.1e7b4bc1546ba10b9
    org.apache.maven.surefire.report.ClassMethodIndexer8b31a053539323b7
    org.apache.maven.surefire.shared.lang3.JavaVersion4e21c3be19560aac
    org.apache.maven.surefire.shared.lang3.SystemUtilse5eafc9ce14dcbec
    org.apache.maven.surefire.shared.lang3.math.NumberUtils11e46630af73f131
    org.apache.maven.surefire.shared.utils.StringUtilsabd8480c7152bf46
    org.apache.maven.surefire.shared.utils.cli.ShutdownHookUtils011b23cd829ec86c
    org.apache.tools.ant.AntClassLoader72a8f9d81db96ce3
    org.apache.tools.ant.AntClassLoader.ResourceEnumeration220c52a881833c45
    org.apache.tools.ant.AntTypeDefinition6db55d84c45e276c
    org.apache.tools.ant.BuildEvent3d805ce99d00e1eb
    org.apache.tools.ant.BuildExceptionabe8753d03f38930
    org.apache.tools.ant.BuildFileRulefc3c590bd85d9d50
    org.apache.tools.ant.BuildFileRule.AntOutputStreamd960e83c1bb6ff2f
    org.apache.tools.ant.BuildFileRule.AntTestListenerf34b841765036d1d
    org.apache.tools.ant.ComponentHelpera215cf0f38e8c4d9
    org.apache.tools.ant.DefaultDefinitionsfee1c441a16bec30
    org.apache.tools.ant.DirectoryScannerd670d506f930b160
    org.apache.tools.ant.IntrospectionHelper4ff85d03c782f6a6
    org.apache.tools.ant.IntrospectionHelper.11f55d0d94d51c269b
    org.apache.tools.ant.IntrospectionHelper.1492959aa6246bbf8c
    org.apache.tools.ant.IntrospectionHelper.16b358e2c96e543c78
    org.apache.tools.ant.IntrospectionHelper.18911db09ad9393ae3
    org.apache.tools.ant.IntrospectionHelper.63ca5f499b00d3cc0
    org.apache.tools.ant.IntrospectionHelper.706d1e80dc11a7769
    org.apache.tools.ant.IntrospectionHelper.9ad9ba5ecfa916c14
    org.apache.tools.ant.IntrospectionHelper.AddNestedCreatora49fe394201ba2f3
    org.apache.tools.ant.IntrospectionHelper.AttributeSetterd94fec1b34398700
    org.apache.tools.ant.IntrospectionHelper.CreateNestedCreator2f3fd0398cdaf953
    org.apache.tools.ant.IntrospectionHelper.Creator2e7001d75b3fcd31
    org.apache.tools.ant.IntrospectionHelper.MethodAndObject2d18ac977aa5ea19
    org.apache.tools.ant.IntrospectionHelper.NestedCreator9267af3714b10c87
    org.apache.tools.ant.Location2c0829c010c60270
    org.apache.tools.ant.Mainc9b23c6a2a540884
    org.apache.tools.ant.Projectf2bc1e2a7ec75efd
    org.apache.tools.ant.Project.AntRefTable13a053faf9cde943
    org.apache.tools.ant.ProjectComponentaf465dfb35253266
    org.apache.tools.ant.ProjectHelperab1906e5aff9a52a
    org.apache.tools.ant.ProjectHelperRepositorycaf41e5dfbad25bb
    org.apache.tools.ant.PropertyHelperaaa8b30e220e994c
    org.apache.tools.ant.PropertyHelper.14445f70bb8a90859
    org.apache.tools.ant.PropertyHelper.221a2527c74737b5c
    org.apache.tools.ant.RuntimeConfigurablebcb97997b542df11
    org.apache.tools.ant.RuntimeConfigurable.AttributeComponentInformationce37e1d9242c06dd
    org.apache.tools.ant.Target35f2e7e5bc716cfa
    org.apache.tools.ant.Task5c2a45c1874d85b1
    org.apache.tools.ant.UnknownElement1dbd9ad478f6b2f8
    org.apache.tools.ant.dispatch.DispatchUtilsb5db4482828525ab
    org.apache.tools.ant.helper.AntXMLContext63faa89bb83421d2
    org.apache.tools.ant.helper.ProjectHelper238b8031d6e6d0d04
    org.apache.tools.ant.helper.ProjectHelper2.AntHandlerbf76a26d1c518577
    org.apache.tools.ant.helper.ProjectHelper2.ElementHandlere782c4b4515e41bd
    org.apache.tools.ant.helper.ProjectHelper2.MainHandler81d10de1ce7911c4
    org.apache.tools.ant.helper.ProjectHelper2.ProjectHandler2fba1d0c511fabc6
    org.apache.tools.ant.helper.ProjectHelper2.RootHandlerfe076780ed07b66f
    org.apache.tools.ant.helper.ProjectHelper2.TargetHandler180c5a36701379cd
    org.apache.tools.ant.input.DefaultInputHandler8bc48f7207fe09df
    org.apache.tools.ant.launch.Locator0301b390c862c776
    org.apache.tools.ant.property.LocalProperties727ffb131796e1fb
    org.apache.tools.ant.property.LocalPropertyStack38e1aeae8d73b57d
    org.apache.tools.ant.property.ParseProperties3e4d594570e23ab7
    org.apache.tools.ant.taskdefs.Antlib53059597da521607
    org.apache.tools.ant.taskdefs.AntlibDefinition26ab6e288f509814
    org.apache.tools.ant.taskdefs.Componentdefbab4fcc868793686
    org.apache.tools.ant.taskdefs.DefBase9b5c9dc7309df9a0
    org.apache.tools.ant.taskdefs.Definer35463a652c096783
    org.apache.tools.ant.taskdefs.Definer.OnError938a463b0b6b47bc
    org.apache.tools.ant.taskdefs.ImportTask6eaec663047a78a2
    org.apache.tools.ant.taskdefs.Taskdefa177315002919daf
    org.apache.tools.ant.taskdefs.Typedefa2839dae10d4eaea
    org.apache.tools.ant.taskdefs.condition.Os5178ac30e5f34493
    org.apache.tools.ant.types.AbstractFileSet9b351418db6605a3
    org.apache.tools.ant.types.DataTypec689cda9edb06993
    org.apache.tools.ant.types.DirSet31189f5b7f487b43
    org.apache.tools.ant.types.EnumeratedAttribute451cbf52555a9234
    org.apache.tools.ant.types.FileList85ce9ed3a27f0ac0
    org.apache.tools.ant.types.FileSet9ead433688f3cb1f
    org.apache.tools.ant.types.FilterSetff0e69c642a2350e
    org.apache.tools.ant.types.FilterSet.OnMissing46f114a1392d50b1
    org.apache.tools.ant.types.FilterSetCollection65fda227a6b7f8cb
    org.apache.tools.ant.types.LogLevel94343e5108ead342
    org.apache.tools.ant.types.PatternSetc7970a94cea03c51
    org.apache.tools.ant.types.PatternSet.NameEntrycb5ddce186edd6cf
    org.apache.tools.ant.types.Resourcecc86cd36bba182de
    org.apache.tools.ant.types.resources.FailFast2f2c4545eb4518d0
    org.apache.tools.ant.types.resources.FileResourcedb551b74c9a5cd6d
    org.apache.tools.ant.types.resources.FileResourceIterator573c8d7c942bedab
    org.apache.tools.ant.types.resources.Resources313c510587f674d1
    org.apache.tools.ant.types.resources.Resources.1266c6742bb2a14b6
    org.apache.tools.ant.types.resources.Resources.MyCollection0068807c1a201be9
    org.apache.tools.ant.types.resources.Resources.MyIteratorda94105b357f554a
    org.apache.tools.ant.types.resources.URLResource8e958ada7661d8c9
    org.apache.tools.ant.types.selectors.SelectorUtils9ba0732b93466fe5
    org.apache.tools.ant.types.selectors.TokenizedPath2051258fe7bb4b4b
    org.apache.tools.ant.types.selectors.TokenizedPattern9920e75654800766
    org.apache.tools.ant.util.ClasspathUtils2e9d37664feaa2d1
    org.apache.tools.ant.util.ClasspathUtils.Delegate4cb3354c9e98cb0a
    org.apache.tools.ant.util.DeweyDecimaldb95f5c7395c2b40
    org.apache.tools.ant.util.FileUtils6956b4c02624343a
    org.apache.tools.ant.util.JAXPUtilsb187847376024f28
    org.apache.tools.ant.util.JavaEnvUtils4aaea73a2a381b9d
    org.apache.tools.ant.util.LoaderUtilse8148f8a0ef559ab
    org.apache.tools.ant.util.ProcessUtil3b17f70013fd129e
    org.apache.tools.ant.util.StreamUtils8eb1c45262c1c4bf
    org.apache.tools.ant.util.VectorSet635732bfbb607abd
    org.apache.tools.zip.AbstractUnicodeExtraField439ad1925593d547
    org.apache.tools.zip.AsiExtraFieldeef2fada8e25f0a9
    org.apache.tools.zip.ExtraFieldUtilscb115ee12978c5ec
    org.apache.tools.zip.ExtraFieldUtils.UnparseableExtraFieldef33b9e2bff55cf9
    org.apache.tools.zip.FallbackZipEncoding78452827bd9c23d9
    org.apache.tools.zip.GeneralPurposeBit86c72b594068c6c9
    org.apache.tools.zip.JarMarker1044186da455a4af
    org.apache.tools.zip.UnicodeCommentExtraField9cdff08906e5f049
    org.apache.tools.zip.UnicodePathExtraField47a23ed6d7508c3f
    org.apache.tools.zip.Zip64ExtendedInformationExtraField2b71b256bec21d02
    org.apache.tools.zip.ZipEncodingHelpere80e5c88eb7284f2
    org.apache.tools.zip.ZipEncodingHelper.SimpleEncodingHoldercc7e2516bfc4dac8
    org.apache.tools.zip.ZipEntry26ab4b07e7637317
    org.apache.tools.zip.ZipFile72883326241df8ea
    org.apache.tools.zip.ZipFile.1a00c0f0595abd7b1
    org.apache.tools.zip.ZipFile.BoundedInputStream9f15cdc890d0732b
    org.apache.tools.zip.ZipFile.Entrye964e086f589d0f7
    org.apache.tools.zip.ZipFile.OffsetEntry346deb237e73ccc2
    org.apache.tools.zip.ZipLong3717840b323d5591
    org.apache.tools.zip.ZipOutputStreamb20685eacc44a180
    org.apache.tools.zip.ZipShort4113085e8f62493d
    org.apache.tools.zip.ZipUtil98b2718db48c2532
    org.apache.velocity.Templatec72326f66c085d1e
    org.apache.velocity.VelocityContext8ed590292b87a588
    org.apache.velocity.app.VelocityEngine9c939265034e0ab2
    org.apache.velocity.app.event.EventCartridgeded346c7951f1697
    org.apache.velocity.app.event.EventHandlerUtil5ac88b357fcf707c
    org.apache.velocity.context.AbstractContext7c2c19e800108a7b
    org.apache.velocity.context.InternalContextAdapterImpl7718d6c7d6f01429
    org.apache.velocity.context.InternalContextBase10fb0c7430dc4018
    org.apache.velocity.runtime.ParserConfigurationbcd56b6221db3c90
    org.apache.velocity.runtime.ParserPoolImpl2a25b051a66adee1
    org.apache.velocity.runtime.RuntimeConstants.SpaceGobbling1008e6924d8f311e
    org.apache.velocity.runtime.RuntimeInstancef8e2f14c6655a562
    org.apache.velocity.runtime.VelocimacroFactory1e9ea54492c3b0d1
    org.apache.velocity.runtime.VelocimacroManager01dfc0b62e0d84ab
    org.apache.velocity.runtime.VelocimacroManager.MacroEntry26d330eaf2fd31ac
    org.apache.velocity.runtime.directive.Block0dc2ea33bfdf1c8e
    org.apache.velocity.runtime.directive.Break9c4c04e7b7293d93
    org.apache.velocity.runtime.directive.Define2da211af6dc4adf2
    org.apache.velocity.runtime.directive.Directive114c6db128f09cfd
    org.apache.velocity.runtime.directive.Evaluatef1de1a698437317b
    org.apache.velocity.runtime.directive.Foreach795e04f024e903bd
    org.apache.velocity.runtime.directive.ForeachScoped638aec353b474e0
    org.apache.velocity.runtime.directive.Include38dbf0ece5fd3ed8
    org.apache.velocity.runtime.directive.InputBase7ab262413b0572f5
    org.apache.velocity.runtime.directive.Macro44425fcba4519651
    org.apache.velocity.runtime.directive.Macro.MacroArga252d6a716c1fbfc
    org.apache.velocity.runtime.directive.Parse73cd754f962b4f40
    org.apache.velocity.runtime.directive.RuntimeMacro11282b3ae9496214
    org.apache.velocity.runtime.directive.Scopedd64d33559d0c3b4
    org.apache.velocity.runtime.directive.Stop4a8d463f36f9ba3a
    org.apache.velocity.runtime.directive.Stop.146208084d16b60f9
    org.apache.velocity.runtime.directive.StopCommand13468231892e1528
    org.apache.velocity.runtime.directive.VelocimacroProxy42117ecd94da7939
    org.apache.velocity.runtime.parser.LogContext8bd2ab8c45781ea3
    org.apache.velocity.runtime.parser.LogContext.17793b8711118b163
    org.apache.velocity.runtime.parser.Parsere4801b5bb37f6031
    org.apache.velocity.runtime.parser.StandardParser8eaabc4fd8395c5d
    org.apache.velocity.runtime.parser.StandardParser.JJCalls1cd79adce175f30b
    org.apache.velocity.runtime.parser.StandardParser.LookaheadSuccess217f6689d0bd148c
    org.apache.velocity.runtime.parser.StandardParserTokenManagerb513a058a5d25bce
    org.apache.velocity.runtime.parser.StandardParserTokenManager.ParserStatee58c59d922a2d1c0
    org.apache.velocity.runtime.parser.Token035daceb00979634
    org.apache.velocity.runtime.parser.VelocityCharStream0fdd7275e5a6d511
    org.apache.velocity.runtime.parser.node.ASTAddNodef7a360fd0ceeb41f
    org.apache.velocity.runtime.parser.node.ASTAndNodecd14b0b2bfc9c2ef
    org.apache.velocity.runtime.parser.node.ASTBinaryOperator8c2ae99e76bfc2d2
    org.apache.velocity.runtime.parser.node.ASTBlock7426c59d7df1a96a
    org.apache.velocity.runtime.parser.node.ASTCommentb6f6e96d43d8ba8f
    org.apache.velocity.runtime.parser.node.ASTComparisonNode7352bd9088770a83
    org.apache.velocity.runtime.parser.node.ASTDirectivebdd000d27e79daab
    org.apache.velocity.runtime.parser.node.ASTEQNodea05682a5af313370
    org.apache.velocity.runtime.parser.node.ASTElseIfStatementcd01606457a3b636
    org.apache.velocity.runtime.parser.node.ASTElseStatement10b9ce434f126173
    org.apache.velocity.runtime.parser.node.ASTExpressione191b0102927df45
    org.apache.velocity.runtime.parser.node.ASTGENodedf404befde820934
    org.apache.velocity.runtime.parser.node.ASTGTNode429c741b43e4423e
    org.apache.velocity.runtime.parser.node.ASTIdentifier681e842674a46467
    org.apache.velocity.runtime.parser.node.ASTIfStatement39cb3d2cbbef8dff
    org.apache.velocity.runtime.parser.node.ASTIntegerLiterale5e50c14ab3e4acc
    org.apache.velocity.runtime.parser.node.ASTLTNode23c5285841d49ed9
    org.apache.velocity.runtime.parser.node.ASTLogicalOperatorfa236397c36b4771
    org.apache.velocity.runtime.parser.node.ASTMathNode22d06eed949108ef
    org.apache.velocity.runtime.parser.node.ASTMethodcc1d6a841b9eec04
    org.apache.velocity.runtime.parser.node.ASTMethod.MethodCacheKeyaf9e51370239a9c4
    org.apache.velocity.runtime.parser.node.ASTMulNode4b3194324ef888d5
    org.apache.velocity.runtime.parser.node.ASTNENode7b01e9808eb0a0ab
    org.apache.velocity.runtime.parser.node.ASTNotNodea51f40cc97c36424
    org.apache.velocity.runtime.parser.node.ASTOrNoded0e443267103c4b8
    org.apache.velocity.runtime.parser.node.ASTReferencec9c9373aa8849276
    org.apache.velocity.runtime.parser.node.ASTSetDirective55fd0a5c9cb9c430
    org.apache.velocity.runtime.parser.node.ASTStringLiteral2f67a986ad5a26f3
    org.apache.velocity.runtime.parser.node.ASTText389346874b271430
    org.apache.velocity.runtime.parser.node.ASTTextblocke99e39fdf682a6db
    org.apache.velocity.runtime.parser.node.ASTTrued1f94f133f80edab
    org.apache.velocity.runtime.parser.node.ASTWord66d75ec7205a4907
    org.apache.velocity.runtime.parser.node.ASTprocessde4ee2191c1ff63c
    org.apache.velocity.runtime.parser.node.AbstractExecutora0e3576d80f60b4f
    org.apache.velocity.runtime.parser.node.BooleanPropertyExecutorfd4eb69c74029461
    org.apache.velocity.runtime.parser.node.GetExecutor2a235ba3f58955fd
    org.apache.velocity.runtime.parser.node.JJTStandardParserState47563f73993d088b
    org.apache.velocity.runtime.parser.node.MapGetExecutor7461d24a11538750
    org.apache.velocity.runtime.parser.node.MathUtils36743f4dc547ee5e
    org.apache.velocity.runtime.parser.node.NodeUtils3c8679658a17f207
    org.apache.velocity.runtime.parser.node.PropertyExecutor94d607bd85fcb1de
    org.apache.velocity.runtime.parser.node.SimpleNode9462478b614a02dd
    org.apache.velocity.runtime.resource.Resourcee1da0d5e9e84f4f3
    org.apache.velocity.runtime.resource.ResourceCacheImpl7ec381111390acb1
    org.apache.velocity.runtime.resource.ResourceCacheImpl.LRUMap25cb4289e6f518c8
    org.apache.velocity.runtime.resource.ResourceManagerImpla50249c3c61edcd2
    org.apache.velocity.runtime.resource.loader.FileResourceLoader61d50ebf2ba17760
    org.apache.velocity.runtime.resource.loader.ResourceLoader8fe06021f04e44d1
    org.apache.velocity.runtime.resource.loader.ResourceLoaderFactory184d14a10476fd52
    org.apache.velocity.shaded.commons.io.FilenameUtilsd4f97baf766e1dee
    org.apache.velocity.util.ClassUtils0740c02f55974cb5
    org.apache.velocity.util.DeprecationAwareExtProperties27d5b5c05e6a6fec
    org.apache.velocity.util.DuckTypee50af2bb413f166d
    org.apache.velocity.util.DuckType.Typesbae2a6708b77175a
    org.apache.velocity.util.ExtPropertiesea3b60c6666140fe
    org.apache.velocity.util.ExtProperties.PropertiesReaderb618a7014140c253
    org.apache.velocity.util.SimplePool4fae8cabf20b16fc
    org.apache.velocity.util.introspection.ClassFieldMap08c07ae2515b1084
    org.apache.velocity.util.introspection.ClassMape8aa0059d0c24712
    org.apache.velocity.util.introspection.ClassMap.MethodCachee879a333bfa71058
    org.apache.velocity.util.introspection.Info7b0899deac2cfcb4
    org.apache.velocity.util.introspection.IntrospectionCacheDatada4e3622ea8bd189
    org.apache.velocity.util.introspection.IntrospectionUtils5600b482789873c7
    org.apache.velocity.util.introspection.Introspectorea0eb025828bb25b
    org.apache.velocity.util.introspection.IntrospectorBasea9523d1d3d9ec81c
    org.apache.velocity.util.introspection.IntrospectorCachecf24bd3e12cff77b
    org.apache.velocity.util.introspection.MethodMap5bc43b57e0eb708b
    org.apache.velocity.util.introspection.MethodMap.Matche9df9a21d7dc07e3
    org.apache.velocity.util.introspection.TypeConversionHandlerImpl2739aba645c510f3
    org.apache.velocity.util.introspection.UberspectImpl9ff3662a2a574180
    org.apache.velocity.util.introspection.UberspectImpl.VelGetterImpl600761c1eb266a6b
    org.apache.velocity.util.introspection.UberspectImpl.VelMethodImpla1520f1ed8867aa3
    org.h2.Driver1f044461dbd822a6
    org.h2.api.ErrorCode840ef5ab229bbf49
    org.h2.api.IntervalQualifier246aae6a9c36f2b7
    org.h2.api.IntervalQualifier.1bf97f880f3318a4a
    org.h2.command.Commandf15559eee5a4b67d
    org.h2.command.CommandContainer7f1438019fc91d17
    org.h2.command.CommandListfddd5691a587a13e
    org.h2.command.Parser2bb8f9e5a4a70b2e
    org.h2.command.Parser.1cb4488aad45d295c
    org.h2.command.Parser.NullConstraintType1f57cffeb49c7540
    org.h2.command.Prepared2afc45f364116e7c
    org.h2.command.Token9041f63f56392fb0
    org.h2.command.Token.CharacterStringTokendfb98b3bd2551690
    org.h2.command.Token.EndOfInputTokence0acd08cca36d96
    org.h2.command.Token.IdentifierToken96fa97b12ec39d26
    org.h2.command.Token.IntegerToken706265d29c73ee40
    org.h2.command.Token.KeywordToken89175f50cf553a38
    org.h2.command.Token.LiteralToken55ac31d811877860
    org.h2.command.Token.ParameterTokena1dbfddba95ea8c7
    org.h2.command.Tokenizer43f9aad9c9c53267
    org.h2.command.ddl.AlterTable7aa39625dc5b307b
    org.h2.command.ddl.AlterTableAddConstraint6b675b8c9348065a
    org.h2.command.ddl.AlterTableAlterColumnc901e4c8571def2f
    org.h2.command.ddl.AlterTableRenameColumn804458f1e4fad270
    org.h2.command.ddl.Analyzed44dcecb13e7b816
    org.h2.command.ddl.Analyze.SelectivityData9d2bf75f8d5ea568
    org.h2.command.ddl.CommandWithColumns5d9315b33ee69573
    org.h2.command.ddl.CreateFunctionAliasd2883f3f10fd8091
    org.h2.command.ddl.CreateIndexf31feb6e3685ea46
    org.h2.command.ddl.CreateSequencef0b8c2a1c5e12476
    org.h2.command.ddl.CreateTablee7275c1615ebec1c
    org.h2.command.ddl.CreateTableData3569f1ca31e74768
    org.h2.command.ddl.CreateUser2695390fae1d1c8e
    org.h2.command.ddl.DefineCommandcdddc9c95e413810
    org.h2.command.ddl.DropTablec459b4654874bc90
    org.h2.command.ddl.DropTable.SchemaAndTable6a855d249c69374b
    org.h2.command.ddl.SchemaCommand37562b22aa4d46eb
    org.h2.command.ddl.SchemaOwnerCommandd933ca320cd38b16
    org.h2.command.ddl.SequenceOptionsac62424e14dc3d1f
    org.h2.command.dml.CommandWithValuesfe71d1b4348da45a
    org.h2.command.dml.DataChangeStatement33e9a83e6aa9a2b0
    org.h2.command.dml.FilteredDataChangeStatementd1f06c41064db97d
    org.h2.command.dml.Insert92b352a399a37d13
    org.h2.command.dml.NoOperation45224ad69233db9a
    org.h2.command.dml.Setd21842a092a85228
    org.h2.command.dml.SetClauseList8d7af84401b9e26f
    org.h2.command.dml.SetClauseList.SetSimple8f716343f11c7e82
    org.h2.command.dml.SetClauseList.UpdateAction1eb72da8fe8e5057
    org.h2.command.dml.SetTypes016d945a5f04106d
    org.h2.command.dml.TransactionCommand3d756d024aef2b4e
    org.h2.command.dml.Update1bc1970970fb06be
    org.h2.command.query.AllColumnsForPlan450f809346d1808b
    org.h2.command.query.Optimizer46f986c336d6a3f6
    org.h2.command.query.Queryb4b2ce90b74182d5
    org.h2.command.query.Query.OffsetFetch19fb6b1d83396f8a
    org.h2.command.query.QueryOrderBy23777a00278ca3a2
    org.h2.command.query.Selectf5dc2c718161fa97
    org.h2.command.query.Select.LazyResultGroupSortedc599665435c0d17c
    org.h2.command.query.Select.LazyResultQueryFlat85da5085987fa500
    org.h2.command.query.Select.LazyResultSelectbccfb20cef56dd5e
    org.h2.command.query.SelectGroups31af3273b4e64a1c
    org.h2.command.query.SelectGroups.Groupede4db5aab5499ea40
    org.h2.compress.CompressLZF4b905f980eac239a
    org.h2.constraint.Constraintf020b750ed00e5a4
    org.h2.constraint.Constraint.Type22cd7378e3a10d3f
    org.h2.constraint.ConstraintActionType5628afb57ab6e865
    org.h2.constraint.ConstraintReferential2a77c026aeb8aab4
    org.h2.constraint.ConstraintUniqued487c96b0517f1bf
    org.h2.engine.Commentaeb6905a57d7cbf6
    org.h2.engine.ConnectionInfo343d6a137cb5b573
    org.h2.engine.Database83e12c5a8547f3c5
    org.h2.engine.DbObjecta1d54de7a70f69aa
    org.h2.engine.DbSettingsc16ca39af0b52094
    org.h2.engine.Engine8d1bef8b32a84ba9
    org.h2.engine.Engine.DatabaseHolderf3e1da4d84fad7c4
    org.h2.engine.IsolationLeveldc3d1e0f909bb346
    org.h2.engine.MetaRecord29bceca9a65575ba
    org.h2.engine.Moded125cf383981bd10
    org.h2.engine.Mode.CharPadding8cf8ff3cbc571739
    org.h2.engine.Mode.ExpressionNames88384897021057f2
    org.h2.engine.Mode.ModeEnuma38cd43a6cd506a3
    org.h2.engine.Mode.UniqueIndexNullsHandling502dde04362c0a05
    org.h2.engine.Mode.ViewExpressionNames5d52fc04ceb58107
    org.h2.engine.OnExitDatabaseCloserbf4571800d7637b7
    org.h2.engine.RightOwnerc6021e43f64032ac
    org.h2.engine.Role094194bad60e1b75
    org.h2.engine.Session64d6d72ad82917c2
    org.h2.engine.SessionLocal51a58f8ace245808
    org.h2.engine.SessionLocal.155f9583f8325b772
    org.h2.engine.SessionLocal.Savepoint781800cec7d35e7d
    org.h2.engine.SessionLocal.State1a3f8ed61a9b559b
    org.h2.engine.SessionRemotef37ba123636968a3
    org.h2.engine.Settingc86b1d51f590b2b5
    org.h2.engine.SettingsBase47dcfc6eb02612ad
    org.h2.engine.SysProperties738fc14326e6697a
    org.h2.engine.User6642d70796bd346f
    org.h2.expression.Alias47aad16dec6f33d9
    org.h2.expression.Expressionbb4614abe3a7154a
    org.h2.expression.ExpressionColumnf3c03411ffc0fd1f
    org.h2.expression.ExpressionVisitorcabab1ad46664b16
    org.h2.expression.Operation0b942a11663e00451
    org.h2.expression.Parameter9867f0e8942380a2
    org.h2.expression.ValueExpressionb0947d3b406882f5
    org.h2.expression.Wildcardd50b73091423744c
    org.h2.expression.aggregate.AbstractAggregatea1557954a9f0e0fd
    org.h2.expression.aggregate.Aggregatede37080964c8db3d
    org.h2.expression.aggregate.Aggregate.128b7d61d336b32ba
    org.h2.expression.aggregate.AggregateType1f12aa2df974eb3f
    org.h2.expression.analysis.DataAnalysisOperation0b8d4789dc81b499
    org.h2.expression.analysis.WindowFunctionType9edb2feb98f39fd3
    org.h2.expression.condition.Comparisonab7a87af7f1330e7
    org.h2.expression.condition.Conditionbb2da5a03aff382e
    org.h2.expression.condition.ConditionAndOr2634baba9064882c
    org.h2.expression.condition.ConditionAndOrN0491a0d6c6b89083
    org.h2.expression.condition.ConditionAndOrN.1cfd803b14c295199
    org.h2.expression.condition.ConditionIne017bd7adb1fec4c
    org.h2.expression.condition.ConditionInConstantSetaddc1ef3077dfa02
    org.h2.expression.function.BuiltinFunctions78766f5d309e1eec
    org.h2.index.Index1437895d5bdaf159
    org.h2.index.Index.1a3373b1a421e99ac
    org.h2.index.IndexCondition0e9d41fbd2afa93d
    org.h2.index.IndexCursor21f3911a0d80a7b2
    org.h2.index.IndexTypedb20d5927a484411
    org.h2.index.SingleRowCursor6f2da13a23aba782
    org.h2.jdbc.JdbcConnectionaa9112f98496def0
    org.h2.jdbc.JdbcDatabaseMetaData4b65250c88adaaa7
    org.h2.jdbc.JdbcPreparedStatement0aaec231f77e8af1
    org.h2.jdbc.JdbcResultSet6616d9dd2dd82d4f
    org.h2.jdbc.JdbcSQLSyntaxErrorException2bd1ec0ceace2a26
    org.h2.jdbc.JdbcStatementdf8e9ff4d1b735bd
    org.h2.jdbc.meta.DatabaseMeta379d6005c31973cb
    org.h2.jdbc.meta.DatabaseMetaLocal9825c2b1e6cec520
    org.h2.jdbc.meta.DatabaseMetaLocalBasea42ca75579848556
    org.h2.message.DbException3f0e60c471f39e98
    org.h2.message.Trace491f3dad3147c898
    org.h2.message.TraceObjectc9beab9cd4384a9d
    org.h2.message.TraceSystemaa8bb0c0af8cc8c0
    org.h2.mode.DefaultNullOrderingd83aa2fead8d7efe
    org.h2.mode.ModeFunction03b3e1d15a53837f
    org.h2.mvstore.Chunk2b8a58455a4c2e7c
    org.h2.mvstore.Chunk.PositionComparator717579c9b8e61fcb
    org.h2.mvstore.Cursor5d963e5e8ab0be55
    org.h2.mvstore.CursorPosd146fb9483aa8712
    org.h2.mvstore.DataUtils6f9e8b0e67603e41
    org.h2.mvstore.FileStore4d01e40aea5428e5
    org.h2.mvstore.FreeSpaceBitSet55db07b87d11e2d4
    org.h2.mvstore.MVMap32c3349a2372c157
    org.h2.mvstore.MVMap.48673b0dfdf29edc4
    org.h2.mvstore.MVMap.BasicBuilder12a8106056e3784e
    org.h2.mvstore.MVMap.Builder51c13779e4e1a2de
    org.h2.mvstore.MVMap.Decision2391341a8b4c7da2
    org.h2.mvstore.MVMap.DecisionMaker7fe21a9c95f0236a
    org.h2.mvstore.MVMap.DecisionMaker.159f115a410484a7f
    org.h2.mvstore.MVMap.DecisionMaker.26070fe88d005eac4
    org.h2.mvstore.MVMap.DecisionMaker.3be1c10e28ff6d6ed
    org.h2.mvstore.MVMap.DecisionMaker.4f9827774c99da346
    org.h2.mvstore.MVMap.DecisionMaker.5275afe4d593556c7
    org.h2.mvstore.MVMap.IntValueHolderfb1881f08df938cf
    org.h2.mvstore.MVMap.RewriteDecisionMaker3e5cd264616ca1dc
    org.h2.mvstore.MVStore4fc94bbd472340df
    org.h2.mvstore.MVStore.BackgroundWriterThread5e4fe6f9b6650f62
    org.h2.mvstore.MVStore.Builder22b94348c270ef84
    org.h2.mvstore.MVStore.RemovedPageInfo31c493fb15eead92
    org.h2.mvstore.MVStore.TxCounterf5c51e97efd048ff
    org.h2.mvstore.MVStoreTool40622d2c8e8a8fae
    org.h2.mvstore.MVStoreTool.GenericDataTypeabe626abc33a1797
    org.h2.mvstore.Page5b32006674721ed6
    org.h2.mvstore.Page.Leaf48d9ba9ba9662350
    org.h2.mvstore.Page.NonLeafbd593ef4c947b0e0
    org.h2.mvstore.Page.PageReferencea98dbb4602145de4
    org.h2.mvstore.RootReference8b29fe57e28baad2
    org.h2.mvstore.StreamStorea4b55720e4fa8a71
    org.h2.mvstore.WriteBufferf98e4194dfd876cb
    org.h2.mvstore.cache.CacheLongKeyLIRS70a2cf8ef58af26d
    org.h2.mvstore.cache.CacheLongKeyLIRS.Configab6a58ffa39c6717
    org.h2.mvstore.cache.CacheLongKeyLIRS.Entry7e7768c4cf65b4d3
    org.h2.mvstore.cache.CacheLongKeyLIRS.Segmentf45e9bdce23b5c6a
    org.h2.mvstore.cache.FilePathCache5cc88ecfa563617d
    org.h2.mvstore.db.LobStorageMapeee0296b34855abd
    org.h2.mvstore.db.LobStorageMap.BlobMeta.Type56a8bacb3e75d3c8
    org.h2.mvstore.db.LobStorageMap.BlobReference.Type9792efaa202c63aa
    org.h2.mvstore.db.MVDelegateIndex75a01b645f8a059b
    org.h2.mvstore.db.MVIndex30888e50fac82aa6
    org.h2.mvstore.db.MVPrimaryIndex4f32c68b3cab90d0
    org.h2.mvstore.db.MVPrimaryIndex.MVStoreCursorca89bfad0dcdffb4
    org.h2.mvstore.db.MVSecondaryIndex9c8fdcc12dea3c65
    org.h2.mvstore.db.MVSecondaryIndex.MVStoreCursor790db329af86c31a
    org.h2.mvstore.db.MVTablef4e542fe436bca97
    org.h2.mvstore.db.MVTable.TraceLockEvent2c65ff40346dd416
    org.h2.mvstore.db.NullValueDataType75887b246893f2df
    org.h2.mvstore.db.RowDataType415fc270aba4597d
    org.h2.mvstore.db.RowDataType.Factory61377fce7824577e
    org.h2.mvstore.db.Store9aa6802d26be5c1b
    org.h2.mvstore.db.ValueDataTypeddc57cbd4a05c876
    org.h2.mvstore.db.ValueDataType.Factory03156b0134bc4c6d
    org.h2.mvstore.tx.CommitDecisionMakerae621b8defbb83c6
    org.h2.mvstore.tx.Record254f69f363a486df
    org.h2.mvstore.tx.Record.Type13c88f7aecc610aa
    org.h2.mvstore.tx.Snapshot7825bd583d62dd0e
    org.h2.mvstore.tx.Transaction75932f57c40d96dc
    org.h2.mvstore.tx.TransactionMapa4908653e3ce2a56
    org.h2.mvstore.tx.TransactionMap.25cafec78b793e40f
    org.h2.mvstore.tx.TransactionMap.CommittedIterator22e94be11a21d3ac
    org.h2.mvstore.tx.TransactionMap.TMIterator80572a0d1caf43d1
    org.h2.mvstore.tx.TransactionMap.UncommittedIterator57853f3b6dbd4d83
    org.h2.mvstore.tx.TransactionMap.ValidationIterator75ff7710527bb148
    org.h2.mvstore.tx.TransactionStore5a88a95b9fb34fd5
    org.h2.mvstore.tx.TransactionStore.TxMapBuilder57e161cc52d96ce9
    org.h2.mvstore.tx.TransactionStore.TxMapBuilder.TMVMapf60431e734e35b1e
    org.h2.mvstore.tx.TxDecisionMaker85e444859e7357fd
    org.h2.mvstore.tx.TxDecisionMaker.LockDecisionMaker7ea1a788b9a585d7
    org.h2.mvstore.tx.TxDecisionMaker.PutIfAbsentDecisionMaker1259ec8cbd8d5f8c
    org.h2.mvstore.tx.VersionedBitSetcb03917e9303dd05
    org.h2.mvstore.tx.VersionedValueCommitted1f63835704f93873
    org.h2.mvstore.tx.VersionedValueTypee90353e002224186
    org.h2.mvstore.tx.VersionedValueType.Factoryb6f7352cd3439a49
    org.h2.mvstore.tx.VersionedValueUncommitted5871ba85ec76be11
    org.h2.mvstore.type.BasicDataType21b8242aa76782c6
    org.h2.mvstore.type.ByteArrayDataTypee926b9099661c292
    org.h2.mvstore.type.LongDataTypea03799f8c42a57d4
    org.h2.mvstore.type.MetaType1b436879079fb452
    org.h2.mvstore.type.ObjectDataType0579ed66fbb3a9d1
    org.h2.mvstore.type.ObjectDataType.AutoDetectDataTyped93d15cbc56bc2c0
    org.h2.mvstore.type.ObjectDataType.NullType9b8599d75350eb1b
    org.h2.mvstore.type.StringDataType4997f0a656a9b7fc
    org.h2.result.DefaultRowa9aef564d7a9fe69
    org.h2.result.FetchedResult2008c917d16b1cc3
    org.h2.result.LazyResult432ec92435f96622
    org.h2.result.LocalResult9de4335bee1fec76
    org.h2.result.ResultWithGeneratedKeys56dd718df0035863
    org.h2.result.Rowe004551f934d55a4
    org.h2.result.RowFactory301cd649330026d4
    org.h2.result.RowFactory.DefaultRowFactory5ab0b7f9f28099de
    org.h2.result.RowFactory.Holder41f1cc54c079c8d7
    org.h2.result.SearchRowd20e3d81378dc409
    org.h2.result.SimpleRowValueb7d88298dd608b52
    org.h2.result.SortOrder497173c7c397dac3
    org.h2.result.Sparseb44a8f52a128b90c
    org.h2.schema.FunctionAlias2e55d18c6db10dae
    org.h2.schema.FunctionAlias.JavaMethod85554b6f739981d5
    org.h2.schema.InformationSchema5e171fc1d52567fb
    org.h2.schema.MetaSchemac20f6c35b912334c
    org.h2.schema.Schemaf6454b28cba42d52
    org.h2.schema.SchemaObject36331feedf964ee6
    org.h2.schema.Sequence11a6133ecefc8aa4
    org.h2.schema.Sequence.Cycleb813b944f3b57fe2
    org.h2.schema.UserDefinedFunctionfbc4095ef115a3ff
    org.h2.security.SHA2561377489050965973
    org.h2.store.FileLockMethod0a5e8bccdf92e35d
    org.h2.store.fs.FilePath3e0e7373c74033d1
    org.h2.store.fs.FilePathWrapper87d875796781afee
    org.h2.store.fs.FileUtils060a02c4aa2ff96e
    org.h2.store.fs.async.FilePathAsync16b33a44b1b5c235
    org.h2.store.fs.disk.FilePathDisk9ad70347c3c53b77
    org.h2.store.fs.mem.FileMemData659f85e22c47f221
    org.h2.store.fs.mem.FileMemData.Cachec73e11e6de2d8b69
    org.h2.store.fs.mem.FilePathMem595d031b8b0ce4b0
    org.h2.store.fs.mem.FilePathMemLZFfd5d7643ab9b5c2f
    org.h2.store.fs.niomapped.FilePathNioMapped67f5832e83405fcb
    org.h2.store.fs.niomem.FilePathNioMemf67f0322fbf112b5
    org.h2.store.fs.niomem.FilePathNioMemLZF132bbce83f940aba
    org.h2.store.fs.retry.FilePathRetryOnInterrupt3d5668f3ef57ef12
    org.h2.store.fs.split.FilePathSplite0332cdbd53823fa
    org.h2.store.fs.zip.FilePathZip571394bd7911f1b6
    org.h2.table.Column500d643f327e8cd1
    org.h2.table.ColumnResolver4b2aaf94f471a049
    org.h2.table.DataChangeDeltaTablecfef12b2b35a029b
    org.h2.table.DataChangeDeltaTable.ResultOption73e3b4dbc5058973
    org.h2.table.IndexColumnc5ce22adf3f59bf5
    org.h2.table.Plan612dabb67cb62cc8
    org.h2.table.PlanItem2def26bf3b87d892
    org.h2.table.Tableed8d3f8796b74a1d
    org.h2.table.TableBasef9650065ef79d0f9
    org.h2.table.TableFilter1580e6e3d1837400
    org.h2.table.TableFilter.MapColumnsVisitor931d604ec2d424fa
    org.h2.table.TableType56836f7ea831c8ba
    org.h2.table.TableView637347b8559c044a
    org.h2.util.CloseWatcherd678edef8d7cbcbd
    org.h2.util.DateTimeUtilsacbb58d9000f572f
    org.h2.util.IOUtils06d92b9f3551d003
    org.h2.util.JdbcUtilsa7cfc728a8939a3e
    org.h2.util.MathUtilsbdf93c5de1c6efb3
    org.h2.util.MemoryEstimator7bd6b84998f4470b
    org.h2.util.ParserUtil398474903b80ed1c
    org.h2.util.Permutations1c369f58220c466d
    org.h2.util.SmallLRUCache63a9505e4a72e86e
    org.h2.util.StringUtilscf6054820621813b
    org.h2.util.TempFileDeletere68e70f0f01e6e19
    org.h2.util.TimeZoneProvidera9c2d46d5ee1d017
    org.h2.util.TimeZoneProvider.Simpled186373cefabcbb3
    org.h2.util.Utils2e2bbc2f742b19b6
    org.h2.value.CompareMode58b22695ed1120a6
    org.h2.value.DataTypebe6090f80ecffcac
    org.h2.value.ExtTypeInfo8a940de3624beb39
    org.h2.value.ExtTypeInfoNumeric3f914c76eef2be60
    org.h2.value.ExtTypeInfoRowdeaab78daddc8908
    org.h2.value.TypeInfo9580e5a8b9802809
    org.h2.value.Valuead2c19061ba2725c
    org.h2.value.ValueBigDecimalBase215bf47c3c8205bb
    org.h2.value.ValueBigint8ec2db6a6c646098
    org.h2.value.ValueBoolean4f6af7c87c5a47ef
    org.h2.value.ValueChar05adce8c2875c4f5
    org.h2.value.ValueInteger3d79aac636fd91c9
    org.h2.value.ValueNull51a52bf735d3f5c0
    org.h2.value.ValueNumeric0d8483876bb2fdff
    org.h2.value.ValueSmallintb08c69d5b0149bd7
    org.h2.value.ValueStringBaseeb1bace27aaac6ab
    org.h2.value.ValueTimestampTimeZonee96caed7fa609eb6
    org.h2.value.ValueToObjectConverter2eb11fd432392fbc
    org.h2.value.ValueToObjectConverter25f48ffd2c93ddbd9
    org.h2.value.ValueVarchara2d834fe0bd70399
    org.h2.value.VersionedValueb8b9a78f680ab7c6
    org.junit.Asserteda6db924019425b
    org.junit.internal.Checks5f543b0bb87b92da
    org.junit.internal.MethodSortera26607ae067f7352
    org.junit.internal.MethodSorter.1d3997b4bdb7889c1
    org.junit.internal.MethodSorter.2c8e6351cbf098013
    org.junit.internal.builders.AllDefaultPossibilitiesBuilder4f18a1d7932cb8ab
    org.junit.internal.builders.AnnotatedBuilder0faf353d180c9332
    org.junit.internal.builders.IgnoredBuildere152f333c53967a6
    org.junit.internal.builders.JUnit3Builder4a2cc8e608e1275e
    org.junit.internal.builders.JUnit4Builderf2e00a3e1fc23005
    org.junit.internal.builders.SuiteMethodBuilder1df136431e07e393
    org.junit.internal.requests.ClassRequest47dbc61675e5a92e
    org.junit.internal.requests.ClassRequest.CustomAllDefaultPossibilitiesBuilderea1c269d9656f543
    org.junit.internal.requests.ClassRequest.CustomSuiteMethodBuilder03d01020b1c503c7
    org.junit.internal.requests.MemoizingRequest1e70801476dbab8f
    org.junit.internal.runners.model.EachTestNotifier077481995383e000
    org.junit.internal.runners.model.ReflectiveCallabled591724635588bcb
    org.junit.internal.runners.rules.RuleMemberValidator95b5ee2068ec6875
    org.junit.internal.runners.rules.RuleMemberValidator.Builderf24845fa6fd065af
    org.junit.internal.runners.rules.RuleMemberValidator.DeclaringClassMustBePublic1de994463c748d89
    org.junit.internal.runners.rules.RuleMemberValidator.FieldMustBeARulee24e9f59de6fe5b7
    org.junit.internal.runners.rules.RuleMemberValidator.FieldMustBeATestRule690823bd2992f52e
    org.junit.internal.runners.rules.RuleMemberValidator.MemberMustBeNonStaticOrAlsoClassRule1e703fb3e7f4e533
    org.junit.internal.runners.rules.RuleMemberValidator.MemberMustBePublic806c174eb921b478
    org.junit.internal.runners.rules.RuleMemberValidator.MemberMustBeStaticac28a03dd36b2b5a
    org.junit.internal.runners.rules.RuleMemberValidator.MethodMustBeARule88ea4a2237de2b8b
    org.junit.internal.runners.rules.RuleMemberValidator.MethodMustBeATestRule9f4dd18a26005c18
    org.junit.internal.runners.statements.InvokeMethod05a7aa636afa2c39
    org.junit.internal.runners.statements.RunAfters14a998d07920cd7b
    org.junit.internal.runners.statements.RunBeforesef86a61ca3ab20ba
    org.junit.rules.ExternalResourcefe234abb7ed11f04
    org.junit.rules.ExternalResource.108b5108fb33b03cb
    org.junit.runner.Description1d6f7ddbbf223f9a
    org.junit.runner.Request214d9ade1c7dc38d
    org.junit.runner.Resultecf6c1c04298ff7d
    org.junit.runner.Result.Listenercf649a4ffbe55db9
    org.junit.runner.Runnerf5abacc70e2e08a4
    org.junit.runner.notification.RunListener69d2c783b42f6720
    org.junit.runner.notification.RunNotifierf6313076e2224ebb
    org.junit.runner.notification.RunNotifier.1e31025c12b4dbdee
    org.junit.runner.notification.RunNotifier.24c7314c6d595dc3e
    org.junit.runner.notification.RunNotifier.3df2bada5cb3794f3
    org.junit.runner.notification.RunNotifier.4fbdd84204c215de7
    org.junit.runner.notification.RunNotifier.5f62dc396b601f8bd
    org.junit.runner.notification.RunNotifier.9c3c3d54b8ed47ee1
    org.junit.runner.notification.RunNotifier.SafeNotifier0b43c10299733bfb
    org.junit.runner.notification.SynchronizedRunListener2b59d5cb3b105225
    org.junit.runners.BlockJUnit4ClassRunner95752fb34ff12f3f
    org.junit.runners.BlockJUnit4ClassRunner.1d0f63145230a5f42
    org.junit.runners.BlockJUnit4ClassRunner.2f93eace695ddd30e
    org.junit.runners.BlockJUnit4ClassRunner.RuleCollector9c768e710e39c989
    org.junit.runners.JUnit46d26e2305347fe01
    org.junit.runners.ParentRunner335ee90b10f96ea1
    org.junit.runners.ParentRunner.1ecc6961e8bc209c4
    org.junit.runners.ParentRunner.2c5cb913a629ec4c8
    org.junit.runners.ParentRunner.320bad8188aebc0f2
    org.junit.runners.ParentRunner.480476dbdcb8d52cc
    org.junit.runners.ParentRunner.ClassRuleCollector26f7fb338afcd13b
    org.junit.runners.RuleContainerd44c3ba6dc65af53
    org.junit.runners.RuleContainer.157bbc73f6f47763b
    org.junit.runners.RuleContainer.RuleEntry33c112e80f79db7f
    org.junit.runners.model.FrameworkField2fe27c284e7d39f4
    org.junit.runners.model.FrameworkMemberbfd059486f267475
    org.junit.runners.model.FrameworkMethodf293b82d5aa86323
    org.junit.runners.model.FrameworkMethod.18fd5e02769c0e0c2
    org.junit.runners.model.MultipleFailureException187a72c573c34bac
    org.junit.runners.model.RunnerBuilder585cad2d320dc86e
    org.junit.runners.model.Statement9a75aa5de27bf4d5
    org.junit.runners.model.TestClass7e71209792391ee8
    org.junit.runners.model.TestClass.FieldComparator1b96cd3d5c4aeb07
    org.junit.runners.model.TestClass.MethodComparator0369eb29eb04248a
    org.junit.validator.AnnotationValidatorFactorye1e5570798173ab9
    org.junit.validator.AnnotationsValidator6cbe8454c9a93bb8
    org.junit.validator.AnnotationsValidator.AnnotatableValidatord211a963f22be103
    org.junit.validator.AnnotationsValidator.ClassValidator1b463c4e6642e880
    org.junit.validator.AnnotationsValidator.FieldValidator64068b954dc56a31
    org.junit.validator.AnnotationsValidator.MethodValidatorf16b57f17c787036
    org.junit.validator.PublicClassValidator3bac248cf06b18e4
    org.owasp.dependencycheck.AnalysisTaske7c73a60a930646f
    org.owasp.dependencycheck.BaseDBTestCase101fc405e6360a86
    org.owasp.dependencycheck.BaseTestbc884ee1d021a45f
    org.owasp.dependencycheck.Engine9eb4069cf91f3cee
    org.owasp.dependencycheck.Engine.Mode3f6a6fa06c5db5ef
    org.owasp.dependencycheck.agent.DependencyCheckScanAgentde6949324a1aad84
    org.owasp.dependencycheck.analyzer.AbstractAnalyzer53c2c707332e447f
    org.owasp.dependencycheck.analyzer.AbstractDependencyComparingAnalyzere5687426d9a0f66f
    org.owasp.dependencycheck.analyzer.AbstractFileTypeAnalyzercb75e41db9829ee7
    org.owasp.dependencycheck.analyzer.AbstractNpmAnalyzerf1f4584a14215949
    org.owasp.dependencycheck.analyzer.AbstractSuppressionAnalyzerfac2a53fa568132a
    org.owasp.dependencycheck.analyzer.AnalysisPhase8a2dd7e79126521a
    org.owasp.dependencycheck.analyzer.AnalyzerServicec83777cdc46bc2d2
    org.owasp.dependencycheck.analyzer.ArchiveAnalyzerc4afb05e99324933
    org.owasp.dependencycheck.analyzer.ArtifactoryAnalyzeraba5274b7a2d3c9c
    org.owasp.dependencycheck.analyzer.AssemblyAnalyzerb4f040a2e12ea447
    org.owasp.dependencycheck.analyzer.AutoconfAnalyzera61c7303a707d079
    org.owasp.dependencycheck.analyzer.CMakeAnalyzer466e5b6cfb32f8a0
    org.owasp.dependencycheck.analyzer.CPEAnalyzer8a5ab88772203ff1
    org.owasp.dependencycheck.analyzer.CPEAnalyzer.IdentifierConfidence68c0332006ac0f99
    org.owasp.dependencycheck.analyzer.CPEAnalyzer.IdentifierMatch92606f5613402d4c
    org.owasp.dependencycheck.analyzer.CentralAnalyzer8510025c8aaa3199
    org.owasp.dependencycheck.analyzer.CocoaPodsAnalyzer109d2f01d2ded1e1
    org.owasp.dependencycheck.analyzer.ComposerLockAnalyzer9d4ee64cf0474215
    org.owasp.dependencycheck.analyzer.CpeSuppressionAnalyzer0e15da288e35d32d
    org.owasp.dependencycheck.analyzer.DartAnalyzeraa59897e89b30f0b
    org.owasp.dependencycheck.analyzer.DependencyBundlingAnalyzer07c8f954686b5590
    org.owasp.dependencycheck.analyzer.DependencyMergingAnalyzer5b61b9ea1c73787a
    org.owasp.dependencycheck.analyzer.ElixirMixAuditAnalyzerdc7b13faacac2682
    org.owasp.dependencycheck.analyzer.FalsePositiveAnalyzer5d1e642680217c34
    org.owasp.dependencycheck.analyzer.FileNameAnalyzer6bd5616bd35b083c
    org.owasp.dependencycheck.analyzer.GolangDepAnalyzerfecafc9c62047e06
    org.owasp.dependencycheck.analyzer.GolangModAnalyzerb227db299327983e
    org.owasp.dependencycheck.analyzer.HintAnalyzer06857ac00a5b69bc
    org.owasp.dependencycheck.analyzer.JarAnalyzerd0852a5718eb3822
    org.owasp.dependencycheck.analyzer.JarAnalyzer.ClassNameInformationf7a6b8b47c825c6a
    org.owasp.dependencycheck.analyzer.KnownExploitedVulnerabilityAnalyzer3af076909f651f0b
    org.owasp.dependencycheck.analyzer.LibmanAnalyzerb71bb3bbd512db80
    org.owasp.dependencycheck.analyzer.MSBuildProjectAnalyzer0c1951f7a7176b6a
    org.owasp.dependencycheck.analyzer.NexusAnalyzer0e8b9d66c36140bb
    org.owasp.dependencycheck.analyzer.NodeAuditAnalyzer9b08dc840a569526
    org.owasp.dependencycheck.analyzer.NodePackageAnalyzer4f9c2855819b2a43
    org.owasp.dependencycheck.analyzer.NpmCPEAnalyzerc3b313265c0390a9
    org.owasp.dependencycheck.analyzer.NugetconfAnalyzerd7864bd059634c88
    org.owasp.dependencycheck.analyzer.NuspecAnalyzer51b5c3840fe8ede7
    org.owasp.dependencycheck.analyzer.NvdCveAnalyzer462c94a163d9bd80
    org.owasp.dependencycheck.analyzer.OpenSSLAnalyzerc05ed6ced1a77cd1
    org.owasp.dependencycheck.analyzer.OssIndexAnalyzere0ec285a8210cefd
    org.owasp.dependencycheck.analyzer.PEAnalyzerf1cf15bf017a345f
    org.owasp.dependencycheck.analyzer.PerlCpanfileAnalyzerf460b2c9a36956f5
    org.owasp.dependencycheck.analyzer.PinnedMavenInstallAnalyzerbabb05304288744c
    org.owasp.dependencycheck.analyzer.PipAnalyzer4eb3e3df5fc1d9eb
    org.owasp.dependencycheck.analyzer.PipfileAnalyzer94f81965a1d6f8bb
    org.owasp.dependencycheck.analyzer.PipfilelockAnalyzer090000f0d80906ed
    org.owasp.dependencycheck.analyzer.PnpmAuditAnalyzer8a0332fc7129d211
    org.owasp.dependencycheck.analyzer.PoetryAnalyzerfd3b1fd402042898
    org.owasp.dependencycheck.analyzer.PythonDistributionAnalyzer48872d7099105b81
    org.owasp.dependencycheck.analyzer.PythonPackageAnalyzer9e40fde1c8c573e3
    org.owasp.dependencycheck.analyzer.RetireJsAnalyzerbb886f09d58624f9
    org.owasp.dependencycheck.analyzer.RubyBundleAuditAnalyzere2fc7cdb41f163c8
    org.owasp.dependencycheck.analyzer.RubyBundlerAnalyzer5d486951fecfd610
    org.owasp.dependencycheck.analyzer.RubyGemspecAnalyzera1eb61175c0b726b
    org.owasp.dependencycheck.analyzer.SwiftPackageManagerAnalyzer2b236be3ad4379b4
    org.owasp.dependencycheck.analyzer.SwiftPackageResolvedAnalyzer602846b272882529
    org.owasp.dependencycheck.analyzer.UnusedSuppressionRuleAnalyzer96a130c36e2feb7c
    org.owasp.dependencycheck.analyzer.VersionFilterAnalyzerbccf328c51e5abce
    org.owasp.dependencycheck.analyzer.VulnerabilitySuppressionAnalyzer120f6770a484b62e
    org.owasp.dependencycheck.analyzer.YarnAuditAnalyzer29123c83238a50f8
    org.owasp.dependencycheck.ant.logging.AntLoggerAdapterf04b94e8383fc94c
    org.owasp.dependencycheck.ant.logging.AntLoggerFactoryc948ac151502cb6c
    org.owasp.dependencycheck.data.cache.DataCache45c535388c562524
    org.owasp.dependencycheck.data.cache.DataCacheFactory1f8c9b237297367c
    org.owasp.dependencycheck.data.cache.DataCacheFactory.CacheType137a3e5cbb2df174
    org.owasp.dependencycheck.data.cpe.AbstractMemoryIndex2ed8bf08d002c7f0
    org.owasp.dependencycheck.data.cpe.CpeMemoryIndex90c84bb62b80575d
    org.owasp.dependencycheck.data.cpe.IndexEntry21d883b53737f9ed
    org.owasp.dependencycheck.data.cwe.CweDB4b200943564bdb3c
    org.owasp.dependencycheck.data.lucene.AbstractTokenizingFilteref2bdf555ac30e13
    org.owasp.dependencycheck.data.lucene.AlphaNumericFilterd338a5925b823b3a
    org.owasp.dependencycheck.data.lucene.LuceneUtils3f465d0437852575
    org.owasp.dependencycheck.data.lucene.SearchFieldAnalyzer8c548705eb3be048
    org.owasp.dependencycheck.data.lucene.TokenPairConcatenatingFilter66727c35667a1e7f
    org.owasp.dependencycheck.data.lucene.UrlTokenizingFilter195de16b342dfeb9
    org.owasp.dependencycheck.data.nvd.ecosystem.Ecosystemf52dd17aa636a878
    org.owasp.dependencycheck.data.nvdcve.CveDB273b25a563ba79ba
    org.owasp.dependencycheck.data.nvdcve.CveDB.PreparedStatementCveDb412e4dfd99bf4695
    org.owasp.dependencycheck.data.nvdcve.CveItemOperatoreab73d1ca7076e35
    org.owasp.dependencycheck.data.nvdcve.DatabaseManagerc8bfc4255f1ef4d5
    org.owasp.dependencycheck.data.nvdcve.DatabasePropertiesc7b0ef841dbb8d78
    org.owasp.dependencycheck.data.nvdcve.DriverLoader6f00b4d9849d8d88
    org.owasp.dependencycheck.data.nvdcve.DriverShim100a9676ec7c4389
    org.owasp.dependencycheck.data.update.cpe.CpePlusa4daec4d8fade7cd
    org.owasp.dependencycheck.dependency.Confidence8b1646fd73165f3d
    org.owasp.dependencycheck.dependency.CweSet92d71b148062e632
    org.owasp.dependencycheck.dependency.Dependencyad6f1800ed8875c2
    org.owasp.dependencycheck.dependency.Evidencea56eb960dbb41fa1
    org.owasp.dependencycheck.dependency.EvidenceCollection796f8ebade5a0ac6
    org.owasp.dependencycheck.dependency.EvidenceCollection.1c43d6c035fe1f0ab
    org.owasp.dependencycheck.dependency.EvidenceCollection.263ec251053ab3814
    org.owasp.dependencycheck.dependency.EvidenceCollection.339c4b6f5b69d425d
    org.owasp.dependencycheck.dependency.EvidenceCollection.486c481e087971d1f
    org.owasp.dependencycheck.dependency.EvidenceCollection.56d0ef220d6d3eb18
    org.owasp.dependencycheck.dependency.EvidenceType80374dc893ee62b6
    org.owasp.dependencycheck.dependency.Referencea2e6d658cd4f904f
    org.owasp.dependencycheck.dependency.Vulnerability5547976019a46a50
    org.owasp.dependencycheck.dependency.Vulnerability.Source972bf446c0b0bb2a
    org.owasp.dependencycheck.dependency.VulnerableSoftware8585e0e1fa3beeb8
    org.owasp.dependencycheck.dependency.VulnerableSoftwareBuildere0de1be074de33d1
    org.owasp.dependencycheck.dependency.naming.CpeIdentifierf5758c4da3e20472
    org.owasp.dependencycheck.reporting.EscapeToolcf686f5c98110b7f
    org.owasp.dependencycheck.reporting.ReportGeneratorb3e530fe266a825a
    org.owasp.dependencycheck.reporting.ReportGenerator.Formatc008dae7884b691a
    org.owasp.dependencycheck.reporting.ReportTool6d98d89de82875d4
    org.owasp.dependencycheck.taskdefs.Check971a7be71124ec92
    org.owasp.dependencycheck.taskdefs.Check.ReportFormatf3c5eeb12845dab6
    org.owasp.dependencycheck.taskdefs.Check.ReportFormats52344c68cfbd6b6e
    org.owasp.dependencycheck.taskdefs.DependencyCheckTaskIT6ff254a245c72c3d
    org.owasp.dependencycheck.taskdefs.Purgee0c57c84d20b435f
    org.owasp.dependencycheck.taskdefs.RetirejsFilterad0bf22ce0a782f8
    org.owasp.dependencycheck.taskdefs.SuppressionFile809596fbe276003e
    org.owasp.dependencycheck.taskdefs.Update0e3b99ab42c10f03
    org.owasp.dependencycheck.utils.Checksumd3d032adcf9f83ac
    org.owasp.dependencycheck.utils.Checksum.FileChecksumsee01483ef72b41eb
    org.owasp.dependencycheck.utils.DBUtils5a736a1e9db30930
    org.owasp.dependencycheck.utils.DependencyVersionc76be697ccf1be3e
    org.owasp.dependencycheck.utils.DependencyVersionUtil6a41259161e9d641
    org.owasp.dependencycheck.utils.FileFilterBuilderb6f3bba13d18ff4a
    org.owasp.dependencycheck.utils.FileUtilsb4bc6fabbcb815d7
    org.owasp.dependencycheck.utils.Filterdf3734618639a9b3
    org.owasp.dependencycheck.utils.Filter.FilterIteratord1a81c541dfce734
    org.owasp.dependencycheck.utils.Pair7b0fe8cac5057419
    org.owasp.dependencycheck.utils.Settings22a4155a48302848
    org.owasp.dependencycheck.utils.SeverityUtil2aa3a7803e3bc489
    org.owasp.dependencycheck.utils.UrlStringUtils13ac88d7b902ba2e
    org.owasp.dependencycheck.utils.Utils2388cf60ae13d515
    org.owasp.dependencycheck.utils.WriteLock38fa2d9af95f448e
    org.owasp.dependencycheck.utils.WriteLockCleanupHookf4959b4938fb442b
    org.owasp.dependencycheck.utils.WriteLockShutdownHook53b3f5b037d6b82e
    org.owasp.dependencycheck.utils.WriteLockShutdownHookFactory7856e6c15668c9d5
    org.owasp.dependencycheck.utils.XmlUtils3db31a3238d69ec0
    org.owasp.dependencycheck.xml.hints.EvidenceMatcherce8cbfbe4740ac69
    org.owasp.dependencycheck.xml.hints.HintErrorHandleraa3882d7c7c5cc67
    org.owasp.dependencycheck.xml.hints.HintHandlere93cf0a863214916
    org.owasp.dependencycheck.xml.hints.HintHandler.1a7e8cba20e8af505
    org.owasp.dependencycheck.xml.hints.HintHandler.ParentTypef24faabcce5f4c72
    org.owasp.dependencycheck.xml.hints.HintParserd88f1d17c3864870
    org.owasp.dependencycheck.xml.hints.HintRule58dd9d52018d064f
    org.owasp.dependencycheck.xml.hints.VendorDuplicatingHintRulef590e0aa1fffc212
    org.owasp.dependencycheck.xml.suppression.PropertyType88e0dda4979f444f
    org.owasp.dependencycheck.xml.suppression.SuppressionErrorHandlerf0b45bf0579463da
    org.owasp.dependencycheck.xml.suppression.SuppressionHandler4ba9da2c9f4c384b
    org.owasp.dependencycheck.xml.suppression.SuppressionParserd5b7ee2be33418e9
    org.owasp.dependencycheck.xml.suppression.SuppressionParser.ClassloaderResolver166296f9153760dd
    org.owasp.dependencycheck.xml.suppression.SuppressionRule1e5fc4cd38ec8b4d
    org.slf4j.LoggerFactorya381b7ddf19bf47d
    org.slf4j.helpers.FormattingTuple46e388b1eb4cb5c1
    org.slf4j.helpers.MarkerIgnoringBase7ebf011a62144edb
    org.slf4j.helpers.MessageFormatter42e7db43bad15507
    org.slf4j.helpers.NOPLoggerFactory54f5632bfcb8d8d5
    org.slf4j.helpers.NamedLoggerBase528e06b7f120faa1
    org.slf4j.helpers.SubstituteLoggerFactorydc7efc0107a4a62d
    org.slf4j.helpers.Util857ff3acc0576435
    org.slf4j.impl.StaticLoggerBinderb1887a26b81f7fe9
    us.springett.parsers.cpe.Cpe6dcbf890483207ec
    us.springett.parsers.cpe.CpeBuildera8a545e97ba6c683
    us.springett.parsers.cpe.util.Convertd44be2fdb506753e
    us.springett.parsers.cpe.util.Statusa1e82b1c21855dd4
    us.springett.parsers.cpe.util.Validate4c1a3e0799b4658a
    us.springett.parsers.cpe.values.LogicalValue77dbdb0651fff32c
    us.springett.parsers.cpe.values.Partc2b878523b4c15a0
    \ No newline at end of file diff --git a/dependency-check-ant/jacoco/jacoco.csv b/dependency-check-ant/jacoco/jacoco.csv index 61704d8b611..50b2b2a5f92 100644 --- a/dependency-check-ant/jacoco/jacoco.csv +++ b/dependency-check-ant/jacoco/jacoco.csv @@ -1,9 +1,9 @@ GROUP,PACKAGE,CLASS,INSTRUCTION_MISSED,INSTRUCTION_COVERED,BRANCH_MISSED,BRANCH_COVERED,LINE_MISSED,LINE_COVERED,COMPLEXITY_MISSED,COMPLEXITY_COVERED,METHOD_MISSED,METHOD_COVERED Dependency-Check Ant Task,org.owasp.dependencycheck.taskdefs,Check,668,861,36,34,250,182,176,35,151,25 -Dependency-Check Ant Task,org.owasp.dependencycheck.taskdefs,Update,241,139,10,2,86,28,51,2,45,2 Dependency-Check Ant Task,org.owasp.dependencycheck.taskdefs,Check.ReportFormat,0,14,0,0,0,4,0,3,0,3 +Dependency-Check Ant Task,org.owasp.dependencycheck.taskdefs,Update,248,145,10,2,89,29,53,2,47,2 Dependency-Check Ant Task,org.owasp.dependencycheck.taskdefs,RetirejsFilter,0,10,0,0,0,4,0,3,0,3 -Dependency-Check Ant Task,org.owasp.dependencycheck.taskdefs,Purge,64,98,3,1,20,28,9,5,7,5 +Dependency-Check Ant Task,org.owasp.dependencycheck.taskdefs,Purge,64,132,3,3,20,31,9,6,7,5 Dependency-Check Ant Task,org.owasp.dependencycheck.taskdefs,SuppressionFile,0,10,0,0,0,4,0,3,0,3 Dependency-Check Ant Task,org.owasp.dependencycheck.taskdefs,Check.ReportFormats,0,35,0,2,0,7,0,3,0,2 Dependency-Check Ant Task,org.owasp.dependencycheck.ant.logging,AntLoggerAdapter,167,163,33,17,50,50,38,19,17,15 diff --git a/dependency-check-ant/jacoco/jacoco.xml b/dependency-check-ant/jacoco/jacoco.xml index 3d65fb892b8..f2ba57cf8b7 100644 --- a/dependency-check-ant/jacoco/jacoco.xml +++ b/dependency-check-ant/jacoco/jacoco.xml @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/dependency-check-ant/jacoco/org.owasp.dependencycheck.taskdefs/Purge.html b/dependency-check-ant/jacoco/org.owasp.dependencycheck.taskdefs/Purge.html index c614fad6250..3aa949de68f 100644 --- a/dependency-check-ant/jacoco/org.owasp.dependencycheck.taskdefs/Purge.html +++ b/dependency-check-ant/jacoco/org.owasp.dependencycheck.taskdefs/Purge.html @@ -1 +1 @@ -Purge

    Purge

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
    Total64 of 16260%3 of 425%9142048712
    populateSettings()245770%3125%2361801
    executeWithContextClassloader()190%n/a115511
    setDataDirectory(String)40%n/a112211
    setFailOnError(boolean)40%n/a112211
    setHostedSuppressionsUrl(String)40%n/a112211
    getDataDirectory()30%n/a111111
    isFailOnError()30%n/a111111
    getHostedSuppressionsUrl()30%n/a111111
    execute()16100%n/a010601
    Purge()15100%n/a010601
    muteJCS()7100%n/a010301
    getSettings()3100%n/a010101
    \ No newline at end of file +Purge

    Purge

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
    Total64 of 19667%3 of 650%9152051712
    populateSettings()245770%3125%2361801
    executeWithContextClassloader()190%n/a115511
    setDataDirectory(String)40%n/a112211
    setFailOnError(boolean)40%n/a112211
    setHostedSuppressionsUrl(String)40%n/a112211
    getDataDirectory()30%n/a111111
    isFailOnError()30%n/a111111
    getHostedSuppressionsUrl()30%n/a111111
    muteNoisyLoggers()41100%2100%020601
    execute()16100%n/a010601
    Purge()15100%n/a010601
    getSettings()3100%n/a010101
    \ No newline at end of file diff --git a/dependency-check-ant/jacoco/org.owasp.dependencycheck.taskdefs/Purge.java.html b/dependency-check-ant/jacoco/org.owasp.dependencycheck.taskdefs/Purge.java.html index 09683e9ca9c..40664822a18 100644 --- a/dependency-check-ant/jacoco/org.owasp.dependencycheck.taskdefs/Purge.java.html +++ b/dependency-check-ant/jacoco/org.owasp.dependencycheck.taskdefs/Purge.java.html @@ -21,17 +21,13 @@ import java.io.File; import java.io.IOException; import java.io.InputStream; -import java.lang.reflect.Field; import org.apache.tools.ant.BuildException; import org.apache.tools.ant.Project; import org.apache.tools.ant.Task; import org.owasp.dependencycheck.Engine; import org.owasp.dependencycheck.utils.Settings; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import org.slf4j.impl.StaticLoggerBinder; -import org.slf4j.spi.LocationAwareLogger; /** * An Ant task definition to execute dependency-check during an Ant build. @@ -52,31 +48,31 @@ /** * The location of the data directory that contains */ - private String dataDirectory = null; + private String dataDirectory = null; /** * Indicates if dependency-check should fail the build if an exception * occurs. */ - private boolean failOnError = true; + private boolean failOnError = true; /** * The URL to hosted suppressions file with base FP suppressions. */ - private String hostedSuppressionsUrl = null; + private String hostedSuppressionsUrl = null; /** * Construct a new DependencyCheckTask. */ public Purge() { - super(); + super(); // Call this before Dependency Check Core starts logging anything - this way, all SLF4J messages from // core end up coming through this tasks logger - StaticLoggerBinder.getSingleton().setTask(this); - } + StaticLoggerBinder.getSingleton().setTask(this); + } public Settings getSettings() { - return settings; + return settings; } /** @@ -85,7 +81,7 @@ * @return the value of dataDirectory */ public String getDataDirectory() { - return dataDirectory; + return dataDirectory; } /** @@ -94,8 +90,8 @@ * @param dataDirectory new value of dataDirectory */ public void setDataDirectory(String dataDirectory) { - this.dataDirectory = dataDirectory; - } + this.dataDirectory = dataDirectory; + } /** * Get the value of failOnError. @@ -103,7 +99,7 @@ * @return the value of failOnError */ public boolean isFailOnError() { - return failOnError; + return failOnError; } /** @@ -112,8 +108,8 @@ * @param failOnError new value of failOnError */ public void setFailOnError(boolean failOnError) { - this.failOnError = failOnError; - } + this.failOnError = failOnError; + } /** * Get the value of hostedSuppressionsUrl. @@ -121,7 +117,7 @@ * @return the value of hostedSuppressionsUrl */ public String getHostedSuppressionsUrl() { - return hostedSuppressionsUrl; + return hostedSuppressionsUrl; } /** @@ -130,8 +126,8 @@ * @param hostedSuppressionsUrl new value of hostedSuppressionsUrl */ public void setHostedSuppressionsUrl(final String hostedSuppressionsUrl) { - this.hostedSuppressionsUrl = hostedSuppressionsUrl; - } + this.hostedSuppressionsUrl = hostedSuppressionsUrl; + } /** * Sets the @@ -147,24 +143,31 @@ */ @Override public final void execute() throws BuildException { - muteJCS(); - final ClassLoader current = Thread.currentThread().getContextClassLoader(); + muteNoisyLoggers(); + final ClassLoader current = Thread.currentThread().getContextClassLoader(); try { - Thread.currentThread().setContextClassLoader(getClass().getClassLoader()); + Thread.currentThread().setContextClassLoader(getClass().getClassLoader()); - executeWithContextClassloader(); + executeWithContextClassloader(); } finally { - Thread.currentThread().setContextClassLoader(current); + Thread.currentThread().setContextClassLoader(current); } - } + } /** * Hacky method of muting the noisy logging from JCS. */ - private void muteJCS() { - System.setProperty("jcs.logSystem", "slf4j"); - Slf4jAdapter.muteLogging(true); - } + private void muteNoisyLoggers() { + System.setProperty("jcs.logSystem", "slf4j"); + Slf4jAdapter.muteLogging(true); + + final String[] noisyLoggers = { + "org.apache.hc" + }; + for (String loggerName : noisyLoggers) { + System.setProperty("org.slf4j.simpleLogger.log." + loggerName, "error"); + } + } /** * Executes the dependency-check purge to delete the existing local copy of @@ -175,13 +178,13 @@ //see note on `Check.dealWithReferences()` for information on this suppression @SuppressWarnings("squid:RedundantThrowsDeclarationCheck") protected void executeWithContextClassloader() throws BuildException { - populateSettings(); - try (Engine engine = new Engine(Engine.Mode.EVIDENCE_PROCESSING, getSettings())) { - engine.purge(); + populateSettings(); + try (Engine engine = new Engine(Engine.Mode.EVIDENCE_PROCESSING, getSettings())) { + engine.purge(); } finally { - settings.cleanup(true); + settings.cleanup(true); } - } + } /** * Takes the properties supplied and updates the dependency-check settings. @@ -193,26 +196,26 @@ //see note on `Check.dealWithReferences()` for information on this suppression @SuppressWarnings("squid:RedundantThrowsDeclarationCheck") protected void populateSettings() throws BuildException { - settings = new Settings(); - try (InputStream taskProperties = this.getClass().getClassLoader().getResourceAsStream(PROPERTIES_FILE)) { - settings.mergeProperties(taskProperties); - } catch (IOException ex) { - final String msg = "Unable to load the dependency-check ant task.properties file."; - if (this.failOnError) { - throw new BuildException(msg, ex); + settings = new Settings(); + try (InputStream taskProperties = this.getClass().getClassLoader().getResourceAsStream(PROPERTIES_FILE)) { + settings.mergeProperties(taskProperties); + } catch (IOException ex) { + final String msg = "Unable to load the dependency-check ant task.properties file."; + if (this.failOnError) { + throw new BuildException(msg, ex); } - log(msg, ex, Project.MSG_WARN); - } - settings.setStringIfNotEmpty(Settings.KEYS.HOSTED_SUPPRESSIONS_URL, hostedSuppressionsUrl); - if (dataDirectory != null) { - settings.setString(Settings.KEYS.DATA_DIRECTORY, dataDirectory); + log(msg, ex, Project.MSG_WARN); + } + settings.setStringIfNotEmpty(Settings.KEYS.HOSTED_SUPPRESSIONS_URL, hostedSuppressionsUrl); + if (dataDirectory != null) { + settings.setString(Settings.KEYS.DATA_DIRECTORY, dataDirectory); } else { - final File jarPath = new File(Purge.class.getProtectionDomain().getCodeSource().getLocation().getPath()); - final File base = jarPath.getParentFile(); - final String sub = settings.getString(Settings.KEYS.DATA_DIRECTORY); - final File dataDir = new File(base, sub); - settings.setString(Settings.KEYS.DATA_DIRECTORY, dataDir.getAbsolutePath()); + final File jarPath = new File(Purge.class.getProtectionDomain().getCodeSource().getLocation().getPath()); + final File base = jarPath.getParentFile(); + final String sub = settings.getString(Settings.KEYS.DATA_DIRECTORY); + final File dataDir = new File(base, sub); + settings.setString(Settings.KEYS.DATA_DIRECTORY, dataDir.getAbsolutePath()); } - } + } } \ No newline at end of file diff --git a/dependency-check-ant/jacoco/org.owasp.dependencycheck.taskdefs/Update.html b/dependency-check-ant/jacoco/org.owasp.dependencycheck.taskdefs/Update.html index 5de4f6b530f..ddb1d519352 100644 --- a/dependency-check-ant/jacoco/org.owasp.dependencycheck.taskdefs/Update.html +++ b/dependency-check-ant/jacoco/org.owasp.dependencycheck.taskdefs/Update.html @@ -1 +1 @@ -Update

    Update

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
    Total241 of 38036%10 of 1216%5153861144547
    executeWithContextClassloader()490%40%33141411
    populateSettings()3413079%6225%4563001
    setNvdMaxRetryCount(int)50%n/a112211
    setNvdValidForHours(int)50%n/a112211
    setNvdApiKey(String)40%n/a112211
    getNvdMaxRetryCounts()40%n/a111111
    getNvdValidForHours()40%n/a111111
    setNvdDatafeedUrl(String)40%n/a112211
    setNvdUser(String)40%n/a112211
    setNvdPassword(String)40%n/a112211
    setNvdApiDelay(int)40%n/a112211
    setProxyServer(String)40%n/a112211
    setProxyPort(String)40%n/a112211
    setProxyUsername(String)40%n/a112211
    setProxyPassword(String)40%n/a112211
    setNonProxyHosts(String)40%n/a112211
    setConnectionTimeout(String)40%n/a112211
    setReadTimeout(String)40%n/a112211
    setDatabaseDriverName(String)40%n/a112211
    setDatabaseDriverPath(String)40%n/a112211
    setConnectionString(String)40%n/a112211
    setDatabaseUser(String)40%n/a112211
    setDatabasePassword(String)40%n/a112211
    setHostedSuppressionsValidForHours(Integer)40%n/a112211
    setHostedSuppressionsForceUpdate(Boolean)40%n/a112211
    setHostedSuppressionsEnabled(Boolean)40%n/a112211
    getNvdApiKey()30%n/a111111
    getNvdDatafeedUrl()30%n/a111111
    getNvdUser()30%n/a111111
    getNvdPassword()30%n/a111111
    getNvdApiDelay()30%n/a111111
    getProxyServer()30%n/a111111
    getProxyPort()30%n/a111111
    getProxyUsername()30%n/a111111
    getProxyPassword()30%n/a111111
    getNonProxyHosts()30%n/a111111
    getConnectionTimeout()30%n/a111111
    getReadTimeout()30%n/a111111
    getDatabaseDriverName()30%n/a111111
    getDatabaseDriverPath()30%n/a111111
    getConnectionString()30%n/a111111
    getDatabaseUser()30%n/a111111
    getDatabasePassword()30%n/a111111
    getHostedSuppressionsValidForHours()30%n/a111111
    isHostedSuppressionsForceUpdate()30%n/a111111
    isHostedSuppressionsEnabled()30%n/a111111
    Update()9100%n/a010401
    \ No newline at end of file +Update

    Update

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
    Total248 of 39336%10 of 1216%5355891184749
    executeWithContextClassloader()490%40%33141411
    populateSettings()3413680%6225%4563101
    setNvdMaxRetryCount(int)50%n/a112211
    setNvdValidForHours(int)50%n/a112211
    setNvdApiEndpoint(String)40%n/a112211
    setNvdApiKey(String)40%n/a112211
    getNvdMaxRetryCounts()40%n/a111111
    getNvdValidForHours()40%n/a111111
    setNvdDatafeedUrl(String)40%n/a112211
    setNvdUser(String)40%n/a112211
    setNvdPassword(String)40%n/a112211
    setNvdApiDelay(int)40%n/a112211
    setProxyServer(String)40%n/a112211
    setProxyPort(String)40%n/a112211
    setProxyUsername(String)40%n/a112211
    setProxyPassword(String)40%n/a112211
    setNonProxyHosts(String)40%n/a112211
    setConnectionTimeout(String)40%n/a112211
    setReadTimeout(String)40%n/a112211
    setDatabaseDriverName(String)40%n/a112211
    setDatabaseDriverPath(String)40%n/a112211
    setConnectionString(String)40%n/a112211
    setDatabaseUser(String)40%n/a112211
    setDatabasePassword(String)40%n/a112211
    setHostedSuppressionsValidForHours(Integer)40%n/a112211
    setHostedSuppressionsForceUpdate(Boolean)40%n/a112211
    setHostedSuppressionsEnabled(Boolean)40%n/a112211
    getNvdApiEndpoint()30%n/a111111
    getNvdApiKey()30%n/a111111
    getNvdDatafeedUrl()30%n/a111111
    getNvdUser()30%n/a111111
    getNvdPassword()30%n/a111111
    getNvdApiDelay()30%n/a111111
    getProxyServer()30%n/a111111
    getProxyPort()30%n/a111111
    getProxyUsername()30%n/a111111
    getProxyPassword()30%n/a111111
    getNonProxyHosts()30%n/a111111
    getConnectionTimeout()30%n/a111111
    getReadTimeout()30%n/a111111
    getDatabaseDriverName()30%n/a111111
    getDatabaseDriverPath()30%n/a111111
    getConnectionString()30%n/a111111
    getDatabaseUser()30%n/a111111
    getDatabasePassword()30%n/a111111
    getHostedSuppressionsValidForHours()30%n/a111111
    isHostedSuppressionsForceUpdate()30%n/a111111
    isHostedSuppressionsEnabled()30%n/a111111
    Update()9100%n/a010401
    \ No newline at end of file diff --git a/dependency-check-ant/jacoco/org.owasp.dependencycheck.taskdefs/Update.java.html b/dependency-check-ant/jacoco/org.owasp.dependencycheck.taskdefs/Update.java.html index bc3bc8f7e9a..b5b553ee554 100644 --- a/dependency-check-ant/jacoco/org.owasp.dependencycheck.taskdefs/Update.java.html +++ b/dependency-check-ant/jacoco/org.owasp.dependencycheck.taskdefs/Update.java.html @@ -37,6 +37,10 @@ @SuppressWarnings("common-java:DuplicatedBlocks") public class Update extends Purge { + /** + * The NVD API endpoint. + */ + private String nvdApiEndpoint; /** * The NVD API Key. */ @@ -64,7 +68,7 @@ /** * The time in milliseconds to wait between downloading NVD API data. */ - private int nvdApiDelay = 0; + private int nvdApiDelay = 0; /** * The Proxy Server. @@ -133,11 +137,29 @@ * Construct a new UpdateTask. */ public Update() { - super(); + super(); // Call this before Dependency Check Core starts logging anything - this way, all SLF4J messages from // core end up coming through this tasks logger - StaticLoggerBinder.getSingleton().setTask(this); - } + StaticLoggerBinder.getSingleton().setTask(this); + } + + /** + * Get the value of nvdApiEndpoint. + * + * @return the value of nvdApiEndpoint + */ + public String getNvdApiEndpoint() { + return nvdApiEndpoint; + } + + /** + * Set the value of nvdApiEndpoint. + * + * @param nvdApiEndpoint new value of nvdApiEndpoint + */ + public void setNvdApiEndpoint(String nvdApiEndpoint) { + this.nvdApiEndpoint = nvdApiEndpoint; + } /** * Get the value of nvdApiKey. @@ -145,7 +167,7 @@ * @return the value of nvdApiKey */ public String getNvdApiKey() { - return nvdApiKey; + return nvdApiKey; } /** @@ -154,8 +176,8 @@ * @param nvdApiKey new value of nvdApiKey */ public void setNvdApiKey(String nvdApiKey) { - this.nvdApiKey = nvdApiKey; - } + this.nvdApiKey = nvdApiKey; + } /** * Get the value of nvdMaxRetryCount. @@ -163,7 +185,7 @@ * @return the value of nvdMaxRetryCount */ public int getNvdMaxRetryCounts() { - return nvdMaxRetryCount; + return nvdMaxRetryCount; } /** @@ -172,8 +194,8 @@ * @param nvdMaxRetryCount new value of nvdMaxRetryCount */ public void setNvdMaxRetryCount(int nvdMaxRetryCount) { - this.nvdMaxRetryCount = nvdMaxRetryCount; - } + this.nvdMaxRetryCount = nvdMaxRetryCount; + } /** * Get the value of nvdValidForHours. @@ -181,7 +203,7 @@ * @return the value of nvdValidForHours */ public int getNvdValidForHours() { - return nvdValidForHours; + return nvdValidForHours; } /** @@ -190,8 +212,8 @@ * @param nvdValidForHours new value of nvdValidForHours */ public void setNvdValidForHours(int nvdValidForHours) { - this.nvdValidForHours = nvdValidForHours; - } + this.nvdValidForHours = nvdValidForHours; + } /** * Get the value of nvdDatafeedUrl. @@ -199,7 +221,7 @@ * @return the value of nvdDatafeedUrl */ public String getNvdDatafeedUrl() { - return nvdDatafeedUrl; + return nvdDatafeedUrl; } /** @@ -208,8 +230,8 @@ * @param nvdDatafeedUrl new value of nvdDatafeedUrl */ public void setNvdDatafeedUrl(String nvdDatafeedUrl) { - this.nvdDatafeedUrl = nvdDatafeedUrl; - } + this.nvdDatafeedUrl = nvdDatafeedUrl; + } /** * Get the value of nvdUser. @@ -217,7 +239,7 @@ * @return the value of nvdUser */ public String getNvdUser() { - return nvdUser; + return nvdUser; } /** @@ -226,8 +248,8 @@ * @param nvdUser new value of nvdUser */ public void setNvdUser(String nvdUser) { - this.nvdUser = nvdUser; - } + this.nvdUser = nvdUser; + } /** * Get the value of nvdPassword. @@ -235,7 +257,7 @@ * @return the value of nvdPassword */ public String getNvdPassword() { - return nvdPassword; + return nvdPassword; } /** @@ -244,8 +266,8 @@ * @param nvdPassword new value of nvdPassword */ public void setNvdPassword(String nvdPassword) { - this.nvdPassword = nvdPassword; - } + this.nvdPassword = nvdPassword; + } /** * Get the value of nvdApiDelay. @@ -253,7 +275,7 @@ * @return the value of nvdApiDelay */ public int getNvdApiDelay() { - return nvdApiDelay; + return nvdApiDelay; } /** @@ -262,8 +284,8 @@ * @param nvdApiDelay new value of nvdApiDelay */ public void setNvdApiDelay(int nvdApiDelay) { - this.nvdApiDelay = nvdApiDelay; - } + this.nvdApiDelay = nvdApiDelay; + } /** * Get the value of proxyServer. @@ -271,7 +293,7 @@ * @return the value of proxyServer */ public String getProxyServer() { - return proxyServer; + return proxyServer; } /** @@ -280,8 +302,8 @@ * @param server new value of proxyServer */ public void setProxyServer(String server) { - this.proxyServer = server; - } + this.proxyServer = server; + } /** * Get the value of proxyPort. @@ -289,7 +311,7 @@ * @return the value of proxyPort */ public String getProxyPort() { - return proxyPort; + return proxyPort; } /** @@ -298,8 +320,8 @@ * @param proxyPort new value of proxyPort */ public void setProxyPort(String proxyPort) { - this.proxyPort = proxyPort; - } + this.proxyPort = proxyPort; + } /** * Get the value of proxyUsername. @@ -307,7 +329,7 @@ * @return the value of proxyUsername */ public String getProxyUsername() { - return proxyUsername; + return proxyUsername; } /** @@ -316,8 +338,8 @@ * @param proxyUsername new value of proxyUsername */ public void setProxyUsername(String proxyUsername) { - this.proxyUsername = proxyUsername; - } + this.proxyUsername = proxyUsername; + } /** * Get the value of proxyPassword. @@ -325,7 +347,7 @@ * @return the value of proxyPassword */ public String getProxyPassword() { - return proxyPassword; + return proxyPassword; } /** @@ -334,8 +356,8 @@ * @param proxyPassword new value of proxyPassword */ public void setProxyPassword(String proxyPassword) { - this.proxyPassword = proxyPassword; - } + this.proxyPassword = proxyPassword; + } /** * Get the value of nonProxyHosts. @@ -343,7 +365,7 @@ * @return the value of nonProxyHosts */ public String getNonProxyHosts() { - return nonProxyHosts; + return nonProxyHosts; } /** @@ -352,8 +374,8 @@ * @param nonProxyHosts new value of nonProxyHosts */ public void setNonProxyHosts(String nonProxyHosts) { - this.nonProxyHosts = nonProxyHosts; - } + this.nonProxyHosts = nonProxyHosts; + } /** * Get the value of connectionTimeout. @@ -361,7 +383,7 @@ * @return the value of connectionTimeout */ public String getConnectionTimeout() { - return connectionTimeout; + return connectionTimeout; } /** @@ -370,8 +392,8 @@ * @param connectionTimeout new value of connectionTimeout */ public void setConnectionTimeout(String connectionTimeout) { - this.connectionTimeout = connectionTimeout; - } + this.connectionTimeout = connectionTimeout; + } /** * Get the value of readTimeout. @@ -379,7 +401,7 @@ * @return the value of readTimeout */ public String getReadTimeout() { - return readTimeout; + return readTimeout; } /** @@ -388,8 +410,8 @@ * @param readTimeout new value of readTimeout */ public void setReadTimeout(String readTimeout) { - this.readTimeout = readTimeout; - } + this.readTimeout = readTimeout; + } /** * Get the value of databaseDriverName. @@ -397,7 +419,7 @@ * @return the value of databaseDriverName */ public String getDatabaseDriverName() { - return databaseDriverName; + return databaseDriverName; } /** @@ -406,8 +428,8 @@ * @param databaseDriverName new value of databaseDriverName */ public void setDatabaseDriverName(String databaseDriverName) { - this.databaseDriverName = databaseDriverName; - } + this.databaseDriverName = databaseDriverName; + } /** * Get the value of databaseDriverPath. @@ -415,7 +437,7 @@ * @return the value of databaseDriverPath */ public String getDatabaseDriverPath() { - return databaseDriverPath; + return databaseDriverPath; } /** @@ -424,8 +446,8 @@ * @param databaseDriverPath new value of databaseDriverPath */ public void setDatabaseDriverPath(String databaseDriverPath) { - this.databaseDriverPath = databaseDriverPath; - } + this.databaseDriverPath = databaseDriverPath; + } /** * Get the value of connectionString. @@ -433,7 +455,7 @@ * @return the value of connectionString */ public String getConnectionString() { - return connectionString; + return connectionString; } /** @@ -442,8 +464,8 @@ * @param connectionString new value of connectionString */ public void setConnectionString(String connectionString) { - this.connectionString = connectionString; - } + this.connectionString = connectionString; + } /** * Get the value of databaseUser. @@ -451,7 +473,7 @@ * @return the value of databaseUser */ public String getDatabaseUser() { - return databaseUser; + return databaseUser; } /** @@ -460,8 +482,8 @@ * @param databaseUser new value of databaseUser */ public void setDatabaseUser(String databaseUser) { - this.databaseUser = databaseUser; - } + this.databaseUser = databaseUser; + } /** * Get the value of databasePassword. @@ -469,7 +491,7 @@ * @return the value of databasePassword */ public String getDatabasePassword() { - return databasePassword; + return databasePassword; } /** @@ -478,8 +500,8 @@ * @param databasePassword new value of databasePassword */ public void setDatabasePassword(String databasePassword) { - this.databasePassword = databasePassword; - } + this.databasePassword = databasePassword; + } /** * Get the value of hostedSuppressionsValidForHours. @@ -487,7 +509,7 @@ * @return the value of hostedSuppressionsValidForHours */ public Integer getHostedSuppressionsValidForHours() { - return hostedSuppressionsValidForHours; + return hostedSuppressionsValidForHours; } /** @@ -497,8 +519,8 @@ * hostedSuppressionsValidForHours */ public void setHostedSuppressionsValidForHours(final Integer hostedSuppressionsValidForHours) { - this.hostedSuppressionsValidForHours = hostedSuppressionsValidForHours; - } + this.hostedSuppressionsValidForHours = hostedSuppressionsValidForHours; + } /** * Get the value of hostedSuppressionsForceUpdate. @@ -506,7 +528,7 @@ * @return the value of hostedSuppressionsForceUpdate */ public Boolean isHostedSuppressionsForceUpdate() { - return hostedSuppressionsForceUpdate; + return hostedSuppressionsForceUpdate; } /** @@ -516,8 +538,8 @@ * hostedSuppressionsForceUpdate */ public void setHostedSuppressionsForceUpdate(final Boolean hostedSuppressionsForceUpdate) { - this.hostedSuppressionsForceUpdate = hostedSuppressionsForceUpdate; - } + this.hostedSuppressionsForceUpdate = hostedSuppressionsForceUpdate; + } /** * Get the value of hostedSuppressionsEnabled. @@ -525,7 +547,7 @@ * @return the value of hostedSuppressionsEnabled */ public Boolean isHostedSuppressionsEnabled() { - return hostedSuppressionsEnabled; + return hostedSuppressionsEnabled; } /** @@ -534,8 +556,8 @@ * @param hostedSuppressionsEnabled new value of hostedSuppressionsEnabled */ public void setHostedSuppressionsEnabled(Boolean hostedSuppressionsEnabled) { - this.hostedSuppressionsEnabled = hostedSuppressionsEnabled; - } + this.hostedSuppressionsEnabled = hostedSuppressionsEnabled; + } /** * Executes the update by initializing the settings, downloads the NVD XML @@ -548,24 +570,24 @@ @SuppressWarnings("squid:RedundantThrowsDeclarationCheck") @Override protected void executeWithContextClassloader() throws BuildException { - populateSettings(); - try (Engine engine = new Engine(Update.class.getClassLoader(), getSettings())) { - engine.doUpdates(); - } catch (UpdateException ex) { - if (this.isFailOnError()) { - throw new BuildException(ex); + populateSettings(); + try (Engine engine = new Engine(Update.class.getClassLoader(), getSettings())) { + engine.doUpdates(); + } catch (UpdateException ex) { + if (this.isFailOnError()) { + throw new BuildException(ex); } - log(ex.getMessage(), Project.MSG_ERR); - } catch (DatabaseException ex) { - final String msg = "Unable to connect to the dependency-check database; unable to update the NVD data"; - if (this.isFailOnError()) { - throw new BuildException(msg, ex); + log(ex.getMessage(), Project.MSG_ERR); + } catch (DatabaseException ex) { + final String msg = "Unable to connect to the dependency-check database; unable to update the NVD data"; + if (this.isFailOnError()) { + throw new BuildException(msg, ex); } - log(msg, Project.MSG_ERR); + log(msg, Project.MSG_ERR); } finally { - getSettings().cleanup(); + getSettings().cleanup(); } - } + } /** * Takes the properties supplied and updates the dependency-check settings. @@ -578,42 +600,43 @@ @SuppressWarnings("squid:RedundantThrowsDeclarationCheck") @Override protected void populateSettings() throws BuildException { - super.populateSettings(); - getSettings().setStringIfNotEmpty(Settings.KEYS.PROXY_SERVER, proxyServer); - getSettings().setStringIfNotEmpty(Settings.KEYS.PROXY_PORT, proxyPort); - getSettings().setStringIfNotEmpty(Settings.KEYS.PROXY_USERNAME, proxyUsername); - getSettings().setStringIfNotEmpty(Settings.KEYS.PROXY_PASSWORD, proxyPassword); - getSettings().setStringIfNotEmpty(Settings.KEYS.PROXY_NON_PROXY_HOSTS, nonProxyHosts); - getSettings().setStringIfNotEmpty(Settings.KEYS.CONNECTION_TIMEOUT, connectionTimeout); - getSettings().setStringIfNotEmpty(Settings.KEYS.CONNECTION_READ_TIMEOUT, readTimeout); - getSettings().setStringIfNotEmpty(Settings.KEYS.DB_DRIVER_NAME, databaseDriverName); - getSettings().setStringIfNotEmpty(Settings.KEYS.DB_DRIVER_PATH, databaseDriverPath); - getSettings().setStringIfNotEmpty(Settings.KEYS.DB_CONNECTION_STRING, connectionString); - getSettings().setStringIfNotEmpty(Settings.KEYS.DB_USER, databaseUser); - getSettings().setStringIfNotEmpty(Settings.KEYS.DB_PASSWORD, databasePassword); - getSettings().setIntIfNotNull(Settings.KEYS.HOSTED_SUPPRESSIONS_VALID_FOR_HOURS, hostedSuppressionsValidForHours); - getSettings().setBooleanIfNotNull(Settings.KEYS.HOSTED_SUPPRESSIONS_FORCEUPDATE, hostedSuppressionsForceUpdate); - getSettings().setBooleanIfNotNull(Settings.KEYS.HOSTED_SUPPRESSIONS_ENABLED, hostedSuppressionsEnabled); - - getSettings().setStringIfNotEmpty(Settings.KEYS.NVD_API_KEY, nvdApiKey); - getSettings().setIntIfNotNull(Settings.KEYS.NVD_API_DELAY, nvdApiDelay); - getSettings().setStringIfNotEmpty(Settings.KEYS.NVD_API_DATAFEED_URL, nvdDatafeedUrl); - getSettings().setStringIfNotEmpty(Settings.KEYS.NVD_API_DATAFEED_USER, nvdUser); - getSettings().setStringIfNotEmpty(Settings.KEYS.NVD_API_DATAFEED_PASSWORD, nvdPassword); - if (nvdMaxRetryCount != null) { - if (nvdMaxRetryCount > 0) { - getSettings().setInt(Settings.KEYS.NVD_API_MAX_RETRY_COUNT, nvdMaxRetryCount); + super.populateSettings(); + getSettings().setStringIfNotEmpty(Settings.KEYS.PROXY_SERVER, proxyServer); + getSettings().setStringIfNotEmpty(Settings.KEYS.PROXY_PORT, proxyPort); + getSettings().setStringIfNotEmpty(Settings.KEYS.PROXY_USERNAME, proxyUsername); + getSettings().setStringIfNotEmpty(Settings.KEYS.PROXY_PASSWORD, proxyPassword); + getSettings().setStringIfNotEmpty(Settings.KEYS.PROXY_NON_PROXY_HOSTS, nonProxyHosts); + getSettings().setStringIfNotEmpty(Settings.KEYS.CONNECTION_TIMEOUT, connectionTimeout); + getSettings().setStringIfNotEmpty(Settings.KEYS.CONNECTION_READ_TIMEOUT, readTimeout); + getSettings().setStringIfNotEmpty(Settings.KEYS.DB_DRIVER_NAME, databaseDriverName); + getSettings().setStringIfNotEmpty(Settings.KEYS.DB_DRIVER_PATH, databaseDriverPath); + getSettings().setStringIfNotEmpty(Settings.KEYS.DB_CONNECTION_STRING, connectionString); + getSettings().setStringIfNotEmpty(Settings.KEYS.DB_USER, databaseUser); + getSettings().setStringIfNotEmpty(Settings.KEYS.DB_PASSWORD, databasePassword); + getSettings().setIntIfNotNull(Settings.KEYS.HOSTED_SUPPRESSIONS_VALID_FOR_HOURS, hostedSuppressionsValidForHours); + getSettings().setBooleanIfNotNull(Settings.KEYS.HOSTED_SUPPRESSIONS_FORCEUPDATE, hostedSuppressionsForceUpdate); + getSettings().setBooleanIfNotNull(Settings.KEYS.HOSTED_SUPPRESSIONS_ENABLED, hostedSuppressionsEnabled); + + getSettings().setStringIfNotEmpty(Settings.KEYS.NVD_API_KEY, nvdApiKey); + getSettings().setStringIfNotEmpty(Settings.KEYS.NVD_API_ENDPOINT, nvdApiEndpoint); + getSettings().setIntIfNotNull(Settings.KEYS.NVD_API_DELAY, nvdApiDelay); + getSettings().setStringIfNotEmpty(Settings.KEYS.NVD_API_DATAFEED_URL, nvdDatafeedUrl); + getSettings().setStringIfNotEmpty(Settings.KEYS.NVD_API_DATAFEED_USER, nvdUser); + getSettings().setStringIfNotEmpty(Settings.KEYS.NVD_API_DATAFEED_PASSWORD, nvdPassword); + if (nvdMaxRetryCount != null) { + if (nvdMaxRetryCount > 0) { + getSettings().setInt(Settings.KEYS.NVD_API_MAX_RETRY_COUNT, nvdMaxRetryCount); } else { - throw new BuildException("Invalid setting: `nvdMaxRetryCount` must be greater than zero"); + throw new BuildException("Invalid setting: `nvdMaxRetryCount` must be greater than zero"); } } - if (nvdValidForHours != null) { - if (nvdValidForHours >= 0) { - getSettings().setInt(Settings.KEYS.NVD_API_VALID_FOR_HOURS, nvdValidForHours); + if (nvdValidForHours != null) { + if (nvdValidForHours >= 0) { + getSettings().setInt(Settings.KEYS.NVD_API_VALID_FOR_HOURS, nvdValidForHours); } else { - throw new BuildException("Invalid setting: `nvdValidForHours` must be 0 or greater"); + throw new BuildException("Invalid setting: `nvdValidForHours` must be 0 or greater"); } } - } + } } \ No newline at end of file diff --git a/dependency-check-ant/jacoco/org.owasp.dependencycheck.taskdefs/index.html b/dependency-check-ant/jacoco/org.owasp.dependencycheck.taskdefs/index.html index 6e7df672123..19d9294aa02 100644 --- a/dependency-check-ant/jacoco/org.owasp.dependencycheck.taskdefs/index.html +++ b/dependency-check-ant/jacoco/org.owasp.dependencycheck.taskdefs/index.html @@ -1 +1 @@ -org.owasp.dependencycheck.taskdefs

    org.owasp.dependencycheck.taskdefs

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethodsMissedClasses
    Total973 of 2,14054%49 of 8844%23629035661320324607
    Check66886156%363448%17621125043215117601
    Update24113936%10216%515386114454701
    Purge649860%3125%914204871201
    Check.ReportFormats35100%2100%03070201
    Check.ReportFormat14100%n/a03040301
    RetirejsFilter100%n/a03040301
    SuppressionFile100%n/a03040301
    \ No newline at end of file +org.owasp.dependencycheck.taskdefs

    org.owasp.dependencycheck.taskdefs

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethodsMissedClasses
    Total980 of 2,18755%49 of 9045%23829335962020524807
    Check66886156%363448%17621125043215117601
    Update24814536%10216%535589118474901
    Purge6413267%3350%915205171201
    Check.ReportFormats35100%2100%03070201
    Check.ReportFormat14100%n/a03040301
    RetirejsFilter100%n/a03040301
    SuppressionFile100%n/a03040301
    \ No newline at end of file diff --git a/dependency-check-ant/jacoco/org.owasp.dependencycheck.taskdefs/index.source.html b/dependency-check-ant/jacoco/org.owasp.dependencycheck.taskdefs/index.source.html index a5624846d73..62446f34d4c 100644 --- a/dependency-check-ant/jacoco/org.owasp.dependencycheck.taskdefs/index.source.html +++ b/dependency-check-ant/jacoco/org.owasp.dependencycheck.taskdefs/index.source.html @@ -1 +1 @@ -org.owasp.dependencycheck.taskdefs

    org.owasp.dependencycheck.taskdefs

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethodsMissedClasses
    Total973 of 2,14054%49 of 8844%23629035661320324607
    Check.java66891057%363650%17621725044315118103
    Update.java24113936%10216%515386114454701
    Purge.java649860%3125%914204871201
    SuppressionFile.java100%n/a03040301
    RetirejsFilter.java100%n/a03040301
    \ No newline at end of file +org.owasp.dependencycheck.taskdefs

    org.owasp.dependencycheck.taskdefs

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethodsMissedClasses
    Total980 of 2,18755%49 of 9045%23829335962020524807
    Check.java66891057%363650%17621725044315118103
    Update.java24814536%10216%535589118474901
    Purge.java6413267%3350%915205171201
    SuppressionFile.java100%n/a03040301
    RetirejsFilter.java100%n/a03040301
    \ No newline at end of file diff --git a/dependency-check-ant/licenses.html b/dependency-check-ant/licenses.html index 605bd347337..921a42a7bc0 100644 --- a/dependency-check-ant/licenses.html +++ b/dependency-check-ant/licenses.html @@ -1,13 +1,13 @@ - + dependency-check-ant – Project Licenses @@ -41,8 +41,8 @@
  • documentation/
  • dependency-check/
  • Project Licenses
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • diff --git a/dependency-check-ant/plugin-updates-report.html b/dependency-check-ant/plugin-updates-report.html index dd3e6b502dd..1af1afe7a45 100644 --- a/dependency-check-ant/plugin-updates-report.html +++ b/dependency-check-ant/plugin-updates-report.html @@ -1,13 +1,13 @@ - + dependency-check-ant – Plugin Updates Report @@ -41,8 +41,8 @@
  • documentation/
  • dependency-check/
  • Plugin Updates Report
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • @@ -98,7 +98,7 @@

    Overview

    # of plugins using the latest version available -27 +25 # of plugins where the next version available is smaller than an incremental version update @@ -106,7 +106,7 @@

    Overview

    # of plugins where the next version available is an incremental version update -1 +3 # of plugins where the next version available is a minor version update @@ -222,12 +222,12 @@

    Plugin Management

    - + org.apache.maven.plugins maven-failsafe-plugin -3.2.2 - +3.2.2 +3.2.3 @@ -322,12 +322,12 @@

    Plugin Management

    - + org.apache.maven.plugins maven-surefire-plugin -3.2.2 - +3.2.2 +3.2.3 @@ -645,7 +645,7 @@

    Plugin o - + @@ -654,7 +654,10 @@

    Plugin o

    -
    Status No newer versions available.
     There is at least one newer incremental version available. Incremental updates are typically passive.
    Group Id org.apache.maven.plugins
    maven-failsafe-plugin
    Current Version3.2.2
    +3.2.2 + +Newer versions +3.2.3 Latest Incremental

    Plugin org.apache.maven.plugins:maven-gpg-plugin

    @@ -908,7 +911,7 @@

    Plugin o

    - + @@ -917,7 +920,10 @@

    Plugin o

    -
    Status No newer versions available.
     There is at least one newer incremental version available. Incremental updates are typically passive.
    Group Id org.apache.maven.plugins
    maven-surefire-plugin
    Current Version3.2.2
    +3.2.2 + +Newer versions +3.2.3 Latest Incremental

    Plugin org.codehaus.gmavenplus:gmavenplus-plugin

    diff --git a/dependency-check-ant/project-info.html b/dependency-check-ant/project-info.html index 004aae0bda8..bb1df776171 100644 --- a/dependency-check-ant/project-info.html +++ b/dependency-check-ant/project-info.html @@ -1,13 +1,13 @@ - + dependency-check-ant – Project Information @@ -41,8 +41,8 @@
  • documentation/
  • dependency-check/
  • Project Information
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • diff --git a/dependency-check-ant/project-reports.html b/dependency-check-ant/project-reports.html index 53bd837dd4b..6e50864866d 100644 --- a/dependency-check-ant/project-reports.html +++ b/dependency-check-ant/project-reports.html @@ -1,13 +1,13 @@ - + dependency-check-ant – Generated Reports @@ -41,8 +41,8 @@
  • documentation/
  • dependency-check/
  • Generated Reports
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • diff --git a/dependency-check-ant/scm.html b/dependency-check-ant/scm.html index af3e9c8b10a..1f89bee532e 100644 --- a/dependency-check-ant/scm.html +++ b/dependency-check-ant/scm.html @@ -1,13 +1,13 @@ - + dependency-check-ant – Source Code Management @@ -41,8 +41,8 @@
  • documentation/
  • dependency-check/
  • Source Code Management
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • @@ -94,11 +94,11 @@

    Web Browser Access

    Anonymous Access

    The source can be checked out anonymously from Git with this command (See https://git-scm.com/docs/git-clone):

    -
    $ git clone --branch v9.0.4 https://github.com/jeremylong/DependencyCheck.git
    +
    $ git clone --branch v9.0.5 https://github.com/jeremylong/DependencyCheck.git

    Developer Access

    Only project developers can access the Git tree via this method (See https://git-scm.com/docs/git-clone).

    -
    $ git clone --branch v9.0.4 git@github.com:jeremylong/DependencyCheck.git
    +
    $ git clone --branch v9.0.5 git@github.com:jeremylong/DependencyCheck.git

    Access from Behind a Firewall

    Refer to the documentation of the SCM used for more information about access behind a firewall.

    diff --git a/dependency-check-ant/spotbugs.html b/dependency-check-ant/spotbugs.html index 79f556f8cce..6c05d0924a0 100644 --- a/dependency-check-ant/spotbugs.html +++ b/dependency-check-ant/spotbugs.html @@ -1,13 +1,13 @@ - + dependency-check-ant – SpotBugs Bug Detector Report @@ -41,8 +41,8 @@
  • documentation/
  • dependency-check/
  • SpotBugs Bug Detector Report
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • diff --git a/dependency-check-ant/summary.html b/dependency-check-ant/summary.html index f8ec04b5e79..6190d251697 100644 --- a/dependency-check-ant/summary.html +++ b/dependency-check-ant/summary.html @@ -1,13 +1,13 @@ - + dependency-check-ant – Project Summary @@ -41,8 +41,8 @@
  • documentation/
  • dependency-check/
  • Project Summary
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • @@ -124,7 +124,7 @@

    Build Information

    - + diff --git a/dependency-check-ant/surefire-report.html b/dependency-check-ant/surefire-report.html index 680ce7500d5..bb30b3bbf70 100644 --- a/dependency-check-ant/surefire-report.html +++ b/dependency-check-ant/surefire-report.html @@ -1,13 +1,13 @@ - + dependency-check-ant – Surefire Report @@ -41,8 +41,8 @@
  • documentation/
  • dependency-check/
  • Surefire Report
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • diff --git a/dependency-check-ant/taglist.html b/dependency-check-ant/taglist.html index 0615071ec30..74ac8db7621 100644 --- a/dependency-check-ant/taglist.html +++ b/dependency-check-ant/taglist.html @@ -1,13 +1,13 @@ - + dependency-check-ant – Tag List report @@ -41,8 +41,8 @@
  • documentation/
  • dependency-check/
  • Tag List report
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • diff --git a/dependency-check-ant/team.html b/dependency-check-ant/team.html index e539776c539..5a75273afb4 100644 --- a/dependency-check-ant/team.html +++ b/dependency-check-ant/team.html @@ -1,13 +1,13 @@ - + dependency-check-ant – Project Team @@ -41,8 +41,8 @@
  • documentation/
  • dependency-check/
  • Project Team
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • diff --git a/dependency-check-ant/xref-test/index.html b/dependency-check-ant/xref-test/index.html index 841efe658fd..a94410634a3 100644 --- a/dependency-check-ant/xref-test/index.html +++ b/dependency-check-ant/xref-test/index.html @@ -4,7 +4,7 @@ - Dependency-Check Ant Task 9.0.4 Reference + Dependency-Check Ant Task 9.0.5 Reference diff --git a/dependency-check-ant/xref-test/org/owasp/dependencycheck/taskdefs/package-frame.html b/dependency-check-ant/xref-test/org/owasp/dependencycheck/taskdefs/package-frame.html index 703847759f5..4d5b771414a 100644 --- a/dependency-check-ant/xref-test/org/owasp/dependencycheck/taskdefs/package-frame.html +++ b/dependency-check-ant/xref-test/org/owasp/dependencycheck/taskdefs/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Ant Task 9.0.4 Reference Package org.owasp.dependencycheck.taskdefs + Dependency-Check Ant Task 9.0.5 Reference Package org.owasp.dependencycheck.taskdefs diff --git a/dependency-check-ant/xref-test/org/owasp/dependencycheck/taskdefs/package-summary.html b/dependency-check-ant/xref-test/org/owasp/dependencycheck/taskdefs/package-summary.html index ff27121e27a..6b7da9ff9b5 100644 --- a/dependency-check-ant/xref-test/org/owasp/dependencycheck/taskdefs/package-summary.html +++ b/dependency-check-ant/xref-test/org/owasp/dependencycheck/taskdefs/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Ant Task 9.0.4 Reference Package org.owasp.dependencycheck.taskdefs + Dependency-Check Ant Task 9.0.5 Reference Package org.owasp.dependencycheck.taskdefs diff --git a/dependency-check-ant/xref-test/overview-frame.html b/dependency-check-ant/xref-test/overview-frame.html index e2694010dad..02ebbf6aac9 100644 --- a/dependency-check-ant/xref-test/overview-frame.html +++ b/dependency-check-ant/xref-test/overview-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Ant Task 9.0.4 Reference + Dependency-Check Ant Task 9.0.5 Reference diff --git a/dependency-check-ant/xref-test/overview-summary.html b/dependency-check-ant/xref-test/overview-summary.html index e2d5ee44311..06fdf323247 100644 --- a/dependency-check-ant/xref-test/overview-summary.html +++ b/dependency-check-ant/xref-test/overview-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Ant Task 9.0.4 Reference + Dependency-Check Ant Task 9.0.5 Reference @@ -24,7 +24,7 @@
    -

    Dependency-Check Ant Task 9.0.4 Reference

    +

    Dependency-Check Ant Task 9.0.5 Reference

    Version9.0.4
    9.0.5
    Type jar
    diff --git a/dependency-check-ant/xref/index.html b/dependency-check-ant/xref/index.html index 841efe658fd..a94410634a3 100644 --- a/dependency-check-ant/xref/index.html +++ b/dependency-check-ant/xref/index.html @@ -4,7 +4,7 @@ - Dependency-Check Ant Task 9.0.4 Reference + Dependency-Check Ant Task 9.0.5 Reference diff --git a/dependency-check-ant/xref/org/owasp/dependencycheck/ant/logging/package-frame.html b/dependency-check-ant/xref/org/owasp/dependencycheck/ant/logging/package-frame.html index efdd6a8c771..02ff49b48d2 100644 --- a/dependency-check-ant/xref/org/owasp/dependencycheck/ant/logging/package-frame.html +++ b/dependency-check-ant/xref/org/owasp/dependencycheck/ant/logging/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Ant Task 9.0.4 Reference Package org.owasp.dependencycheck.ant.logging + Dependency-Check Ant Task 9.0.5 Reference Package org.owasp.dependencycheck.ant.logging diff --git a/dependency-check-ant/xref/org/owasp/dependencycheck/ant/logging/package-summary.html b/dependency-check-ant/xref/org/owasp/dependencycheck/ant/logging/package-summary.html index 875be1a276e..f544c4d00be 100644 --- a/dependency-check-ant/xref/org/owasp/dependencycheck/ant/logging/package-summary.html +++ b/dependency-check-ant/xref/org/owasp/dependencycheck/ant/logging/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Ant Task 9.0.4 Reference Package org.owasp.dependencycheck.ant.logging + Dependency-Check Ant Task 9.0.5 Reference Package org.owasp.dependencycheck.ant.logging diff --git a/dependency-check-ant/xref/org/owasp/dependencycheck/taskdefs/Purge.html b/dependency-check-ant/xref/org/owasp/dependencycheck/taskdefs/Purge.html index 2a25d76b9e3..8352d0d1fb6 100644 --- a/dependency-check-ant/xref/org/owasp/dependencycheck/taskdefs/Purge.html +++ b/dependency-check-ant/xref/org/owasp/dependencycheck/taskdefs/Purge.html @@ -29,200 +29,203 @@ 21import java.io.File; 22import java.io.IOException; 23import java.io.InputStream; -24import java.lang.reflect.Field; -25 -26import org.apache.tools.ant.BuildException; -27import org.apache.tools.ant.Project; -28import org.apache.tools.ant.Task; -29import org.owasp.dependencycheck.Engine; -30import org.owasp.dependencycheck.utils.Settings; -31import org.slf4j.Logger; -32import org.slf4j.LoggerFactory; -33import org.slf4j.impl.StaticLoggerBinder; -34import org.slf4j.spi.LocationAwareLogger; -35 -36/** -37 * An Ant task definition to execute dependency-check during an Ant build. -38 * -39 * @author Jeremy Long -40 */ -41publicclassPurgeextends Task { -42 +24 +25import org.apache.tools.ant.BuildException; +26import org.apache.tools.ant.Project; +27import org.apache.tools.ant.Task; +28import org.owasp.dependencycheck.Engine; +29import org.owasp.dependencycheck.utils.Settings; +30import org.slf4j.impl.StaticLoggerBinder; +31 +32/** +33 * An Ant task definition to execute dependency-check during an Ant build. +34 * +35 * @author Jeremy Long +36 */ +37publicclassPurgeextends Task { +38 +39/** +40 * The properties file location. +41 */ +42privatestaticfinal String PROPERTIES_FILE = "task.properties"; 43/** -44 * The properties file location. +44 * The configured settings.45 */ -46privatestaticfinal String PROPERTIES_FILE = "task.properties"; -47/** -48 * The configured settings. -49 */ -50private Settings settings; -51 +46private Settings settings; +47 +48/** +49 * The location of the data directory that contains +50 */ +51private String dataDirectory = null; 52/** -53 * The location of the data directory that contains -54 */ -55private String dataDirectory = null; -56/** -57 * Indicates if dependency-check should fail the build if an exception -58 * occurs. -59 */ -60privateboolean failOnError = true; -61 -62/** -63 * The URL to hosted suppressions file with base FP suppressions. -64 */ -65private String hostedSuppressionsUrl = null; -66 -67/** -68 * Construct a new DependencyCheckTask. -69 */ -70publicPurge() { -71super(); -72 -73// Call this before Dependency Check Core starts logging anything - this way, all SLF4J messages from -74// core end up coming through this tasks logger -75 StaticLoggerBinder.getSingleton().setTask(this); +53 * Indicates if dependency-check should fail the build if an exception +54 * occurs. +55 */ +56privateboolean failOnError = true; +57 +58/** +59 * The URL to hosted suppressions file with base FP suppressions. +60 */ +61private String hostedSuppressionsUrl = null; +62 +63/** +64 * Construct a new DependencyCheckTask. +65 */ +66publicPurge() { +67super(); +68 +69// Call this before Dependency Check Core starts logging anything - this way, all SLF4J messages from +70// core end up coming through this tasks logger +71 StaticLoggerBinder.getSingleton().setTask(this); +72 } +73 +74public Settings getSettings() { +75return settings; 76 } 77 -78public Settings getSettings() { -79return settings; -80 } -81 -82/** -83 * Get the value of dataDirectory. -84 * -85 * @return the value of dataDirectory -86 */ -87public String getDataDirectory() { -88return dataDirectory; -89 } -90 -91/** -92 * Set the value of dataDirectory. -93 * -94 * @param dataDirectory new value of dataDirectory -95 */ -96publicvoid setDataDirectory(String dataDirectory) { -97this.dataDirectory = dataDirectory; -98 } -99 -100/** -101 * Get the value of failOnError. -102 * -103 * @return the value of failOnError -104 */ -105publicboolean isFailOnError() { -106return failOnError; -107 } -108 -109/** -110 * Set the value of failOnError. -111 * -112 * @param failOnError new value of failOnError -113 */ -114publicvoid setFailOnError(boolean failOnError) { -115this.failOnError = failOnError; -116 } -117 -118/** -119 * Get the value of hostedSuppressionsUrl. -120 * -121 * @return the value of hostedSuppressionsUrl -122 */ -123public String getHostedSuppressionsUrl() { -124return hostedSuppressionsUrl; -125 } -126 -127/** -128 * Set the value of hostedSuppressionsUrl. -129 * -130 * @param hostedSuppressionsUrl new value of hostedSuppressionsUrl -131 */ -132publicvoid setHostedSuppressionsUrl(final String hostedSuppressionsUrl) { -133this.hostedSuppressionsUrl = hostedSuppressionsUrl; -134 } -135 -136/** -137 * Sets the -138 * {@link Thread#getContextClassLoader() Thread Context Class Loader} to the -139 * one for this class, and then calls -140 * {@link #executeWithContextClassloader()}. This is done because the JCS -141 * cache needs to have the Thread Context Class Loader set to something that -142 * can resolve it's classes. Other build tools do this by default but Ant -143 * does not. -144 * -145 * @throws BuildException throws if there is a problem. See -146 * {@link #executeWithContextClassloader()} for details -147 */ -148 @Override -149publicfinalvoid execute() throws BuildException { -150 muteJCS(); -151final ClassLoader current = Thread.currentThread().getContextClassLoader(); -152try { -153 Thread.currentThread().setContextClassLoader(getClass().getClassLoader()); -154 -155 executeWithContextClassloader(); -156 } finally { -157 Thread.currentThread().setContextClassLoader(current); -158 } -159 } -160 -161/** -162 * Hacky method of muting the noisy logging from JCS. -163 */ -164privatevoid muteJCS() { -165 System.setProperty("jcs.logSystem", "slf4j"); -166 Slf4jAdapter.muteLogging(true); -167 } -168 -169/** -170 * Executes the dependency-check purge to delete the existing local copy of -171 * the NVD CVE data. -172 * -173 * @throws BuildException thrown if there is a problem deleting the file(s) -174 */ -175//see note on `Check.dealWithReferences()` for information on this suppression -176 @SuppressWarnings("squid:RedundantThrowsDeclarationCheck") -177protectedvoid executeWithContextClassloader() throws BuildException { -178 populateSettings(); -179try (Engine engine = new Engine(Engine.Mode.EVIDENCE_PROCESSING, getSettings())) { -180 engine.purge(); -181 } finally { -182 settings.cleanup(true); -183 } -184 } -185 -186/** -187 * Takes the properties supplied and updates the dependency-check settings. -188 * Additionally, this sets the system properties required to change the -189 * proxy server, port, and connection timeout. -190 * -191 * @throws BuildException thrown if the properties file cannot be read. -192 */ -193//see note on `Check.dealWithReferences()` for information on this suppression -194 @SuppressWarnings("squid:RedundantThrowsDeclarationCheck") -195protectedvoid populateSettings() throws BuildException { -196 settings = new Settings(); -197try (InputStream taskProperties = this.getClass().getClassLoader().getResourceAsStream(PROPERTIES_FILE)) { -198 settings.mergeProperties(taskProperties); -199 } catch (IOException ex) { -200final String msg = "Unable to load the dependency-check ant task.properties file."; -201if (this.failOnError) { -202thrownew BuildException(msg, ex); -203 } -204 log(msg, ex, Project.MSG_WARN); -205 } -206 settings.setStringIfNotEmpty(Settings.KEYS.HOSTED_SUPPRESSIONS_URL, hostedSuppressionsUrl); -207if (dataDirectory != null) { -208 settings.setString(Settings.KEYS.DATA_DIRECTORY, dataDirectory); -209 } else { -210final File jarPath = new File(Purge.class.getProtectionDomain().getCodeSource().getLocation().getPath()); -211final File base = jarPath.getParentFile(); -212final String sub = settings.getString(Settings.KEYS.DATA_DIRECTORY); -213final File dataDir = new File(base, sub); -214 settings.setString(Settings.KEYS.DATA_DIRECTORY, dataDir.getAbsolutePath()); -215 } -216 } -217 } +78/** +79 * Get the value of dataDirectory. +80 * +81 * @return the value of dataDirectory +82 */ +83public String getDataDirectory() { +84return dataDirectory; +85 } +86 +87/** +88 * Set the value of dataDirectory. +89 * +90 * @param dataDirectory new value of dataDirectory +91 */ +92publicvoid setDataDirectory(String dataDirectory) { +93this.dataDirectory = dataDirectory; +94 } +95 +96/** +97 * Get the value of failOnError. +98 * +99 * @return the value of failOnError +100 */ +101publicboolean isFailOnError() { +102return failOnError; +103 } +104 +105/** +106 * Set the value of failOnError. +107 * +108 * @param failOnError new value of failOnError +109 */ +110publicvoid setFailOnError(boolean failOnError) { +111this.failOnError = failOnError; +112 } +113 +114/** +115 * Get the value of hostedSuppressionsUrl. +116 * +117 * @return the value of hostedSuppressionsUrl +118 */ +119public String getHostedSuppressionsUrl() { +120return hostedSuppressionsUrl; +121 } +122 +123/** +124 * Set the value of hostedSuppressionsUrl. +125 * +126 * @param hostedSuppressionsUrl new value of hostedSuppressionsUrl +127 */ +128publicvoid setHostedSuppressionsUrl(final String hostedSuppressionsUrl) { +129this.hostedSuppressionsUrl = hostedSuppressionsUrl; +130 } +131 +132/** +133 * Sets the +134 * {@link Thread#getContextClassLoader() Thread Context Class Loader} to the +135 * one for this class, and then calls +136 * {@link #executeWithContextClassloader()}. This is done because the JCS +137 * cache needs to have the Thread Context Class Loader set to something that +138 * can resolve it's classes. Other build tools do this by default but Ant +139 * does not. +140 * +141 * @throws BuildException throws if there is a problem. See +142 * {@link #executeWithContextClassloader()} for details +143 */ +144 @Override +145publicfinalvoid execute() throws BuildException { +146 muteNoisyLoggers(); +147final ClassLoader current = Thread.currentThread().getContextClassLoader(); +148try { +149 Thread.currentThread().setContextClassLoader(getClass().getClassLoader()); +150 +151 executeWithContextClassloader(); +152 } finally { +153 Thread.currentThread().setContextClassLoader(current); +154 } +155 } +156 +157/** +158 * Hacky method of muting the noisy logging from JCS. +159 */ +160privatevoid muteNoisyLoggers() { +161 System.setProperty("jcs.logSystem", "slf4j"); +162 Slf4jAdapter.muteLogging(true); +163 +164final String[] noisyLoggers = { +165"org.apache.hc" +166 }; +167for (String loggerName : noisyLoggers) { +168 System.setProperty("org.slf4j.simpleLogger.log." + loggerName, "error"); +169 } +170 } +171 +172/** +173 * Executes the dependency-check purge to delete the existing local copy of +174 * the NVD CVE data. +175 * +176 * @throws BuildException thrown if there is a problem deleting the file(s) +177 */ +178//see note on `Check.dealWithReferences()` for information on this suppression +179 @SuppressWarnings("squid:RedundantThrowsDeclarationCheck") +180protectedvoid executeWithContextClassloader() throws BuildException { +181 populateSettings(); +182try (Engine engine = new Engine(Engine.Mode.EVIDENCE_PROCESSING, getSettings())) { +183 engine.purge(); +184 } finally { +185 settings.cleanup(true); +186 } +187 } +188 +189/** +190 * Takes the properties supplied and updates the dependency-check settings. +191 * Additionally, this sets the system properties required to change the +192 * proxy server, port, and connection timeout. +193 * +194 * @throws BuildException thrown if the properties file cannot be read. +195 */ +196//see note on `Check.dealWithReferences()` for information on this suppression +197 @SuppressWarnings("squid:RedundantThrowsDeclarationCheck") +198protectedvoid populateSettings() throws BuildException { +199 settings = new Settings(); +200try (InputStream taskProperties = this.getClass().getClassLoader().getResourceAsStream(PROPERTIES_FILE)) { +201 settings.mergeProperties(taskProperties); +202 } catch (IOException ex) { +203final String msg = "Unable to load the dependency-check ant task.properties file."; +204if (this.failOnError) { +205thrownew BuildException(msg, ex); +206 } +207 log(msg, ex, Project.MSG_WARN); +208 } +209 settings.setStringIfNotEmpty(Settings.KEYS.HOSTED_SUPPRESSIONS_URL, hostedSuppressionsUrl); +210if (dataDirectory != null) { +211 settings.setString(Settings.KEYS.DATA_DIRECTORY, dataDirectory); +212 } else { +213final File jarPath = new File(Purge.class.getProtectionDomain().getCodeSource().getLocation().getPath()); +214final File base = jarPath.getParentFile(); +215final String sub = settings.getString(Settings.KEYS.DATA_DIRECTORY); +216final File dataDir = new File(base, sub); +217 settings.setString(Settings.KEYS.DATA_DIRECTORY, dataDir.getAbsolutePath()); +218 } +219 } +220 }
    diff --git a/dependency-check-ant/xref/org/owasp/dependencycheck/taskdefs/Update.html b/dependency-check-ant/xref/org/owasp/dependencycheck/taskdefs/Update.html index f2d89f3f57c..3fa53815b61 100644 --- a/dependency-check-ant/xref/org/owasp/dependencycheck/taskdefs/Update.html +++ b/dependency-check-ant/xref/org/owasp/dependencycheck/taskdefs/Update.html @@ -46,584 +46,607 @@ 38publicclassUpdateextendsPurge { 3940/** -41 * The NVD API Key. +41 * The NVD API endpoint.42 */ -43private String nvdApiKey; +43private String nvdApiEndpoint; 44/** -45 * The maximum number of retry requests for a single call to the NVD API. +45 * The NVD API Key.46 */ -47private Integer nvdMaxRetryCount; +47private String nvdApiKey; 48/** -49 * The number of hours to wait before checking for new updates from the NVD. +49 * The maximum number of retry requests for a single call to the NVD API.50 */ -51private Integer nvdValidForHours; +51private Integer nvdMaxRetryCount; 52/** -53 * The NVD API Data Feed URL. +53 * The number of hours to wait before checking for new updates from the NVD.54 */ -55private String nvdDatafeedUrl; +55private Integer nvdValidForHours; 56/** -57 * The username for basic auth to the NVD Data Feed. +57 * The NVD API Data Feed URL.58 */ -59private String nvdUser; +59private String nvdDatafeedUrl; 60/** -61 * The password for basic auth to the NVD Data Feed. +61 * The username for basic auth to the NVD Data Feed.62 */ -63private String nvdPassword; +63private String nvdUser; 64/** -65 * The time in milliseconds to wait between downloading NVD API data. +65 * The password for basic auth to the NVD Data Feed.66 */ -67privateint nvdApiDelay = 0; -68 -69/** -70 * The Proxy Server. -71 */ -72private String proxyServer; +67private String nvdPassword; +68/** +69 * The time in milliseconds to wait between downloading NVD API data. +70 */ +71privateint nvdApiDelay = 0; +7273/** -74 * The Proxy Port. +74 * The Proxy Server.75 */ -76private String proxyPort; +76private String proxyServer; 77/** -78 * The Proxy username. +78 * The Proxy Port.79 */ -80private String proxyUsername; +80private String proxyPort; 81/** -82 * The Proxy password. +82 * The Proxy username.83 */ -84private String proxyPassword; +84private String proxyUsername; 85/** -86 * Non proxy hosts +86 * The Proxy password.87 */ -88private String nonProxyHosts; +88private String proxyPassword; 89/** -90 * The Connection Timeout. +90 * Non proxy hosts91 */ -92private String connectionTimeout; +92private String nonProxyHosts; 93/** -94 * The Read Timeout. +94 * The Connection Timeout.95 */ -96private String readTimeout; +96private String connectionTimeout; 97/** -98 * The database driver name; such as org.h2.Driver. +98 * The Read Timeout.99 */ -100private String databaseDriverName; +100private String readTimeout; 101/** -102 * The path to the database driver JAR file if it is not on the class path. +102 * The database driver name; such as org.h2.Driver.103 */ -104private String databaseDriverPath; +104private String databaseDriverName; 105/** -106 * The database connection string. +106 * The path to the database driver JAR file if it is not on the class path.107 */ -108private String connectionString; +108private String databaseDriverPath; 109/** -110 * The user name for connecting to the database. +110 * The database connection string.111 */ -112private String databaseUser; +112private String connectionString; 113/** -114 * The password to use when connecting to the database. +114 * The user name for connecting to the database.115 */ -116private String databasePassword; +116private String databaseUser; 117/** -118 * The number of hours to wait before re-checking hosted suppressions file -119 * for updates. -120 */ -121private Integer hostedSuppressionsValidForHours; -122/** -123 * Whether the hosted suppressions file will be updated regardless of the -124 * `autoupdate` settings. Defaults to false. -125 */ -126private Boolean hostedSuppressionsForceUpdate; -127/** -128 * Whether the hosted suppressions file will be used. Defaults to true. +118 * The password to use when connecting to the database. +119 */ +120private String databasePassword; +121/** +122 * The number of hours to wait before re-checking hosted suppressions file +123 * for updates. +124 */ +125private Integer hostedSuppressionsValidForHours; +126/** +127 * Whether the hosted suppressions file will be updated regardless of the +128 * `autoupdate` settings. Defaults to false.129 */ -130private Boolean hostedSuppressionsEnabled; -131 -132/** -133 * Construct a new UpdateTask. -134 */ -135publicUpdate() { -136super(); -137// Call this before Dependency Check Core starts logging anything - this way, all SLF4J messages from -138// core end up coming through this tasks logger -139 StaticLoggerBinder.getSingleton().setTask(this); -140 } -141 -142/** -143 * Get the value of nvdApiKey. -144 * -145 * @return the value of nvdApiKey -146 */ -147public String getNvdApiKey() { -148return nvdApiKey; -149 } -150 -151/** -152 * Set the value of nvdApiKey. -153 * -154 * @param nvdApiKey new value of nvdApiKey -155 */ -156publicvoid setNvdApiKey(String nvdApiKey) { -157this.nvdApiKey = nvdApiKey; -158 } -159 -160/** -161 * Get the value of nvdMaxRetryCount. -162 * -163 * @return the value of nvdMaxRetryCount -164 */ -165publicint getNvdMaxRetryCounts() { -166return nvdMaxRetryCount; -167 } -168 -169/** -170 * Set the value of nvdMaxRetryCount. -171 * -172 * @param nvdMaxRetryCount new value of nvdMaxRetryCount -173 */ -174publicvoid setNvdMaxRetryCount(int nvdMaxRetryCount) { -175this.nvdMaxRetryCount = nvdMaxRetryCount; -176 } -177 -178/** -179 * Get the value of nvdValidForHours. -180 * -181 * @return the value of nvdValidForHours -182 */ -183publicint getNvdValidForHours() { -184return nvdValidForHours; -185 } -186 -187/** -188 * Set the value of nvdValidForHours. -189 * -190 * @param nvdValidForHours new value of nvdValidForHours -191 */ -192publicvoid setNvdValidForHours(int nvdValidForHours) { -193this.nvdValidForHours = nvdValidForHours; -194 } -195 -196/** -197 * Get the value of nvdDatafeedUrl. -198 * -199 * @return the value of nvdDatafeedUrl -200 */ -201public String getNvdDatafeedUrl() { -202return nvdDatafeedUrl; -203 } -204 -205/** -206 * Set the value of nvdDatafeedUrl. -207 * -208 * @param nvdDatafeedUrl new value of nvdDatafeedUrl -209 */ -210publicvoid setNvdDatafeedUrl(String nvdDatafeedUrl) { -211this.nvdDatafeedUrl = nvdDatafeedUrl; -212 } -213 -214/** -215 * Get the value of nvdUser. -216 * -217 * @return the value of nvdUser -218 */ -219public String getNvdUser() { -220return nvdUser; -221 } -222 -223/** -224 * Set the value of nvdUser. -225 * -226 * @param nvdUser new value of nvdUser -227 */ -228publicvoid setNvdUser(String nvdUser) { -229this.nvdUser = nvdUser; -230 } -231 -232/** -233 * Get the value of nvdPassword. -234 * -235 * @return the value of nvdPassword -236 */ -237public String getNvdPassword() { -238return nvdPassword; -239 } -240 -241/** -242 * Set the value of nvdPassword. -243 * -244 * @param nvdPassword new value of nvdPassword -245 */ -246publicvoid setNvdPassword(String nvdPassword) { -247this.nvdPassword = nvdPassword; -248 } -249 -250/** -251 * Get the value of nvdApiDelay. -252 * -253 * @return the value of nvdApiDelay -254 */ -255publicint getNvdApiDelay() { -256return nvdApiDelay; -257 } -258 -259/** -260 * Set the value of nvdApiDelay. -261 * -262 * @param nvdApiDelay new value of nvdApiDelay -263 */ -264publicvoid setNvdApiDelay(int nvdApiDelay) { -265this.nvdApiDelay = nvdApiDelay; -266 } -267 -268/** -269 * Get the value of proxyServer. -270 * -271 * @return the value of proxyServer -272 */ -273public String getProxyServer() { -274return proxyServer; -275 } -276 -277/** -278 * Set the value of proxyServer. -279 * -280 * @param server new value of proxyServer -281 */ -282publicvoid setProxyServer(String server) { -283this.proxyServer = server; -284 } -285 -286/** -287 * Get the value of proxyPort. -288 * -289 * @return the value of proxyPort -290 */ -291public String getProxyPort() { -292return proxyPort; -293 } -294 -295/** -296 * Set the value of proxyPort. -297 * -298 * @param proxyPort new value of proxyPort -299 */ -300publicvoid setProxyPort(String proxyPort) { -301this.proxyPort = proxyPort; -302 } -303 -304/** -305 * Get the value of proxyUsername. -306 * -307 * @return the value of proxyUsername -308 */ -309public String getProxyUsername() { -310return proxyUsername; -311 } -312 -313/** -314 * Set the value of proxyUsername. -315 * -316 * @param proxyUsername new value of proxyUsername -317 */ -318publicvoid setProxyUsername(String proxyUsername) { -319this.proxyUsername = proxyUsername; -320 } -321 -322/** -323 * Get the value of proxyPassword. -324 * -325 * @return the value of proxyPassword -326 */ -327public String getProxyPassword() { -328return proxyPassword; -329 } -330 -331/** -332 * Set the value of proxyPassword. -333 * -334 * @param proxyPassword new value of proxyPassword -335 */ -336publicvoid setProxyPassword(String proxyPassword) { -337this.proxyPassword = proxyPassword; -338 } -339 -340/** -341 * Get the value of nonProxyHosts. -342 * -343 * @return the value of nonProxyHosts -344 */ -345public String getNonProxyHosts() { -346return nonProxyHosts; -347 } -348 -349/** -350 * Set the value of nonProxyHosts. -351 * -352 * @param nonProxyHosts new value of nonProxyHosts -353 */ -354publicvoid setNonProxyHosts(String nonProxyHosts) { -355this.nonProxyHosts = nonProxyHosts; -356 } -357 -358/** -359 * Get the value of connectionTimeout. -360 * -361 * @return the value of connectionTimeout -362 */ -363public String getConnectionTimeout() { -364return connectionTimeout; -365 } -366 -367/** -368 * Set the value of connectionTimeout. -369 * -370 * @param connectionTimeout new value of connectionTimeout -371 */ -372publicvoid setConnectionTimeout(String connectionTimeout) { -373this.connectionTimeout = connectionTimeout; -374 } -375 -376/** -377 * Get the value of readTimeout. -378 * -379 * @return the value of readTimeout -380 */ -381public String getReadTimeout() { -382return readTimeout; -383 } -384 -385/** -386 * Set the value of readTimeout. -387 * -388 * @param readTimeout new value of readTimeout -389 */ -390publicvoid setReadTimeout(String readTimeout) { -391this.readTimeout = readTimeout; -392 } -393 -394/** -395 * Get the value of databaseDriverName. -396 * -397 * @return the value of databaseDriverName -398 */ -399public String getDatabaseDriverName() { -400return databaseDriverName; -401 } -402 -403/** -404 * Set the value of databaseDriverName. -405 * -406 * @param databaseDriverName new value of databaseDriverName -407 */ -408publicvoid setDatabaseDriverName(String databaseDriverName) { -409this.databaseDriverName = databaseDriverName; -410 } -411 -412/** -413 * Get the value of databaseDriverPath. -414 * -415 * @return the value of databaseDriverPath -416 */ -417public String getDatabaseDriverPath() { -418return databaseDriverPath; -419 } -420 -421/** -422 * Set the value of databaseDriverPath. -423 * -424 * @param databaseDriverPath new value of databaseDriverPath -425 */ -426publicvoid setDatabaseDriverPath(String databaseDriverPath) { -427this.databaseDriverPath = databaseDriverPath; -428 } -429 -430/** -431 * Get the value of connectionString. -432 * -433 * @return the value of connectionString -434 */ -435public String getConnectionString() { -436return connectionString; -437 } -438 -439/** -440 * Set the value of connectionString. -441 * -442 * @param connectionString new value of connectionString -443 */ -444publicvoid setConnectionString(String connectionString) { -445this.connectionString = connectionString; -446 } -447 -448/** -449 * Get the value of databaseUser. -450 * -451 * @return the value of databaseUser -452 */ -453public String getDatabaseUser() { -454return databaseUser; -455 } -456 -457/** -458 * Set the value of databaseUser. -459 * -460 * @param databaseUser new value of databaseUser -461 */ -462publicvoid setDatabaseUser(String databaseUser) { -463this.databaseUser = databaseUser; -464 } -465 -466/** -467 * Get the value of databasePassword. -468 * -469 * @return the value of databasePassword -470 */ -471public String getDatabasePassword() { -472return databasePassword; -473 } -474 -475/** -476 * Set the value of databasePassword. -477 * -478 * @param databasePassword new value of databasePassword -479 */ -480publicvoid setDatabasePassword(String databasePassword) { -481this.databasePassword = databasePassword; -482 } -483 -484/** -485 * Get the value of hostedSuppressionsValidForHours. -486 * -487 * @return the value of hostedSuppressionsValidForHours -488 */ -489public Integer getHostedSuppressionsValidForHours() { -490return hostedSuppressionsValidForHours; -491 } -492 -493/** -494 * Set the value of hostedSuppressionsValidForHours. -495 * -496 * @param hostedSuppressionsValidForHours new value of -497 * hostedSuppressionsValidForHours -498 */ -499publicvoid setHostedSuppressionsValidForHours(final Integer hostedSuppressionsValidForHours) { -500this.hostedSuppressionsValidForHours = hostedSuppressionsValidForHours; -501 } -502 -503/** -504 * Get the value of hostedSuppressionsForceUpdate. -505 * -506 * @return the value of hostedSuppressionsForceUpdate -507 */ -508public Boolean isHostedSuppressionsForceUpdate() { -509return hostedSuppressionsForceUpdate; -510 } -511 -512/** -513 * Set the value of hostedSuppressionsForceUpdate. -514 * -515 * @param hostedSuppressionsForceUpdate new value of -516 * hostedSuppressionsForceUpdate -517 */ -518publicvoid setHostedSuppressionsForceUpdate(final Boolean hostedSuppressionsForceUpdate) { -519this.hostedSuppressionsForceUpdate = hostedSuppressionsForceUpdate; -520 } -521 -522/** -523 * Get the value of hostedSuppressionsEnabled. -524 * -525 * @return the value of hostedSuppressionsEnabled -526 */ -527public Boolean isHostedSuppressionsEnabled() { -528return hostedSuppressionsEnabled; -529 } -530 -531/** -532 * Set the value of hostedSuppressionsEnabled. -533 * -534 * @param hostedSuppressionsEnabled new value of hostedSuppressionsEnabled -535 */ -536publicvoid setHostedSuppressionsEnabled(Boolean hostedSuppressionsEnabled) { -537this.hostedSuppressionsEnabled = hostedSuppressionsEnabled; -538 } -539 -540/** -541 * Executes the update by initializing the settings, downloads the NVD XML -542 * data, and then processes the data storing it in the local database. -543 * -544 * @throws BuildException thrown if a connection to the local database -545 * cannot be made. -546 */ -547//see note on `Check.dealWithReferences()` for information on this suppression -548 @SuppressWarnings("squid:RedundantThrowsDeclarationCheck") -549 @Override -550protectedvoid executeWithContextClassloader() throws BuildException { -551 populateSettings(); -552try (Engine engine = new Engine(Update.class.getClassLoader(), getSettings())) { -553 engine.doUpdates(); -554 } catch (UpdateException ex) { -555if (this.isFailOnError()) { -556thrownew BuildException(ex); -557 } -558 log(ex.getMessage(), Project.MSG_ERR); -559 } catch (DatabaseException ex) { -560final String msg = "Unable to connect to the dependency-check database; unable to update the NVD data"; -561if (this.isFailOnError()) { -562thrownew BuildException(msg, ex); -563 } -564 log(msg, Project.MSG_ERR); -565 } finally { -566 getSettings().cleanup(); -567 } -568 } -569 -570/** -571 * Takes the properties supplied and updates the dependency-check settings. -572 * Additionally, this sets the system properties required to change the -573 * proxy server, port, and connection timeout. -574 * -575 * @throws BuildException thrown when an invalid setting is configured. -576 */ -577//see note on `Check.dealWithReferences()` for information on this suppression -578 @SuppressWarnings("squid:RedundantThrowsDeclarationCheck") -579 @Override -580protectedvoid populateSettings() throws BuildException { -581super.populateSettings(); -582 getSettings().setStringIfNotEmpty(Settings.KEYS.PROXY_SERVER, proxyServer); -583 getSettings().setStringIfNotEmpty(Settings.KEYS.PROXY_PORT, proxyPort); -584 getSettings().setStringIfNotEmpty(Settings.KEYS.PROXY_USERNAME, proxyUsername); -585 getSettings().setStringIfNotEmpty(Settings.KEYS.PROXY_PASSWORD, proxyPassword); -586 getSettings().setStringIfNotEmpty(Settings.KEYS.PROXY_NON_PROXY_HOSTS, nonProxyHosts); -587 getSettings().setStringIfNotEmpty(Settings.KEYS.CONNECTION_TIMEOUT, connectionTimeout); -588 getSettings().setStringIfNotEmpty(Settings.KEYS.CONNECTION_READ_TIMEOUT, readTimeout); -589 getSettings().setStringIfNotEmpty(Settings.KEYS.DB_DRIVER_NAME, databaseDriverName); -590 getSettings().setStringIfNotEmpty(Settings.KEYS.DB_DRIVER_PATH, databaseDriverPath); -591 getSettings().setStringIfNotEmpty(Settings.KEYS.DB_CONNECTION_STRING, connectionString); -592 getSettings().setStringIfNotEmpty(Settings.KEYS.DB_USER, databaseUser); -593 getSettings().setStringIfNotEmpty(Settings.KEYS.DB_PASSWORD, databasePassword); -594 getSettings().setIntIfNotNull(Settings.KEYS.HOSTED_SUPPRESSIONS_VALID_FOR_HOURS, hostedSuppressionsValidForHours); -595 getSettings().setBooleanIfNotNull(Settings.KEYS.HOSTED_SUPPRESSIONS_FORCEUPDATE, hostedSuppressionsForceUpdate); -596 getSettings().setBooleanIfNotNull(Settings.KEYS.HOSTED_SUPPRESSIONS_ENABLED, hostedSuppressionsEnabled); -597 -598 getSettings().setStringIfNotEmpty(Settings.KEYS.NVD_API_KEY, nvdApiKey); -599 getSettings().setIntIfNotNull(Settings.KEYS.NVD_API_DELAY, nvdApiDelay); -600 getSettings().setStringIfNotEmpty(Settings.KEYS.NVD_API_DATAFEED_URL, nvdDatafeedUrl); -601 getSettings().setStringIfNotEmpty(Settings.KEYS.NVD_API_DATAFEED_USER, nvdUser); -602 getSettings().setStringIfNotEmpty(Settings.KEYS.NVD_API_DATAFEED_PASSWORD, nvdPassword); -603if (nvdMaxRetryCount != null) { -604if (nvdMaxRetryCount > 0) { -605 getSettings().setInt(Settings.KEYS.NVD_API_MAX_RETRY_COUNT, nvdMaxRetryCount); -606 } else { -607thrownew BuildException("Invalid setting: `nvdMaxRetryCount` must be greater than zero"); -608 } -609 } -610if (nvdValidForHours != null) { -611if (nvdValidForHours >= 0) { -612 getSettings().setInt(Settings.KEYS.NVD_API_VALID_FOR_HOURS, nvdValidForHours); -613 } else { -614thrownew BuildException("Invalid setting: `nvdValidForHours` must be 0 or greater"); -615 } -616 } -617 } -618 } +130private Boolean hostedSuppressionsForceUpdate; +131/** +132 * Whether the hosted suppressions file will be used. Defaults to true. +133 */ +134private Boolean hostedSuppressionsEnabled; +135 +136/** +137 * Construct a new UpdateTask. +138 */ +139publicUpdate() { +140super(); +141// Call this before Dependency Check Core starts logging anything - this way, all SLF4J messages from +142// core end up coming through this tasks logger +143 StaticLoggerBinder.getSingleton().setTask(this); +144 } +145 +146/** +147 * Get the value of nvdApiEndpoint. +148 * +149 * @return the value of nvdApiEndpoint +150 */ +151public String getNvdApiEndpoint() { +152return nvdApiEndpoint; +153 } +154 +155/** +156 * Set the value of nvdApiEndpoint. +157 * +158 * @param nvdApiEndpoint new value of nvdApiEndpoint +159 */ +160publicvoid setNvdApiEndpoint(String nvdApiEndpoint) { +161this.nvdApiEndpoint = nvdApiEndpoint; +162 } +163 +164/** +165 * Get the value of nvdApiKey. +166 * +167 * @return the value of nvdApiKey +168 */ +169public String getNvdApiKey() { +170return nvdApiKey; +171 } +172 +173/** +174 * Set the value of nvdApiKey. +175 * +176 * @param nvdApiKey new value of nvdApiKey +177 */ +178publicvoid setNvdApiKey(String nvdApiKey) { +179this.nvdApiKey = nvdApiKey; +180 } +181 +182/** +183 * Get the value of nvdMaxRetryCount. +184 * +185 * @return the value of nvdMaxRetryCount +186 */ +187publicint getNvdMaxRetryCounts() { +188return nvdMaxRetryCount; +189 } +190 +191/** +192 * Set the value of nvdMaxRetryCount. +193 * +194 * @param nvdMaxRetryCount new value of nvdMaxRetryCount +195 */ +196publicvoid setNvdMaxRetryCount(int nvdMaxRetryCount) { +197this.nvdMaxRetryCount = nvdMaxRetryCount; +198 } +199 +200/** +201 * Get the value of nvdValidForHours. +202 * +203 * @return the value of nvdValidForHours +204 */ +205publicint getNvdValidForHours() { +206return nvdValidForHours; +207 } +208 +209/** +210 * Set the value of nvdValidForHours. +211 * +212 * @param nvdValidForHours new value of nvdValidForHours +213 */ +214publicvoid setNvdValidForHours(int nvdValidForHours) { +215this.nvdValidForHours = nvdValidForHours; +216 } +217 +218/** +219 * Get the value of nvdDatafeedUrl. +220 * +221 * @return the value of nvdDatafeedUrl +222 */ +223public String getNvdDatafeedUrl() { +224return nvdDatafeedUrl; +225 } +226 +227/** +228 * Set the value of nvdDatafeedUrl. +229 * +230 * @param nvdDatafeedUrl new value of nvdDatafeedUrl +231 */ +232publicvoid setNvdDatafeedUrl(String nvdDatafeedUrl) { +233this.nvdDatafeedUrl = nvdDatafeedUrl; +234 } +235 +236/** +237 * Get the value of nvdUser. +238 * +239 * @return the value of nvdUser +240 */ +241public String getNvdUser() { +242return nvdUser; +243 } +244 +245/** +246 * Set the value of nvdUser. +247 * +248 * @param nvdUser new value of nvdUser +249 */ +250publicvoid setNvdUser(String nvdUser) { +251this.nvdUser = nvdUser; +252 } +253 +254/** +255 * Get the value of nvdPassword. +256 * +257 * @return the value of nvdPassword +258 */ +259public String getNvdPassword() { +260return nvdPassword; +261 } +262 +263/** +264 * Set the value of nvdPassword. +265 * +266 * @param nvdPassword new value of nvdPassword +267 */ +268publicvoid setNvdPassword(String nvdPassword) { +269this.nvdPassword = nvdPassword; +270 } +271 +272/** +273 * Get the value of nvdApiDelay. +274 * +275 * @return the value of nvdApiDelay +276 */ +277publicint getNvdApiDelay() { +278return nvdApiDelay; +279 } +280 +281/** +282 * Set the value of nvdApiDelay. +283 * +284 * @param nvdApiDelay new value of nvdApiDelay +285 */ +286publicvoid setNvdApiDelay(int nvdApiDelay) { +287this.nvdApiDelay = nvdApiDelay; +288 } +289 +290/** +291 * Get the value of proxyServer. +292 * +293 * @return the value of proxyServer +294 */ +295public String getProxyServer() { +296return proxyServer; +297 } +298 +299/** +300 * Set the value of proxyServer. +301 * +302 * @param server new value of proxyServer +303 */ +304publicvoid setProxyServer(String server) { +305this.proxyServer = server; +306 } +307 +308/** +309 * Get the value of proxyPort. +310 * +311 * @return the value of proxyPort +312 */ +313public String getProxyPort() { +314return proxyPort; +315 } +316 +317/** +318 * Set the value of proxyPort. +319 * +320 * @param proxyPort new value of proxyPort +321 */ +322publicvoid setProxyPort(String proxyPort) { +323this.proxyPort = proxyPort; +324 } +325 +326/** +327 * Get the value of proxyUsername. +328 * +329 * @return the value of proxyUsername +330 */ +331public String getProxyUsername() { +332return proxyUsername; +333 } +334 +335/** +336 * Set the value of proxyUsername. +337 * +338 * @param proxyUsername new value of proxyUsername +339 */ +340publicvoid setProxyUsername(String proxyUsername) { +341this.proxyUsername = proxyUsername; +342 } +343 +344/** +345 * Get the value of proxyPassword. +346 * +347 * @return the value of proxyPassword +348 */ +349public String getProxyPassword() { +350return proxyPassword; +351 } +352 +353/** +354 * Set the value of proxyPassword. +355 * +356 * @param proxyPassword new value of proxyPassword +357 */ +358publicvoid setProxyPassword(String proxyPassword) { +359this.proxyPassword = proxyPassword; +360 } +361 +362/** +363 * Get the value of nonProxyHosts. +364 * +365 * @return the value of nonProxyHosts +366 */ +367public String getNonProxyHosts() { +368return nonProxyHosts; +369 } +370 +371/** +372 * Set the value of nonProxyHosts. +373 * +374 * @param nonProxyHosts new value of nonProxyHosts +375 */ +376publicvoid setNonProxyHosts(String nonProxyHosts) { +377this.nonProxyHosts = nonProxyHosts; +378 } +379 +380/** +381 * Get the value of connectionTimeout. +382 * +383 * @return the value of connectionTimeout +384 */ +385public String getConnectionTimeout() { +386return connectionTimeout; +387 } +388 +389/** +390 * Set the value of connectionTimeout. +391 * +392 * @param connectionTimeout new value of connectionTimeout +393 */ +394publicvoid setConnectionTimeout(String connectionTimeout) { +395this.connectionTimeout = connectionTimeout; +396 } +397 +398/** +399 * Get the value of readTimeout. +400 * +401 * @return the value of readTimeout +402 */ +403public String getReadTimeout() { +404return readTimeout; +405 } +406 +407/** +408 * Set the value of readTimeout. +409 * +410 * @param readTimeout new value of readTimeout +411 */ +412publicvoid setReadTimeout(String readTimeout) { +413this.readTimeout = readTimeout; +414 } +415 +416/** +417 * Get the value of databaseDriverName. +418 * +419 * @return the value of databaseDriverName +420 */ +421public String getDatabaseDriverName() { +422return databaseDriverName; +423 } +424 +425/** +426 * Set the value of databaseDriverName. +427 * +428 * @param databaseDriverName new value of databaseDriverName +429 */ +430publicvoid setDatabaseDriverName(String databaseDriverName) { +431this.databaseDriverName = databaseDriverName; +432 } +433 +434/** +435 * Get the value of databaseDriverPath. +436 * +437 * @return the value of databaseDriverPath +438 */ +439public String getDatabaseDriverPath() { +440return databaseDriverPath; +441 } +442 +443/** +444 * Set the value of databaseDriverPath. +445 * +446 * @param databaseDriverPath new value of databaseDriverPath +447 */ +448publicvoid setDatabaseDriverPath(String databaseDriverPath) { +449this.databaseDriverPath = databaseDriverPath; +450 } +451 +452/** +453 * Get the value of connectionString. +454 * +455 * @return the value of connectionString +456 */ +457public String getConnectionString() { +458return connectionString; +459 } +460 +461/** +462 * Set the value of connectionString. +463 * +464 * @param connectionString new value of connectionString +465 */ +466publicvoid setConnectionString(String connectionString) { +467this.connectionString = connectionString; +468 } +469 +470/** +471 * Get the value of databaseUser. +472 * +473 * @return the value of databaseUser +474 */ +475public String getDatabaseUser() { +476return databaseUser; +477 } +478 +479/** +480 * Set the value of databaseUser. +481 * +482 * @param databaseUser new value of databaseUser +483 */ +484publicvoid setDatabaseUser(String databaseUser) { +485this.databaseUser = databaseUser; +486 } +487 +488/** +489 * Get the value of databasePassword. +490 * +491 * @return the value of databasePassword +492 */ +493public String getDatabasePassword() { +494return databasePassword; +495 } +496 +497/** +498 * Set the value of databasePassword. +499 * +500 * @param databasePassword new value of databasePassword +501 */ +502publicvoid setDatabasePassword(String databasePassword) { +503this.databasePassword = databasePassword; +504 } +505 +506/** +507 * Get the value of hostedSuppressionsValidForHours. +508 * +509 * @return the value of hostedSuppressionsValidForHours +510 */ +511public Integer getHostedSuppressionsValidForHours() { +512return hostedSuppressionsValidForHours; +513 } +514 +515/** +516 * Set the value of hostedSuppressionsValidForHours. +517 * +518 * @param hostedSuppressionsValidForHours new value of +519 * hostedSuppressionsValidForHours +520 */ +521publicvoid setHostedSuppressionsValidForHours(final Integer hostedSuppressionsValidForHours) { +522this.hostedSuppressionsValidForHours = hostedSuppressionsValidForHours; +523 } +524 +525/** +526 * Get the value of hostedSuppressionsForceUpdate. +527 * +528 * @return the value of hostedSuppressionsForceUpdate +529 */ +530public Boolean isHostedSuppressionsForceUpdate() { +531return hostedSuppressionsForceUpdate; +532 } +533 +534/** +535 * Set the value of hostedSuppressionsForceUpdate. +536 * +537 * @param hostedSuppressionsForceUpdate new value of +538 * hostedSuppressionsForceUpdate +539 */ +540publicvoid setHostedSuppressionsForceUpdate(final Boolean hostedSuppressionsForceUpdate) { +541this.hostedSuppressionsForceUpdate = hostedSuppressionsForceUpdate; +542 } +543 +544/** +545 * Get the value of hostedSuppressionsEnabled. +546 * +547 * @return the value of hostedSuppressionsEnabled +548 */ +549public Boolean isHostedSuppressionsEnabled() { +550return hostedSuppressionsEnabled; +551 } +552 +553/** +554 * Set the value of hostedSuppressionsEnabled. +555 * +556 * @param hostedSuppressionsEnabled new value of hostedSuppressionsEnabled +557 */ +558publicvoid setHostedSuppressionsEnabled(Boolean hostedSuppressionsEnabled) { +559this.hostedSuppressionsEnabled = hostedSuppressionsEnabled; +560 } +561 +562/** +563 * Executes the update by initializing the settings, downloads the NVD XML +564 * data, and then processes the data storing it in the local database. +565 * +566 * @throws BuildException thrown if a connection to the local database +567 * cannot be made. +568 */ +569//see note on `Check.dealWithReferences()` for information on this suppression +570 @SuppressWarnings("squid:RedundantThrowsDeclarationCheck") +571 @Override +572protectedvoid executeWithContextClassloader() throws BuildException { +573 populateSettings(); +574try (Engine engine = new Engine(Update.class.getClassLoader(), getSettings())) { +575 engine.doUpdates(); +576 } catch (UpdateException ex) { +577if (this.isFailOnError()) { +578thrownew BuildException(ex); +579 } +580 log(ex.getMessage(), Project.MSG_ERR); +581 } catch (DatabaseException ex) { +582final String msg = "Unable to connect to the dependency-check database; unable to update the NVD data"; +583if (this.isFailOnError()) { +584thrownew BuildException(msg, ex); +585 } +586 log(msg, Project.MSG_ERR); +587 } finally { +588 getSettings().cleanup(); +589 } +590 } +591 +592/** +593 * Takes the properties supplied and updates the dependency-check settings. +594 * Additionally, this sets the system properties required to change the +595 * proxy server, port, and connection timeout. +596 * +597 * @throws BuildException thrown when an invalid setting is configured. +598 */ +599//see note on `Check.dealWithReferences()` for information on this suppression +600 @SuppressWarnings("squid:RedundantThrowsDeclarationCheck") +601 @Override +602protectedvoid populateSettings() throws BuildException { +603super.populateSettings(); +604 getSettings().setStringIfNotEmpty(Settings.KEYS.PROXY_SERVER, proxyServer); +605 getSettings().setStringIfNotEmpty(Settings.KEYS.PROXY_PORT, proxyPort); +606 getSettings().setStringIfNotEmpty(Settings.KEYS.PROXY_USERNAME, proxyUsername); +607 getSettings().setStringIfNotEmpty(Settings.KEYS.PROXY_PASSWORD, proxyPassword); +608 getSettings().setStringIfNotEmpty(Settings.KEYS.PROXY_NON_PROXY_HOSTS, nonProxyHosts); +609 getSettings().setStringIfNotEmpty(Settings.KEYS.CONNECTION_TIMEOUT, connectionTimeout); +610 getSettings().setStringIfNotEmpty(Settings.KEYS.CONNECTION_READ_TIMEOUT, readTimeout); +611 getSettings().setStringIfNotEmpty(Settings.KEYS.DB_DRIVER_NAME, databaseDriverName); +612 getSettings().setStringIfNotEmpty(Settings.KEYS.DB_DRIVER_PATH, databaseDriverPath); +613 getSettings().setStringIfNotEmpty(Settings.KEYS.DB_CONNECTION_STRING, connectionString); +614 getSettings().setStringIfNotEmpty(Settings.KEYS.DB_USER, databaseUser); +615 getSettings().setStringIfNotEmpty(Settings.KEYS.DB_PASSWORD, databasePassword); +616 getSettings().setIntIfNotNull(Settings.KEYS.HOSTED_SUPPRESSIONS_VALID_FOR_HOURS, hostedSuppressionsValidForHours); +617 getSettings().setBooleanIfNotNull(Settings.KEYS.HOSTED_SUPPRESSIONS_FORCEUPDATE, hostedSuppressionsForceUpdate); +618 getSettings().setBooleanIfNotNull(Settings.KEYS.HOSTED_SUPPRESSIONS_ENABLED, hostedSuppressionsEnabled); +619 +620 getSettings().setStringIfNotEmpty(Settings.KEYS.NVD_API_KEY, nvdApiKey); +621 getSettings().setStringIfNotEmpty(Settings.KEYS.NVD_API_ENDPOINT, nvdApiEndpoint); +622 getSettings().setIntIfNotNull(Settings.KEYS.NVD_API_DELAY, nvdApiDelay); +623 getSettings().setStringIfNotEmpty(Settings.KEYS.NVD_API_DATAFEED_URL, nvdDatafeedUrl); +624 getSettings().setStringIfNotEmpty(Settings.KEYS.NVD_API_DATAFEED_USER, nvdUser); +625 getSettings().setStringIfNotEmpty(Settings.KEYS.NVD_API_DATAFEED_PASSWORD, nvdPassword); +626if (nvdMaxRetryCount != null) { +627if (nvdMaxRetryCount > 0) { +628 getSettings().setInt(Settings.KEYS.NVD_API_MAX_RETRY_COUNT, nvdMaxRetryCount); +629 } else { +630thrownew BuildException("Invalid setting: `nvdMaxRetryCount` must be greater than zero"); +631 } +632 } +633if (nvdValidForHours != null) { +634if (nvdValidForHours >= 0) { +635 getSettings().setInt(Settings.KEYS.NVD_API_VALID_FOR_HOURS, nvdValidForHours); +636 } else { +637thrownew BuildException("Invalid setting: `nvdValidForHours` must be 0 or greater"); +638 } +639 } +640 } +641 }
    diff --git a/dependency-check-ant/xref/org/owasp/dependencycheck/taskdefs/package-frame.html b/dependency-check-ant/xref/org/owasp/dependencycheck/taskdefs/package-frame.html index cec589c86ae..6dfc170da7b 100644 --- a/dependency-check-ant/xref/org/owasp/dependencycheck/taskdefs/package-frame.html +++ b/dependency-check-ant/xref/org/owasp/dependencycheck/taskdefs/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Ant Task 9.0.4 Reference Package org.owasp.dependencycheck.taskdefs + Dependency-Check Ant Task 9.0.5 Reference Package org.owasp.dependencycheck.taskdefs diff --git a/dependency-check-ant/xref/org/owasp/dependencycheck/taskdefs/package-summary.html b/dependency-check-ant/xref/org/owasp/dependencycheck/taskdefs/package-summary.html index 2d8da49475f..e6e24becde0 100644 --- a/dependency-check-ant/xref/org/owasp/dependencycheck/taskdefs/package-summary.html +++ b/dependency-check-ant/xref/org/owasp/dependencycheck/taskdefs/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Ant Task 9.0.4 Reference Package org.owasp.dependencycheck.taskdefs + Dependency-Check Ant Task 9.0.5 Reference Package org.owasp.dependencycheck.taskdefs diff --git a/dependency-check-ant/xref/org/slf4j/impl/package-frame.html b/dependency-check-ant/xref/org/slf4j/impl/package-frame.html index 0c1737852d9..71a886c827f 100644 --- a/dependency-check-ant/xref/org/slf4j/impl/package-frame.html +++ b/dependency-check-ant/xref/org/slf4j/impl/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Ant Task 9.0.4 Reference Package org.slf4j.impl + Dependency-Check Ant Task 9.0.5 Reference Package org.slf4j.impl diff --git a/dependency-check-ant/xref/org/slf4j/impl/package-summary.html b/dependency-check-ant/xref/org/slf4j/impl/package-summary.html index 7613b026d6a..95ccd57b4d6 100644 --- a/dependency-check-ant/xref/org/slf4j/impl/package-summary.html +++ b/dependency-check-ant/xref/org/slf4j/impl/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Ant Task 9.0.4 Reference Package org.slf4j.impl + Dependency-Check Ant Task 9.0.5 Reference Package org.slf4j.impl diff --git a/dependency-check-ant/xref/overview-frame.html b/dependency-check-ant/xref/overview-frame.html index 55c953670d9..5f7d4782245 100644 --- a/dependency-check-ant/xref/overview-frame.html +++ b/dependency-check-ant/xref/overview-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Ant Task 9.0.4 Reference + Dependency-Check Ant Task 9.0.5 Reference diff --git a/dependency-check-ant/xref/overview-summary.html b/dependency-check-ant/xref/overview-summary.html index cb74011845f..99e11186834 100644 --- a/dependency-check-ant/xref/overview-summary.html +++ b/dependency-check-ant/xref/overview-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Ant Task 9.0.4 Reference + Dependency-Check Ant Task 9.0.5 Reference @@ -24,7 +24,7 @@ -

    Dependency-Check Ant Task 9.0.4 Reference

    +

    Dependency-Check Ant Task 9.0.5 Reference

    diff --git a/dependency-check-cli/apidocs/allclasses-frame.html b/dependency-check-cli/apidocs/allclasses-frame.html index 753ac622d43..d81d0805e43 100644 --- a/dependency-check-cli/apidocs/allclasses-frame.html +++ b/dependency-check-cli/apidocs/allclasses-frame.html @@ -4,7 +4,7 @@ -All Classes (Dependency-Check Command Line 9.0.4 API) +All Classes (Dependency-Check Command Line 9.0.5 API) diff --git a/dependency-check-cli/apidocs/allclasses-noframe.html b/dependency-check-cli/apidocs/allclasses-noframe.html index c794bcd64e3..ef296ba1bf7 100644 --- a/dependency-check-cli/apidocs/allclasses-noframe.html +++ b/dependency-check-cli/apidocs/allclasses-noframe.html @@ -4,7 +4,7 @@ -All Classes (Dependency-Check Command Line 9.0.4 API) +All Classes (Dependency-Check Command Line 9.0.5 API) diff --git a/dependency-check-cli/apidocs/constant-values.html b/dependency-check-cli/apidocs/constant-values.html index 7dcd0182173..372f63b1f9e 100644 --- a/dependency-check-cli/apidocs/constant-values.html +++ b/dependency-check-cli/apidocs/constant-values.html @@ -4,7 +4,7 @@ -Constant Field Values (Dependency-Check Command Line 9.0.4 API) +Constant Field Values (Dependency-Check Command Line 9.0.5 API) @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ diff --git a/dependency-check-cli/apidocs/org/owasp/dependencycheck/package-summary.html b/dependency-check-cli/apidocs/org/owasp/dependencycheck/package-summary.html index 2f0f9073bf8..119142cf410 100644 --- a/dependency-check-cli/apidocs/org/owasp/dependencycheck/package-summary.html +++ b/dependency-check-cli/apidocs/org/owasp/dependencycheck/package-summary.html @@ -4,7 +4,7 @@ -org.owasp.dependencycheck (Dependency-Check Command Line 9.0.4 API) +org.owasp.dependencycheck (Dependency-Check Command Line 9.0.5 API) @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@

    Dependency-Check Command Line

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethodsMissedClasses
    Total1,434 of 3,72661%221 of 37240%162250331806206413
    org.owasp.dependencycheck1,4342,29261%22115140%162250331806206413
    \ No newline at end of file +Dependency-Check Command Line

    Dependency-Check Command Line

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethodsMissedClasses
    Total1,434 of 3,73961%221 of 37240%162250331809206413
    org.owasp.dependencycheck1,4342,30561%22115140%162250331809206413
    \ No newline at end of file diff --git a/dependency-check-cli/jacoco/jacoco-sessions.html b/dependency-check-cli/jacoco/jacoco-sessions.html index 5cc7ef7721f..0afd404c998 100644 --- a/dependency-check-cli/jacoco/jacoco-sessions.html +++ b/dependency-check-cli/jacoco/jacoco-sessions.html @@ -1 +1 @@ -Sessions

    Sessions

    This coverage report is based on execution data from the following sessions:

    SessionStart TimeDump Time
    fv-az773-600-25179990Dec 8, 2023 11:23:17 AMDec 8, 2023 11:23:19 AM

    Execution data for the following classes is considered in this report:

    ClassId
    ch.qos.logback.classic.Levele2155b45608f35d7
    ch.qos.logback.classic.Loggerf35d4d4ad6b0173a
    ch.qos.logback.classic.LoggerContextd057ce3cea631d6b
    ch.qos.logback.classic.PatternLayout6b4fcc6f23c89763
    ch.qos.logback.classic.encoder.PatternLayoutEncoderb5df0ef8a1a735ea
    ch.qos.logback.classic.filter.ThresholdFilterb9a7be837b354b59
    ch.qos.logback.classic.joran.JoranConfigurator63bb214e0f720ae8
    ch.qos.logback.classic.joran.action.ConfigurationAction90d861250f52b75f
    ch.qos.logback.classic.joran.action.ConsolePluginAction2969e4b8b532cec5
    ch.qos.logback.classic.joran.action.ContextNameAction4ffd1a75c51a473f
    ch.qos.logback.classic.joran.action.EvaluatorActioncc2e7d3c2fc18087
    ch.qos.logback.classic.joran.action.InsertFromJNDIActionfce902dbb9dbd2a7
    ch.qos.logback.classic.joran.action.JMXConfiguratorActiona58b513df0924938
    ch.qos.logback.classic.joran.action.LevelAction8f89eefaf59271f1
    ch.qos.logback.classic.joran.action.LoggerAction8d55f78fdf86cda9
    ch.qos.logback.classic.joran.action.LoggerContextListenerAction835263a7d9309be9
    ch.qos.logback.classic.joran.action.ReceiverAction9e9bd00760b812f2
    ch.qos.logback.classic.joran.action.RootLoggerAction0528540059645c3d
    ch.qos.logback.classic.pattern.ClassicConverter78403f02659989af
    ch.qos.logback.classic.pattern.EnsureExceptionHandlingf9c97b8da786f083
    ch.qos.logback.classic.pattern.LevelConverter05b4415a3dbcaaf4
    ch.qos.logback.classic.pattern.LineSeparatorConverter2e2dc69c3bdc6cd3
    ch.qos.logback.classic.pattern.MessageConverteref2f64b51bca1aac
    ch.qos.logback.classic.pattern.ThrowableHandlingConverter266cc4ca75fcd39d
    ch.qos.logback.classic.pattern.ThrowableProxyConverter46dc88ad0c97e462
    ch.qos.logback.classic.selector.DefaultContextSelectorfd861e3242ccff2f
    ch.qos.logback.classic.sift.SiftAction9f73df3037d696a7
    ch.qos.logback.classic.spi.LoggerContextVOecac106025bca4a3
    ch.qos.logback.classic.spi.PlatformInfo0e826c07ba59ae45
    ch.qos.logback.classic.spi.TurboFilterListaa3cf39d0c0c651e
    ch.qos.logback.classic.util.ContextInitializerf560906e9553d69f
    ch.qos.logback.classic.util.ContextSelectorStaticBinder271bbf6fa66123b1
    ch.qos.logback.classic.util.DefaultNestedComponentRules840b992fa00c7e60
    ch.qos.logback.classic.util.EnvUtil39b5543082458460
    ch.qos.logback.classic.util.LoggerNameUtilb8d88c97a0cadcfa
    ch.qos.logback.core.BasicStatusManagerf42ab87c1f66e222
    ch.qos.logback.core.ConsoleAppenderd101474cda5e45c9
    ch.qos.logback.core.ContextBase707ceedbd09855e6
    ch.qos.logback.core.LayoutBasee6bfd3b1edc3ab01
    ch.qos.logback.core.OutputStreamAppender79e07918442741f3
    ch.qos.logback.core.UnsynchronizedAppenderBase0672be5753362c70
    ch.qos.logback.core.encoder.EncoderBasef2507a7276f26c10
    ch.qos.logback.core.encoder.LayoutWrappingEncoder6c80790d34287d6b
    ch.qos.logback.core.filter.Filter8fb765b1a8787de1
    ch.qos.logback.core.helpers.CyclicBuffer422c7b9f7318f10a
    ch.qos.logback.core.joran.GenericConfigurator3f448ac12ab6a263
    ch.qos.logback.core.joran.JoranConfiguratorBase38c4decb94b320f7
    ch.qos.logback.core.joran.action.AbstractEventEvaluatorActionbf3cf252a2822906
    ch.qos.logback.core.joran.action.Action7cf2d4f3569d0788
    ch.qos.logback.core.joran.action.AppenderAction22c3c549e13663a1
    ch.qos.logback.core.joran.action.AppenderRefAction3c0bd482c9925292
    ch.qos.logback.core.joran.action.ContextPropertyAction4d47e7c289aa172b
    ch.qos.logback.core.joran.action.ConversionRuleAction6ad21d1237f36c71
    ch.qos.logback.core.joran.action.DefinePropertyAction3d08042673a6e5dc
    ch.qos.logback.core.joran.action.IADataForBasicPropertycbe844e4f3903797
    ch.qos.logback.core.joran.action.IADataForComplexProperty9b210f34ec734f9e
    ch.qos.logback.core.joran.action.ImplicitAction86dae105afebc13c
    ch.qos.logback.core.joran.action.IncludeAction2775b098b6b111dc
    ch.qos.logback.core.joran.action.NOPAction69348e8c62d1a733
    ch.qos.logback.core.joran.action.NestedBasicPropertyIA89ed90b29bc14f36
    ch.qos.logback.core.joran.action.NestedBasicPropertyIA.108e44e1168d7ea7b
    ch.qos.logback.core.joran.action.NestedComplexPropertyIA178aace2d0448f6a
    ch.qos.logback.core.joran.action.NestedComplexPropertyIA.15160250e9b77af57
    ch.qos.logback.core.joran.action.NewRuleAction265aa9ab808da62d
    ch.qos.logback.core.joran.action.ParamActionad2376677140dcb4
    ch.qos.logback.core.joran.action.PropertyAction81b578f6564d00a1
    ch.qos.logback.core.joran.action.ShutdownHookActione67fa543b234ff0d
    ch.qos.logback.core.joran.action.StatusListenerAction4cf479b0b81398f3
    ch.qos.logback.core.joran.action.TimestampActiond7a48c3648a91ea8
    ch.qos.logback.core.joran.conditional.ElseActionfe56c4a40374cd79
    ch.qos.logback.core.joran.conditional.IfAction87c92d3efc3996c9
    ch.qos.logback.core.joran.conditional.ThenActiondd7886fdda1bb93e
    ch.qos.logback.core.joran.conditional.ThenOrElseActionBase9e00d4141028a50c
    ch.qos.logback.core.joran.event.BodyEvent0c8f2f07c6888bab
    ch.qos.logback.core.joran.event.EndEvent0c2e1da47ad508cc
    ch.qos.logback.core.joran.event.SaxEvent80662212b5cc3b53
    ch.qos.logback.core.joran.event.SaxEventRecorder639eb66c9ea90531
    ch.qos.logback.core.joran.event.StartEvent914de9498a78076d
    ch.qos.logback.core.joran.spi.CAI_WithLocatorSupportf96b1cd7be830663
    ch.qos.logback.core.joran.spi.ConfigurationWatchListfba78df767e05182
    ch.qos.logback.core.joran.spi.ConsoleTarget6e2cdd5051fbf329
    ch.qos.logback.core.joran.spi.ConsoleTarget.19612187e03729cd5
    ch.qos.logback.core.joran.spi.ConsoleTarget.2ea3332451607183e
    ch.qos.logback.core.joran.spi.DefaultNestedComponentRegistryf3ac4f0369a959d6
    ch.qos.logback.core.joran.spi.ElementPathab4711e5039d31b0
    ch.qos.logback.core.joran.spi.ElementSelector605584d4fe3a6b67
    ch.qos.logback.core.joran.spi.EventPlayer739ef0261c196bb2
    ch.qos.logback.core.joran.spi.HostClassAndPropertyDouble199aef84b04dd48c
    ch.qos.logback.core.joran.spi.InterpretationContextce4c00a894617c6e
    ch.qos.logback.core.joran.spi.Interpreter634fa7d2dde257a5
    ch.qos.logback.core.joran.spi.NoAutoStartUtil6fe8a98ba9c5ce85
    ch.qos.logback.core.joran.spi.SimpleRuleStore19c383749dc55e01
    ch.qos.logback.core.joran.util.ConfigurationWatchListUtila35db514967601cf
    ch.qos.logback.core.joran.util.PropertySetter8f7e7385541ef400
    ch.qos.logback.core.joran.util.PropertySetter.1f84b2a86e8cd4b37
    ch.qos.logback.core.joran.util.StringToObjectConverter2e393f7832702c3f
    ch.qos.logback.core.joran.util.beans.BeanDescriptiona249e33828fc438a
    ch.qos.logback.core.joran.util.beans.BeanDescriptionCache9d679b6b2b24c9f7
    ch.qos.logback.core.joran.util.beans.BeanDescriptionFactory1abb714ec36ec08c
    ch.qos.logback.core.joran.util.beans.BeanUtil889c2d82913f56d3
    ch.qos.logback.core.net.ssl.SSLNestedComponentRegistryRulescdeda61b0c175e73
    ch.qos.logback.core.pattern.Converter925f6cb417029041
    ch.qos.logback.core.pattern.ConverterUtildd9b10877d49fdef
    ch.qos.logback.core.pattern.DynamicConverter66d903dd096314f6
    ch.qos.logback.core.pattern.FormattingConverterc3110b5495da3c0a
    ch.qos.logback.core.pattern.LiteralConverter65b2e319699170e6
    ch.qos.logback.core.pattern.PatternLayoutBasea804a6743796ed4f
    ch.qos.logback.core.pattern.PatternLayoutEncoderBase8869b320200d58ca
    ch.qos.logback.core.pattern.parser.Compiler1c6d6460ba38602b
    ch.qos.logback.core.pattern.parser.FormattingNodec1ea708a78deec04
    ch.qos.logback.core.pattern.parser.Node6c2db44212d84b68
    ch.qos.logback.core.pattern.parser.Parser7b1aef016f4f95f3
    ch.qos.logback.core.pattern.parser.SimpleKeywordNodef700f290325e600d
    ch.qos.logback.core.pattern.parser.Token4f7e433507e860ed
    ch.qos.logback.core.pattern.parser.TokenStreamb0bdcf4b6e0f87aa
    ch.qos.logback.core.pattern.parser.TokenStream.1fd95c0c735fd0ef7
    ch.qos.logback.core.pattern.parser.TokenStream.TokenizerState3467111fb3bf68e6
    ch.qos.logback.core.pattern.util.RegularEscapeUtil1cc07c8d9d362995
    ch.qos.logback.core.pattern.util.RestrictedEscapeUtil05ac894407a1822b
    ch.qos.logback.core.spi.AppenderAttachableImpl356e7661a1308dba
    ch.qos.logback.core.spi.ContextAwareBase507768fbb8be644f
    ch.qos.logback.core.spi.ContextAwareImple054ab71d51b27ec
    ch.qos.logback.core.spi.FilterAttachableImple0d2c4e50fd975d2
    ch.qos.logback.core.spi.FilterReply8ffb0681c411c96a
    ch.qos.logback.core.spi.LogbackLockb3b7af385a799776
    ch.qos.logback.core.status.InfoStatus1d3c0987bb0ffe10
    ch.qos.logback.core.status.StatusBase7c1cffd1a9986020
    ch.qos.logback.core.status.StatusUtilb5fec2971e383d38
    ch.qos.logback.core.subst.Node173ef78e5278fe04
    ch.qos.logback.core.subst.Node.Typeb8a40f4b8fbe988c
    ch.qos.logback.core.subst.NodeToStringTransformer1e8620cc7b5415cb
    ch.qos.logback.core.subst.NodeToStringTransformer.15967309dea3614e0
    ch.qos.logback.core.subst.Parserc06549d7b1e1487d
    ch.qos.logback.core.subst.Parser.178a0480962b020ea
    ch.qos.logback.core.subst.Token3f38da4ca554aafd
    ch.qos.logback.core.subst.Token.Typed037d0aeea85e517
    ch.qos.logback.core.subst.Tokenizer6a388c818909b082
    ch.qos.logback.core.subst.Tokenizer.15446562f97e885f7
    ch.qos.logback.core.subst.Tokenizer.TokenizerStatea43d7665d3995d51
    ch.qos.logback.core.util.AggregationTypee82dcae26638e651
    ch.qos.logback.core.util.COWArrayListfd4fbd3c0c90c052
    ch.qos.logback.core.util.CachingDateFormatter371338e1c1d98e24
    ch.qos.logback.core.util.EnvUtiladc66c330ddaa6c4
    ch.qos.logback.core.util.Loader6a7f26fdd43cf12b
    ch.qos.logback.core.util.Loader.1d6e48f075e51e44b
    ch.qos.logback.core.util.OptionHelpered7183d6bad9d2a9
    ch.qos.logback.core.util.StatusListenerConfigHelperb3e50ff76e275069
    ch.qos.logback.core.util.StatusPrinter04fef78263405164
    com.fasterxml.jackson.annotation.JsonAutoDetect.Visibilitye56bcd385626eead
    com.fasterxml.jackson.annotation.JsonFormat.Featuree632f8db525e6519
    com.fasterxml.jackson.annotation.JsonFormat.Features75fb2eb9717dc62a
    com.fasterxml.jackson.annotation.JsonFormat.Shapec19c22f9661f3b7d
    com.fasterxml.jackson.annotation.JsonFormat.Value0eb8231d09bfd09a
    com.fasterxml.jackson.annotation.JsonInclude.Include30ab0a782ad08747
    com.fasterxml.jackson.annotation.JsonInclude.Valuea558d9f40414e748
    com.fasterxml.jackson.annotation.JsonSetter.Value6ee26ce006658a00
    com.fasterxml.jackson.annotation.Nulls724f990ec72b618f
    com.fasterxml.jackson.core.Base64Variant820db952b2ce1918
    com.fasterxml.jackson.core.Base64Variant.PaddingReadBehaviourdd0e63a614fe004b
    com.fasterxml.jackson.core.Base64Variantse646bbe091ae79c0
    com.fasterxml.jackson.core.ErrorReportConfiguration6ae7b9c14364f861
    com.fasterxml.jackson.core.JsonFactory4b6dbe517dc74f05
    com.fasterxml.jackson.core.JsonFactory.Feature6053a66ef91d8599
    com.fasterxml.jackson.core.JsonGenerator8a53f1394a871e41
    com.fasterxml.jackson.core.JsonGenerator.Featuredca43627a1b1d378
    com.fasterxml.jackson.core.JsonParserbfa2b2aaf45dbdaf
    com.fasterxml.jackson.core.JsonParser.Feature7e095b73debaa45f
    com.fasterxml.jackson.core.JsonParser.NumberType88e7ccc17e76b9de
    com.fasterxml.jackson.core.JsonStreamContext369abe89770bcf3d
    com.fasterxml.jackson.core.JsonTokeneed63a6e4a8e9120
    com.fasterxml.jackson.core.ObjectCodec4de1a295d9dc31ca
    com.fasterxml.jackson.core.PrettyPrinterf27d5528a26794c9
    com.fasterxml.jackson.core.StreamReadCapabilitya4c561ff4de25114
    com.fasterxml.jackson.core.StreamReadConstraintsfef85c00a0df6225
    com.fasterxml.jackson.core.StreamWriteCapability20b236b266d25323
    com.fasterxml.jackson.core.StreamWriteConstraintsf2bb5b3756dacf82
    com.fasterxml.jackson.core.TokenStreamFactory41de330f27eca392
    com.fasterxml.jackson.core.TreeCodec18594f8a8dcec6a2
    com.fasterxml.jackson.core.base.GeneratorBase769b434d47814ead
    com.fasterxml.jackson.core.base.ParserBase7ea5c57b85e68f85
    com.fasterxml.jackson.core.base.ParserMinimalBasedafc6c7b6eb27cb5
    com.fasterxml.jackson.core.io.CharTypes07a8747913d8e991
    com.fasterxml.jackson.core.io.ContentReferencec1bf9547a5b31574
    com.fasterxml.jackson.core.io.IOContext92f945a4db96d4d1
    com.fasterxml.jackson.core.io.JsonStringEncodercaf3b669acbbe223
    com.fasterxml.jackson.core.io.SegmentedStringWriteraf9b17af11ce151f
    com.fasterxml.jackson.core.io.SerializedStringde06c047872018ad
    com.fasterxml.jackson.core.json.JsonGeneratorImpl62f7e0732a7b3f16
    com.fasterxml.jackson.core.json.JsonReadContext7fe93ff4dfcd910a
    com.fasterxml.jackson.core.json.JsonWriteContext80adf9bb4918112e
    com.fasterxml.jackson.core.json.ReaderBasedJsonParser5a748aacc97cbeaf
    com.fasterxml.jackson.core.json.WriterBasedJsonGenerator4c9c68d95ea16405
    com.fasterxml.jackson.core.sym.ByteQuadsCanonicalizer5054f4087e115bac
    com.fasterxml.jackson.core.sym.ByteQuadsCanonicalizer.TableInfoeb0211d6faa23d01
    com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer098437effe93aab8
    com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer.TableInfo7f8a1e78ae4259c6
    com.fasterxml.jackson.core.type.ResolvedType8a4589ad9960ed59
    com.fasterxml.jackson.core.util.BufferRecycler130f2ce298e329d8
    com.fasterxml.jackson.core.util.BufferRecyclers4e7bee8eece90b3a
    com.fasterxml.jackson.core.util.DefaultIndenter18913563e8366f39
    com.fasterxml.jackson.core.util.DefaultPrettyPrinterdffce786178e5ff1
    com.fasterxml.jackson.core.util.DefaultPrettyPrinter.FixedSpaceIndenter418687d575a4f083
    com.fasterxml.jackson.core.util.DefaultPrettyPrinter.NopIndenter110c0bf83e5c079c
    com.fasterxml.jackson.core.util.JacksonFeatureSet69b6b3d8af7f13b3
    com.fasterxml.jackson.core.util.JsonRecyclerPoolsbb15cd8e45e37fee
    com.fasterxml.jackson.core.util.JsonRecyclerPools.ThreadLocalPoolb47528b0197c08e2
    com.fasterxml.jackson.core.util.ReadConstrainedTextBuffer23fc9ce24061d845
    com.fasterxml.jackson.core.util.RecyclerPool.ThreadLocalPoolBase23bd83512f98e1cd
    com.fasterxml.jackson.core.util.Separatorsdb601d3f3bad91c2
    com.fasterxml.jackson.core.util.Separators.Spacing511422cc9db17520
    com.fasterxml.jackson.core.util.TextBuffere0024e1d666b4905
    com.fasterxml.jackson.databind.AnnotationIntrospector905eb800c47f61a4
    com.fasterxml.jackson.databind.BeanDescriptionb72f4d814c7d9796
    com.fasterxml.jackson.databind.DatabindContext190fc61056492212
    com.fasterxml.jackson.databind.DeserializationConfiga66abddaffd0eeda
    com.fasterxml.jackson.databind.DeserializationContexte42cf81978826049
    com.fasterxml.jackson.databind.DeserializationFeaturee8c5e101ec4650d4
    com.fasterxml.jackson.databind.JavaType4b4e8dfd897d7a79
    com.fasterxml.jackson.databind.JsonDeserializerf155d5de89ce5a60
    com.fasterxml.jackson.databind.JsonSerializeradb9d1fae01b02c7
    com.fasterxml.jackson.databind.MapperFeatured7d85f4bfd3cff7a
    com.fasterxml.jackson.databind.MappingJsonFactory65cdd9294dfaf29a
    com.fasterxml.jackson.databind.ObjectMapper1267d692f0f6e0ba
    com.fasterxml.jackson.databind.PropertyName217cf81be2326911
    com.fasterxml.jackson.databind.SerializationConfig40620b2ae2347380
    com.fasterxml.jackson.databind.SerializationFeature9609ec0ec1e8bc2a
    com.fasterxml.jackson.databind.SerializerProvider10f427a250ca2427
    com.fasterxml.jackson.databind.cfg.BaseSettings74949427e8604cd4
    com.fasterxml.jackson.databind.cfg.CoercionAction9e15561f16680f97
    com.fasterxml.jackson.databind.cfg.CoercionConfigffad61191adeb87e
    com.fasterxml.jackson.databind.cfg.CoercionConfigs8937a55c926c734f
    com.fasterxml.jackson.databind.cfg.CoercionInputShape90aad4e377b3dccd
    com.fasterxml.jackson.databind.cfg.ConfigOverridef1771a0d408303c8
    com.fasterxml.jackson.databind.cfg.ConfigOverride.Empty3372ed519d9bafb4
    com.fasterxml.jackson.databind.cfg.ConfigOverrides7943101710d9f910
    com.fasterxml.jackson.databind.cfg.ContextAttributes216e6db5a97ae48a
    com.fasterxml.jackson.databind.cfg.ContextAttributes.Implede427cff276c0b8
    com.fasterxml.jackson.databind.cfg.DatatypeFeaturesf4893ef156575441
    com.fasterxml.jackson.databind.cfg.DatatypeFeatures.DefaultHolder81838084595fa0c8
    com.fasterxml.jackson.databind.cfg.DefaultCacheProvider6bbb2aa855b50726
    com.fasterxml.jackson.databind.cfg.DeserializerFactoryConfig7861ff22cec5640b
    com.fasterxml.jackson.databind.cfg.EnumFeature16e95ce7a3f1f1ee
    com.fasterxml.jackson.databind.cfg.JsonNodeFeature93b45511772e9fc3
    com.fasterxml.jackson.databind.cfg.MapperConfigc7b0b1bb3bc6f9f1
    com.fasterxml.jackson.databind.cfg.MapperConfigBase5bb7b8ef48c720d7
    com.fasterxml.jackson.databind.cfg.MutableCoercionConfig262e6b36c9ca989e
    com.fasterxml.jackson.databind.cfg.SerializerFactoryConfigd93f22d3258ee4c0
    com.fasterxml.jackson.databind.deser.BasicDeserializerFactory3944ee9b76fde7a2
    com.fasterxml.jackson.databind.deser.BeanDeserializerFactory65809d9bdea9493b
    com.fasterxml.jackson.databind.deser.DefaultDeserializationContext5756779a22fd7d68
    com.fasterxml.jackson.databind.deser.DefaultDeserializationContext.Impl8057860fe47eb5da
    com.fasterxml.jackson.databind.deser.DeserializerCache7d85f058f583e5dd
    com.fasterxml.jackson.databind.deser.DeserializerFactory2ebdf24d93849f1a
    com.fasterxml.jackson.databind.deser.impl.NullsConstantProvider83cd716157aa0f9a
    com.fasterxml.jackson.databind.deser.std.StdDeserializer2122bf750d1b5b89
    com.fasterxml.jackson.databind.deser.std.StdKeyDeserializers2ca4ab5d0f0b71dd
    com.fasterxml.jackson.databind.deser.std.StdScalarDeserializer25286f364997b846
    com.fasterxml.jackson.databind.deser.std.StringArrayDeserializerdbeac8e57a8a807e
    com.fasterxml.jackson.databind.deser.std.StringDeserializer36ba9f92a53b7892
    com.fasterxml.jackson.databind.ext.Java7Support4b7557784caa415a
    com.fasterxml.jackson.databind.ext.Java7SupportImpl94a94fc44678f7e9
    com.fasterxml.jackson.databind.introspect.AccessorNamingStrategy3d3b7f563f5ca70a
    com.fasterxml.jackson.databind.introspect.AccessorNamingStrategy.Provider6026222786456f26
    com.fasterxml.jackson.databind.introspect.Annotated47d3d49f2b832d54
    com.fasterxml.jackson.databind.introspect.AnnotatedClass208d1216b93f97d9
    com.fasterxml.jackson.databind.introspect.AnnotatedClass.Creatorsecbba5a1c87c995f
    com.fasterxml.jackson.databind.introspect.AnnotatedClassResolver9c1435b88f5e9e91
    com.fasterxml.jackson.databind.introspect.AnnotationCollectorc389709d2ffbb364
    com.fasterxml.jackson.databind.introspect.AnnotationCollector.NoAnnotations9173d7167a075d90
    com.fasterxml.jackson.databind.introspect.BasicBeanDescription4f0d484434fb6325
    com.fasterxml.jackson.databind.introspect.BasicClassIntrospectorfcecadfe75a5c2af
    com.fasterxml.jackson.databind.introspect.ClassIntrospectorb20a1133edfcf6b5
    com.fasterxml.jackson.databind.introspect.DefaultAccessorNamingStrategyefc1568392fc0098
    com.fasterxml.jackson.databind.introspect.DefaultAccessorNamingStrategy.Provider9679bb882d2d354f
    com.fasterxml.jackson.databind.introspect.JacksonAnnotationIntrospector9d54114155341c05
    com.fasterxml.jackson.databind.introspect.POJOPropertiesCollector1821e69f144ab189
    com.fasterxml.jackson.databind.introspect.SimpleMixInResolver6a0721d817cbf413
    com.fasterxml.jackson.databind.introspect.VisibilityChecker.Std86f77996bd544f4e
    com.fasterxml.jackson.databind.jsontype.PolymorphicTypeValidatorff1c7cc76de984ce
    com.fasterxml.jackson.databind.jsontype.PolymorphicTypeValidator.Baseea9ae0e64ce11069
    com.fasterxml.jackson.databind.jsontype.SubtypeResolverb2ed8bc0e5fe669c
    com.fasterxml.jackson.databind.jsontype.impl.LaissezFaireSubTypeValidatord02dab29b87ed521
    com.fasterxml.jackson.databind.jsontype.impl.StdSubtypeResolver342823e6800eb76b
    com.fasterxml.jackson.databind.node.JsonNodeFactoryb407554ab061d84d
    com.fasterxml.jackson.databind.ser.BasicSerializerFactoryda909c46cb0d91a4
    com.fasterxml.jackson.databind.ser.BeanSerializerFactory16faed09cf6c52b8
    com.fasterxml.jackson.databind.ser.ContainerSerializer67b35562bf415143
    com.fasterxml.jackson.databind.ser.DefaultSerializerProvider7081bda43dcfcb52
    com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.Implbb7a481d8d11e37e
    com.fasterxml.jackson.databind.ser.SerializerCache05a580ec11f5621f
    com.fasterxml.jackson.databind.ser.SerializerFactorya96ec5a87f2a9dec
    com.fasterxml.jackson.databind.ser.impl.FailingSerializer96696f091a076f00
    com.fasterxml.jackson.databind.ser.impl.ReadOnlyClassToSerializerMapf7673b78d4dbb21a
    com.fasterxml.jackson.databind.ser.impl.StringArraySerializere460ddec25a8c614
    com.fasterxml.jackson.databind.ser.impl.UnknownSerializer0f0b100c24ae521b
    com.fasterxml.jackson.databind.ser.std.ArraySerializerBasec8c6410977eb572f
    com.fasterxml.jackson.databind.ser.std.BooleanSerializera5e7ba6f955baf41
    com.fasterxml.jackson.databind.ser.std.CalendarSerializerda6df272674c3c19
    com.fasterxml.jackson.databind.ser.std.DateSerializerdcf355b20d60965d
    com.fasterxml.jackson.databind.ser.std.DateTimeSerializerBasefb1c17ba4f02cbe0
    com.fasterxml.jackson.databind.ser.std.NullSerializer55885eb24739c250
    com.fasterxml.jackson.databind.ser.std.NumberSerializer2b09bf235752694e
    com.fasterxml.jackson.databind.ser.std.NumberSerializersdfe8936a5bca95d8
    com.fasterxml.jackson.databind.ser.std.NumberSerializers.Base243c88192bb86ee4
    com.fasterxml.jackson.databind.ser.std.NumberSerializers.DoubleSerializer5b65fb8c8ea04f02
    com.fasterxml.jackson.databind.ser.std.NumberSerializers.FloatSerializer0849cda863777be8
    com.fasterxml.jackson.databind.ser.std.NumberSerializers.IntLikeSerializer37f949791419da14
    com.fasterxml.jackson.databind.ser.std.NumberSerializers.IntegerSerializer8572ad7f464034dd
    com.fasterxml.jackson.databind.ser.std.NumberSerializers.LongSerializer1bcc67c140cfbe03
    com.fasterxml.jackson.databind.ser.std.NumberSerializers.ShortSerializera678b068eca9e8b6
    com.fasterxml.jackson.databind.ser.std.StdJdkSerializersb1d950d41858d3ba
    com.fasterxml.jackson.databind.ser.std.StdScalarSerializer294ce690d4fde5d1
    com.fasterxml.jackson.databind.ser.std.StdSerializer2eb989e3aa9ebf8b
    com.fasterxml.jackson.databind.ser.std.StringSerializerb6342c9e6a90d477
    com.fasterxml.jackson.databind.ser.std.ToEmptyObjectSerializerdcbbfaf250568a42
    com.fasterxml.jackson.databind.ser.std.ToStringSerializerb965af9d2adb22d7
    com.fasterxml.jackson.databind.ser.std.ToStringSerializerBase4df4671bce83caa1
    com.fasterxml.jackson.databind.ser.std.UUIDSerializer9825ed90a3a1ea38
    com.fasterxml.jackson.databind.type.ArrayTypeada34943c659785c
    com.fasterxml.jackson.databind.type.ClassStackb4e39752aaaff8ce
    com.fasterxml.jackson.databind.type.LogicalTypee0e08cb4c4d717b1
    com.fasterxml.jackson.databind.type.SimpleType9bf726d4e15bb139
    com.fasterxml.jackson.databind.type.TypeBase84e347a8123ba86e
    com.fasterxml.jackson.databind.type.TypeBindings69af78e44b169d2b
    com.fasterxml.jackson.databind.type.TypeFactory3596cbf80365f39f
    com.fasterxml.jackson.databind.type.TypeParser539ac466374b5334
    com.fasterxml.jackson.databind.util.AccessPattern44bf82acd8a3fffc
    com.fasterxml.jackson.databind.util.ArrayIteratore4c9e4d38ac21c90
    com.fasterxml.jackson.databind.util.ClassUtil7a2a6f716f5500a1
    com.fasterxml.jackson.databind.util.LRUMapc487e14750ddd25e
    com.fasterxml.jackson.databind.util.LinkedNode73ca05873e25cb2e
    com.fasterxml.jackson.databind.util.ObjectBuffer14fbae37b93a957b
    com.fasterxml.jackson.databind.util.RootNameLookupadd4d1fb1a084862
    com.fasterxml.jackson.databind.util.StdDateFormatc6d4539431425f11
    com.fasterxml.jackson.databind.util.TypeKey32162ed128b7bbbd
    com.fasterxml.jackson.databind.util.internal.LinkedDeque9bfc4fbb2b0b1196
    com.fasterxml.jackson.databind.util.internal.PrivateMaxEntriesMap3f0ff22fe5779861
    com.fasterxml.jackson.databind.util.internal.PrivateMaxEntriesMap.AddTask866aec97a77c2650
    com.fasterxml.jackson.databind.util.internal.PrivateMaxEntriesMap.Builderdcc244062522bdc6
    com.fasterxml.jackson.databind.util.internal.PrivateMaxEntriesMap.DrainStatusa1e26b7a083af651
    com.fasterxml.jackson.databind.util.internal.PrivateMaxEntriesMap.DrainStatus.12de09d3a3bfcdca6
    com.fasterxml.jackson.databind.util.internal.PrivateMaxEntriesMap.DrainStatus.22928516020b2e91a
    com.fasterxml.jackson.databind.util.internal.PrivateMaxEntriesMap.DrainStatus.326e6a18539bc3d80
    com.fasterxml.jackson.databind.util.internal.PrivateMaxEntriesMap.EntryIterator86fc40b47b6d46b6
    com.fasterxml.jackson.databind.util.internal.PrivateMaxEntriesMap.EntrySet69a473f3bfd1c6f1
    com.fasterxml.jackson.databind.util.internal.PrivateMaxEntriesMap.Node2dc3669c077d2e56
    com.fasterxml.jackson.databind.util.internal.PrivateMaxEntriesMap.WeightedValuec5874d009c2eaa54
    mockit.Invocationa96336e1f386171f
    mockit.MockUpe8171f437ed496ae
    mockit.asm.AnnotatedReadercd282e0a5a53baea
    mockit.asm.BaseWriter582f5e60cf7a7aa4
    mockit.asm.SignatureWriterdf63ed411efbf4b6
    mockit.asm.annotations.AnnotationReader1a8efb95d77d1cc4
    mockit.asm.classes.ClassInfo373729acd80f0ac2
    mockit.asm.classes.ClassReader35b19ee242b52e68
    mockit.asm.classes.ClassVisitorecc8c148efb1fb05
    mockit.asm.classes.ClassWriter138f6d9fdc880f33
    mockit.asm.classes.ConstantPoolCopyinge69830abde6594e3
    mockit.asm.classes.InnerClassesWriter161eb63681ff89cf
    mockit.asm.classes.SourceFileWritere8fc300748dc0805
    mockit.asm.classes.WrappingClassVisitor05ea9f6f99307be6
    mockit.asm.constantPool.AttributeWriter14f301dde0efc458
    mockit.asm.constantPool.ClassMemberItemaa126e5329780a07
    mockit.asm.constantPool.ConstantPoolGeneration0fa17a48409c3309
    mockit.asm.constantPool.DoubleItem34f414546b36c4df
    mockit.asm.constantPool.DynamicItem3cea8c55017846c0
    mockit.asm.constantPool.FloatItembd61b107266c3b95
    mockit.asm.constantPool.IntItemd97e2f1dc717a13e
    mockit.asm.constantPool.IntValueItem98e99f11b2caca0e
    mockit.asm.constantPool.Itemd068fa4ff3fcee61
    mockit.asm.constantPool.LongItem6b22c746ea1433c1
    mockit.asm.constantPool.LongValueItem2ccc0f1c20cad69e
    mockit.asm.constantPool.MergedTypeTableItem0d0b1da6270fd88c
    mockit.asm.constantPool.MethodHandleItem39bcee524a8a7b98
    mockit.asm.constantPool.NameAndTypeItemb7bb836a0ec0d51d
    mockit.asm.constantPool.NormalTypeTableItem0f252ab8f9880312
    mockit.asm.constantPool.StringItem88ca5a93ae8a30e1
    mockit.asm.constantPool.TypeOrMemberItemdab75af23a47e2b1
    mockit.asm.constantPool.TypeTableItemd8a8ef64ff3ac452
    mockit.asm.constantPool.UninitializedTypeTableItem370461ef51a65392
    mockit.asm.controlFlow.CFGAnalysisa06e124c809928c9
    mockit.asm.controlFlow.Edge5d83111f9538c66f
    mockit.asm.controlFlow.Frame386d35773c19369a
    mockit.asm.controlFlow.Label5bca527bd719557c
    mockit.asm.controlFlow.StackMapTableWriter7bcdf022caa20775
    mockit.asm.exceptionHandling.ExceptionHandling286f458f00be3947
    mockit.asm.fields.FieldReader053ae610f8947b76
    mockit.asm.fields.FieldVisitor6c321d4980a2d7f3
    mockit.asm.jvmConstants.Access642ded812da66040
    mockit.asm.jvmConstants.JVMInstructiondeeb476cf4f7665b
    mockit.asm.metadata.ClassMetadataReader86fe7615054981b5
    mockit.asm.metadata.ClassMetadataReader.AnnotationInfobc09c40a0f38e185
    mockit.asm.metadata.ClassMetadataReader.Attribute6d901176eb06252c
    mockit.asm.metadata.ClassMetadataReader.ConstantPoolTag83ba5ffd57f73b11
    mockit.asm.metadata.ClassMetadataReader.MemberInfodd16bea0c59df08f
    mockit.asm.metadata.ClassMetadataReader.MethodInfo3e1c9829877de254
    mockit.asm.metadata.ObjectWithAttributese089abe59f8ade12
    mockit.asm.methods.ExceptionsWritere5e41e85406ed2b8
    mockit.asm.methods.LineNumberTableWriter7fa755996e63e0b5
    mockit.asm.methods.LocalVariableTableWriter0ff2250f9d363442
    mockit.asm.methods.MethodReader0d46bdb10e1cb567
    mockit.asm.methods.MethodVisitor6aafdb0e0bd9f04d
    mockit.asm.methods.MethodWriterc77ca17c110fc381
    mockit.asm.methods.WrappingMethodVisitorfe2114a373ed09e3
    mockit.asm.types.ArrayType3897ad248dad3058
    mockit.asm.types.JavaType6a617aca55015b96
    mockit.asm.types.ObjectType439dacb2d6b69467
    mockit.asm.types.PrimitiveType9907457aea9de70c
    mockit.asm.types.ReferenceTypec3a32354b2fe0c85
    mockit.asm.util.ByteVectoradf5209dcdaf01d5
    mockit.asm.util.BytecodeReaderad4c2af17a40d4d0
    mockit.coverage.CodeCoverage57c4b93cf9705048
    mockit.coverage.Configuration0f191cfcb58e3996
    mockit.coverage.testRedundancy.TestCoveragee7294c8646aeb601
    mockit.integration.TestRunnerDecorator10c6d4d07e4bb526
    mockit.integration.junit4.FakeFrameworkMethod202fa832304031cd
    mockit.integration.junit4.FakeRunNotifierf2d8e332a2590c60
    mockit.integration.junit4.JUnit4TestRunnerDecoratorc2eadb5bf6beaf6c
    mockit.internal.BaseClassModifiere801aefb4d7fd037
    mockit.internal.BaseClassModifier.1cd1242b388012ca6
    mockit.internal.BaseClassModifier.DynamicModifierc5d17ff8720815cc
    mockit.internal.BaseInvocationf7de466f17f4adbb
    mockit.internal.ClassFile41b638065ae166a7
    mockit.internal.ClassLoadingBridgee658793228cc4a49
    mockit.internal.expectations.RecordAndReplayExecutionf879ec0212b83007
    mockit.internal.expectations.mocking.FieldTypeRedefinitionsc4cb3bcb5359dd6a
    mockit.internal.expectations.mocking.MockedBridge331090874886c8c7
    mockit.internal.expectations.mocking.MockedTypeb261d998676dfb65
    mockit.internal.expectations.mocking.TypeRedefinitions055dc33e135fb36a
    mockit.internal.expectations.state.CascadingTypesb9acfb27aa4a8790
    mockit.internal.expectations.state.ExecutingTestacf34225777d2f3b
    mockit.internal.expectations.state.ExecutingTest.13b09910b1e29a191
    mockit.internal.expectations.transformation.ExpectationsTransformereaac4e9336d5ca40
    mockit.internal.faking.FakeBridgeda78f19ce898d263
    mockit.internal.faking.FakeClassSetupe4606a4618ad323c
    mockit.internal.faking.FakeClasses3cd46eb6591366cb
    mockit.internal.faking.FakeClasses.SavePointfecc58d760c6ed06
    mockit.internal.faking.FakeInvocatione3e355bfb78d2072
    mockit.internal.faking.FakeMethodBridge2fd5b959860f5d53
    mockit.internal.faking.FakeMethodCollectoraa97db550361bc87
    mockit.internal.faking.FakeMethods471e51097727667e
    mockit.internal.faking.FakeMethods.FakeMethodb5d99f462770e149
    mockit.internal.faking.FakeState01259986b514ed46
    mockit.internal.faking.FakeStatese760ab91481812c0
    mockit.internal.faking.FakedClassModifier28fa1e02ea9dd34f
    mockit.internal.injection.InjectionProvider1076f7e808be8615
    mockit.internal.injection.InjectionProviders62b38f89bfedb6c7
    mockit.internal.injection.InjectionState6e9537644e97642f
    mockit.internal.injection.InterfaceResolutionc5428bf18cac5f85
    mockit.internal.injection.InterfaceResolution.130a49c92c2d8b04f
    mockit.internal.injection.LifecycleMethodsed1a5aaae6cf42e3
    mockit.internal.injection.TestedClassInstantiationsbfc9ebb0ae421152
    mockit.internal.injection.TestedObjectbdd0e59488a17cbb
    mockit.internal.reflection.GenericTypeReflectiona556abe88b104f52
    mockit.internal.startup.ClassLoadingBridgeFields29d0d6d7f507fa33
    mockit.internal.startup.ClassLoadingBridgeFields.FieldAdditionTransformer682a4d5236ea1c37
    mockit.internal.startup.ClassLoadingBridgeFields.FieldAdditionTransformer.12e9fd2fdf39cd8c3
    mockit.internal.startup.JMockitInitialization1f5ea374ed1901b8
    mockit.internal.startup.Startup177b14c50aa68246
    mockit.internal.state.CachedClassfiles231a21c71ced4214
    mockit.internal.state.MockFixture394c3264450f978b
    mockit.internal.state.ParameterNames9f70a2910daf7cd7
    mockit.internal.state.SavePointda4c7e434f406431
    mockit.internal.state.TestRun6409fd3c8b761b63
    mockit.internal.state.TestRun.17d6ccf983062f278
    mockit.internal.util.ClassLoad5bd538d4254708e6
    mockit.internal.util.ClassNaming53e8188d1e80d2e0
    mockit.internal.util.ParameterNameExtractor23af23efb21b6d24
    mockit.internal.util.TypeConversione064dff353fc3c14
    org.apache.commons.cli.CommandLinec39c1aba563831db
    org.apache.commons.cli.DefaultParser4532989f167bd5b5
    org.apache.commons.cli.HelpFormatter8e073750bb97ed93
    org.apache.commons.cli.HelpFormatter.OptionComparatorf698661e5e8e14e7
    org.apache.commons.cli.MissingArgumentException85a109b7f7cb0657
    org.apache.commons.cli.Option82fcbc4a89e815e4
    org.apache.commons.cli.Option.Builder8c5dac183daaad6c
    org.apache.commons.cli.OptionGroup3020fdaa667773b1
    org.apache.commons.cli.OptionValidatorb487a84e6d277338
    org.apache.commons.cli.Options4af7cbccc3dbd25c
    org.apache.commons.cli.ParseException168ef2f0c4acbbef
    org.apache.commons.cli.UnrecognizedOptionExceptionde8dbaf13dfa715c
    org.apache.commons.cli.Util930bf7c4fbbe305c
    org.apache.maven.plugin.surefire.log.api.NullConsoleLogger9e19e8c6ec7e2af1
    org.apache.maven.surefire.api.booter.BaseProviderFactory3859e78bd81eea39
    org.apache.maven.surefire.api.booter.BiPropertyd22c13c56d5b4593
    org.apache.maven.surefire.api.booter.Command3cd54166633f8826
    org.apache.maven.surefire.api.booter.Constantsdecb9de81c53dc77
    org.apache.maven.surefire.api.booter.DumpErrorSingleton0fb68b22eecee565
    org.apache.maven.surefire.api.booter.ForkedProcessEventTypefb813c97649a2cb4
    org.apache.maven.surefire.api.booter.ForkingReporterFactory43a09ed486105416
    org.apache.maven.surefire.api.booter.ForkingRunListener72fc487c27ef5b8d
    org.apache.maven.surefire.api.booter.MasterProcessCommand4638438d1f9cb2b7
    org.apache.maven.surefire.api.booter.Shutdown22c5299ca66a441d
    org.apache.maven.surefire.api.cli.CommandLineOption4a638448af60a346
    org.apache.maven.surefire.api.filter.NonAbstractClassFilterf9349f28027f7865
    org.apache.maven.surefire.api.provider.AbstractProvidera003e0bc84287c70
    org.apache.maven.surefire.api.report.ConsoleOutputCapture810c9018ba7d1ecc
    org.apache.maven.surefire.api.report.ConsoleOutputCapture.ForwardingPrintStream2c7c3dde8b37b8d9
    org.apache.maven.surefire.api.report.ConsoleOutputCapture.NullOutputStream5731848fa72c76c9
    org.apache.maven.surefire.api.report.ReporterConfigurationa4d0f02ee0a3ce3b
    org.apache.maven.surefire.api.report.RunMode99815bd2f7cf25b8
    org.apache.maven.surefire.api.report.SimpleReportEntrybe57bd60074f466f
    org.apache.maven.surefire.api.stream.AbstractStreamDecoderc51329e6fe95e03f
    org.apache.maven.surefire.api.stream.AbstractStreamDecoder.BufferedStream0e036d9195140045
    org.apache.maven.surefire.api.stream.AbstractStreamDecoder.Memento50fa22818cea4206
    org.apache.maven.surefire.api.stream.AbstractStreamDecoder.Segmentec7b2e9f3dc519b5
    org.apache.maven.surefire.api.stream.AbstractStreamDecoder.StreamReadStatusb28e22fff7af7760
    org.apache.maven.surefire.api.stream.AbstractStreamEncoder5b9d2cab05438b39
    org.apache.maven.surefire.api.stream.SegmentTypea352bcb443bb6539
    org.apache.maven.surefire.api.suite.RunResult14b135b9dcad68f4
    org.apache.maven.surefire.api.testset.DirectoryScannerParameters011c1405154cf543
    org.apache.maven.surefire.api.testset.IncludedExcludedPatternse9dcd696bf90972f
    org.apache.maven.surefire.api.testset.ResolvedTest89f52bebbeb73147
    org.apache.maven.surefire.api.testset.ResolvedTest.ClassMatcherc5f953b9f15d7ab4
    org.apache.maven.surefire.api.testset.ResolvedTest.MethodMatcher7b60e64bb228414b
    org.apache.maven.surefire.api.testset.ResolvedTest.Type2a3fe66966797e51
    org.apache.maven.surefire.api.testset.RunOrderParameters54e3b7abf0f0a29a
    org.apache.maven.surefire.api.testset.TestArtifactInfo534706d1cf843371
    org.apache.maven.surefire.api.testset.TestListResolverdf95312288764ee2
    org.apache.maven.surefire.api.testset.TestRequestc693581994b610fb
    org.apache.maven.surefire.api.util.CloseableIterator1bb59460a90e1562
    org.apache.maven.surefire.api.util.DefaultRunOrderCalculator2be55f855ffc9c23
    org.apache.maven.surefire.api.util.DefaultScanResult3abe973f1a2038a4
    org.apache.maven.surefire.api.util.ReflectionUtils463b61419dafb4bc
    org.apache.maven.surefire.api.util.RunOrdera5c43ed7ff239d28
    org.apache.maven.surefire.api.util.TestsToRun1a59fa62362c2dd4
    org.apache.maven.surefire.api.util.TestsToRun.ClassesIterator3054f1187d144893
    org.apache.maven.surefire.api.util.internal.AbstractNoninterruptibleReadableChannelb76efd5ee4f6a78a
    org.apache.maven.surefire.api.util.internal.AbstractNoninterruptibleWritableChannel7b40a9206100f626
    org.apache.maven.surefire.api.util.internal.Channelsa28ebb2dc3d003c6
    org.apache.maven.surefire.api.util.internal.Channels.31911457c5208109a
    org.apache.maven.surefire.api.util.internal.Channels.461df49d28956b732
    org.apache.maven.surefire.api.util.internal.ClassMethod831eee1f29d6b004
    org.apache.maven.surefire.api.util.internal.DaemonThreadFactory4065ee5e2ad99385
    org.apache.maven.surefire.api.util.internal.DaemonThreadFactory.NamedThreadFactory0dc63f2f250c8f58
    org.apache.maven.surefire.api.util.internal.DumpFileUtils260268350116ea1a
    org.apache.maven.surefire.api.util.internal.ImmutableMapc8d76b0bb433e1e6
    org.apache.maven.surefire.api.util.internal.ImmutableMap.Node61855d8450e86cb5
    org.apache.maven.surefire.api.util.internal.ObjectUtilsd0584b88701e9b97
    org.apache.maven.surefire.api.util.internal.TestClassMethodNameUtilsa01f540094a55e8c
    org.apache.maven.surefire.booter.AbstractPathConfiguration2ad3d057ec281500
    org.apache.maven.surefire.booter.BooterDeserializera2a1a3132d868a74
    org.apache.maven.surefire.booter.ClassLoaderConfiguration5bafac5e09ac0782
    org.apache.maven.surefire.booter.Classpath81f738f937cf4b38
    org.apache.maven.surefire.booter.ClasspathConfigurationb651758fedc3de2d
    org.apache.maven.surefire.booter.CommandReader440cf8805d3444be
    org.apache.maven.surefire.booter.CommandReader.16e995a711f46e676
    org.apache.maven.surefire.booter.CommandReader.CommandRunnable7f7bfee61ebca85e
    org.apache.maven.surefire.booter.ForkedBooterff24aeec916b680b
    org.apache.maven.surefire.booter.ForkedBooter.173179ebb6b41b643
    org.apache.maven.surefire.booter.ForkedBooter.3c51baabea2b75554
    org.apache.maven.surefire.booter.ForkedBooter.468ca1df4a9ada348
    org.apache.maven.surefire.booter.ForkedBooter.608fe853c879dd1a6
    org.apache.maven.surefire.booter.ForkedBooter.78cca77fe0fd3c98d
    org.apache.maven.surefire.booter.ForkedBooter.8779c6068c1dac1db
    org.apache.maven.surefire.booter.ForkedBooter.PingScheduler6e83f53202050979
    org.apache.maven.surefire.booter.ForkedNodeArge055a24d27c554f3
    org.apache.maven.surefire.booter.PpidChecker921ca312a6f63114
    org.apache.maven.surefire.booter.ProcessCheckerType9c8497621409bb1e
    org.apache.maven.surefire.booter.PropertiesWrapperc4362cb430c125af
    org.apache.maven.surefire.booter.ProviderConfiguration84eb716577efc3a7
    org.apache.maven.surefire.booter.StartupConfigurationf457135a627728a6
    org.apache.maven.surefire.booter.SystemPropertyManager0446c7c116836016
    org.apache.maven.surefire.booter.TypeEncodedValue1b039936542eee72
    org.apache.maven.surefire.booter.spi.AbstractMasterProcessChannelProcessorFactoryc30b5b062f066468
    org.apache.maven.surefire.booter.spi.AbstractMasterProcessChannelProcessorFactory.1644e111f23817fd3
    org.apache.maven.surefire.booter.spi.AbstractMasterProcessChannelProcessorFactory.247b08c480603fa8a
    org.apache.maven.surefire.booter.spi.CommandChannelDecoder65f2965c86411193
    org.apache.maven.surefire.booter.spi.EventChannelEncoder114071f00780f71e
    org.apache.maven.surefire.booter.spi.EventChannelEncoder.StackTracee7231bc2c7014c40
    org.apache.maven.surefire.booter.spi.LegacyMasterProcessChannelProcessorFactoryb54085754461a0d1
    org.apache.maven.surefire.booter.spi.SurefireMasterProcessChannelProcessorFactory132a213649249d64
    org.apache.maven.surefire.booter.stream.CommandDecoder0d40efcc428f82e2
    org.apache.maven.surefire.booter.stream.CommandDecoder.19d88d04fa41adab4
    org.apache.maven.surefire.booter.stream.EventEncoder4bdbe84daf58c435
    org.apache.maven.surefire.common.junit3.JUnit3TestCheckerbbad74a9945614a4
    org.apache.maven.surefire.common.junit4.JUnit4ProviderUtilfa2afc137d4ba7b3
    org.apache.maven.surefire.common.junit4.JUnit4Reflector23b83cd8942b7f95
    org.apache.maven.surefire.common.junit4.JUnit4RunListenerd8d5e5130dcf4b9b
    org.apache.maven.surefire.common.junit4.JUnit4RunListenerFactoryccfd1352f097d7b8
    org.apache.maven.surefire.common.junit4.JUnit4TestCheckerf6cf831ca6699119
    org.apache.maven.surefire.common.junit4.JUnitTestFailureListener03f07d8828d7aca4
    org.apache.maven.surefire.common.junit4.Notifiera943b086c230616e
    org.apache.maven.surefire.junit4.JUnit4Provider5d773610b092faec
    org.apache.maven.surefire.junit4.JUnit4Provider.1e7b4bc1546ba10b9
    org.apache.maven.surefire.report.ClassMethodIndexer8b31a053539323b7
    org.apache.maven.surefire.shared.lang3.JavaVersion4e21c3be19560aac
    org.apache.maven.surefire.shared.lang3.SystemUtilse5eafc9ce14dcbec
    org.apache.maven.surefire.shared.lang3.math.NumberUtils11e46630af73f131
    org.apache.maven.surefire.shared.utils.StringUtilsabd8480c7152bf46
    org.apache.maven.surefire.shared.utils.cli.ShutdownHookUtils011b23cd829ec86c
    org.hamcrest.BaseMatcherf52733a4a58e8a8e
    org.hamcrest.MatcherAssert375cdaed635186e8
    org.hamcrest.core.Is1b4bc96017d7a098
    org.hamcrest.core.IsEqualdf3c8def58c301e5
    org.junit.Asserteda6db924019425b
    org.junit.internal.Checks5f543b0bb87b92da
    org.junit.internal.MethodSortera26607ae067f7352
    org.junit.internal.MethodSorter.1d3997b4bdb7889c1
    org.junit.internal.MethodSorter.2c8e6351cbf098013
    org.junit.internal.builders.AllDefaultPossibilitiesBuilder4f18a1d7932cb8ab
    org.junit.internal.builders.AnnotatedBuilder0faf353d180c9332
    org.junit.internal.builders.IgnoredBuildere152f333c53967a6
    org.junit.internal.builders.JUnit3Builder4a2cc8e608e1275e
    org.junit.internal.builders.JUnit4Builderf2e00a3e1fc23005
    org.junit.internal.builders.SuiteMethodBuilder1df136431e07e393
    org.junit.internal.requests.ClassRequest47dbc61675e5a92e
    org.junit.internal.requests.ClassRequest.CustomAllDefaultPossibilitiesBuilderea1c269d9656f543
    org.junit.internal.requests.ClassRequest.CustomSuiteMethodBuilder03d01020b1c503c7
    org.junit.internal.requests.MemoizingRequest1e70801476dbab8f
    org.junit.internal.runners.model.EachTestNotifier077481995383e000
    org.junit.internal.runners.model.ReflectiveCallabled591724635588bcb
    org.junit.internal.runners.rules.RuleMemberValidator95b5ee2068ec6875
    org.junit.internal.runners.rules.RuleMemberValidator.Builderf24845fa6fd065af
    org.junit.internal.runners.rules.RuleMemberValidator.DeclaringClassMustBePublic1de994463c748d89
    org.junit.internal.runners.rules.RuleMemberValidator.FieldMustBeARulee24e9f59de6fe5b7
    org.junit.internal.runners.rules.RuleMemberValidator.FieldMustBeATestRule690823bd2992f52e
    org.junit.internal.runners.rules.RuleMemberValidator.MemberMustBeNonStaticOrAlsoClassRule1e703fb3e7f4e533
    org.junit.internal.runners.rules.RuleMemberValidator.MemberMustBePublic806c174eb921b478
    org.junit.internal.runners.rules.RuleMemberValidator.MemberMustBeStaticac28a03dd36b2b5a
    org.junit.internal.runners.rules.RuleMemberValidator.MethodMustBeARule88ea4a2237de2b8b
    org.junit.internal.runners.rules.RuleMemberValidator.MethodMustBeATestRule9f4dd18a26005c18
    org.junit.internal.runners.statements.InvokeMethod05a7aa636afa2c39
    org.junit.internal.runners.statements.RunAfters14a998d07920cd7b
    org.junit.internal.runners.statements.RunBeforesef86a61ca3ab20ba
    org.junit.runner.Description1d6f7ddbbf223f9a
    org.junit.runner.Request214d9ade1c7dc38d
    org.junit.runner.Resultecf6c1c04298ff7d
    org.junit.runner.Result.Listenercf649a4ffbe55db9
    org.junit.runner.Runnerf5abacc70e2e08a4
    org.junit.runner.notification.RunListener69d2c783b42f6720
    org.junit.runner.notification.RunNotifierf6313076e2224ebb
    org.junit.runner.notification.RunNotifier.1e31025c12b4dbdee
    org.junit.runner.notification.RunNotifier.24c7314c6d595dc3e
    org.junit.runner.notification.RunNotifier.3df2bada5cb3794f3
    org.junit.runner.notification.RunNotifier.4fbdd84204c215de7
    org.junit.runner.notification.RunNotifier.5f62dc396b601f8bd
    org.junit.runner.notification.RunNotifier.9c3c3d54b8ed47ee1
    org.junit.runner.notification.RunNotifier.SafeNotifier0b43c10299733bfb
    org.junit.runner.notification.SynchronizedRunListener2b59d5cb3b105225
    org.junit.runners.BlockJUnit4ClassRunner95752fb34ff12f3f
    org.junit.runners.BlockJUnit4ClassRunner.1d0f63145230a5f42
    org.junit.runners.BlockJUnit4ClassRunner.2f93eace695ddd30e
    org.junit.runners.BlockJUnit4ClassRunner.RuleCollector9c768e710e39c989
    org.junit.runners.JUnit46d26e2305347fe01
    org.junit.runners.ParentRunner335ee90b10f96ea1
    org.junit.runners.ParentRunner.1ecc6961e8bc209c4
    org.junit.runners.ParentRunner.2c5cb913a629ec4c8
    org.junit.runners.ParentRunner.320bad8188aebc0f2
    org.junit.runners.ParentRunner.480476dbdcb8d52cc
    org.junit.runners.ParentRunner.ClassRuleCollector26f7fb338afcd13b
    org.junit.runners.RuleContainerd44c3ba6dc65af53
    org.junit.runners.RuleContainer.157bbc73f6f47763b
    org.junit.runners.model.FrameworkField2fe27c284e7d39f4
    org.junit.runners.model.FrameworkMemberbfd059486f267475
    org.junit.runners.model.FrameworkMethodf293b82d5aa86323
    org.junit.runners.model.FrameworkMethod.18fd5e02769c0e0c2
    org.junit.runners.model.MultipleFailureException187a72c573c34bac
    org.junit.runners.model.RunnerBuilder585cad2d320dc86e
    org.junit.runners.model.Statement9a75aa5de27bf4d5
    org.junit.runners.model.TestClass7e71209792391ee8
    org.junit.runners.model.TestClass.FieldComparator1b96cd3d5c4aeb07
    org.junit.runners.model.TestClass.MethodComparator0369eb29eb04248a
    org.junit.validator.AnnotationValidatorFactorye1e5570798173ab9
    org.junit.validator.AnnotationsValidator6cbe8454c9a93bb8
    org.junit.validator.AnnotationsValidator.AnnotatableValidatord211a963f22be103
    org.junit.validator.AnnotationsValidator.ClassValidator1b463c4e6642e880
    org.junit.validator.AnnotationsValidator.FieldValidator64068b954dc56a31
    org.junit.validator.AnnotationsValidator.MethodValidatorf16b57f17c787036
    org.junit.validator.PublicClassValidator3bac248cf06b18e4
    org.owasp.dependencycheck.App296e42d927111597
    org.owasp.dependencycheck.AppTest553541e7444e68e7
    org.owasp.dependencycheck.BaseTest6812ad12a5772ad4
    org.owasp.dependencycheck.CliParser9a178590cb609760
    org.owasp.dependencycheck.CliParserTestc74dfc1992ef0c08
    org.owasp.dependencycheck.utils.FileUtilsb4bc6fabbcb815d7
    org.owasp.dependencycheck.utils.Settings54ff44735c3537b2
    org.slf4j.LoggerFactorya381b7ddf19bf47d
    org.slf4j.helpers.NOPLoggerFactory54f5632bfcb8d8d5
    org.slf4j.helpers.SubstituteLoggerFactorydc7efc0107a4a62d
    org.slf4j.helpers.Util857ff3acc0576435
    org.slf4j.impl.StaticLoggerBinder039b3c899e055991
    \ No newline at end of file +Sessions

    Sessions

    This coverage report is based on execution data from the following sessions:

    SessionStart TimeDump Time
    fv-az1110-746-470aca64Dec 13, 2023 11:46:10 AMDec 13, 2023 11:46:12 AM

    Execution data for the following classes is considered in this report:

    ClassId
    ch.qos.logback.classic.Levele2155b45608f35d7
    ch.qos.logback.classic.Loggerf35d4d4ad6b0173a
    ch.qos.logback.classic.LoggerContextd057ce3cea631d6b
    ch.qos.logback.classic.PatternLayout6b4fcc6f23c89763
    ch.qos.logback.classic.encoder.PatternLayoutEncoderb5df0ef8a1a735ea
    ch.qos.logback.classic.filter.ThresholdFilterb9a7be837b354b59
    ch.qos.logback.classic.joran.JoranConfigurator63bb214e0f720ae8
    ch.qos.logback.classic.joran.action.ConfigurationAction90d861250f52b75f
    ch.qos.logback.classic.joran.action.ConsolePluginAction2969e4b8b532cec5
    ch.qos.logback.classic.joran.action.ContextNameAction4ffd1a75c51a473f
    ch.qos.logback.classic.joran.action.EvaluatorActioncc2e7d3c2fc18087
    ch.qos.logback.classic.joran.action.InsertFromJNDIActionfce902dbb9dbd2a7
    ch.qos.logback.classic.joran.action.JMXConfiguratorActiona58b513df0924938
    ch.qos.logback.classic.joran.action.LevelAction8f89eefaf59271f1
    ch.qos.logback.classic.joran.action.LoggerAction8d55f78fdf86cda9
    ch.qos.logback.classic.joran.action.LoggerContextListenerAction835263a7d9309be9
    ch.qos.logback.classic.joran.action.ReceiverAction9e9bd00760b812f2
    ch.qos.logback.classic.joran.action.RootLoggerAction0528540059645c3d
    ch.qos.logback.classic.pattern.ClassicConverter78403f02659989af
    ch.qos.logback.classic.pattern.EnsureExceptionHandlingf9c97b8da786f083
    ch.qos.logback.classic.pattern.LevelConverter05b4415a3dbcaaf4
    ch.qos.logback.classic.pattern.LineSeparatorConverter2e2dc69c3bdc6cd3
    ch.qos.logback.classic.pattern.MessageConverteref2f64b51bca1aac
    ch.qos.logback.classic.pattern.ThrowableHandlingConverter266cc4ca75fcd39d
    ch.qos.logback.classic.pattern.ThrowableProxyConverter46dc88ad0c97e462
    ch.qos.logback.classic.selector.DefaultContextSelectorfd861e3242ccff2f
    ch.qos.logback.classic.sift.SiftAction9f73df3037d696a7
    ch.qos.logback.classic.spi.LoggerContextVOecac106025bca4a3
    ch.qos.logback.classic.spi.PlatformInfo0e826c07ba59ae45
    ch.qos.logback.classic.spi.TurboFilterListaa3cf39d0c0c651e
    ch.qos.logback.classic.util.ContextInitializerf560906e9553d69f
    ch.qos.logback.classic.util.ContextSelectorStaticBinder271bbf6fa66123b1
    ch.qos.logback.classic.util.DefaultNestedComponentRules840b992fa00c7e60
    ch.qos.logback.classic.util.EnvUtil39b5543082458460
    ch.qos.logback.classic.util.LoggerNameUtilb8d88c97a0cadcfa
    ch.qos.logback.core.BasicStatusManagerf42ab87c1f66e222
    ch.qos.logback.core.ConsoleAppenderd101474cda5e45c9
    ch.qos.logback.core.ContextBase707ceedbd09855e6
    ch.qos.logback.core.LayoutBasee6bfd3b1edc3ab01
    ch.qos.logback.core.OutputStreamAppender79e07918442741f3
    ch.qos.logback.core.UnsynchronizedAppenderBase0672be5753362c70
    ch.qos.logback.core.encoder.EncoderBasef2507a7276f26c10
    ch.qos.logback.core.encoder.LayoutWrappingEncoder6c80790d34287d6b
    ch.qos.logback.core.filter.Filter8fb765b1a8787de1
    ch.qos.logback.core.helpers.CyclicBuffer422c7b9f7318f10a
    ch.qos.logback.core.joran.GenericConfigurator3f448ac12ab6a263
    ch.qos.logback.core.joran.JoranConfiguratorBase38c4decb94b320f7
    ch.qos.logback.core.joran.action.AbstractEventEvaluatorActionbf3cf252a2822906
    ch.qos.logback.core.joran.action.Action7cf2d4f3569d0788
    ch.qos.logback.core.joran.action.AppenderAction22c3c549e13663a1
    ch.qos.logback.core.joran.action.AppenderRefAction3c0bd482c9925292
    ch.qos.logback.core.joran.action.ContextPropertyAction4d47e7c289aa172b
    ch.qos.logback.core.joran.action.ConversionRuleAction6ad21d1237f36c71
    ch.qos.logback.core.joran.action.DefinePropertyAction3d08042673a6e5dc
    ch.qos.logback.core.joran.action.IADataForBasicPropertycbe844e4f3903797
    ch.qos.logback.core.joran.action.IADataForComplexProperty9b210f34ec734f9e
    ch.qos.logback.core.joran.action.ImplicitAction86dae105afebc13c
    ch.qos.logback.core.joran.action.IncludeAction2775b098b6b111dc
    ch.qos.logback.core.joran.action.NOPAction69348e8c62d1a733
    ch.qos.logback.core.joran.action.NestedBasicPropertyIA89ed90b29bc14f36
    ch.qos.logback.core.joran.action.NestedBasicPropertyIA.108e44e1168d7ea7b
    ch.qos.logback.core.joran.action.NestedComplexPropertyIA178aace2d0448f6a
    ch.qos.logback.core.joran.action.NestedComplexPropertyIA.15160250e9b77af57
    ch.qos.logback.core.joran.action.NewRuleAction265aa9ab808da62d
    ch.qos.logback.core.joran.action.ParamActionad2376677140dcb4
    ch.qos.logback.core.joran.action.PropertyAction81b578f6564d00a1
    ch.qos.logback.core.joran.action.ShutdownHookActione67fa543b234ff0d
    ch.qos.logback.core.joran.action.StatusListenerAction4cf479b0b81398f3
    ch.qos.logback.core.joran.action.TimestampActiond7a48c3648a91ea8
    ch.qos.logback.core.joran.conditional.ElseActionfe56c4a40374cd79
    ch.qos.logback.core.joran.conditional.IfAction87c92d3efc3996c9
    ch.qos.logback.core.joran.conditional.ThenActiondd7886fdda1bb93e
    ch.qos.logback.core.joran.conditional.ThenOrElseActionBase9e00d4141028a50c
    ch.qos.logback.core.joran.event.BodyEvent0c8f2f07c6888bab
    ch.qos.logback.core.joran.event.EndEvent0c2e1da47ad508cc
    ch.qos.logback.core.joran.event.SaxEvent80662212b5cc3b53
    ch.qos.logback.core.joran.event.SaxEventRecorder639eb66c9ea90531
    ch.qos.logback.core.joran.event.StartEvent914de9498a78076d
    ch.qos.logback.core.joran.spi.CAI_WithLocatorSupportf96b1cd7be830663
    ch.qos.logback.core.joran.spi.ConfigurationWatchListfba78df767e05182
    ch.qos.logback.core.joran.spi.ConsoleTarget6e2cdd5051fbf329
    ch.qos.logback.core.joran.spi.ConsoleTarget.19612187e03729cd5
    ch.qos.logback.core.joran.spi.ConsoleTarget.2ea3332451607183e
    ch.qos.logback.core.joran.spi.DefaultNestedComponentRegistryf3ac4f0369a959d6
    ch.qos.logback.core.joran.spi.ElementPathab4711e5039d31b0
    ch.qos.logback.core.joran.spi.ElementSelector605584d4fe3a6b67
    ch.qos.logback.core.joran.spi.EventPlayer739ef0261c196bb2
    ch.qos.logback.core.joran.spi.HostClassAndPropertyDouble199aef84b04dd48c
    ch.qos.logback.core.joran.spi.InterpretationContextce4c00a894617c6e
    ch.qos.logback.core.joran.spi.Interpreter634fa7d2dde257a5
    ch.qos.logback.core.joran.spi.NoAutoStartUtil6fe8a98ba9c5ce85
    ch.qos.logback.core.joran.spi.SimpleRuleStore19c383749dc55e01
    ch.qos.logback.core.joran.util.ConfigurationWatchListUtila35db514967601cf
    ch.qos.logback.core.joran.util.PropertySetter8f7e7385541ef400
    ch.qos.logback.core.joran.util.PropertySetter.1f84b2a86e8cd4b37
    ch.qos.logback.core.joran.util.StringToObjectConverter2e393f7832702c3f
    ch.qos.logback.core.joran.util.beans.BeanDescriptiona249e33828fc438a
    ch.qos.logback.core.joran.util.beans.BeanDescriptionCache9d679b6b2b24c9f7
    ch.qos.logback.core.joran.util.beans.BeanDescriptionFactory1abb714ec36ec08c
    ch.qos.logback.core.joran.util.beans.BeanUtil889c2d82913f56d3
    ch.qos.logback.core.net.ssl.SSLNestedComponentRegistryRulescdeda61b0c175e73
    ch.qos.logback.core.pattern.Converter925f6cb417029041
    ch.qos.logback.core.pattern.ConverterUtildd9b10877d49fdef
    ch.qos.logback.core.pattern.DynamicConverter66d903dd096314f6
    ch.qos.logback.core.pattern.FormattingConverterc3110b5495da3c0a
    ch.qos.logback.core.pattern.LiteralConverter65b2e319699170e6
    ch.qos.logback.core.pattern.PatternLayoutBasea804a6743796ed4f
    ch.qos.logback.core.pattern.PatternLayoutEncoderBase8869b320200d58ca
    ch.qos.logback.core.pattern.parser.Compiler1c6d6460ba38602b
    ch.qos.logback.core.pattern.parser.FormattingNodec1ea708a78deec04
    ch.qos.logback.core.pattern.parser.Node6c2db44212d84b68
    ch.qos.logback.core.pattern.parser.Parser7b1aef016f4f95f3
    ch.qos.logback.core.pattern.parser.SimpleKeywordNodef700f290325e600d
    ch.qos.logback.core.pattern.parser.Token4f7e433507e860ed
    ch.qos.logback.core.pattern.parser.TokenStreamb0bdcf4b6e0f87aa
    ch.qos.logback.core.pattern.parser.TokenStream.1fd95c0c735fd0ef7
    ch.qos.logback.core.pattern.parser.TokenStream.TokenizerState3467111fb3bf68e6
    ch.qos.logback.core.pattern.util.RegularEscapeUtil1cc07c8d9d362995
    ch.qos.logback.core.pattern.util.RestrictedEscapeUtil05ac894407a1822b
    ch.qos.logback.core.spi.AppenderAttachableImpl356e7661a1308dba
    ch.qos.logback.core.spi.ContextAwareBase507768fbb8be644f
    ch.qos.logback.core.spi.ContextAwareImple054ab71d51b27ec
    ch.qos.logback.core.spi.FilterAttachableImple0d2c4e50fd975d2
    ch.qos.logback.core.spi.FilterReply8ffb0681c411c96a
    ch.qos.logback.core.spi.LogbackLockb3b7af385a799776
    ch.qos.logback.core.status.InfoStatus1d3c0987bb0ffe10
    ch.qos.logback.core.status.StatusBase7c1cffd1a9986020
    ch.qos.logback.core.status.StatusUtilb5fec2971e383d38
    ch.qos.logback.core.subst.Node173ef78e5278fe04
    ch.qos.logback.core.subst.Node.Typeb8a40f4b8fbe988c
    ch.qos.logback.core.subst.NodeToStringTransformer1e8620cc7b5415cb
    ch.qos.logback.core.subst.NodeToStringTransformer.15967309dea3614e0
    ch.qos.logback.core.subst.Parserc06549d7b1e1487d
    ch.qos.logback.core.subst.Parser.178a0480962b020ea
    ch.qos.logback.core.subst.Token3f38da4ca554aafd
    ch.qos.logback.core.subst.Token.Typed037d0aeea85e517
    ch.qos.logback.core.subst.Tokenizer6a388c818909b082
    ch.qos.logback.core.subst.Tokenizer.15446562f97e885f7
    ch.qos.logback.core.subst.Tokenizer.TokenizerStatea43d7665d3995d51
    ch.qos.logback.core.util.AggregationTypee82dcae26638e651
    ch.qos.logback.core.util.COWArrayListfd4fbd3c0c90c052
    ch.qos.logback.core.util.CachingDateFormatter371338e1c1d98e24
    ch.qos.logback.core.util.EnvUtiladc66c330ddaa6c4
    ch.qos.logback.core.util.Loader6a7f26fdd43cf12b
    ch.qos.logback.core.util.Loader.1d6e48f075e51e44b
    ch.qos.logback.core.util.OptionHelpered7183d6bad9d2a9
    ch.qos.logback.core.util.StatusListenerConfigHelperb3e50ff76e275069
    ch.qos.logback.core.util.StatusPrinter04fef78263405164
    com.fasterxml.jackson.annotation.JsonAutoDetect.Visibilitye56bcd385626eead
    com.fasterxml.jackson.annotation.JsonFormat.Featuree632f8db525e6519
    com.fasterxml.jackson.annotation.JsonFormat.Features75fb2eb9717dc62a
    com.fasterxml.jackson.annotation.JsonFormat.Shapec19c22f9661f3b7d
    com.fasterxml.jackson.annotation.JsonFormat.Value0eb8231d09bfd09a
    com.fasterxml.jackson.annotation.JsonInclude.Include30ab0a782ad08747
    com.fasterxml.jackson.annotation.JsonInclude.Valuea558d9f40414e748
    com.fasterxml.jackson.annotation.JsonSetter.Value6ee26ce006658a00
    com.fasterxml.jackson.annotation.Nulls724f990ec72b618f
    com.fasterxml.jackson.core.Base64Variant820db952b2ce1918
    com.fasterxml.jackson.core.Base64Variant.PaddingReadBehaviourdd0e63a614fe004b
    com.fasterxml.jackson.core.Base64Variantse646bbe091ae79c0
    com.fasterxml.jackson.core.ErrorReportConfiguration6ae7b9c14364f861
    com.fasterxml.jackson.core.JsonFactory4b6dbe517dc74f05
    com.fasterxml.jackson.core.JsonFactory.Feature6053a66ef91d8599
    com.fasterxml.jackson.core.JsonGenerator8a53f1394a871e41
    com.fasterxml.jackson.core.JsonGenerator.Featuredca43627a1b1d378
    com.fasterxml.jackson.core.JsonParserbfa2b2aaf45dbdaf
    com.fasterxml.jackson.core.JsonParser.Feature7e095b73debaa45f
    com.fasterxml.jackson.core.JsonParser.NumberType88e7ccc17e76b9de
    com.fasterxml.jackson.core.JsonStreamContext369abe89770bcf3d
    com.fasterxml.jackson.core.JsonTokeneed63a6e4a8e9120
    com.fasterxml.jackson.core.ObjectCodec4de1a295d9dc31ca
    com.fasterxml.jackson.core.PrettyPrinterf27d5528a26794c9
    com.fasterxml.jackson.core.StreamReadCapabilitya4c561ff4de25114
    com.fasterxml.jackson.core.StreamReadConstraintsfef85c00a0df6225
    com.fasterxml.jackson.core.StreamWriteCapability20b236b266d25323
    com.fasterxml.jackson.core.StreamWriteConstraintsf2bb5b3756dacf82
    com.fasterxml.jackson.core.TokenStreamFactory41de330f27eca392
    com.fasterxml.jackson.core.TreeCodec18594f8a8dcec6a2
    com.fasterxml.jackson.core.base.GeneratorBase769b434d47814ead
    com.fasterxml.jackson.core.base.ParserBase7ea5c57b85e68f85
    com.fasterxml.jackson.core.base.ParserMinimalBasedafc6c7b6eb27cb5
    com.fasterxml.jackson.core.io.CharTypes07a8747913d8e991
    com.fasterxml.jackson.core.io.ContentReferencec1bf9547a5b31574
    com.fasterxml.jackson.core.io.IOContext92f945a4db96d4d1
    com.fasterxml.jackson.core.io.JsonStringEncodercaf3b669acbbe223
    com.fasterxml.jackson.core.io.SegmentedStringWriteraf9b17af11ce151f
    com.fasterxml.jackson.core.io.SerializedStringde06c047872018ad
    com.fasterxml.jackson.core.json.JsonGeneratorImpl62f7e0732a7b3f16
    com.fasterxml.jackson.core.json.JsonReadContext7fe93ff4dfcd910a
    com.fasterxml.jackson.core.json.JsonWriteContext80adf9bb4918112e
    com.fasterxml.jackson.core.json.ReaderBasedJsonParser5a748aacc97cbeaf
    com.fasterxml.jackson.core.json.WriterBasedJsonGenerator4c9c68d95ea16405
    com.fasterxml.jackson.core.sym.ByteQuadsCanonicalizer5054f4087e115bac
    com.fasterxml.jackson.core.sym.ByteQuadsCanonicalizer.TableInfoeb0211d6faa23d01
    com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer098437effe93aab8
    com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer.TableInfo7f8a1e78ae4259c6
    com.fasterxml.jackson.core.type.ResolvedType8a4589ad9960ed59
    com.fasterxml.jackson.core.util.BufferRecycler130f2ce298e329d8
    com.fasterxml.jackson.core.util.BufferRecyclers4e7bee8eece90b3a
    com.fasterxml.jackson.core.util.DefaultIndenter18913563e8366f39
    com.fasterxml.jackson.core.util.DefaultPrettyPrinterdffce786178e5ff1
    com.fasterxml.jackson.core.util.DefaultPrettyPrinter.FixedSpaceIndenter418687d575a4f083
    com.fasterxml.jackson.core.util.DefaultPrettyPrinter.NopIndenter110c0bf83e5c079c
    com.fasterxml.jackson.core.util.JacksonFeatureSet69b6b3d8af7f13b3
    com.fasterxml.jackson.core.util.JsonRecyclerPoolsbb15cd8e45e37fee
    com.fasterxml.jackson.core.util.JsonRecyclerPools.ThreadLocalPoolb47528b0197c08e2
    com.fasterxml.jackson.core.util.ReadConstrainedTextBuffer23fc9ce24061d845
    com.fasterxml.jackson.core.util.RecyclerPool.ThreadLocalPoolBase23bd83512f98e1cd
    com.fasterxml.jackson.core.util.Separatorsdb601d3f3bad91c2
    com.fasterxml.jackson.core.util.Separators.Spacing511422cc9db17520
    com.fasterxml.jackson.core.util.TextBuffere0024e1d666b4905
    com.fasterxml.jackson.databind.AnnotationIntrospector905eb800c47f61a4
    com.fasterxml.jackson.databind.BeanDescriptionb72f4d814c7d9796
    com.fasterxml.jackson.databind.DatabindContext190fc61056492212
    com.fasterxml.jackson.databind.DeserializationConfiga66abddaffd0eeda
    com.fasterxml.jackson.databind.DeserializationContexte42cf81978826049
    com.fasterxml.jackson.databind.DeserializationFeaturee8c5e101ec4650d4
    com.fasterxml.jackson.databind.JavaType4b4e8dfd897d7a79
    com.fasterxml.jackson.databind.JsonDeserializerf155d5de89ce5a60
    com.fasterxml.jackson.databind.JsonSerializeradb9d1fae01b02c7
    com.fasterxml.jackson.databind.MapperFeatured7d85f4bfd3cff7a
    com.fasterxml.jackson.databind.MappingJsonFactory65cdd9294dfaf29a
    com.fasterxml.jackson.databind.ObjectMapper1267d692f0f6e0ba
    com.fasterxml.jackson.databind.PropertyName217cf81be2326911
    com.fasterxml.jackson.databind.SerializationConfig40620b2ae2347380
    com.fasterxml.jackson.databind.SerializationFeature9609ec0ec1e8bc2a
    com.fasterxml.jackson.databind.SerializerProvider10f427a250ca2427
    com.fasterxml.jackson.databind.cfg.BaseSettings74949427e8604cd4
    com.fasterxml.jackson.databind.cfg.CoercionAction9e15561f16680f97
    com.fasterxml.jackson.databind.cfg.CoercionConfigffad61191adeb87e
    com.fasterxml.jackson.databind.cfg.CoercionConfigs8937a55c926c734f
    com.fasterxml.jackson.databind.cfg.CoercionInputShape90aad4e377b3dccd
    com.fasterxml.jackson.databind.cfg.ConfigOverridef1771a0d408303c8
    com.fasterxml.jackson.databind.cfg.ConfigOverride.Empty3372ed519d9bafb4
    com.fasterxml.jackson.databind.cfg.ConfigOverrides7943101710d9f910
    com.fasterxml.jackson.databind.cfg.ContextAttributes216e6db5a97ae48a
    com.fasterxml.jackson.databind.cfg.ContextAttributes.Implede427cff276c0b8
    com.fasterxml.jackson.databind.cfg.DatatypeFeaturesf4893ef156575441
    com.fasterxml.jackson.databind.cfg.DatatypeFeatures.DefaultHolder81838084595fa0c8
    com.fasterxml.jackson.databind.cfg.DefaultCacheProvider6bbb2aa855b50726
    com.fasterxml.jackson.databind.cfg.DeserializerFactoryConfig7861ff22cec5640b
    com.fasterxml.jackson.databind.cfg.EnumFeature16e95ce7a3f1f1ee
    com.fasterxml.jackson.databind.cfg.JsonNodeFeature93b45511772e9fc3
    com.fasterxml.jackson.databind.cfg.MapperConfigc7b0b1bb3bc6f9f1
    com.fasterxml.jackson.databind.cfg.MapperConfigBase5bb7b8ef48c720d7
    com.fasterxml.jackson.databind.cfg.MutableCoercionConfig262e6b36c9ca989e
    com.fasterxml.jackson.databind.cfg.SerializerFactoryConfigd93f22d3258ee4c0
    com.fasterxml.jackson.databind.deser.BasicDeserializerFactory3944ee9b76fde7a2
    com.fasterxml.jackson.databind.deser.BeanDeserializerFactory65809d9bdea9493b
    com.fasterxml.jackson.databind.deser.DefaultDeserializationContext5756779a22fd7d68
    com.fasterxml.jackson.databind.deser.DefaultDeserializationContext.Impl8057860fe47eb5da
    com.fasterxml.jackson.databind.deser.DeserializerCache7d85f058f583e5dd
    com.fasterxml.jackson.databind.deser.DeserializerFactory2ebdf24d93849f1a
    com.fasterxml.jackson.databind.deser.impl.NullsConstantProvider83cd716157aa0f9a
    com.fasterxml.jackson.databind.deser.std.StdDeserializer2122bf750d1b5b89
    com.fasterxml.jackson.databind.deser.std.StdKeyDeserializers2ca4ab5d0f0b71dd
    com.fasterxml.jackson.databind.deser.std.StdScalarDeserializer25286f364997b846
    com.fasterxml.jackson.databind.deser.std.StringArrayDeserializerdbeac8e57a8a807e
    com.fasterxml.jackson.databind.deser.std.StringDeserializer36ba9f92a53b7892
    com.fasterxml.jackson.databind.ext.Java7Support4b7557784caa415a
    com.fasterxml.jackson.databind.ext.Java7SupportImpl94a94fc44678f7e9
    com.fasterxml.jackson.databind.introspect.AccessorNamingStrategy3d3b7f563f5ca70a
    com.fasterxml.jackson.databind.introspect.AccessorNamingStrategy.Provider6026222786456f26
    com.fasterxml.jackson.databind.introspect.Annotated47d3d49f2b832d54
    com.fasterxml.jackson.databind.introspect.AnnotatedClass208d1216b93f97d9
    com.fasterxml.jackson.databind.introspect.AnnotatedClass.Creatorsecbba5a1c87c995f
    com.fasterxml.jackson.databind.introspect.AnnotatedClassResolver9c1435b88f5e9e91
    com.fasterxml.jackson.databind.introspect.AnnotationCollectorc389709d2ffbb364
    com.fasterxml.jackson.databind.introspect.AnnotationCollector.NoAnnotations9173d7167a075d90
    com.fasterxml.jackson.databind.introspect.BasicBeanDescription4f0d484434fb6325
    com.fasterxml.jackson.databind.introspect.BasicClassIntrospectorfcecadfe75a5c2af
    com.fasterxml.jackson.databind.introspect.ClassIntrospectorb20a1133edfcf6b5
    com.fasterxml.jackson.databind.introspect.DefaultAccessorNamingStrategyefc1568392fc0098
    com.fasterxml.jackson.databind.introspect.DefaultAccessorNamingStrategy.Provider9679bb882d2d354f
    com.fasterxml.jackson.databind.introspect.JacksonAnnotationIntrospector9d54114155341c05
    com.fasterxml.jackson.databind.introspect.POJOPropertiesCollector1821e69f144ab189
    com.fasterxml.jackson.databind.introspect.SimpleMixInResolver6a0721d817cbf413
    com.fasterxml.jackson.databind.introspect.VisibilityChecker.Std86f77996bd544f4e
    com.fasterxml.jackson.databind.jsontype.PolymorphicTypeValidatorff1c7cc76de984ce
    com.fasterxml.jackson.databind.jsontype.PolymorphicTypeValidator.Baseea9ae0e64ce11069
    com.fasterxml.jackson.databind.jsontype.SubtypeResolverb2ed8bc0e5fe669c
    com.fasterxml.jackson.databind.jsontype.impl.LaissezFaireSubTypeValidatord02dab29b87ed521
    com.fasterxml.jackson.databind.jsontype.impl.StdSubtypeResolver342823e6800eb76b
    com.fasterxml.jackson.databind.node.JsonNodeFactoryb407554ab061d84d
    com.fasterxml.jackson.databind.ser.BasicSerializerFactoryda909c46cb0d91a4
    com.fasterxml.jackson.databind.ser.BeanSerializerFactory16faed09cf6c52b8
    com.fasterxml.jackson.databind.ser.ContainerSerializer67b35562bf415143
    com.fasterxml.jackson.databind.ser.DefaultSerializerProvider7081bda43dcfcb52
    com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.Implbb7a481d8d11e37e
    com.fasterxml.jackson.databind.ser.SerializerCache05a580ec11f5621f
    com.fasterxml.jackson.databind.ser.SerializerFactorya96ec5a87f2a9dec
    com.fasterxml.jackson.databind.ser.impl.FailingSerializer96696f091a076f00
    com.fasterxml.jackson.databind.ser.impl.ReadOnlyClassToSerializerMapf7673b78d4dbb21a
    com.fasterxml.jackson.databind.ser.impl.StringArraySerializere460ddec25a8c614
    com.fasterxml.jackson.databind.ser.impl.UnknownSerializer0f0b100c24ae521b
    com.fasterxml.jackson.databind.ser.std.ArraySerializerBasec8c6410977eb572f
    com.fasterxml.jackson.databind.ser.std.BooleanSerializera5e7ba6f955baf41
    com.fasterxml.jackson.databind.ser.std.CalendarSerializerda6df272674c3c19
    com.fasterxml.jackson.databind.ser.std.DateSerializerdcf355b20d60965d
    com.fasterxml.jackson.databind.ser.std.DateTimeSerializerBasefb1c17ba4f02cbe0
    com.fasterxml.jackson.databind.ser.std.NullSerializer55885eb24739c250
    com.fasterxml.jackson.databind.ser.std.NumberSerializer2b09bf235752694e
    com.fasterxml.jackson.databind.ser.std.NumberSerializersdfe8936a5bca95d8
    com.fasterxml.jackson.databind.ser.std.NumberSerializers.Base243c88192bb86ee4
    com.fasterxml.jackson.databind.ser.std.NumberSerializers.DoubleSerializer5b65fb8c8ea04f02
    com.fasterxml.jackson.databind.ser.std.NumberSerializers.FloatSerializer0849cda863777be8
    com.fasterxml.jackson.databind.ser.std.NumberSerializers.IntLikeSerializer37f949791419da14
    com.fasterxml.jackson.databind.ser.std.NumberSerializers.IntegerSerializer8572ad7f464034dd
    com.fasterxml.jackson.databind.ser.std.NumberSerializers.LongSerializer1bcc67c140cfbe03
    com.fasterxml.jackson.databind.ser.std.NumberSerializers.ShortSerializera678b068eca9e8b6
    com.fasterxml.jackson.databind.ser.std.StdJdkSerializersb1d950d41858d3ba
    com.fasterxml.jackson.databind.ser.std.StdScalarSerializer294ce690d4fde5d1
    com.fasterxml.jackson.databind.ser.std.StdSerializer2eb989e3aa9ebf8b
    com.fasterxml.jackson.databind.ser.std.StringSerializerb6342c9e6a90d477
    com.fasterxml.jackson.databind.ser.std.ToEmptyObjectSerializerdcbbfaf250568a42
    com.fasterxml.jackson.databind.ser.std.ToStringSerializerb965af9d2adb22d7
    com.fasterxml.jackson.databind.ser.std.ToStringSerializerBase4df4671bce83caa1
    com.fasterxml.jackson.databind.ser.std.UUIDSerializer9825ed90a3a1ea38
    com.fasterxml.jackson.databind.type.ArrayTypeada34943c659785c
    com.fasterxml.jackson.databind.type.ClassStackb4e39752aaaff8ce
    com.fasterxml.jackson.databind.type.LogicalTypee0e08cb4c4d717b1
    com.fasterxml.jackson.databind.type.SimpleType9bf726d4e15bb139
    com.fasterxml.jackson.databind.type.TypeBase84e347a8123ba86e
    com.fasterxml.jackson.databind.type.TypeBindings69af78e44b169d2b
    com.fasterxml.jackson.databind.type.TypeFactory3596cbf80365f39f
    com.fasterxml.jackson.databind.type.TypeParser539ac466374b5334
    com.fasterxml.jackson.databind.util.AccessPattern44bf82acd8a3fffc
    com.fasterxml.jackson.databind.util.ArrayIteratore4c9e4d38ac21c90
    com.fasterxml.jackson.databind.util.ClassUtil7a2a6f716f5500a1
    com.fasterxml.jackson.databind.util.LRUMapc487e14750ddd25e
    com.fasterxml.jackson.databind.util.LinkedNode73ca05873e25cb2e
    com.fasterxml.jackson.databind.util.ObjectBuffer14fbae37b93a957b
    com.fasterxml.jackson.databind.util.RootNameLookupadd4d1fb1a084862
    com.fasterxml.jackson.databind.util.StdDateFormatc6d4539431425f11
    com.fasterxml.jackson.databind.util.TypeKey32162ed128b7bbbd
    com.fasterxml.jackson.databind.util.internal.LinkedDeque9bfc4fbb2b0b1196
    com.fasterxml.jackson.databind.util.internal.PrivateMaxEntriesMap3f0ff22fe5779861
    com.fasterxml.jackson.databind.util.internal.PrivateMaxEntriesMap.AddTask866aec97a77c2650
    com.fasterxml.jackson.databind.util.internal.PrivateMaxEntriesMap.Builderdcc244062522bdc6
    com.fasterxml.jackson.databind.util.internal.PrivateMaxEntriesMap.DrainStatusa1e26b7a083af651
    com.fasterxml.jackson.databind.util.internal.PrivateMaxEntriesMap.DrainStatus.12de09d3a3bfcdca6
    com.fasterxml.jackson.databind.util.internal.PrivateMaxEntriesMap.DrainStatus.22928516020b2e91a
    com.fasterxml.jackson.databind.util.internal.PrivateMaxEntriesMap.DrainStatus.326e6a18539bc3d80
    com.fasterxml.jackson.databind.util.internal.PrivateMaxEntriesMap.EntryIterator86fc40b47b6d46b6
    com.fasterxml.jackson.databind.util.internal.PrivateMaxEntriesMap.EntrySet69a473f3bfd1c6f1
    com.fasterxml.jackson.databind.util.internal.PrivateMaxEntriesMap.Node2dc3669c077d2e56
    com.fasterxml.jackson.databind.util.internal.PrivateMaxEntriesMap.WeightedValuec5874d009c2eaa54
    mockit.Invocationa96336e1f386171f
    mockit.MockUpe8171f437ed496ae
    mockit.asm.AnnotatedReadercd282e0a5a53baea
    mockit.asm.BaseWriter582f5e60cf7a7aa4
    mockit.asm.SignatureWriterdf63ed411efbf4b6
    mockit.asm.annotations.AnnotationReader1a8efb95d77d1cc4
    mockit.asm.classes.ClassInfo373729acd80f0ac2
    mockit.asm.classes.ClassReader35b19ee242b52e68
    mockit.asm.classes.ClassVisitorecc8c148efb1fb05
    mockit.asm.classes.ClassWriter138f6d9fdc880f33
    mockit.asm.classes.ConstantPoolCopyinge69830abde6594e3
    mockit.asm.classes.InnerClassesWriter161eb63681ff89cf
    mockit.asm.classes.SourceFileWritere8fc300748dc0805
    mockit.asm.classes.WrappingClassVisitor05ea9f6f99307be6
    mockit.asm.constantPool.AttributeWriter14f301dde0efc458
    mockit.asm.constantPool.ClassMemberItemaa126e5329780a07
    mockit.asm.constantPool.ConstantPoolGeneration0fa17a48409c3309
    mockit.asm.constantPool.DoubleItem34f414546b36c4df
    mockit.asm.constantPool.DynamicItem3cea8c55017846c0
    mockit.asm.constantPool.FloatItembd61b107266c3b95
    mockit.asm.constantPool.IntItemd97e2f1dc717a13e
    mockit.asm.constantPool.IntValueItem98e99f11b2caca0e
    mockit.asm.constantPool.Itemd068fa4ff3fcee61
    mockit.asm.constantPool.LongItem6b22c746ea1433c1
    mockit.asm.constantPool.LongValueItem2ccc0f1c20cad69e
    mockit.asm.constantPool.MergedTypeTableItem0d0b1da6270fd88c
    mockit.asm.constantPool.MethodHandleItem39bcee524a8a7b98
    mockit.asm.constantPool.NameAndTypeItemb7bb836a0ec0d51d
    mockit.asm.constantPool.NormalTypeTableItem0f252ab8f9880312
    mockit.asm.constantPool.StringItem88ca5a93ae8a30e1
    mockit.asm.constantPool.TypeOrMemberItemdab75af23a47e2b1
    mockit.asm.constantPool.TypeTableItemd8a8ef64ff3ac452
    mockit.asm.constantPool.UninitializedTypeTableItem370461ef51a65392
    mockit.asm.controlFlow.CFGAnalysisa06e124c809928c9
    mockit.asm.controlFlow.Edge5d83111f9538c66f
    mockit.asm.controlFlow.Frame386d35773c19369a
    mockit.asm.controlFlow.Label5bca527bd719557c
    mockit.asm.controlFlow.StackMapTableWriter7bcdf022caa20775
    mockit.asm.exceptionHandling.ExceptionHandling286f458f00be3947
    mockit.asm.fields.FieldReader053ae610f8947b76
    mockit.asm.fields.FieldVisitor6c321d4980a2d7f3
    mockit.asm.jvmConstants.Access642ded812da66040
    mockit.asm.jvmConstants.JVMInstructiondeeb476cf4f7665b
    mockit.asm.metadata.ClassMetadataReader86fe7615054981b5
    mockit.asm.metadata.ClassMetadataReader.AnnotationInfobc09c40a0f38e185
    mockit.asm.metadata.ClassMetadataReader.Attribute6d901176eb06252c
    mockit.asm.metadata.ClassMetadataReader.ConstantPoolTag83ba5ffd57f73b11
    mockit.asm.metadata.ClassMetadataReader.MemberInfodd16bea0c59df08f
    mockit.asm.metadata.ClassMetadataReader.MethodInfo3e1c9829877de254
    mockit.asm.metadata.ObjectWithAttributese089abe59f8ade12
    mockit.asm.methods.ExceptionsWritere5e41e85406ed2b8
    mockit.asm.methods.LineNumberTableWriter7fa755996e63e0b5
    mockit.asm.methods.LocalVariableTableWriter0ff2250f9d363442
    mockit.asm.methods.MethodReader0d46bdb10e1cb567
    mockit.asm.methods.MethodVisitor6aafdb0e0bd9f04d
    mockit.asm.methods.MethodWriterc77ca17c110fc381
    mockit.asm.methods.WrappingMethodVisitorfe2114a373ed09e3
    mockit.asm.types.ArrayType3897ad248dad3058
    mockit.asm.types.JavaType6a617aca55015b96
    mockit.asm.types.ObjectType439dacb2d6b69467
    mockit.asm.types.PrimitiveType9907457aea9de70c
    mockit.asm.types.ReferenceTypec3a32354b2fe0c85
    mockit.asm.util.ByteVectoradf5209dcdaf01d5
    mockit.asm.util.BytecodeReaderad4c2af17a40d4d0
    mockit.coverage.CodeCoverage57c4b93cf9705048
    mockit.coverage.Configuration0f191cfcb58e3996
    mockit.coverage.testRedundancy.TestCoveragee7294c8646aeb601
    mockit.integration.TestRunnerDecorator10c6d4d07e4bb526
    mockit.integration.junit4.FakeFrameworkMethod202fa832304031cd
    mockit.integration.junit4.FakeRunNotifierf2d8e332a2590c60
    mockit.integration.junit4.JUnit4TestRunnerDecoratorc2eadb5bf6beaf6c
    mockit.internal.BaseClassModifiere801aefb4d7fd037
    mockit.internal.BaseClassModifier.1cd1242b388012ca6
    mockit.internal.BaseClassModifier.DynamicModifierc5d17ff8720815cc
    mockit.internal.BaseInvocationf7de466f17f4adbb
    mockit.internal.ClassFile41b638065ae166a7
    mockit.internal.ClassLoadingBridgee658793228cc4a49
    mockit.internal.expectations.RecordAndReplayExecutionf879ec0212b83007
    mockit.internal.expectations.mocking.FieldTypeRedefinitionsc4cb3bcb5359dd6a
    mockit.internal.expectations.mocking.MockedBridge331090874886c8c7
    mockit.internal.expectations.mocking.MockedTypeb261d998676dfb65
    mockit.internal.expectations.mocking.TypeRedefinitions055dc33e135fb36a
    mockit.internal.expectations.state.CascadingTypesb9acfb27aa4a8790
    mockit.internal.expectations.state.ExecutingTestacf34225777d2f3b
    mockit.internal.expectations.state.ExecutingTest.13b09910b1e29a191
    mockit.internal.expectations.transformation.ExpectationsTransformereaac4e9336d5ca40
    mockit.internal.faking.FakeBridgeda78f19ce898d263
    mockit.internal.faking.FakeClassSetupe4606a4618ad323c
    mockit.internal.faking.FakeClasses3cd46eb6591366cb
    mockit.internal.faking.FakeClasses.SavePointfecc58d760c6ed06
    mockit.internal.faking.FakeInvocatione3e355bfb78d2072
    mockit.internal.faking.FakeMethodBridge2fd5b959860f5d53
    mockit.internal.faking.FakeMethodCollectoraa97db550361bc87
    mockit.internal.faking.FakeMethods471e51097727667e
    mockit.internal.faking.FakeMethods.FakeMethodb5d99f462770e149
    mockit.internal.faking.FakeState01259986b514ed46
    mockit.internal.faking.FakeStatese760ab91481812c0
    mockit.internal.faking.FakedClassModifier28fa1e02ea9dd34f
    mockit.internal.injection.InjectionProvider1076f7e808be8615
    mockit.internal.injection.InjectionProviders62b38f89bfedb6c7
    mockit.internal.injection.InjectionState6e9537644e97642f
    mockit.internal.injection.InterfaceResolutionc5428bf18cac5f85
    mockit.internal.injection.InterfaceResolution.130a49c92c2d8b04f
    mockit.internal.injection.LifecycleMethodsed1a5aaae6cf42e3
    mockit.internal.injection.TestedClassInstantiationsbfc9ebb0ae421152
    mockit.internal.injection.TestedObjectbdd0e59488a17cbb
    mockit.internal.reflection.GenericTypeReflectiona556abe88b104f52
    mockit.internal.startup.ClassLoadingBridgeFields29d0d6d7f507fa33
    mockit.internal.startup.ClassLoadingBridgeFields.FieldAdditionTransformer682a4d5236ea1c37
    mockit.internal.startup.ClassLoadingBridgeFields.FieldAdditionTransformer.12e9fd2fdf39cd8c3
    mockit.internal.startup.JMockitInitialization1f5ea374ed1901b8
    mockit.internal.startup.Startup177b14c50aa68246
    mockit.internal.state.CachedClassfiles231a21c71ced4214
    mockit.internal.state.MockFixture394c3264450f978b
    mockit.internal.state.ParameterNames9f70a2910daf7cd7
    mockit.internal.state.SavePointda4c7e434f406431
    mockit.internal.state.TestRun6409fd3c8b761b63
    mockit.internal.state.TestRun.17d6ccf983062f278
    mockit.internal.util.ClassLoad5bd538d4254708e6
    mockit.internal.util.ClassNaming53e8188d1e80d2e0
    mockit.internal.util.ParameterNameExtractor23af23efb21b6d24
    mockit.internal.util.TypeConversione064dff353fc3c14
    org.apache.commons.cli.CommandLinec39c1aba563831db
    org.apache.commons.cli.DefaultParser4532989f167bd5b5
    org.apache.commons.cli.HelpFormatter8e073750bb97ed93
    org.apache.commons.cli.HelpFormatter.OptionComparatorf698661e5e8e14e7
    org.apache.commons.cli.MissingArgumentException85a109b7f7cb0657
    org.apache.commons.cli.Option82fcbc4a89e815e4
    org.apache.commons.cli.Option.Builder8c5dac183daaad6c
    org.apache.commons.cli.OptionGroup3020fdaa667773b1
    org.apache.commons.cli.OptionValidatorb487a84e6d277338
    org.apache.commons.cli.Options4af7cbccc3dbd25c
    org.apache.commons.cli.ParseException168ef2f0c4acbbef
    org.apache.commons.cli.UnrecognizedOptionExceptionde8dbaf13dfa715c
    org.apache.commons.cli.Util930bf7c4fbbe305c
    org.apache.maven.plugin.surefire.log.api.NullConsoleLogger9e19e8c6ec7e2af1
    org.apache.maven.surefire.api.booter.BaseProviderFactory3859e78bd81eea39
    org.apache.maven.surefire.api.booter.BiPropertyd22c13c56d5b4593
    org.apache.maven.surefire.api.booter.Command3cd54166633f8826
    org.apache.maven.surefire.api.booter.Constantsdecb9de81c53dc77
    org.apache.maven.surefire.api.booter.DumpErrorSingleton0fb68b22eecee565
    org.apache.maven.surefire.api.booter.ForkedProcessEventTypefb813c97649a2cb4
    org.apache.maven.surefire.api.booter.ForkingReporterFactory43a09ed486105416
    org.apache.maven.surefire.api.booter.ForkingRunListener72fc487c27ef5b8d
    org.apache.maven.surefire.api.booter.MasterProcessCommand4638438d1f9cb2b7
    org.apache.maven.surefire.api.booter.Shutdown22c5299ca66a441d
    org.apache.maven.surefire.api.cli.CommandLineOption4a638448af60a346
    org.apache.maven.surefire.api.filter.NonAbstractClassFilterf9349f28027f7865
    org.apache.maven.surefire.api.provider.AbstractProvidera003e0bc84287c70
    org.apache.maven.surefire.api.report.ConsoleOutputCapture810c9018ba7d1ecc
    org.apache.maven.surefire.api.report.ConsoleOutputCapture.ForwardingPrintStream2c7c3dde8b37b8d9
    org.apache.maven.surefire.api.report.ConsoleOutputCapture.NullOutputStream5731848fa72c76c9
    org.apache.maven.surefire.api.report.ReporterConfigurationa4d0f02ee0a3ce3b
    org.apache.maven.surefire.api.report.RunMode99815bd2f7cf25b8
    org.apache.maven.surefire.api.report.SimpleReportEntrybe57bd60074f466f
    org.apache.maven.surefire.api.stream.AbstractStreamDecoderc51329e6fe95e03f
    org.apache.maven.surefire.api.stream.AbstractStreamDecoder.BufferedStream0e036d9195140045
    org.apache.maven.surefire.api.stream.AbstractStreamDecoder.Memento50fa22818cea4206
    org.apache.maven.surefire.api.stream.AbstractStreamDecoder.Segmentec7b2e9f3dc519b5
    org.apache.maven.surefire.api.stream.AbstractStreamDecoder.StreamReadStatusb28e22fff7af7760
    org.apache.maven.surefire.api.stream.AbstractStreamEncoder5b9d2cab05438b39
    org.apache.maven.surefire.api.stream.SegmentTypea352bcb443bb6539
    org.apache.maven.surefire.api.suite.RunResult14b135b9dcad68f4
    org.apache.maven.surefire.api.testset.DirectoryScannerParameters011c1405154cf543
    org.apache.maven.surefire.api.testset.IncludedExcludedPatternse9dcd696bf90972f
    org.apache.maven.surefire.api.testset.ResolvedTest89f52bebbeb73147
    org.apache.maven.surefire.api.testset.ResolvedTest.ClassMatcherc5f953b9f15d7ab4
    org.apache.maven.surefire.api.testset.ResolvedTest.MethodMatcher7b60e64bb228414b
    org.apache.maven.surefire.api.testset.ResolvedTest.Type2a3fe66966797e51
    org.apache.maven.surefire.api.testset.RunOrderParameters54e3b7abf0f0a29a
    org.apache.maven.surefire.api.testset.TestArtifactInfo534706d1cf843371
    org.apache.maven.surefire.api.testset.TestListResolverdf95312288764ee2
    org.apache.maven.surefire.api.testset.TestRequestc693581994b610fb
    org.apache.maven.surefire.api.util.CloseableIterator1bb59460a90e1562
    org.apache.maven.surefire.api.util.DefaultRunOrderCalculator2be55f855ffc9c23
    org.apache.maven.surefire.api.util.DefaultScanResult3abe973f1a2038a4
    org.apache.maven.surefire.api.util.ReflectionUtils463b61419dafb4bc
    org.apache.maven.surefire.api.util.RunOrdera5c43ed7ff239d28
    org.apache.maven.surefire.api.util.TestsToRun1a59fa62362c2dd4
    org.apache.maven.surefire.api.util.TestsToRun.ClassesIterator3054f1187d144893
    org.apache.maven.surefire.api.util.internal.AbstractNoninterruptibleReadableChannelb76efd5ee4f6a78a
    org.apache.maven.surefire.api.util.internal.AbstractNoninterruptibleWritableChannel7b40a9206100f626
    org.apache.maven.surefire.api.util.internal.Channelsa28ebb2dc3d003c6
    org.apache.maven.surefire.api.util.internal.Channels.31911457c5208109a
    org.apache.maven.surefire.api.util.internal.Channels.461df49d28956b732
    org.apache.maven.surefire.api.util.internal.ClassMethod831eee1f29d6b004
    org.apache.maven.surefire.api.util.internal.DaemonThreadFactory4065ee5e2ad99385
    org.apache.maven.surefire.api.util.internal.DaemonThreadFactory.NamedThreadFactory0dc63f2f250c8f58
    org.apache.maven.surefire.api.util.internal.DumpFileUtils260268350116ea1a
    org.apache.maven.surefire.api.util.internal.ImmutableMapc8d76b0bb433e1e6
    org.apache.maven.surefire.api.util.internal.ImmutableMap.Node61855d8450e86cb5
    org.apache.maven.surefire.api.util.internal.ObjectUtilsd0584b88701e9b97
    org.apache.maven.surefire.api.util.internal.TestClassMethodNameUtilsa01f540094a55e8c
    org.apache.maven.surefire.booter.AbstractPathConfiguration2ad3d057ec281500
    org.apache.maven.surefire.booter.BooterDeserializera2a1a3132d868a74
    org.apache.maven.surefire.booter.ClassLoaderConfiguration5bafac5e09ac0782
    org.apache.maven.surefire.booter.Classpath81f738f937cf4b38
    org.apache.maven.surefire.booter.ClasspathConfigurationb651758fedc3de2d
    org.apache.maven.surefire.booter.CommandReader440cf8805d3444be
    org.apache.maven.surefire.booter.CommandReader.16e995a711f46e676
    org.apache.maven.surefire.booter.CommandReader.CommandRunnable7f7bfee61ebca85e
    org.apache.maven.surefire.booter.ForkedBooterff24aeec916b680b
    org.apache.maven.surefire.booter.ForkedBooter.173179ebb6b41b643
    org.apache.maven.surefire.booter.ForkedBooter.3c51baabea2b75554
    org.apache.maven.surefire.booter.ForkedBooter.468ca1df4a9ada348
    org.apache.maven.surefire.booter.ForkedBooter.608fe853c879dd1a6
    org.apache.maven.surefire.booter.ForkedBooter.78cca77fe0fd3c98d
    org.apache.maven.surefire.booter.ForkedBooter.8779c6068c1dac1db
    org.apache.maven.surefire.booter.ForkedBooter.PingScheduler6e83f53202050979
    org.apache.maven.surefire.booter.ForkedNodeArge055a24d27c554f3
    org.apache.maven.surefire.booter.PpidChecker921ca312a6f63114
    org.apache.maven.surefire.booter.ProcessCheckerType9c8497621409bb1e
    org.apache.maven.surefire.booter.PropertiesWrapperc4362cb430c125af
    org.apache.maven.surefire.booter.ProviderConfiguration84eb716577efc3a7
    org.apache.maven.surefire.booter.StartupConfigurationf457135a627728a6
    org.apache.maven.surefire.booter.SystemPropertyManager0446c7c116836016
    org.apache.maven.surefire.booter.TypeEncodedValue1b039936542eee72
    org.apache.maven.surefire.booter.spi.AbstractMasterProcessChannelProcessorFactoryc30b5b062f066468
    org.apache.maven.surefire.booter.spi.AbstractMasterProcessChannelProcessorFactory.1644e111f23817fd3
    org.apache.maven.surefire.booter.spi.AbstractMasterProcessChannelProcessorFactory.247b08c480603fa8a
    org.apache.maven.surefire.booter.spi.CommandChannelDecoder65f2965c86411193
    org.apache.maven.surefire.booter.spi.EventChannelEncoder114071f00780f71e
    org.apache.maven.surefire.booter.spi.EventChannelEncoder.StackTracee7231bc2c7014c40
    org.apache.maven.surefire.booter.spi.LegacyMasterProcessChannelProcessorFactoryb54085754461a0d1
    org.apache.maven.surefire.booter.spi.SurefireMasterProcessChannelProcessorFactory132a213649249d64
    org.apache.maven.surefire.booter.stream.CommandDecoder0d40efcc428f82e2
    org.apache.maven.surefire.booter.stream.CommandDecoder.19d88d04fa41adab4
    org.apache.maven.surefire.booter.stream.EventEncoder4bdbe84daf58c435
    org.apache.maven.surefire.common.junit3.JUnit3TestCheckerbbad74a9945614a4
    org.apache.maven.surefire.common.junit4.JUnit4ProviderUtilfa2afc137d4ba7b3
    org.apache.maven.surefire.common.junit4.JUnit4Reflector23b83cd8942b7f95
    org.apache.maven.surefire.common.junit4.JUnit4RunListenerd8d5e5130dcf4b9b
    org.apache.maven.surefire.common.junit4.JUnit4RunListenerFactoryccfd1352f097d7b8
    org.apache.maven.surefire.common.junit4.JUnit4TestCheckerf6cf831ca6699119
    org.apache.maven.surefire.common.junit4.JUnitTestFailureListener03f07d8828d7aca4
    org.apache.maven.surefire.common.junit4.Notifiera943b086c230616e
    org.apache.maven.surefire.junit4.JUnit4Provider5d773610b092faec
    org.apache.maven.surefire.junit4.JUnit4Provider.1e7b4bc1546ba10b9
    org.apache.maven.surefire.report.ClassMethodIndexer8b31a053539323b7
    org.apache.maven.surefire.shared.lang3.JavaVersion4e21c3be19560aac
    org.apache.maven.surefire.shared.lang3.SystemUtilse5eafc9ce14dcbec
    org.apache.maven.surefire.shared.lang3.math.NumberUtils11e46630af73f131
    org.apache.maven.surefire.shared.utils.StringUtilsabd8480c7152bf46
    org.apache.maven.surefire.shared.utils.cli.ShutdownHookUtils011b23cd829ec86c
    org.hamcrest.BaseMatcherf52733a4a58e8a8e
    org.hamcrest.MatcherAssert375cdaed635186e8
    org.hamcrest.core.Is1b4bc96017d7a098
    org.hamcrest.core.IsEqualdf3c8def58c301e5
    org.junit.Asserteda6db924019425b
    org.junit.internal.Checks5f543b0bb87b92da
    org.junit.internal.MethodSortera26607ae067f7352
    org.junit.internal.MethodSorter.1d3997b4bdb7889c1
    org.junit.internal.MethodSorter.2c8e6351cbf098013
    org.junit.internal.builders.AllDefaultPossibilitiesBuilder4f18a1d7932cb8ab
    org.junit.internal.builders.AnnotatedBuilder0faf353d180c9332
    org.junit.internal.builders.IgnoredBuildere152f333c53967a6
    org.junit.internal.builders.JUnit3Builder4a2cc8e608e1275e
    org.junit.internal.builders.JUnit4Builderf2e00a3e1fc23005
    org.junit.internal.builders.SuiteMethodBuilder1df136431e07e393
    org.junit.internal.requests.ClassRequest47dbc61675e5a92e
    org.junit.internal.requests.ClassRequest.CustomAllDefaultPossibilitiesBuilderea1c269d9656f543
    org.junit.internal.requests.ClassRequest.CustomSuiteMethodBuilder03d01020b1c503c7
    org.junit.internal.requests.MemoizingRequest1e70801476dbab8f
    org.junit.internal.runners.model.EachTestNotifier077481995383e000
    org.junit.internal.runners.model.ReflectiveCallabled591724635588bcb
    org.junit.internal.runners.rules.RuleMemberValidator95b5ee2068ec6875
    org.junit.internal.runners.rules.RuleMemberValidator.Builderf24845fa6fd065af
    org.junit.internal.runners.rules.RuleMemberValidator.DeclaringClassMustBePublic1de994463c748d89
    org.junit.internal.runners.rules.RuleMemberValidator.FieldMustBeARulee24e9f59de6fe5b7
    org.junit.internal.runners.rules.RuleMemberValidator.FieldMustBeATestRule690823bd2992f52e
    org.junit.internal.runners.rules.RuleMemberValidator.MemberMustBeNonStaticOrAlsoClassRule1e703fb3e7f4e533
    org.junit.internal.runners.rules.RuleMemberValidator.MemberMustBePublic806c174eb921b478
    org.junit.internal.runners.rules.RuleMemberValidator.MemberMustBeStaticac28a03dd36b2b5a
    org.junit.internal.runners.rules.RuleMemberValidator.MethodMustBeARule88ea4a2237de2b8b
    org.junit.internal.runners.rules.RuleMemberValidator.MethodMustBeATestRule9f4dd18a26005c18
    org.junit.internal.runners.statements.InvokeMethod05a7aa636afa2c39
    org.junit.internal.runners.statements.RunAfters14a998d07920cd7b
    org.junit.internal.runners.statements.RunBeforesef86a61ca3ab20ba
    org.junit.runner.Description1d6f7ddbbf223f9a
    org.junit.runner.Request214d9ade1c7dc38d
    org.junit.runner.Resultecf6c1c04298ff7d
    org.junit.runner.Result.Listenercf649a4ffbe55db9
    org.junit.runner.Runnerf5abacc70e2e08a4
    org.junit.runner.notification.RunListener69d2c783b42f6720
    org.junit.runner.notification.RunNotifierf6313076e2224ebb
    org.junit.runner.notification.RunNotifier.1e31025c12b4dbdee
    org.junit.runner.notification.RunNotifier.24c7314c6d595dc3e
    org.junit.runner.notification.RunNotifier.3df2bada5cb3794f3
    org.junit.runner.notification.RunNotifier.4fbdd84204c215de7
    org.junit.runner.notification.RunNotifier.5f62dc396b601f8bd
    org.junit.runner.notification.RunNotifier.9c3c3d54b8ed47ee1
    org.junit.runner.notification.RunNotifier.SafeNotifier0b43c10299733bfb
    org.junit.runner.notification.SynchronizedRunListener2b59d5cb3b105225
    org.junit.runners.BlockJUnit4ClassRunner95752fb34ff12f3f
    org.junit.runners.BlockJUnit4ClassRunner.1d0f63145230a5f42
    org.junit.runners.BlockJUnit4ClassRunner.2f93eace695ddd30e
    org.junit.runners.BlockJUnit4ClassRunner.RuleCollector9c768e710e39c989
    org.junit.runners.JUnit46d26e2305347fe01
    org.junit.runners.ParentRunner335ee90b10f96ea1
    org.junit.runners.ParentRunner.1ecc6961e8bc209c4
    org.junit.runners.ParentRunner.2c5cb913a629ec4c8
    org.junit.runners.ParentRunner.320bad8188aebc0f2
    org.junit.runners.ParentRunner.480476dbdcb8d52cc
    org.junit.runners.ParentRunner.ClassRuleCollector26f7fb338afcd13b
    org.junit.runners.RuleContainerd44c3ba6dc65af53
    org.junit.runners.RuleContainer.157bbc73f6f47763b
    org.junit.runners.model.FrameworkField2fe27c284e7d39f4
    org.junit.runners.model.FrameworkMemberbfd059486f267475
    org.junit.runners.model.FrameworkMethodf293b82d5aa86323
    org.junit.runners.model.FrameworkMethod.18fd5e02769c0e0c2
    org.junit.runners.model.MultipleFailureException187a72c573c34bac
    org.junit.runners.model.RunnerBuilder585cad2d320dc86e
    org.junit.runners.model.Statement9a75aa5de27bf4d5
    org.junit.runners.model.TestClass7e71209792391ee8
    org.junit.runners.model.TestClass.FieldComparator1b96cd3d5c4aeb07
    org.junit.runners.model.TestClass.MethodComparator0369eb29eb04248a
    org.junit.validator.AnnotationValidatorFactorye1e5570798173ab9
    org.junit.validator.AnnotationsValidator6cbe8454c9a93bb8
    org.junit.validator.AnnotationsValidator.AnnotatableValidatord211a963f22be103
    org.junit.validator.AnnotationsValidator.ClassValidator1b463c4e6642e880
    org.junit.validator.AnnotationsValidator.FieldValidator64068b954dc56a31
    org.junit.validator.AnnotationsValidator.MethodValidatorf16b57f17c787036
    org.junit.validator.PublicClassValidator3bac248cf06b18e4
    org.owasp.dependencycheck.App2936ace7442a38b4
    org.owasp.dependencycheck.AppTest553541e7444e68e7
    org.owasp.dependencycheck.BaseTest6812ad12a5772ad4
    org.owasp.dependencycheck.CliParser7724dd8cd7d02e07
    org.owasp.dependencycheck.CliParserTestc74dfc1992ef0c08
    org.owasp.dependencycheck.utils.FileUtilsb4bc6fabbcb815d7
    org.owasp.dependencycheck.utils.Settings22a4155a48302848
    org.slf4j.LoggerFactorya381b7ddf19bf47d
    org.slf4j.helpers.NOPLoggerFactory54f5632bfcb8d8d5
    org.slf4j.helpers.SubstituteLoggerFactorydc7efc0107a4a62d
    org.slf4j.helpers.Util857ff3acc0576435
    org.slf4j.impl.StaticLoggerBinder039b3c899e055991
    \ No newline at end of file diff --git a/dependency-check-cli/jacoco/jacoco.csv b/dependency-check-cli/jacoco/jacoco.csv index 20f69bc9be1..ab690d76dc1 100644 --- a/dependency-check-cli/jacoco/jacoco.csv +++ b/dependency-check-cli/jacoco/jacoco.csv @@ -1,4 +1,4 @@ GROUP,PACKAGE,CLASS,INSTRUCTION_MISSED,INSTRUCTION_COVERED,BRANCH_MISSED,BRANCH_COVERED,LINE_MISSED,LINE_COVERED,COMPLEXITY_MISSED,COMPLEXITY_COVERED,METHOD_MISSED,METHOD_COVERED -Dependency-Check Command Line,org.owasp.dependencycheck,App,1038,1038,134,76,242,238,91,29,10,5 +Dependency-Check Command Line,org.owasp.dependencycheck,App,1038,1045,134,76,242,240,91,29,10,5 Dependency-Check Command Line,org.owasp.dependencycheck,CliParser.ARGUMENT,3,0,0,0,1,0,1,0,1,0 -Dependency-Check Command Line,org.owasp.dependencycheck,CliParser,393,1254,87,75,88,237,70,59,9,39 +Dependency-Check Command Line,org.owasp.dependencycheck,CliParser,393,1260,87,75,88,238,70,59,9,39 diff --git a/dependency-check-cli/jacoco/jacoco.xml b/dependency-check-cli/jacoco/jacoco.xml index 3a29027825e..2075b095688 100644 --- a/dependency-check-cli/jacoco/jacoco.xml +++ b/dependency-check-cli/jacoco/jacoco.xml @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/dependency-check-cli/jacoco/org.owasp.dependencycheck/App.html b/dependency-check-cli/jacoco/org.owasp.dependencycheck/App.html index f87dbe10650..973de8416d2 100644 --- a/dependency-check-cli/jacoco/org.owasp.dependencycheck/App.html +++ b/dependency-check-cli/jacoco/org.owasp.dependencycheck/App.html @@ -1 +1 @@ -App

    App

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
    Total1,038 of 2,07650%134 of 21036%911202424801015
    run(String[])2570%220%1212878711
    determineReturnCode(Engine, float)2000%360%1919323211
    scanAntStylePaths(List, int, String[])1860%200%1111343411
    populateSettings(CliParser)11793288%306668%26491422301
    runScan(String, String[], String, String[], String[], int, float)900%120%77252511
    prepareLogger(String)850%20%22262611
    getPaths(String[])300%20%225511
    main(String[])250%20%228811
    getLastFileSeparator(String)133572%6440%561901
    runUpdateOnly()120%n/a113311
    ensureCanonicalPath(String)115783%2675%2542001
    App()0%n/a113311
    lambda$prepareLogger$0(ThresholdFilter, Appender)0%n/a111111
    static {...}100%n/a010201
    App(Settings)100%n/a010301
    \ No newline at end of file +App

    App

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
    Total1,038 of 2,08350%134 of 21036%911202424821015
    run(String[])2570%220%1212878711
    determineReturnCode(Engine, float)2000%360%1919323211
    scanAntStylePaths(List, int, String[])1860%200%1111343411
    populateSettings(CliParser)11793988%306668%26491422501
    runScan(String, String[], String, String[], String[], int, float)900%120%77252511
    prepareLogger(String)850%20%22262611
    getPaths(String[])300%20%225511
    main(String[])250%20%228811
    getLastFileSeparator(String)133572%6440%561901
    runUpdateOnly()120%n/a113311
    ensureCanonicalPath(String)115783%2675%2542001
    App()0%n/a113311
    lambda$prepareLogger$0(ThresholdFilter, Appender)0%n/a111111
    static {...}100%n/a010201
    App(Settings)100%n/a010301
    \ No newline at end of file diff --git a/dependency-check-cli/jacoco/org.owasp.dependencycheck/App.java.html b/dependency-check-cli/jacoco/org.owasp.dependencycheck/App.java.html index 8ed1e71007c..a58663e9fa7 100644 --- a/dependency-check-cli/jacoco/org.owasp.dependencycheck/App.java.html +++ b/dependency-check-cli/jacoco/org.owasp.dependencycheck/App.java.html @@ -656,22 +656,24 @@ } settings.setStringIfNotEmpty(Settings.KEYS.NVD_API_KEY, key); } - settings.setIntIfNotNull(Settings.KEYS.NVD_API_DELAY, cli.getIntegerValue(CliParser.ARGUMENT.NVD_API_DELAY)); - settings.setStringIfNotEmpty(Settings.KEYS.NVD_API_DATAFEED_URL, cli.getStringArgument(CliParser.ARGUMENT.NVD_API_DATAFEED_URL)); - settings.setStringIfNotEmpty(Settings.KEYS.NVD_API_DATAFEED_USER, cli.getStringArgument(CliParser.ARGUMENT.NVD_API_DATAFEED_USER)); - settings.setStringIfNotEmpty(Settings.KEYS.NVD_API_DATAFEED_PASSWORD, cli.getStringArgument(CliParser.ARGUMENT.NVD_API_DATAFEED_PASSWORD)); - settings.setIntIfNotNull(Settings.KEYS.NVD_API_MAX_RETRY_COUNT, cli.getIntegerValue(CliParser.ARGUMENT.NVD_API_MAX_RETRY_COUNT)); - settings.setIntIfNotNull(Settings.KEYS.NVD_API_VALID_FOR_HOURS, cli.getIntegerValue(CliParser.ARGUMENT.NVD_API_VALID_FOR_HOURS)); + settings.setStringIfNotEmpty(Settings.KEYS.NVD_API_ENDPOINT, + cli.getStringArgument(CliParser.ARGUMENT.NVD_API_ENDPOINT)); + settings.setIntIfNotNull(Settings.KEYS.NVD_API_DELAY, cli.getIntegerValue(CliParser.ARGUMENT.NVD_API_DELAY)); + settings.setStringIfNotEmpty(Settings.KEYS.NVD_API_DATAFEED_URL, cli.getStringArgument(CliParser.ARGUMENT.NVD_API_DATAFEED_URL)); + settings.setStringIfNotEmpty(Settings.KEYS.NVD_API_DATAFEED_USER, cli.getStringArgument(CliParser.ARGUMENT.NVD_API_DATAFEED_USER)); + settings.setStringIfNotEmpty(Settings.KEYS.NVD_API_DATAFEED_PASSWORD, cli.getStringArgument(CliParser.ARGUMENT.NVD_API_DATAFEED_PASSWORD)); + settings.setIntIfNotNull(Settings.KEYS.NVD_API_MAX_RETRY_COUNT, cli.getIntegerValue(CliParser.ARGUMENT.NVD_API_MAX_RETRY_COUNT)); + settings.setIntIfNotNull(Settings.KEYS.NVD_API_VALID_FOR_HOURS, cli.getIntegerValue(CliParser.ARGUMENT.NVD_API_VALID_FOR_HOURS)); - settings.setStringIfNotNull(Settings.KEYS.HOSTED_SUPPRESSIONS_URL, - cli.getStringArgument(CliParser.ARGUMENT.HOSTED_SUPPRESSIONS_URL)); - settings.setBoolean(Settings.KEYS.HOSTED_SUPPRESSIONS_ENABLED, - !cli.isDisabled(CliParser.ARGUMENT.DISABLE_HOSTED_SUPPRESSIONS, Settings.KEYS.HOSTED_SUPPRESSIONS_ENABLED)); - settings.setBooleanIfNotNull(Settings.KEYS.HOSTED_SUPPRESSIONS_FORCEUPDATE, - cli.hasOption(CliParser.ARGUMENT.HOSTED_SUPPRESSIONS_FORCEUPDATE)); - settings.setIntIfNotNull(Settings.KEYS.HOSTED_SUPPRESSIONS_VALID_FOR_HOURS, - cli.getIntegerValue(CliParser.ARGUMENT.HOSTED_SUPPRESSIONS_VALID_FOR_HOURS)); - } + settings.setStringIfNotNull(Settings.KEYS.HOSTED_SUPPRESSIONS_URL, + cli.getStringArgument(CliParser.ARGUMENT.HOSTED_SUPPRESSIONS_URL)); + settings.setBoolean(Settings.KEYS.HOSTED_SUPPRESSIONS_ENABLED, + !cli.isDisabled(CliParser.ARGUMENT.DISABLE_HOSTED_SUPPRESSIONS, Settings.KEYS.HOSTED_SUPPRESSIONS_ENABLED)); + settings.setBooleanIfNotNull(Settings.KEYS.HOSTED_SUPPRESSIONS_FORCEUPDATE, + cli.hasOption(CliParser.ARGUMENT.HOSTED_SUPPRESSIONS_FORCEUPDATE)); + settings.setIntIfNotNull(Settings.KEYS.HOSTED_SUPPRESSIONS_VALID_FOR_HOURS, + cli.getIntegerValue(CliParser.ARGUMENT.HOSTED_SUPPRESSIONS_VALID_FOR_HOURS)); + } //CSON: MethodLength /** @@ -680,33 +682,33 @@ * @param verboseLog the path to the verbose log file */ private void prepareLogger(String verboseLog) { - final LoggerContext context = (LoggerContext) LoggerFactory.getILoggerFactory(); - final PatternLayoutEncoder encoder = new PatternLayoutEncoder(); - encoder.setPattern("%d %C:%L%n%-5level - %msg%n"); - encoder.setContext(context); - encoder.start(); - final FileAppender<ILoggingEvent> fa = new FileAppender<>(); - fa.setAppend(true); - fa.setEncoder(encoder); - fa.setContext(context); - fa.setFile(verboseLog); - final File f = new File(verboseLog); - String name = f.getName(); - final int i = name.lastIndexOf('.'); - if (i > 1) { - name = name.substring(0, i); + final LoggerContext context = (LoggerContext) LoggerFactory.getILoggerFactory(); + final PatternLayoutEncoder encoder = new PatternLayoutEncoder(); + encoder.setPattern("%d %C:%L%n%-5level - %msg%n"); + encoder.setContext(context); + encoder.start(); + final FileAppender<ILoggingEvent> fa = new FileAppender<>(); + fa.setAppend(true); + fa.setEncoder(encoder); + fa.setContext(context); + fa.setFile(verboseLog); + final File f = new File(verboseLog); + String name = f.getName(); + final int i = name.lastIndexOf('.'); + if (i > 1) { + name = name.substring(0, i); } - fa.setName(name); - fa.start(); - final ch.qos.logback.classic.Logger rootLogger = context.getLogger(ch.qos.logback.classic.Logger.ROOT_LOGGER_NAME); - rootLogger.setLevel(Level.DEBUG); - final ThresholdFilter filter = new ThresholdFilter(); - filter.setLevel(LogLevel.INFO.getValue()); - filter.setContext(context); - filter.start(); - rootLogger.iteratorForAppenders().forEachRemaining(action -> action.addFilter(filter)); - rootLogger.addAppender(fa); - } + fa.setName(name); + fa.start(); + final ch.qos.logback.classic.Logger rootLogger = context.getLogger(ch.qos.logback.classic.Logger.ROOT_LOGGER_NAME); + rootLogger.setLevel(Level.DEBUG); + final ThresholdFilter filter = new ThresholdFilter(); + filter.setLevel(LogLevel.INFO.getValue()); + filter.setContext(context); + filter.start(); + rootLogger.iteratorForAppenders().forEachRemaining(action -> action.addFilter(filter)); + rootLogger.addAppender(fa); + } /** * Takes a path and resolves it to be a canonical &amp; absolute path. The @@ -719,32 +721,32 @@ */ protected String ensureCanonicalPath(String path) { final String basePath; - String wildCards = null; - final String file = path.replace('\\', '/'); - if (file.contains("*") || file.contains("?")) { + String wildCards = null; + final String file = path.replace('\\', '/'); + if (file.contains("*") || file.contains("?")) { - int pos = getLastFileSeparator(file); - if (pos < 0) { - return file; + int pos = getLastFileSeparator(file); + if (pos < 0) { + return file; } - pos += 1; - basePath = file.substring(0, pos); - wildCards = file.substring(pos); - } else { - basePath = file; + pos += 1; + basePath = file.substring(0, pos); + wildCards = file.substring(pos); + } else { + basePath = file; } - File f = new File(basePath); + File f = new File(basePath); try { - f = f.getCanonicalFile(); - if (wildCards != null) { - f = new File(f, wildCards); + f = f.getCanonicalFile(); + if (wildCards != null) { + f = new File(f, wildCards); } - } catch (IOException ex) { - LOGGER.warn("Invalid path '{}' was provided.", path); - LOGGER.debug("Invalid path provided", ex); - } - return f.getAbsolutePath().replace('\\', '/'); + } catch (IOException ex) { + LOGGER.warn("Invalid path '{}' was provided.", path); + LOGGER.debug("Invalid path provided", ex); + } + return f.getAbsolutePath().replace('\\', '/'); } /** @@ -755,16 +757,16 @@ */ @SuppressWarnings("ManualMinMaxCalculation") private int getLastFileSeparator(String file) { - if (file.contains("*") || file.contains("?")) { - int p1 = file.indexOf('*'); - int p2 = file.indexOf('?'); - p1 = p1 > 0 ? p1 : file.length(); - p2 = p2 > 0 ? p2 : file.length(); - int pos = p1 < p2 ? p1 : p2; - pos = file.lastIndexOf('/', pos); - return pos; + if (file.contains("*") || file.contains("?")) { + int p1 = file.indexOf('*'); + int p2 = file.indexOf('?'); + p1 = p1 > 0 ? p1 : file.length(); + p2 = p2 > 0 ? p2 : file.length(); + int pos = p1 < p2 ? p1 : p2; + pos = file.lastIndexOf('/', pos); + return pos; } else { - return file.lastIndexOf('/'); + return file.lastIndexOf('/'); } } } diff --git a/dependency-check-cli/jacoco/org.owasp.dependencycheck/CliParser$ARGUMENT.html b/dependency-check-cli/jacoco/org.owasp.dependencycheck/CliParser$ARGUMENT.html index 16b3b1c897b..641c3cf818e 100644 --- a/dependency-check-cli/jacoco/org.owasp.dependencycheck/CliParser$ARGUMENT.html +++ b/dependency-check-cli/jacoco/org.owasp.dependencycheck/CliParser$ARGUMENT.html @@ -1 +1 @@ -CliParser.ARGUMENT

    CliParser.ARGUMENT

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
    Total3 of 30%0 of 0n/a111111
    CliParser.ARGUMENT()30%n/a111111
    \ No newline at end of file +CliParser.ARGUMENT

    CliParser.ARGUMENT

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
    Total3 of 30%0 of 0n/a111111
    CliParser.ARGUMENT()30%n/a111111
    \ No newline at end of file diff --git a/dependency-check-cli/jacoco/org.owasp.dependencycheck/CliParser.html b/dependency-check-cli/jacoco/org.owasp.dependencycheck/CliParser.html index 2de1bf905bd..245a7ce133b 100644 --- a/dependency-check-cli/jacoco/org.owasp.dependencycheck/CliParser.html +++ b/dependency-check-cli/jacoco/org.owasp.dependencycheck/CliParser.html @@ -1 +1 @@ -CliParser

    CliParser

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
    Total393 of 1,64776%87 of 16246%7012988325948
    validatePathExists(String, String)1309241%331531%2225183301
    validateArgs()1195732%211134%1417304501
    getSymLinkDepth()200%20%228811
    getStringArgument(String, String)151753%6440%462601
    isRetireJsFilterNonVulnerable()130%40%331111
    getFloatArgument(String, float)12736%1150%124601
    isPurge()120%40%331111
    getProjectName()110%20%224411
    isNexusUsesProxy()91359%2250%233501
    isValidFilePath(String, String)90%n/a114411
    isValidFormat(String)80%n/a114411
    isDisabled(String, String)71973%1583%143601
    getReportFormat()51270%1150%121301
    getExcludeList()50%n/a111111
    getRetireJsFilters()50%n/a111111
    getDatabaseDriverName()50%n/a111111
    getIntegerValue(String)969%1150%121401
    getFailOnCVSS()1688%1150%121601
    isUpdateOnly()1083%2250%230101
    addAdvancedOptions(Options)557100%n/a01010201
    addStandardOptions(Options)106100%n/a0101701
    printHelp()55100%1375%1301001
    printVersionInfo()25100%n/a010501
    validatePathExists(String[], String)21100%2100%020301
    getBooleanArgument(String)21100%2466%240501
    createCommandLineOptions()15100%n/a010501
    isRunScan()15100%6100%040101
    getStringArguments(String)15100%1375%130301
    getFileArgument(String)14100%2100%020401
    hasOption(String)13100%1375%130101
    parseArgs(String[])12100%n/a010301
    isGetVersion()12100%4100%030101
    isGetHelp()12100%4100%030101
    parse(String[])11100%1150%120401
    newOptionWithArg(String, String, String, String)11100%n/a010101
    newOptionWithArg(String, String, String)10100%n/a010101
    newOptionGroup(Option)10100%n/a010301
    CliParser(Settings)9100%n/a010401
    addDeprecatedOptions(Options)8100%n/a010201
    newOption(String, String, String)8100%n/a010101
    newOption(String, String)7100%n/a010101
    getReportDirectory()6100%n/a010101
    isNodeAuditDisabled()5100%n/a010101
    isYarnAuditDisabled()5100%n/a010101
    isPnpmAuditDisabled()5100%n/a010101
    getStringArgument(String)5100%n/a010101
    getScanFiles()5100%n/a010101
    static {...}100%n/a010101
    \ No newline at end of file +CliParser

    CliParser

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
    Total393 of 1,65376%87 of 16246%7012988326948
    validatePathExists(String, String)1309241%331531%2225183301
    validateArgs()1195732%211134%1417304501
    getSymLinkDepth()200%20%228811
    getStringArgument(String, String)151753%6440%462601
    isRetireJsFilterNonVulnerable()130%40%331111
    getFloatArgument(String, float)12736%1150%124601
    isPurge()120%40%331111
    getProjectName()110%20%224411
    isNexusUsesProxy()91359%2250%233501
    isValidFilePath(String, String)90%n/a114411
    isValidFormat(String)80%n/a114411
    isDisabled(String, String)71973%1583%143601
    getReportFormat()51270%1150%121301
    getExcludeList()50%n/a111111
    getRetireJsFilters()50%n/a111111
    getDatabaseDriverName()50%n/a111111
    getIntegerValue(String)969%1150%121401
    getFailOnCVSS()1688%1150%121601
    isUpdateOnly()1083%2250%230101
    addAdvancedOptions(Options)563100%n/a01010301
    addStandardOptions(Options)106100%n/a0101701
    printHelp()55100%1375%1301001
    printVersionInfo()25100%n/a010501
    validatePathExists(String[], String)21100%2100%020301
    getBooleanArgument(String)21100%2466%240501
    createCommandLineOptions()15100%n/a010501
    isRunScan()15100%6100%040101
    getStringArguments(String)15100%1375%130301
    getFileArgument(String)14100%2100%020401
    hasOption(String)13100%1375%130101
    parseArgs(String[])12100%n/a010301
    isGetVersion()12100%4100%030101
    isGetHelp()12100%4100%030101
    parse(String[])11100%1150%120401
    newOptionWithArg(String, String, String, String)11100%n/a010101
    newOptionWithArg(String, String, String)10100%n/a010101
    newOptionGroup(Option)10100%n/a010301
    CliParser(Settings)9100%n/a010401
    addDeprecatedOptions(Options)8100%n/a010201
    newOption(String, String, String)8100%n/a010101
    newOption(String, String)7100%n/a010101
    getReportDirectory()6100%n/a010101
    isNodeAuditDisabled()5100%n/a010101
    isYarnAuditDisabled()5100%n/a010101
    isPnpmAuditDisabled()5100%n/a010101
    getStringArgument(String)5100%n/a010101
    getScanFiles()5100%n/a010101
    static {...}100%n/a010101
    \ No newline at end of file diff --git a/dependency-check-cli/jacoco/org.owasp.dependencycheck/CliParser.java.html b/dependency-check-cli/jacoco/org.owasp.dependencycheck/CliParser.java.html index c1380eca5a6..2b6f157c7e8 100644 --- a/dependency-check-cli/jacoco/org.owasp.dependencycheck/CliParser.java.html +++ b/dependency-check-cli/jacoco/org.owasp.dependencycheck/CliParser.java.html @@ -353,168 +353,170 @@ "Only update the local NVD data cache; no scan will be executed.")) .addOption(newOptionWithArg(ARGUMENT.NVD_API_DELAY, "milliseconds", "Time in milliseconds to wait between downloading from the NVD.")) - .addOption(newOptionWithArg(ARGUMENT.NVD_API_DATAFEED_URL, "url", + .addOption(newOptionWithArg(ARGUMENT.NVD_API_ENDPOINT, "endpoint", + "The NVD API Endpoint - setting this is rare.")) + .addOption(newOptionWithArg(ARGUMENT.NVD_API_DATAFEED_URL, "url", "The URL to the NVD API Datafeed.")) - .addOption(newOptionWithArg(ARGUMENT.NVD_API_DATAFEED_USER, "user", + .addOption(newOptionWithArg(ARGUMENT.NVD_API_DATAFEED_USER, "user", "Credentials for basic authentication to the NVD API Datafeed.")) - .addOption(newOptionWithArg(ARGUMENT.NVD_API_DATAFEED_PASSWORD, "password", + .addOption(newOptionWithArg(ARGUMENT.NVD_API_DATAFEED_PASSWORD, "password", "Credentials for basic authentication to the NVD API Datafeed.")) - .addOption(newOptionWithArg(ARGUMENT.NVD_API_MAX_RETRY_COUNT,"count", + .addOption(newOptionWithArg(ARGUMENT.NVD_API_MAX_RETRY_COUNT,"count", "The maximum number of retry requests for a single call to the NVD API.")) - .addOption(newOptionWithArg(ARGUMENT.NVD_API_VALID_FOR_HOURS, "hours", + .addOption(newOptionWithArg(ARGUMENT.NVD_API_VALID_FOR_HOURS, "hours", "The number of hours to wait before checking for new updates from the NVD.")) - .addOption(newOptionWithArg(ARGUMENT.PROXY_PORT, "port", + .addOption(newOptionWithArg(ARGUMENT.PROXY_PORT, "port", "The proxy port to use when downloading resources.")) - .addOption(newOptionWithArg(ARGUMENT.PROXY_SERVER, "server", + .addOption(newOptionWithArg(ARGUMENT.PROXY_SERVER, "server", "The proxy server to use when downloading resources.")) - .addOption(newOptionWithArg(ARGUMENT.PROXY_USERNAME, "user", + .addOption(newOptionWithArg(ARGUMENT.PROXY_USERNAME, "user", "The proxy username to use when downloading resources.")) - .addOption(newOptionWithArg(ARGUMENT.PROXY_PASSWORD, "pass", + .addOption(newOptionWithArg(ARGUMENT.PROXY_PASSWORD, "pass", "The proxy password to use when downloading resources.")) - .addOption(newOptionWithArg(ARGUMENT.NON_PROXY_HOSTS, "list", + .addOption(newOptionWithArg(ARGUMENT.NON_PROXY_HOSTS, "list", "The proxy exclusion list: hostnames (or patterns) for which proxy should not be used. " + "Use pipe, comma or colon as list separator.")) - .addOption(newOptionWithArg(ARGUMENT.CONNECTION_TIMEOUT_SHORT, ARGUMENT.CONNECTION_TIMEOUT, "timeout", + .addOption(newOptionWithArg(ARGUMENT.CONNECTION_TIMEOUT_SHORT, ARGUMENT.CONNECTION_TIMEOUT, "timeout", "The connection timeout (in milliseconds) to use when downloading resources.")) - .addOption(newOptionWithArg(ARGUMENT.CONNECTION_READ_TIMEOUT, "timeout", + .addOption(newOptionWithArg(ARGUMENT.CONNECTION_READ_TIMEOUT, "timeout", "The read timeout (in milliseconds) to use when downloading resources.")) - .addOption(newOptionWithArg(ARGUMENT.CONNECTION_STRING, "connStr", + .addOption(newOptionWithArg(ARGUMENT.CONNECTION_STRING, "connStr", "The connection string to the database.")) - .addOption(newOptionWithArg(ARGUMENT.DB_NAME, "user", + .addOption(newOptionWithArg(ARGUMENT.DB_NAME, "user", "The username used to connect to the database.")) - .addOption(newOptionWithArg(ARGUMENT.DATA_DIRECTORY_SHORT, ARGUMENT.DATA_DIRECTORY, "path", + .addOption(newOptionWithArg(ARGUMENT.DATA_DIRECTORY_SHORT, ARGUMENT.DATA_DIRECTORY, "path", "The location of the H2 Database file. This option should generally not be set.")) - .addOption(newOptionWithArg(ARGUMENT.DB_PASSWORD, "password", + .addOption(newOptionWithArg(ARGUMENT.DB_PASSWORD, "password", "The password for connecting to the database.")) - .addOption(newOptionWithArg(ARGUMENT.DB_DRIVER, "driver", + .addOption(newOptionWithArg(ARGUMENT.DB_DRIVER, "driver", "The database driver name.")) - .addOption(newOptionWithArg(ARGUMENT.DB_DRIVER_PATH, "path", + .addOption(newOptionWithArg(ARGUMENT.DB_DRIVER_PATH, "path", "The path to the database driver; note, this does not need to be set unless the JAR is " + "outside of the classpath.")) - .addOption(newOptionWithArg(ARGUMENT.SYM_LINK_DEPTH, "depth", + .addOption(newOptionWithArg(ARGUMENT.SYM_LINK_DEPTH, "depth", "Sets how deep nested symbolic links will be followed; 0 indicates symbolic links will not be followed.")) - .addOption(newOptionWithArg(ARGUMENT.PATH_TO_BUNDLE_AUDIT, "path", + .addOption(newOptionWithArg(ARGUMENT.PATH_TO_BUNDLE_AUDIT, "path", "The path to bundle-audit for Gem bundle analysis.")) - .addOption(newOptionWithArg(ARGUMENT.PATH_TO_BUNDLE_AUDIT_WORKING_DIRECTORY, "path", + .addOption(newOptionWithArg(ARGUMENT.PATH_TO_BUNDLE_AUDIT_WORKING_DIRECTORY, "path", "The path to working directory that the bundle-audit command should be executed from when " + "doing Gem bundle analysis.")) - .addOption(newOptionWithArg(ARGUMENT.CENTRAL_URL, "url", + .addOption(newOptionWithArg(ARGUMENT.CENTRAL_URL, "url", "Alternative URL for Maven Central Search. If not set the public Sonatype Maven Central will be used.")) - .addOption(newOptionWithArg(ARGUMENT.OSSINDEX_URL, "url", + .addOption(newOptionWithArg(ARGUMENT.OSSINDEX_URL, "url", "Alternative URL for the OSS Index. If not set the public Sonatype OSS Index will be used.")) - .addOption(newOptionWithArg(ARGUMENT.OSSINDEX_USERNAME, "username", + .addOption(newOptionWithArg(ARGUMENT.OSSINDEX_USERNAME, "username", "The username to authenticate to Sonatype's OSS Index. If not set the Sonatype OSS Index " + "Analyzer will use an unauthenticated connection.")) - .addOption(newOptionWithArg(ARGUMENT.OSSINDEX_PASSWORD, "password", "" + .addOption(newOptionWithArg(ARGUMENT.OSSINDEX_PASSWORD, "password", "" + "The password to authenticate to Sonatype's OSS Index. If not set the Sonatype OSS " + "Index Analyzer will use an unauthenticated connection.")) - .addOption(newOptionWithArg(ARGUMENT.OSSINDEX_WARN_ONLY_ON_REMOTE_ERRORS, "true/false", "" + .addOption(newOptionWithArg(ARGUMENT.OSSINDEX_WARN_ONLY_ON_REMOTE_ERRORS, "true/false", "" + "Whether a Sonatype OSS Index remote error should result in a warning only or a failure.")) - .addOption(newOption(ARGUMENT.RETIRE_JS_FORCEUPDATE, "Force the RetireJS Analyzer to update " + .addOption(newOption(ARGUMENT.RETIRE_JS_FORCEUPDATE, "Force the RetireJS Analyzer to update " + "even if autoupdate is disabled")) - .addOption(newOptionWithArg(ARGUMENT.RETIREJS_URL, "url", + .addOption(newOptionWithArg(ARGUMENT.RETIREJS_URL, "url", "The Retire JS Repository URL")) - .addOption(newOptionWithArg(ARGUMENT.RETIREJS_URL_USER, "username", + .addOption(newOptionWithArg(ARGUMENT.RETIREJS_URL_USER, "username", "The password to authenticate to Retire JS Repository URL")) - .addOption(newOptionWithArg(ARGUMENT.RETIREJS_URL_PASSWORD, "password", + .addOption(newOptionWithArg(ARGUMENT.RETIREJS_URL_PASSWORD, "password", "The password to authenticate to Retire JS Repository URL")) - .addOption(newOption(ARGUMENT.RETIREJS_FILTER_NON_VULNERABLE, "Specifies that the Retire JS " + .addOption(newOption(ARGUMENT.RETIREJS_FILTER_NON_VULNERABLE, "Specifies that the Retire JS " + "Analyzer should filter out non-vulnerable JS files from the report.")) - .addOption(newOptionWithArg(ARGUMENT.ARTIFACTORY_PARALLEL_ANALYSIS, "true/false", + .addOption(newOptionWithArg(ARGUMENT.ARTIFACTORY_PARALLEL_ANALYSIS, "true/false", "Whether the Artifactory Analyzer should use parallel analysis.")) - .addOption(newOptionWithArg(ARGUMENT.ARTIFACTORY_USES_PROXY, "true/false", + .addOption(newOptionWithArg(ARGUMENT.ARTIFACTORY_USES_PROXY, "true/false", "Whether the Artifactory Analyzer should use the proxy.")) - .addOption(newOptionWithArg(ARGUMENT.ARTIFACTORY_USERNAME, "username", + .addOption(newOptionWithArg(ARGUMENT.ARTIFACTORY_USERNAME, "username", "The Artifactory username for authentication.")) - .addOption(newOptionWithArg(ARGUMENT.ARTIFACTORY_API_TOKEN, "token", + .addOption(newOptionWithArg(ARGUMENT.ARTIFACTORY_API_TOKEN, "token", "The Artifactory API token.")) - .addOption(newOptionWithArg(ARGUMENT.ARTIFACTORY_BEARER_TOKEN, "token", + .addOption(newOptionWithArg(ARGUMENT.ARTIFACTORY_BEARER_TOKEN, "token", "The Artifactory bearer token.")) - .addOption(newOptionWithArg(ARGUMENT.ARTIFACTORY_URL, "url", + .addOption(newOptionWithArg(ARGUMENT.ARTIFACTORY_URL, "url", "The Artifactory URL.")) - .addOption(newOptionWithArg(ARGUMENT.PATH_TO_GO, "path", + .addOption(newOptionWithArg(ARGUMENT.PATH_TO_GO, "path", "The path to the `go` executable.")) - .addOption(newOptionWithArg(ARGUMENT.PATH_TO_YARN, "path", + .addOption(newOptionWithArg(ARGUMENT.PATH_TO_YARN, "path", "The path to the `yarn` executable.")) - .addOption(newOptionWithArg(ARGUMENT.PATH_TO_PNPM, "path", + .addOption(newOptionWithArg(ARGUMENT.PATH_TO_PNPM, "path", "The path to the `pnpm` executable.")) - .addOption(newOptionWithArg(ARGUMENT.RETIREJS_FILTERS, "pattern", + .addOption(newOptionWithArg(ARGUMENT.RETIREJS_FILTERS, "pattern", "Specify Retire JS content filter used to exclude files from analysis based on their content; " + "most commonly used to exclude based on your applications own copyright line. This " + "option can be specified multiple times.")) - .addOption(newOptionWithArg(ARGUMENT.NEXUS_URL, "url", + .addOption(newOptionWithArg(ARGUMENT.NEXUS_URL, "url", "The url to the Nexus Server's REST API Endpoint (http://domain/nexus/service/local). If not " + "set the Nexus Analyzer will be disabled.")) - .addOption(newOptionWithArg(ARGUMENT.NEXUS_USERNAME, "username", + .addOption(newOptionWithArg(ARGUMENT.NEXUS_USERNAME, "username", "The username to authenticate to the Nexus Server's REST API Endpoint. If not set the Nexus " + "Analyzer will use an unauthenticated connection.")) - .addOption(newOptionWithArg(ARGUMENT.NEXUS_PASSWORD, "password", + .addOption(newOptionWithArg(ARGUMENT.NEXUS_PASSWORD, "password", "The password to authenticate to the Nexus Server's REST API Endpoint. If not set the Nexus " + "Analyzer will use an unauthenticated connection.")) //TODO remove as this should be covered by non-proxy hosts - .addOption(newOptionWithArg(ARGUMENT.NEXUS_USES_PROXY, "true/false", + .addOption(newOptionWithArg(ARGUMENT.NEXUS_USES_PROXY, "true/false", "Whether or not the configured proxy should be used when connecting to Nexus.")) - .addOption(newOptionWithArg(ARGUMENT.ADDITIONAL_ZIP_EXTENSIONS, "extensions", + .addOption(newOptionWithArg(ARGUMENT.ADDITIONAL_ZIP_EXTENSIONS, "extensions", "A comma separated list of additional extensions to be scanned as ZIP files (ZIP, EAR, WAR " + "are already treated as zip files)")) - .addOption(newOptionWithArg(ARGUMENT.PROP_SHORT, ARGUMENT.PROP, "file", "A property file to load.")) - .addOption(newOptionWithArg(ARGUMENT.PATH_TO_CORE, "path", "The path to dotnet core.")) - .addOption(newOptionWithArg(ARGUMENT.HINTS_FILE, "file", "The file path to the hints XML file.")) - .addOption(newOption(ARGUMENT.RETIRED, "Enables the retired analyzers.")) - .addOption(newOption(ARGUMENT.DISABLE_MSBUILD, "Disable the MS Build Analyzer.")) - .addOption(newOption(ARGUMENT.DISABLE_JAR, "Disable the Jar Analyzer.")) - .addOption(newOption(ARGUMENT.DISABLE_ARCHIVE, "Disable the Archive Analyzer.")) - .addOption(newOption(ARGUMENT.DISABLE_KEV, "Disable the Known Exploited Vulnerability Analyzer.")) - .addOption(newOptionWithArg(ARGUMENT.KEV_URL, "url", "The url to the CISA Known Exploited Vulnerabilities JSON data feed")) - .addOption(newOption(ARGUMENT.DISABLE_ASSEMBLY, "Disable the .NET Assembly Analyzer.")) - .addOption(newOption(ARGUMENT.DISABLE_PY_DIST, "Disable the Python Distribution Analyzer.")) - .addOption(newOption(ARGUMENT.DISABLE_CMAKE, "Disable the Cmake Analyzer.")) - .addOption(newOption(ARGUMENT.DISABLE_PY_PKG, "Disable the Python Package Analyzer.")) - .addOption(newOption(ARGUMENT.DISABLE_MIX_AUDIT, "Disable the Elixir mix_audit Analyzer.")) - .addOption(newOption(ARGUMENT.DISABLE_RUBYGEMS, "Disable the Ruby Gemspec Analyzer.")) - .addOption(newOption(ARGUMENT.DISABLE_BUNDLE_AUDIT, "Disable the Ruby Bundler-Audit Analyzer.")) - .addOption(newOption(ARGUMENT.DISABLE_FILENAME, "Disable the File Name Analyzer.")) - .addOption(newOption(ARGUMENT.DISABLE_AUTOCONF, "Disable the Autoconf Analyzer.")) - .addOption(newOption(ARGUMENT.DISABLE_MAVEN_INSTALL, "Disable the Maven install Analyzer.")) - .addOption(newOption(ARGUMENT.DISABLE_PIP, "Disable the pip Analyzer.")) - .addOption(newOption(ARGUMENT.DISABLE_PIPFILE, "Disable the Pipfile Analyzer.")) - .addOption(newOption(ARGUMENT.DISABLE_COMPOSER, "Disable the PHP Composer Analyzer.")) - .addOption(newOption(ARGUMENT.DISABLE_CPAN, "Disable the Perl CPAN file Analyzer.")) - .addOption(newOption(ARGUMENT.DISABLE_POETRY, "Disable the Poetry Analyzer.")) - .addOption(newOption(ARGUMENT.DISABLE_GOLANG_MOD, "Disable the Golang Mod Analyzer.")) - .addOption(newOption(ARGUMENT.DISABLE_DART, "Disable the Dart Analyzer.")) - .addOption(newOption(ARGUMENT.DISABLE_OPENSSL, "Disable the OpenSSL Analyzer.")) - .addOption(newOption(ARGUMENT.DISABLE_NUSPEC, "Disable the Nuspec Analyzer.")) - .addOption(newOption(ARGUMENT.DISABLE_NUGETCONF, "Disable the Nuget packages.config Analyzer.")) - .addOption(newOption(ARGUMENT.DISABLE_CENTRAL, "Disable the Central Analyzer. If this analyzer " + .addOption(newOptionWithArg(ARGUMENT.PROP_SHORT, ARGUMENT.PROP, "file", "A property file to load.")) + .addOption(newOptionWithArg(ARGUMENT.PATH_TO_CORE, "path", "The path to dotnet core.")) + .addOption(newOptionWithArg(ARGUMENT.HINTS_FILE, "file", "The file path to the hints XML file.")) + .addOption(newOption(ARGUMENT.RETIRED, "Enables the retired analyzers.")) + .addOption(newOption(ARGUMENT.DISABLE_MSBUILD, "Disable the MS Build Analyzer.")) + .addOption(newOption(ARGUMENT.DISABLE_JAR, "Disable the Jar Analyzer.")) + .addOption(newOption(ARGUMENT.DISABLE_ARCHIVE, "Disable the Archive Analyzer.")) + .addOption(newOption(ARGUMENT.DISABLE_KEV, "Disable the Known Exploited Vulnerability Analyzer.")) + .addOption(newOptionWithArg(ARGUMENT.KEV_URL, "url", "The url to the CISA Known Exploited Vulnerabilities JSON data feed")) + .addOption(newOption(ARGUMENT.DISABLE_ASSEMBLY, "Disable the .NET Assembly Analyzer.")) + .addOption(newOption(ARGUMENT.DISABLE_PY_DIST, "Disable the Python Distribution Analyzer.")) + .addOption(newOption(ARGUMENT.DISABLE_CMAKE, "Disable the Cmake Analyzer.")) + .addOption(newOption(ARGUMENT.DISABLE_PY_PKG, "Disable the Python Package Analyzer.")) + .addOption(newOption(ARGUMENT.DISABLE_MIX_AUDIT, "Disable the Elixir mix_audit Analyzer.")) + .addOption(newOption(ARGUMENT.DISABLE_RUBYGEMS, "Disable the Ruby Gemspec Analyzer.")) + .addOption(newOption(ARGUMENT.DISABLE_BUNDLE_AUDIT, "Disable the Ruby Bundler-Audit Analyzer.")) + .addOption(newOption(ARGUMENT.DISABLE_FILENAME, "Disable the File Name Analyzer.")) + .addOption(newOption(ARGUMENT.DISABLE_AUTOCONF, "Disable the Autoconf Analyzer.")) + .addOption(newOption(ARGUMENT.DISABLE_MAVEN_INSTALL, "Disable the Maven install Analyzer.")) + .addOption(newOption(ARGUMENT.DISABLE_PIP, "Disable the pip Analyzer.")) + .addOption(newOption(ARGUMENT.DISABLE_PIPFILE, "Disable the Pipfile Analyzer.")) + .addOption(newOption(ARGUMENT.DISABLE_COMPOSER, "Disable the PHP Composer Analyzer.")) + .addOption(newOption(ARGUMENT.DISABLE_CPAN, "Disable the Perl CPAN file Analyzer.")) + .addOption(newOption(ARGUMENT.DISABLE_POETRY, "Disable the Poetry Analyzer.")) + .addOption(newOption(ARGUMENT.DISABLE_GOLANG_MOD, "Disable the Golang Mod Analyzer.")) + .addOption(newOption(ARGUMENT.DISABLE_DART, "Disable the Dart Analyzer.")) + .addOption(newOption(ARGUMENT.DISABLE_OPENSSL, "Disable the OpenSSL Analyzer.")) + .addOption(newOption(ARGUMENT.DISABLE_NUSPEC, "Disable the Nuspec Analyzer.")) + .addOption(newOption(ARGUMENT.DISABLE_NUGETCONF, "Disable the Nuget packages.config Analyzer.")) + .addOption(newOption(ARGUMENT.DISABLE_CENTRAL, "Disable the Central Analyzer. If this analyzer " + "is disabled it is likely you also want to disable the Nexus Analyzer.")) - .addOption(newOption(ARGUMENT.DISABLE_CENTRAL_CACHE, "Disallow the Central Analyzer from caching results")) - .addOption(newOption(ARGUMENT.DISABLE_OSSINDEX, "Disable the Sonatype OSS Index Analyzer.")) - .addOption(newOption(ARGUMENT.DISABLE_OSSINDEX_CACHE, "Disallow the OSS Index Analyzer from caching results")) - .addOption(newOption(ARGUMENT.DISABLE_COCOAPODS, "Disable the CocoaPods Analyzer.")) - .addOption(newOption(ARGUMENT.DISABLE_SWIFT, "Disable the swift package Analyzer.")) - .addOption(newOption(ARGUMENT.DISABLE_SWIFT_RESOLVED, "Disable the swift package resolved Analyzer.")) - .addOption(newOption(ARGUMENT.DISABLE_GO_DEP, "Disable the Golang Package Analyzer.")) - .addOption(newOption(ARGUMENT.DISABLE_NODE_JS, "Disable the Node.js Package Analyzer.")) - .addOption(newOption(ARGUMENT.NODE_PACKAGE_SKIP_DEV_DEPENDENCIES, "Configures the Node Package Analyzer to skip devDependencies")) - .addOption(newOption(ARGUMENT.DISABLE_NODE_AUDIT, "Disable the Node Audit Analyzer.")) - .addOption(newOption(ARGUMENT.DISABLE_PNPM_AUDIT, "Disable the Pnpm Audit Analyzer.")) - .addOption(newOption(ARGUMENT.DISABLE_YARN_AUDIT, "Disable the Yarn Audit Analyzer.")) - .addOption(newOption(ARGUMENT.DISABLE_NODE_AUDIT_CACHE, "Disallow the Node Audit Analyzer from caching results")) - .addOption(newOption(ARGUMENT.DISABLE_NODE_AUDIT_SKIPDEV, "Configures the Node Audit Analyzer to skip devDependencies")) - .addOption(newOption(ARGUMENT.DISABLE_RETIRE_JS, "Disable the RetireJS Analyzer.")) - .addOption(newOption(ARGUMENT.ENABLE_NEXUS, "Enable the Nexus Analyzer.")) - .addOption(newOption(ARGUMENT.ARTIFACTORY_ENABLED, "Whether the Artifactory Analyzer should be enabled.")) - .addOption(newOption(ARGUMENT.PURGE_NVD, "Purges the local NVD data cache")) - .addOption(newOption(ARGUMENT.DISABLE_HOSTED_SUPPRESSIONS, "Disable the usage of the hosted suppressions file")) - .addOption(newOption(ARGUMENT.HOSTED_SUPPRESSIONS_FORCEUPDATE, "Force the hosted suppressions file to update even" + .addOption(newOption(ARGUMENT.DISABLE_CENTRAL_CACHE, "Disallow the Central Analyzer from caching results")) + .addOption(newOption(ARGUMENT.DISABLE_OSSINDEX, "Disable the Sonatype OSS Index Analyzer.")) + .addOption(newOption(ARGUMENT.DISABLE_OSSINDEX_CACHE, "Disallow the OSS Index Analyzer from caching results")) + .addOption(newOption(ARGUMENT.DISABLE_COCOAPODS, "Disable the CocoaPods Analyzer.")) + .addOption(newOption(ARGUMENT.DISABLE_SWIFT, "Disable the swift package Analyzer.")) + .addOption(newOption(ARGUMENT.DISABLE_SWIFT_RESOLVED, "Disable the swift package resolved Analyzer.")) + .addOption(newOption(ARGUMENT.DISABLE_GO_DEP, "Disable the Golang Package Analyzer.")) + .addOption(newOption(ARGUMENT.DISABLE_NODE_JS, "Disable the Node.js Package Analyzer.")) + .addOption(newOption(ARGUMENT.NODE_PACKAGE_SKIP_DEV_DEPENDENCIES, "Configures the Node Package Analyzer to skip devDependencies")) + .addOption(newOption(ARGUMENT.DISABLE_NODE_AUDIT, "Disable the Node Audit Analyzer.")) + .addOption(newOption(ARGUMENT.DISABLE_PNPM_AUDIT, "Disable the Pnpm Audit Analyzer.")) + .addOption(newOption(ARGUMENT.DISABLE_YARN_AUDIT, "Disable the Yarn Audit Analyzer.")) + .addOption(newOption(ARGUMENT.DISABLE_NODE_AUDIT_CACHE, "Disallow the Node Audit Analyzer from caching results")) + .addOption(newOption(ARGUMENT.DISABLE_NODE_AUDIT_SKIPDEV, "Configures the Node Audit Analyzer to skip devDependencies")) + .addOption(newOption(ARGUMENT.DISABLE_RETIRE_JS, "Disable the RetireJS Analyzer.")) + .addOption(newOption(ARGUMENT.ENABLE_NEXUS, "Enable the Nexus Analyzer.")) + .addOption(newOption(ARGUMENT.ARTIFACTORY_ENABLED, "Whether the Artifactory Analyzer should be enabled.")) + .addOption(newOption(ARGUMENT.PURGE_NVD, "Purges the local NVD data cache")) + .addOption(newOption(ARGUMENT.DISABLE_HOSTED_SUPPRESSIONS, "Disable the usage of the hosted suppressions file")) + .addOption(newOption(ARGUMENT.HOSTED_SUPPRESSIONS_FORCEUPDATE, "Force the hosted suppressions file to update even" + " if autoupdate is disabled")) - .addOption(newOptionWithArg(ARGUMENT.HOSTED_SUPPRESSIONS_VALID_FOR_HOURS, "hours", + .addOption(newOptionWithArg(ARGUMENT.HOSTED_SUPPRESSIONS_VALID_FOR_HOURS, "hours", "The number of hours to wait before checking for new updates of the the hosted suppressions file.")) - .addOption(newOptionWithArg(ARGUMENT.HOSTED_SUPPRESSIONS_URL, "url", + .addOption(newOptionWithArg(ARGUMENT.HOSTED_SUPPRESSIONS_URL, "url", "The URL for a mirrored hosted suppressions file")); - } + } /** * Adds the deprecated command line options to the given options collection. @@ -527,9 +529,9 @@ @SuppressWarnings({"static-access", "deprecation"}) private void addDeprecatedOptions(final Options options) { //not a real option - but enables java debugging via the shell script - options.addOption(newOption("debug", + options.addOption(newOption("debug", "Used to enable java debugging of the cli via dependency-check.sh.")); - } + } /** * Determines if the 'version' command line argument was passed in. @@ -537,7 +539,7 @@ * @return whether or not the 'version' command line argument was passed in */ public boolean isGetVersion() { - return (line != null) && line.hasOption(ARGUMENT.VERSION); + return (line != null) && line.hasOption(ARGUMENT.VERSION); } /** @@ -546,7 +548,7 @@ * @return whether or not the 'help' command line argument was passed in */ public boolean isGetHelp() { - return (line != null) && line.hasOption(ARGUMENT.HELP); + return (line != null) && line.hasOption(ARGUMENT.HELP); } /** @@ -555,7 +557,7 @@ * @return whether or not the 'scan' command line argument was passed in */ public boolean isRunScan() { - return (line != null) && isValid && line.hasOption(ARGUMENT.SCAN); + return (line != null) && isValid && line.hasOption(ARGUMENT.SCAN); } /** @@ -565,16 +567,16 @@ * @return the symbolic link depth */ public int getSymLinkDepth() { - int value = 0; + int value = 0; try { - value = Integer.parseInt(line.getOptionValue(ARGUMENT.SYM_LINK_DEPTH, "0")); - if (value < 0) { - value = 0; + value = Integer.parseInt(line.getOptionValue(ARGUMENT.SYM_LINK_DEPTH, "0")); + if (value < 0) { + value = 0; } - } catch (NumberFormatException ex) { - LOGGER.debug("Symbolic link was not a number"); - } - return value; + } catch (NumberFormatException ex) { + LOGGER.debug("Symbolic link was not a number"); + } + return value; } /** @@ -591,15 +593,15 @@ * configured value will be returned */ public boolean isDisabled(String disableFlag, String setting) { - if (line == null || !line.hasOption(disableFlag)) { + if (line == null || !line.hasOption(disableFlag)) { try { - return !settings.getBoolean(setting); - } catch (InvalidSettingException ise) { - LOGGER.warn("Invalid property setting '{}' defaulting to false", setting); - return false; + return !settings.getBoolean(setting); + } catch (InvalidSettingException ise) { + LOGGER.warn("Invalid property setting '{}' defaulting to false", setting); + return false; } } else { - return true; + return true; } } @@ -610,7 +612,7 @@ * otherwise false */ public boolean isNodeAuditDisabled() { - return isDisabled(ARGUMENT.DISABLE_NODE_AUDIT, Settings.KEYS.ANALYZER_NODE_AUDIT_ENABLED); + return isDisabled(ARGUMENT.DISABLE_NODE_AUDIT, Settings.KEYS.ANALYZER_NODE_AUDIT_ENABLED); } /** @@ -620,7 +622,7 @@ * otherwise false */ public boolean isYarnAuditDisabled() { - return isDisabled(ARGUMENT.DISABLE_YARN_AUDIT, Settings.KEYS.ANALYZER_YARN_AUDIT_ENABLED); + return isDisabled(ARGUMENT.DISABLE_YARN_AUDIT, Settings.KEYS.ANALYZER_YARN_AUDIT_ENABLED); } /** @@ -630,7 +632,7 @@ * otherwise false */ public boolean isPnpmAuditDisabled() { - return isDisabled(ARGUMENT.DISABLE_PNPM_AUDIT, Settings.KEYS.ANALYZER_PNPM_AUDIT_ENABLED); + return isDisabled(ARGUMENT.DISABLE_PNPM_AUDIT, Settings.KEYS.ANALYZER_PNPM_AUDIT_ENABLED); } /** @@ -643,14 +645,14 @@ public boolean isNexusUsesProxy() { // If they didn't specify whether Nexus needs to use the proxy, we should // still honor the property if it's set. - if (line == null || !line.hasOption(ARGUMENT.NEXUS_USES_PROXY)) { + if (line == null || !line.hasOption(ARGUMENT.NEXUS_USES_PROXY)) { try { - return settings.getBoolean(Settings.KEYS.ANALYZER_NEXUS_USES_PROXY); - } catch (InvalidSettingException ise) { - return true; + return settings.getBoolean(Settings.KEYS.ANALYZER_NEXUS_USES_PROXY); + } catch (InvalidSettingException ise) { + return true; } } else { - return Boolean.parseBoolean(line.getOptionValue(ARGUMENT.NEXUS_USES_PROXY)); + return Boolean.parseBoolean(line.getOptionValue(ARGUMENT.NEXUS_USES_PROXY)); } } @@ -663,13 +665,13 @@ @SuppressFBWarnings(justification = "Accepting that this is a bad practice - used a Boolean as we needed three states", value = {"NP_BOOLEAN_RETURN_NULL"}) public Boolean getBooleanArgument(String argument) { - if (line != null && line.hasOption(argument)) { - final String value = line.getOptionValue(argument); - if (value != null) { - return Boolean.parseBoolean(value); + if (line != null && line.hasOption(argument)) { + final String value = line.getOptionValue(argument); + if (value != null) { + return Boolean.parseBoolean(value); } } - return null; + return null; } /** @@ -679,7 +681,7 @@ * @return the value of the argument */ public String getStringArgument(String option) { - return getStringArgument(option, null); + return getStringArgument(option, null); } /** @@ -690,16 +692,16 @@ * @return the value of the argument */ public String getStringArgument(String option, String key) { - if (line != null && line.hasOption(option)) { - if (key != null && (option.toLowerCase().endsWith("password") - || option.toLowerCase().endsWith("pass"))) { - LOGGER.warn("{} used on the command line, consider moving the password " + if (line != null && line.hasOption(option)) { + if (key != null && (option.toLowerCase().endsWith("password") + || option.toLowerCase().endsWith("pass"))) { + LOGGER.warn("{} used on the command line, consider moving the password " + "to a properties file using the key `{}` and using the " + "--propertyfile argument instead", option, key); } - return line.getOptionValue(option); + return line.getOptionValue(option); } - return null; + return null; } /** @@ -709,10 +711,10 @@ * @return the value of the argument */ public String[] getStringArguments(String option) { - if (line != null && line.hasOption(option)) { - return line.getOptionValues(option); + if (line != null && line.hasOption(option)) { + return line.getOptionValues(option); } - return null; + return null; } /** @@ -722,35 +724,35 @@ * @return the value of the argument */ public File getFileArgument(String option) { - final String path = line.getOptionValue(option); - if (path != null) { - return new File(path); + final String path = line.getOptionValue(option); + if (path != null) { + return new File(path); } - return null; + return null; } /** * Displays the command line help message to the standard output. */ public void printHelp() { - final HelpFormatter formatter = new HelpFormatter(); - final Options options = new Options(); - addStandardOptions(options); - if (line != null && line.hasOption(ARGUMENT.ADVANCED_HELP)) { - addAdvancedOptions(options); + final HelpFormatter formatter = new HelpFormatter(); + final Options options = new Options(); + addStandardOptions(options); + if (line != null && line.hasOption(ARGUMENT.ADVANCED_HELP)) { + addAdvancedOptions(options); } - final String helpMsg = String.format("%n%s" + final String helpMsg = String.format("%n%s" + " can be used to identify if there are any known CVE vulnerabilities in libraries utilized by an application. " + "%s will automatically update required data from the Internet, such as the CVE and CPE data files from nvd.nist.gov.%n%n", - settings.getString(Settings.KEYS.APPLICATION_NAME, "DependencyCheck"), - settings.getString(Settings.KEYS.APPLICATION_NAME, "DependencyCheck")); + settings.getString(Settings.KEYS.APPLICATION_NAME, "DependencyCheck"), + settings.getString(Settings.KEYS.APPLICATION_NAME, "DependencyCheck")); - formatter.printHelp(settings.getString(Settings.KEYS.APPLICATION_NAME, "DependencyCheck"), + formatter.printHelp(settings.getString(Settings.KEYS.APPLICATION_NAME, "DependencyCheck"), helpMsg, options, "", true); - } + } /** * Retrieves the file command line parameter(s) specified for the 'scan' @@ -759,7 +761,7 @@ * @return the file paths specified on the command line for scan */ public String[] getScanFiles() { - return line.getOptionValues(ARGUMENT.SCAN); + return line.getOptionValues(ARGUMENT.SCAN); } /** @@ -769,7 +771,7 @@ * @return the excluded file patterns */ public String[] getExcludeList() { - return line.getOptionValues(ARGUMENT.EXCLUDE); + return line.getOptionValues(ARGUMENT.EXCLUDE); } /** @@ -779,7 +781,7 @@ * @return the retireJS filters */ public String[] getRetireJsFilters() { - return line.getOptionValues(ARGUMENT.RETIREJS_FILTERS); + return line.getOptionValues(ARGUMENT.RETIREJS_FILTERS); } /** @@ -792,7 +794,7 @@ @SuppressFBWarnings(justification = "Accepting that this is a bad practice - but made more sense in this use case", value = {"NP_BOOLEAN_RETURN_NULL"}) public Boolean isRetireJsFilterNonVulnerable() { - return (line != null && line.hasOption(ARGUMENT.RETIREJS_FILTER_NON_VULNERABLE)) ? true : null; + return (line != null && line.hasOption(ARGUMENT.RETIREJS_FILTER_NON_VULNERABLE)) ? true : null; } /** @@ -802,7 +804,7 @@ * @return the path to the reports directory. */ public String getReportDirectory() { - return line.getOptionValue(ARGUMENT.OUT, "."); + return line.getOptionValue(ARGUMENT.OUT, "."); } /** @@ -812,10 +814,10 @@ * @return the output format name. */ public String[] getReportFormat() { - if (line.hasOption(ARGUMENT.OUTPUT_FORMAT)) { - return line.getOptionValues(ARGUMENT.OUTPUT_FORMAT); + if (line.hasOption(ARGUMENT.OUTPUT_FORMAT)) { + return line.getOptionValues(ARGUMENT.OUTPUT_FORMAT); } - return new String[]{"HTML"}; + return new String[]{"HTML"}; } /** @@ -824,11 +826,11 @@ * @return the application name. */ public String getProjectName() { - String name = line.getOptionValue(ARGUMENT.PROJECT); - if (name == null) { - name = ""; + String name = line.getOptionValue(ARGUMENT.PROJECT); + if (name == null) { + name = ""; } - return name; + return name; } /** @@ -838,11 +840,11 @@ * <li>Implementation-Version: ${pom.version}</li></ul> */ public void printVersionInfo() { - final String version = String.format("%s version %s", - settings.getString(Settings.KEYS.APPLICATION_NAME, "dependency-check"), - settings.getString(Settings.KEYS.APPLICATION_VERSION, "Unknown")); - System.out.println(version); - } + final String version = String.format("%s version %s", + settings.getString(Settings.KEYS.APPLICATION_NAME, "dependency-check"), + settings.getString(Settings.KEYS.APPLICATION_VERSION, "Unknown")); + System.out.println(version); + } /** * Checks if the update only flag has been set. @@ -851,7 +853,7 @@ * <code>false</code>. */ public boolean isUpdateOnly() { - return line != null && line.hasOption(ARGUMENT.UPDATE_ONLY); + return line != null && line.hasOption(ARGUMENT.UPDATE_ONLY); } /** @@ -861,7 +863,7 @@ * <code>false</code>. */ public boolean isPurge() { - return line != null && line.hasOption(ARGUMENT.PURGE_NVD); + return line != null && line.hasOption(ARGUMENT.PURGE_NVD); } /** @@ -871,7 +873,7 @@ * @return the database driver name if specified; otherwise null is returned */ public String getDatabaseDriverName() { - return line.getOptionValue(ARGUMENT.DB_DRIVER); + return line.getOptionValue(ARGUMENT.DB_DRIVER); } /** @@ -881,11 +883,11 @@ * @return the value of the argument */ public Integer getIntegerValue(String argument) { - final String v = line.getOptionValue(argument); - if (v != null) { - return Integer.parseInt(v); + final String v = line.getOptionValue(argument); + if (v != null) { + return Integer.parseInt(v); } - return null; + return null; } /** @@ -899,7 +901,7 @@ @SuppressFBWarnings(justification = "Accepting that this is a bad practice - but made more sense in this use case", value = {"NP_BOOLEAN_RETURN_NULL"}) public Boolean hasOption(String option) { - return (line != null && line.hasOption(option)) ? true : null; + return (line != null && line.hasOption(option)) ? true : null; } /** @@ -909,15 +911,15 @@ * the command line arg */ public float getFailOnCVSS() { - if (line.hasOption(ARGUMENT.FAIL_ON_CVSS)) { - final String value = line.getOptionValue(ARGUMENT.FAIL_ON_CVSS); + if (line.hasOption(ARGUMENT.FAIL_ON_CVSS)) { + final String value = line.getOptionValue(ARGUMENT.FAIL_ON_CVSS); try { - return Float.parseFloat(value); - } catch (NumberFormatException nfe) { - return 11; + return Float.parseFloat(value); + } catch (NumberFormatException nfe) { + return 11; } } else { - return 11; + return 11; } } @@ -929,15 +931,15 @@ * @return the value of the argument if present; otherwise the defaultValue */ public float getFloatArgument(String option, float defaultValue) { - if (line.hasOption(option)) { - final String value = line.getOptionValue(option); + if (line.hasOption(option)) { + final String value = line.getOptionValue(option); try { - return Integer.parseInt(value); - } catch (NumberFormatException nfe) { - return defaultValue; + return Integer.parseInt(value); + } catch (NumberFormatException nfe) { + return defaultValue; } } else { - return defaultValue; + return defaultValue; } } @@ -949,7 +951,7 @@ * @return a new option */ private Option newOption(String name, String description) { - return Option.builder().longOpt(name).desc(description).build(); + return Option.builder().longOpt(name).desc(description).build(); } /** @@ -961,7 +963,7 @@ * @return a new option */ private Option newOption(String shortName, String name, String description) { - return Option.builder(shortName).longOpt(name).desc(description).build(); + return Option.builder(shortName).longOpt(name).desc(description).build(); } /** @@ -973,7 +975,7 @@ * @return a new option */ private Option newOptionWithArg(String name, String arg, String description) { - return Option.builder().longOpt(name).argName(arg).hasArg().desc(description).build(); + return Option.builder().longOpt(name).argName(arg).hasArg().desc(description).build(); } /** @@ -986,7 +988,7 @@ * @return a new option */ private Option newOptionWithArg(String shortName, String name, String arg, String description) { - return Option.builder(shortName).longOpt(name).argName(arg).hasArg().desc(description).build(); + return Option.builder(shortName).longOpt(name).argName(arg).hasArg().desc(description).build(); } /** @@ -997,16 +999,16 @@ * @return a new option group */ private OptionGroup newOptionGroup(Option option) { - final OptionGroup group = new OptionGroup(); - group.addOption(option); - return group; + final OptionGroup group = new OptionGroup(); + group.addOption(option); + return group; } /** * A collection of static final strings that represent the possible command * line arguments. */ - public static class ARGUMENT { + public static class ARGUMENT { /** * The long CLI argument name specifying the directory/file to scan. @@ -1128,7 +1130,11 @@ */ public static final String DATA_DIRECTORY = "data"; /** - * The CLI argument name for setting the URL for the CVE Data Files. + * The CLI argument name for setting the URL for the NVD API Endpoint + */ + public static final String NVD_API_ENDPOINT = "nvdApiEndpoint"; + /** + * The CLI argument name for setting the URL for the NVD API Key. */ public static final String NVD_API_KEY = "nvdApiKey"; /** diff --git a/dependency-check-cli/jacoco/org.owasp.dependencycheck/index.html b/dependency-check-cli/jacoco/org.owasp.dependencycheck/index.html index 10ac3ff3948..516b7a05124 100644 --- a/dependency-check-cli/jacoco/org.owasp.dependencycheck/index.html +++ b/dependency-check-cli/jacoco/org.owasp.dependencycheck/index.html @@ -1 +1 @@ -org.owasp.dependencycheck

    org.owasp.dependencycheck

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethodsMissedClasses
    Total1,434 of 3,72661%221 of 37240%162250331806206413
    App1,0381,03850%1347636%91120242480101501
    CliParser3931,25476%877546%701298832594801
    CliParser.ARGUMENT0%n/a11111111
    \ No newline at end of file +org.owasp.dependencycheck

    org.owasp.dependencycheck

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethodsMissedClasses
    Total1,434 of 3,73961%221 of 37240%162250331809206413
    App1,0381,04550%1347636%91120242482101501
    CliParser3931,26076%877546%701298832694801
    CliParser.ARGUMENT0%n/a11111111
    \ No newline at end of file diff --git a/dependency-check-cli/jacoco/org.owasp.dependencycheck/index.source.html b/dependency-check-cli/jacoco/org.owasp.dependencycheck/index.source.html index 5c3a7d3772d..81115a0dbff 100644 --- a/dependency-check-cli/jacoco/org.owasp.dependencycheck/index.source.html +++ b/dependency-check-cli/jacoco/org.owasp.dependencycheck/index.source.html @@ -1 +1 @@ -org.owasp.dependencycheck

    org.owasp.dependencycheck

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethodsMissedClasses
    Total1,434 of 3,72661%221 of 37240%162250331806206413
    App.java1,0381,03850%1347636%91120242480101501
    CliParser.java3961,25476%877546%7113089326104912
    \ No newline at end of file +org.owasp.dependencycheck

    org.owasp.dependencycheck

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethodsMissedClasses
    Total1,434 of 3,73961%221 of 37240%162250331809206413
    App.java1,0381,04550%1347636%91120242482101501
    CliParser.java3961,26076%877546%7113089327104912
    \ No newline at end of file diff --git a/dependency-check-cli/licenses.html b/dependency-check-cli/licenses.html index 756c21c3455..5d314142247 100644 --- a/dependency-check-cli/licenses.html +++ b/dependency-check-cli/licenses.html @@ -1,13 +1,13 @@ - + dependency-check-cli – Project Licenses @@ -41,8 +41,8 @@
  • documentation/
  • dependency-check/
  • Project Licenses
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • diff --git a/dependency-check-cli/plugin-updates-report.html b/dependency-check-cli/plugin-updates-report.html index 6db4d3f7fd3..d90d7defe09 100644 --- a/dependency-check-cli/plugin-updates-report.html +++ b/dependency-check-cli/plugin-updates-report.html @@ -1,13 +1,13 @@ - + dependency-check-cli – Plugin Updates Report @@ -41,8 +41,8 @@
  • documentation/
  • dependency-check/
  • Plugin Updates Report
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • @@ -97,7 +97,7 @@

    Overview

    # of plugins using the latest version available -27 +25 # of plugins where the next version available is smaller than an incremental version update @@ -105,7 +105,7 @@

    Overview

    # of plugins where the next version available is an incremental version update -1 +3 # of plugins where the next version available is a minor version update @@ -221,12 +221,12 @@

    Plugin Management

    - + org.apache.maven.plugins maven-failsafe-plugin -3.2.2 - +3.2.2 +3.2.3 @@ -321,12 +321,12 @@

    Plugin Management

    - + org.apache.maven.plugins maven-surefire-plugin -3.2.2 - +3.2.2 +3.2.3 @@ -644,7 +644,7 @@

    Plugin o - + @@ -653,7 +653,10 @@

    Plugin o

    -
    Status No newer versions available.
     There is at least one newer incremental version available. Incremental updates are typically passive.
    Group Id org.apache.maven.plugins
    maven-failsafe-plugin
    Current Version3.2.2
    +3.2.2 + +Newer versions +3.2.3 Latest Incremental

    Plugin org.apache.maven.plugins:maven-gpg-plugin

    @@ -907,7 +910,7 @@

    Plugin o

    - + @@ -916,7 +919,10 @@

    Plugin o

    -
    Status No newer versions available.
     There is at least one newer incremental version available. Incremental updates are typically passive.
    Group Id org.apache.maven.plugins
    maven-surefire-plugin
    Current Version3.2.2
    +3.2.2 + +Newer versions +3.2.3 Latest Incremental

    Plugin org.codehaus.gmavenplus:gmavenplus-plugin

    diff --git a/dependency-check-cli/project-info.html b/dependency-check-cli/project-info.html index d0ee4d0d4ea..102a8164ba4 100644 --- a/dependency-check-cli/project-info.html +++ b/dependency-check-cli/project-info.html @@ -1,13 +1,13 @@ - + dependency-check-cli – Project Information @@ -41,8 +41,8 @@
  • documentation/
  • dependency-check/
  • Project Information
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • diff --git a/dependency-check-cli/project-reports.html b/dependency-check-cli/project-reports.html index 874bcb7e2e1..511334c623c 100644 --- a/dependency-check-cli/project-reports.html +++ b/dependency-check-cli/project-reports.html @@ -1,13 +1,13 @@ - + dependency-check-cli – Generated Reports @@ -41,8 +41,8 @@
  • documentation/
  • dependency-check/
  • Generated Reports
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • diff --git a/dependency-check-cli/scm.html b/dependency-check-cli/scm.html index 390b2198ab2..f0011f443e1 100644 --- a/dependency-check-cli/scm.html +++ b/dependency-check-cli/scm.html @@ -1,13 +1,13 @@ - + dependency-check-cli – Source Code Management @@ -41,8 +41,8 @@
  • documentation/
  • dependency-check/
  • Source Code Management
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • @@ -94,11 +94,11 @@

    Web Browser Access

    Anonymous Access

    The source can be checked out anonymously from Git with this command (See https://git-scm.com/docs/git-clone):

    -
    $ git clone --branch v9.0.4 https://github.com/jeremylong/DependencyCheck.git
    +
    $ git clone --branch v9.0.5 https://github.com/jeremylong/DependencyCheck.git

    Developer Access

    Only project developers can access the Git tree via this method (See https://git-scm.com/docs/git-clone).

    -
    $ git clone --branch v9.0.4 git@github.com:jeremylong/DependencyCheck.git
    +
    $ git clone --branch v9.0.5 git@github.com:jeremylong/DependencyCheck.git

    Access from Behind a Firewall

    Refer to the documentation of the SCM used for more information about access behind a firewall.

    diff --git a/dependency-check-cli/spotbugs.html b/dependency-check-cli/spotbugs.html index 67bdbf65bb5..2faf8c6003a 100644 --- a/dependency-check-cli/spotbugs.html +++ b/dependency-check-cli/spotbugs.html @@ -1,13 +1,13 @@ - + dependency-check-cli – SpotBugs Bug Detector Report @@ -41,8 +41,8 @@
  • documentation/
  • dependency-check/
  • SpotBugs Bug Detector Report
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • diff --git a/dependency-check-cli/summary.html b/dependency-check-cli/summary.html index bab388c77ae..64a2eaac5ff 100644 --- a/dependency-check-cli/summary.html +++ b/dependency-check-cli/summary.html @@ -1,13 +1,13 @@ - + dependency-check-cli – Project Summary @@ -41,8 +41,8 @@
  • documentation/
  • dependency-check/
  • Project Summary
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • @@ -124,7 +124,7 @@

    Build Information

    - + diff --git a/dependency-check-cli/surefire-report.html b/dependency-check-cli/surefire-report.html index 8fecb0ca53e..7e49d8526e7 100644 --- a/dependency-check-cli/surefire-report.html +++ b/dependency-check-cli/surefire-report.html @@ -1,13 +1,13 @@ - + dependency-check-cli – Surefire Report @@ -41,8 +41,8 @@
  • documentation/
  • dependency-check/
  • Surefire Report
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • @@ -123,7 +123,7 @@

    Summary

    -
    Version9.0.4
    9.0.5
    Type jar
    0 0 100%0.964 s

    +0.920 s

    Note: failures are anticipated and checked for with assertions while errors are unanticipated.


    Package List

    [Summary] [Package List] [Test Cases]


    @@ -143,7 +143,7 @@

    Package List

    0 0 100% -0.964 s
    +0.920 s

    Note: package statistics are not computed recursively, they only sum up all of its testsuites numbers.

    org.owasp.dependencycheck

    @@ -157,57 +157,35 @@

    org.owasp.dependencycheck

    - - - + + + - + - - - + + + -
    Success Rate Time
    AppTest5CliParserTest15 0 0 0 100%0.927 s
    0.034 s
    CliParserTest15AppTest5 0 0 0 100%0.037 s

    +0.886 s

    Test Cases

    -

    [Summary] [Package List] [Test Cases]

    -

    AppTest

    - - - - - - - - - - - - - - - - - - - - -
    testPopulatingSuppressionSettingsWithMultipleFiles0.792 s
    testEnsureCanonicalPath0.001 s
    testPopulatingSuppressionSettingsWithASingleFile0.021 s
    testPopulateSettings0.020 s
    testPopulateSettingsException0.004 s
    +

    [Summary] [Package List] [Test Cases]

    CliParserTest

    - + - + @@ -223,7 +201,7 @@

    CliParserTest

    - + @@ -231,7 +209,7 @@

    CliParserTest

    - + @@ -243,7 +221,7 @@

    CliParserTest

    - + @@ -259,7 +237,29 @@

    CliParserTest

    -
    testParse_printHelp0.007 s
    0.012 s
    testParse_printVersionInfo0.002 s
    0.001 s
    testParse_failOnCVSSNoArg
    testParse_failOnCVSSInvalidArgument0.002 s
    0.001 s
    testGetStringArgument
    testParse0.002 s
    0.001 s
    testParse_unknown
    testParse_version0.003 s
    0.002 s
    testParse_scan_unknownFile
    testParse_scan_withFileExists0.001 s

    +0.002 s
    +

    AppTest

    + + + + + + + + + + + + + + + + + + + + +
    testPopulatingSuppressionSettingsWithMultipleFiles0.754 s
    testEnsureCanonicalPath0.002 s
    testPopulatingSuppressionSettingsWithASingleFile0.022 s
    testPopulateSettings0.028 s
    testPopulateSettingsException0.004 s

    diff --git a/dependency-check-cli/taglist.html b/dependency-check-cli/taglist.html index 92aec043fe2..aaf8316303f 100644 --- a/dependency-check-cli/taglist.html +++ b/dependency-check-cli/taglist.html @@ -1,13 +1,13 @@ - + dependency-check-cli – Tag List report @@ -41,8 +41,8 @@
  • documentation/
  • dependency-check/
  • Tag List report
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • @@ -116,7 +116,7 @@

    Todo Work

    Line remove as this should be covered by non-proxy hosts -454 +456
    diff --git a/dependency-check-cli/team.html b/dependency-check-cli/team.html index 44dfc6e03fa..8f29c116d86 100644 --- a/dependency-check-cli/team.html +++ b/dependency-check-cli/team.html @@ -1,13 +1,13 @@ - + dependency-check-cli – Project Team @@ -41,8 +41,8 @@
  • documentation/
  • dependency-check/
  • Project Team
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • diff --git a/dependency-check-cli/xref-test/index.html b/dependency-check-cli/xref-test/index.html index ce7ae7d8c6a..45385faa26e 100644 --- a/dependency-check-cli/xref-test/index.html +++ b/dependency-check-cli/xref-test/index.html @@ -4,7 +4,7 @@ - Dependency-Check Command Line 9.0.4 Reference + Dependency-Check Command Line 9.0.5 Reference diff --git a/dependency-check-cli/xref-test/org/owasp/dependencycheck/package-frame.html b/dependency-check-cli/xref-test/org/owasp/dependencycheck/package-frame.html index fa548644bb0..68fbcf4d32b 100644 --- a/dependency-check-cli/xref-test/org/owasp/dependencycheck/package-frame.html +++ b/dependency-check-cli/xref-test/org/owasp/dependencycheck/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Command Line 9.0.4 Reference Package org.owasp.dependencycheck + Dependency-Check Command Line 9.0.5 Reference Package org.owasp.dependencycheck diff --git a/dependency-check-cli/xref-test/org/owasp/dependencycheck/package-summary.html b/dependency-check-cli/xref-test/org/owasp/dependencycheck/package-summary.html index e92bd289695..14e5a36ba1d 100644 --- a/dependency-check-cli/xref-test/org/owasp/dependencycheck/package-summary.html +++ b/dependency-check-cli/xref-test/org/owasp/dependencycheck/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Command Line 9.0.4 Reference Package org.owasp.dependencycheck + Dependency-Check Command Line 9.0.5 Reference Package org.owasp.dependencycheck diff --git a/dependency-check-cli/xref-test/overview-frame.html b/dependency-check-cli/xref-test/overview-frame.html index 6e6d89ec409..9abc543aaef 100644 --- a/dependency-check-cli/xref-test/overview-frame.html +++ b/dependency-check-cli/xref-test/overview-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Command Line 9.0.4 Reference + Dependency-Check Command Line 9.0.5 Reference diff --git a/dependency-check-cli/xref-test/overview-summary.html b/dependency-check-cli/xref-test/overview-summary.html index cd96093a655..12ca852daae 100644 --- a/dependency-check-cli/xref-test/overview-summary.html +++ b/dependency-check-cli/xref-test/overview-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Command Line 9.0.4 Reference + Dependency-Check Command Line 9.0.5 Reference @@ -24,7 +24,7 @@
    -

    Dependency-Check Command Line 9.0.4 Reference

    +

    Dependency-Check Command Line 9.0.5 Reference

    diff --git a/dependency-check-cli/xref/index.html b/dependency-check-cli/xref/index.html index ce7ae7d8c6a..45385faa26e 100644 --- a/dependency-check-cli/xref/index.html +++ b/dependency-check-cli/xref/index.html @@ -4,7 +4,7 @@ - Dependency-Check Command Line 9.0.4 Reference + Dependency-Check Command Line 9.0.5 Reference diff --git a/dependency-check-cli/xref/org/owasp/dependencycheck/App.html b/dependency-check-cli/xref/org/owasp/dependencycheck/App.html index 53f8e5579e9..7f5ed4cd366 100644 --- a/dependency-check-cli/xref/org/owasp/dependencycheck/App.html +++ b/dependency-check-cli/xref/org/owasp/dependencycheck/App.html @@ -664,118 +664,120 @@ 656 } 657 settings.setStringIfNotEmpty(Settings.KEYS.NVD_API_KEY, key); 658 } -659 settings.setIntIfNotNull(Settings.KEYS.NVD_API_DELAY, cli.getIntegerValue(CliParser.ARGUMENT.NVD_API_DELAY)); -660 settings.setStringIfNotEmpty(Settings.KEYS.NVD_API_DATAFEED_URL, cli.getStringArgument(CliParser.ARGUMENT.NVD_API_DATAFEED_URL)); -661 settings.setStringIfNotEmpty(Settings.KEYS.NVD_API_DATAFEED_USER, cli.getStringArgument(CliParser.ARGUMENT.NVD_API_DATAFEED_USER)); -662 settings.setStringIfNotEmpty(Settings.KEYS.NVD_API_DATAFEED_PASSWORD, cli.getStringArgument(CliParser.ARGUMENT.NVD_API_DATAFEED_PASSWORD)); -663 settings.setIntIfNotNull(Settings.KEYS.NVD_API_MAX_RETRY_COUNT, cli.getIntegerValue(CliParser.ARGUMENT.NVD_API_MAX_RETRY_COUNT)); -664 settings.setIntIfNotNull(Settings.KEYS.NVD_API_VALID_FOR_HOURS, cli.getIntegerValue(CliParser.ARGUMENT.NVD_API_VALID_FOR_HOURS)); -665 -666 settings.setStringIfNotNull(Settings.KEYS.HOSTED_SUPPRESSIONS_URL, -667 cli.getStringArgument(CliParser.ARGUMENT.HOSTED_SUPPRESSIONS_URL)); -668 settings.setBoolean(Settings.KEYS.HOSTED_SUPPRESSIONS_ENABLED, -669 !cli.isDisabled(CliParser.ARGUMENT.DISABLE_HOSTED_SUPPRESSIONS, Settings.KEYS.HOSTED_SUPPRESSIONS_ENABLED)); -670 settings.setBooleanIfNotNull(Settings.KEYS.HOSTED_SUPPRESSIONS_FORCEUPDATE, -671 cli.hasOption(CliParser.ARGUMENT.HOSTED_SUPPRESSIONS_FORCEUPDATE)); -672 settings.setIntIfNotNull(Settings.KEYS.HOSTED_SUPPRESSIONS_VALID_FOR_HOURS, -673 cli.getIntegerValue(CliParser.ARGUMENT.HOSTED_SUPPRESSIONS_VALID_FOR_HOURS)); -674 } -675 -676//CSON: MethodLength -677/** -678 * Creates a file appender and adds it to logback. -679 * -680 * @param verboseLog the path to the verbose log file -681 */ -682privatevoid prepareLogger(String verboseLog) { -683final LoggerContext context = (LoggerContext) LoggerFactory.getILoggerFactory(); -684final PatternLayoutEncoder encoder = new PatternLayoutEncoder(); -685 encoder.setPattern("%d %C:%L%n%-5level - %msg%n"); -686 encoder.setContext(context); -687 encoder.start(); -688final FileAppender<ILoggingEvent> fa = new FileAppender<>(); -689 fa.setAppend(true); -690 fa.setEncoder(encoder); -691 fa.setContext(context); -692 fa.setFile(verboseLog); -693final File f = new File(verboseLog); -694 String name = f.getName(); -695finalint i = name.lastIndexOf('.'); -696if (i > 1) { -697 name = name.substring(0, i); -698 } -699 fa.setName(name); -700 fa.start(); -701final ch.qos.logback.classic.Logger rootLogger = context.getLogger(ch.qos.logback.classic.Logger.ROOT_LOGGER_NAME); -702 rootLogger.setLevel(Level.DEBUG); -703final ThresholdFilter filter = new ThresholdFilter(); -704 filter.setLevel(LogLevel.INFO.getValue()); -705 filter.setContext(context); -706 filter.start(); -707 rootLogger.iteratorForAppenders().forEachRemaining(action -> action.addFilter(filter)); -708 rootLogger.addAppender(fa); -709 } -710 -711/** -712 * Takes a path and resolves it to be a canonical &amp; absolute path. The -713 * caveats are that this method will take an Ant style file selector path -714 * (../someDir/**\/*.jar) and convert it to an absolute/canonical path (at -715 * least to the left of the first * or ?). -716 * -717 * @param path the path to canonicalize -718 * @return the canonical path -719 */ -720protected String ensureCanonicalPath(String path) { -721final String basePath; -722 String wildCards = null; -723final String file = path.replace('\\', '/'); -724if (file.contains("*") || file.contains("?")) { -725 -726int pos = getLastFileSeparator(file); -727if (pos < 0) { -728return file; -729 } -730 pos += 1; -731 basePath = file.substring(0, pos); -732 wildCards = file.substring(pos); -733 } else { -734 basePath = file; -735 } -736 -737 File f = new File(basePath); -738try { -739 f = f.getCanonicalFile(); -740if (wildCards != null) { -741 f = new File(f, wildCards); -742 } -743 } catch (IOException ex) { -744 LOGGER.warn("Invalid path '{}' was provided.", path); -745 LOGGER.debug("Invalid path provided", ex); -746 } -747return f.getAbsolutePath().replace('\\', '/'); -748 } -749 -750/** -751 * Returns the position of the last file separator. -752 * -753 * @param file a file path -754 * @return the position of the last file separator -755 */ -756 @SuppressWarnings("ManualMinMaxCalculation") -757privateint getLastFileSeparator(String file) { -758if (file.contains("*") || file.contains("?")) { -759int p1 = file.indexOf('*'); -760int p2 = file.indexOf('?'); -761 p1 = p1 > 0 ? p1 : file.length(); -762 p2 = p2 > 0 ? p2 : file.length(); -763int pos = p1 < p2 ? p1 : p2; -764 pos = file.lastIndexOf('/', pos); -765return pos; -766 } else { -767return file.lastIndexOf('/'); -768 } -769 } -770 } +659 settings.setStringIfNotEmpty(Settings.KEYS.NVD_API_ENDPOINT, +660 cli.getStringArgument(CliParser.ARGUMENT.NVD_API_ENDPOINT)); +661 settings.setIntIfNotNull(Settings.KEYS.NVD_API_DELAY, cli.getIntegerValue(CliParser.ARGUMENT.NVD_API_DELAY)); +662 settings.setStringIfNotEmpty(Settings.KEYS.NVD_API_DATAFEED_URL, cli.getStringArgument(CliParser.ARGUMENT.NVD_API_DATAFEED_URL)); +663 settings.setStringIfNotEmpty(Settings.KEYS.NVD_API_DATAFEED_USER, cli.getStringArgument(CliParser.ARGUMENT.NVD_API_DATAFEED_USER)); +664 settings.setStringIfNotEmpty(Settings.KEYS.NVD_API_DATAFEED_PASSWORD, cli.getStringArgument(CliParser.ARGUMENT.NVD_API_DATAFEED_PASSWORD)); +665 settings.setIntIfNotNull(Settings.KEYS.NVD_API_MAX_RETRY_COUNT, cli.getIntegerValue(CliParser.ARGUMENT.NVD_API_MAX_RETRY_COUNT)); +666 settings.setIntIfNotNull(Settings.KEYS.NVD_API_VALID_FOR_HOURS, cli.getIntegerValue(CliParser.ARGUMENT.NVD_API_VALID_FOR_HOURS)); +667 +668 settings.setStringIfNotNull(Settings.KEYS.HOSTED_SUPPRESSIONS_URL, +669 cli.getStringArgument(CliParser.ARGUMENT.HOSTED_SUPPRESSIONS_URL)); +670 settings.setBoolean(Settings.KEYS.HOSTED_SUPPRESSIONS_ENABLED, +671 !cli.isDisabled(CliParser.ARGUMENT.DISABLE_HOSTED_SUPPRESSIONS, Settings.KEYS.HOSTED_SUPPRESSIONS_ENABLED)); +672 settings.setBooleanIfNotNull(Settings.KEYS.HOSTED_SUPPRESSIONS_FORCEUPDATE, +673 cli.hasOption(CliParser.ARGUMENT.HOSTED_SUPPRESSIONS_FORCEUPDATE)); +674 settings.setIntIfNotNull(Settings.KEYS.HOSTED_SUPPRESSIONS_VALID_FOR_HOURS, +675 cli.getIntegerValue(CliParser.ARGUMENT.HOSTED_SUPPRESSIONS_VALID_FOR_HOURS)); +676 } +677 +678//CSON: MethodLength +679/** +680 * Creates a file appender and adds it to logback. +681 * +682 * @param verboseLog the path to the verbose log file +683 */ +684privatevoid prepareLogger(String verboseLog) { +685final LoggerContext context = (LoggerContext) LoggerFactory.getILoggerFactory(); +686final PatternLayoutEncoder encoder = new PatternLayoutEncoder(); +687 encoder.setPattern("%d %C:%L%n%-5level - %msg%n"); +688 encoder.setContext(context); +689 encoder.start(); +690final FileAppender<ILoggingEvent> fa = new FileAppender<>(); +691 fa.setAppend(true); +692 fa.setEncoder(encoder); +693 fa.setContext(context); +694 fa.setFile(verboseLog); +695final File f = new File(verboseLog); +696 String name = f.getName(); +697finalint i = name.lastIndexOf('.'); +698if (i > 1) { +699 name = name.substring(0, i); +700 } +701 fa.setName(name); +702 fa.start(); +703final ch.qos.logback.classic.Logger rootLogger = context.getLogger(ch.qos.logback.classic.Logger.ROOT_LOGGER_NAME); +704 rootLogger.setLevel(Level.DEBUG); +705final ThresholdFilter filter = new ThresholdFilter(); +706 filter.setLevel(LogLevel.INFO.getValue()); +707 filter.setContext(context); +708 filter.start(); +709 rootLogger.iteratorForAppenders().forEachRemaining(action -> action.addFilter(filter)); +710 rootLogger.addAppender(fa); +711 } +712 +713/** +714 * Takes a path and resolves it to be a canonical &amp; absolute path. The +715 * caveats are that this method will take an Ant style file selector path +716 * (../someDir/**\/*.jar) and convert it to an absolute/canonical path (at +717 * least to the left of the first * or ?). +718 * +719 * @param path the path to canonicalize +720 * @return the canonical path +721 */ +722protected String ensureCanonicalPath(String path) { +723final String basePath; +724 String wildCards = null; +725final String file = path.replace('\\', '/'); +726if (file.contains("*") || file.contains("?")) { +727 +728int pos = getLastFileSeparator(file); +729if (pos < 0) { +730return file; +731 } +732 pos += 1; +733 basePath = file.substring(0, pos); +734 wildCards = file.substring(pos); +735 } else { +736 basePath = file; +737 } +738 +739 File f = new File(basePath); +740try { +741 f = f.getCanonicalFile(); +742if (wildCards != null) { +743 f = new File(f, wildCards); +744 } +745 } catch (IOException ex) { +746 LOGGER.warn("Invalid path '{}' was provided.", path); +747 LOGGER.debug("Invalid path provided", ex); +748 } +749return f.getAbsolutePath().replace('\\', '/'); +750 } +751 +752/** +753 * Returns the position of the last file separator. +754 * +755 * @param file a file path +756 * @return the position of the last file separator +757 */ +758 @SuppressWarnings("ManualMinMaxCalculation") +759privateint getLastFileSeparator(String file) { +760if (file.contains("*") || file.contains("?")) { +761int p1 = file.indexOf('*'); +762int p2 = file.indexOf('?'); +763 p1 = p1 > 0 ? p1 : file.length(); +764 p2 = p2 > 0 ? p2 : file.length(); +765int pos = p1 < p2 ? p1 : p2; +766 pos = file.lastIndexOf('/', pos); +767return pos; +768 } else { +769return file.lastIndexOf('/'); +770 } +771 } +772 }
    diff --git a/dependency-check-cli/xref/org/owasp/dependencycheck/CliParser.html b/dependency-check-cli/xref/org/owasp/dependencycheck/CliParser.html index 49c516276a1..6beedf0e3fc 100644 --- a/dependency-check-cli/xref/org/owasp/dependencycheck/CliParser.html +++ b/dependency-check-cli/xref/org/owasp/dependencycheck/CliParser.html @@ -361,1207 +361,1213 @@ 353"Only update the local NVD data cache; no scan will be executed.")) 354 .addOption(newOptionWithArg(ARGUMENT.NVD_API_DELAY, "milliseconds", 355"Time in milliseconds to wait between downloading from the NVD.")) -356 .addOption(newOptionWithArg(ARGUMENT.NVD_API_DATAFEED_URL, "url", -357"The URL to the NVD API Datafeed.")) -358 .addOption(newOptionWithArg(ARGUMENT.NVD_API_DATAFEED_USER, "user", -359"Credentials for basic authentication to the NVD API Datafeed.")) -360 .addOption(newOptionWithArg(ARGUMENT.NVD_API_DATAFEED_PASSWORD, "password", +356 .addOption(newOptionWithArg(ARGUMENT.NVD_API_ENDPOINT, "endpoint", +357"The NVD API Endpoint - setting this is rare.")) +358 .addOption(newOptionWithArg(ARGUMENT.NVD_API_DATAFEED_URL, "url", +359"The URL to the NVD API Datafeed.")) +360 .addOption(newOptionWithArg(ARGUMENT.NVD_API_DATAFEED_USER, "user", 361"Credentials for basic authentication to the NVD API Datafeed.")) -362 .addOption(newOptionWithArg(ARGUMENT.NVD_API_MAX_RETRY_COUNT,"count", -363"The maximum number of retry requests for a single call to the NVD API.")) -364 .addOption(newOptionWithArg(ARGUMENT.NVD_API_VALID_FOR_HOURS, "hours", -365"The number of hours to wait before checking for new updates from the NVD.")) -366 .addOption(newOptionWithArg(ARGUMENT.PROXY_PORT, "port", -367"The proxy port to use when downloading resources.")) -368 .addOption(newOptionWithArg(ARGUMENT.PROXY_SERVER, "server", -369"The proxy server to use when downloading resources.")) -370 .addOption(newOptionWithArg(ARGUMENT.PROXY_USERNAME, "user", -371"The proxy username to use when downloading resources.")) -372 .addOption(newOptionWithArg(ARGUMENT.PROXY_PASSWORD, "pass", -373"The proxy password to use when downloading resources.")) -374 .addOption(newOptionWithArg(ARGUMENT.NON_PROXY_HOSTS, "list", -375"The proxy exclusion list: hostnames (or patterns) for which proxy should not be used. " -376 + "Use pipe, comma or colon as list separator.")) -377 .addOption(newOptionWithArg(ARGUMENT.CONNECTION_TIMEOUT_SHORT, ARGUMENT.CONNECTION_TIMEOUT, "timeout", -378"The connection timeout (in milliseconds) to use when downloading resources.")) -379 .addOption(newOptionWithArg(ARGUMENT.CONNECTION_READ_TIMEOUT, "timeout", -380"The read timeout (in milliseconds) to use when downloading resources.")) -381 .addOption(newOptionWithArg(ARGUMENT.CONNECTION_STRING, "connStr", -382"The connection string to the database.")) -383 .addOption(newOptionWithArg(ARGUMENT.DB_NAME, "user", -384"The username used to connect to the database.")) -385 .addOption(newOptionWithArg(ARGUMENT.DATA_DIRECTORY_SHORT, ARGUMENT.DATA_DIRECTORY, "path", -386"The location of the H2 Database file. This option should generally not be set.")) -387 .addOption(newOptionWithArg(ARGUMENT.DB_PASSWORD, "password", -388"The password for connecting to the database.")) -389 .addOption(newOptionWithArg(ARGUMENT.DB_DRIVER, "driver", -390"The database driver name.")) -391 .addOption(newOptionWithArg(ARGUMENT.DB_DRIVER_PATH, "path", -392"The path to the database driver; note, this does not need to be set unless the JAR is " -393 + "outside of the classpath.")) -394 .addOption(newOptionWithArg(ARGUMENT.SYM_LINK_DEPTH, "depth", -395"Sets how deep nested symbolic links will be followed; 0 indicates symbolic links will not be followed.")) -396 .addOption(newOptionWithArg(ARGUMENT.PATH_TO_BUNDLE_AUDIT, "path", -397"The path to bundle-audit for Gem bundle analysis.")) -398 .addOption(newOptionWithArg(ARGUMENT.PATH_TO_BUNDLE_AUDIT_WORKING_DIRECTORY, "path", -399"The path to working directory that the bundle-audit command should be executed from when " -400 + "doing Gem bundle analysis.")) -401 .addOption(newOptionWithArg(ARGUMENT.CENTRAL_URL, "url", -402"Alternative URL for Maven Central Search. If not set the public Sonatype Maven Central will be used.")) -403 .addOption(newOptionWithArg(ARGUMENT.OSSINDEX_URL, "url", -404"Alternative URL for the OSS Index. If not set the public Sonatype OSS Index will be used.")) -405 .addOption(newOptionWithArg(ARGUMENT.OSSINDEX_USERNAME, "username", -406"The username to authenticate to Sonatype's OSS Index. If not set the Sonatype OSS Index " -407 + "Analyzer will use an unauthenticated connection.")) -408 .addOption(newOptionWithArg(ARGUMENT.OSSINDEX_PASSWORD, "password", "" -409 + "The password to authenticate to Sonatype's OSS Index. If not set the Sonatype OSS " -410 + "Index Analyzer will use an unauthenticated connection.")) -411 .addOption(newOptionWithArg(ARGUMENT.OSSINDEX_WARN_ONLY_ON_REMOTE_ERRORS, "true/false", "" -412 + "Whether a Sonatype OSS Index remote error should result in a warning only or a failure.")) -413 .addOption(newOption(ARGUMENT.RETIRE_JS_FORCEUPDATE, "Force the RetireJS Analyzer to update " -414 + "even if autoupdate is disabled")) -415 .addOption(newOptionWithArg(ARGUMENT.RETIREJS_URL, "url", -416"The Retire JS Repository URL")) -417 .addOption(newOptionWithArg(ARGUMENT.RETIREJS_URL_USER, "username", -418"The password to authenticate to Retire JS Repository URL")) -419 .addOption(newOptionWithArg(ARGUMENT.RETIREJS_URL_PASSWORD, "password", +362 .addOption(newOptionWithArg(ARGUMENT.NVD_API_DATAFEED_PASSWORD, "password", +363"Credentials for basic authentication to the NVD API Datafeed.")) +364 .addOption(newOptionWithArg(ARGUMENT.NVD_API_MAX_RETRY_COUNT,"count", +365"The maximum number of retry requests for a single call to the NVD API.")) +366 .addOption(newOptionWithArg(ARGUMENT.NVD_API_VALID_FOR_HOURS, "hours", +367"The number of hours to wait before checking for new updates from the NVD.")) +368 .addOption(newOptionWithArg(ARGUMENT.PROXY_PORT, "port", +369"The proxy port to use when downloading resources.")) +370 .addOption(newOptionWithArg(ARGUMENT.PROXY_SERVER, "server", +371"The proxy server to use when downloading resources.")) +372 .addOption(newOptionWithArg(ARGUMENT.PROXY_USERNAME, "user", +373"The proxy username to use when downloading resources.")) +374 .addOption(newOptionWithArg(ARGUMENT.PROXY_PASSWORD, "pass", +375"The proxy password to use when downloading resources.")) +376 .addOption(newOptionWithArg(ARGUMENT.NON_PROXY_HOSTS, "list", +377"The proxy exclusion list: hostnames (or patterns) for which proxy should not be used. " +378 + "Use pipe, comma or colon as list separator.")) +379 .addOption(newOptionWithArg(ARGUMENT.CONNECTION_TIMEOUT_SHORT, ARGUMENT.CONNECTION_TIMEOUT, "timeout", +380"The connection timeout (in milliseconds) to use when downloading resources.")) +381 .addOption(newOptionWithArg(ARGUMENT.CONNECTION_READ_TIMEOUT, "timeout", +382"The read timeout (in milliseconds) to use when downloading resources.")) +383 .addOption(newOptionWithArg(ARGUMENT.CONNECTION_STRING, "connStr", +384"The connection string to the database.")) +385 .addOption(newOptionWithArg(ARGUMENT.DB_NAME, "user", +386"The username used to connect to the database.")) +387 .addOption(newOptionWithArg(ARGUMENT.DATA_DIRECTORY_SHORT, ARGUMENT.DATA_DIRECTORY, "path", +388"The location of the H2 Database file. This option should generally not be set.")) +389 .addOption(newOptionWithArg(ARGUMENT.DB_PASSWORD, "password", +390"The password for connecting to the database.")) +391 .addOption(newOptionWithArg(ARGUMENT.DB_DRIVER, "driver", +392"The database driver name.")) +393 .addOption(newOptionWithArg(ARGUMENT.DB_DRIVER_PATH, "path", +394"The path to the database driver; note, this does not need to be set unless the JAR is " +395 + "outside of the classpath.")) +396 .addOption(newOptionWithArg(ARGUMENT.SYM_LINK_DEPTH, "depth", +397"Sets how deep nested symbolic links will be followed; 0 indicates symbolic links will not be followed.")) +398 .addOption(newOptionWithArg(ARGUMENT.PATH_TO_BUNDLE_AUDIT, "path", +399"The path to bundle-audit for Gem bundle analysis.")) +400 .addOption(newOptionWithArg(ARGUMENT.PATH_TO_BUNDLE_AUDIT_WORKING_DIRECTORY, "path", +401"The path to working directory that the bundle-audit command should be executed from when " +402 + "doing Gem bundle analysis.")) +403 .addOption(newOptionWithArg(ARGUMENT.CENTRAL_URL, "url", +404"Alternative URL for Maven Central Search. If not set the public Sonatype Maven Central will be used.")) +405 .addOption(newOptionWithArg(ARGUMENT.OSSINDEX_URL, "url", +406"Alternative URL for the OSS Index. If not set the public Sonatype OSS Index will be used.")) +407 .addOption(newOptionWithArg(ARGUMENT.OSSINDEX_USERNAME, "username", +408"The username to authenticate to Sonatype's OSS Index. If not set the Sonatype OSS Index " +409 + "Analyzer will use an unauthenticated connection.")) +410 .addOption(newOptionWithArg(ARGUMENT.OSSINDEX_PASSWORD, "password", "" +411 + "The password to authenticate to Sonatype's OSS Index. If not set the Sonatype OSS " +412 + "Index Analyzer will use an unauthenticated connection.")) +413 .addOption(newOptionWithArg(ARGUMENT.OSSINDEX_WARN_ONLY_ON_REMOTE_ERRORS, "true/false", "" +414 + "Whether a Sonatype OSS Index remote error should result in a warning only or a failure.")) +415 .addOption(newOption(ARGUMENT.RETIRE_JS_FORCEUPDATE, "Force the RetireJS Analyzer to update " +416 + "even if autoupdate is disabled")) +417 .addOption(newOptionWithArg(ARGUMENT.RETIREJS_URL, "url", +418"The Retire JS Repository URL")) +419 .addOption(newOptionWithArg(ARGUMENT.RETIREJS_URL_USER, "username", 420"The password to authenticate to Retire JS Repository URL")) -421 .addOption(newOption(ARGUMENT.RETIREJS_FILTER_NON_VULNERABLE, "Specifies that the Retire JS " -422 + "Analyzer should filter out non-vulnerable JS files from the report.")) -423 .addOption(newOptionWithArg(ARGUMENT.ARTIFACTORY_PARALLEL_ANALYSIS, "true/false", -424"Whether the Artifactory Analyzer should use parallel analysis.")) -425 .addOption(newOptionWithArg(ARGUMENT.ARTIFACTORY_USES_PROXY, "true/false", -426"Whether the Artifactory Analyzer should use the proxy.")) -427 .addOption(newOptionWithArg(ARGUMENT.ARTIFACTORY_USERNAME, "username", -428"The Artifactory username for authentication.")) -429 .addOption(newOptionWithArg(ARGUMENT.ARTIFACTORY_API_TOKEN, "token", -430"The Artifactory API token.")) -431 .addOption(newOptionWithArg(ARGUMENT.ARTIFACTORY_BEARER_TOKEN, "token", -432"The Artifactory bearer token.")) -433 .addOption(newOptionWithArg(ARGUMENT.ARTIFACTORY_URL, "url", -434"The Artifactory URL.")) -435 .addOption(newOptionWithArg(ARGUMENT.PATH_TO_GO, "path", -436"The path to the `go` executable.")) -437 .addOption(newOptionWithArg(ARGUMENT.PATH_TO_YARN, "path", -438"The path to the `yarn` executable.")) -439 .addOption(newOptionWithArg(ARGUMENT.PATH_TO_PNPM, "path", -440"The path to the `pnpm` executable.")) -441 .addOption(newOptionWithArg(ARGUMENT.RETIREJS_FILTERS, "pattern", -442"Specify Retire JS content filter used to exclude files from analysis based on their content; " -443 + "most commonly used to exclude based on your applications own copyright line. This " -444 + "option can be specified multiple times.")) -445 .addOption(newOptionWithArg(ARGUMENT.NEXUS_URL, "url", -446"The url to the Nexus Server's REST API Endpoint (http://domain/nexus/service/local). If not " -447 + "set the Nexus Analyzer will be disabled.")) -448 .addOption(newOptionWithArg(ARGUMENT.NEXUS_USERNAME, "username", -449"The username to authenticate to the Nexus Server's REST API Endpoint. If not set the Nexus " -450 + "Analyzer will use an unauthenticated connection.")) -451 .addOption(newOptionWithArg(ARGUMENT.NEXUS_PASSWORD, "password", -452"The password to authenticate to the Nexus Server's REST API Endpoint. If not set the Nexus " -453 + "Analyzer will use an unauthenticated connection.")) -454//TODO remove as this should be covered by non-proxy hosts -455 .addOption(newOptionWithArg(ARGUMENT.NEXUS_USES_PROXY, "true/false", -456"Whether or not the configured proxy should be used when connecting to Nexus.")) -457 .addOption(newOptionWithArg(ARGUMENT.ADDITIONAL_ZIP_EXTENSIONS, "extensions", -458"A comma separated list of additional extensions to be scanned as ZIP files (ZIP, EAR, WAR " -459 + "are already treated as zip files)")) -460 .addOption(newOptionWithArg(ARGUMENT.PROP_SHORT, ARGUMENT.PROP, "file", "A property file to load.")) -461 .addOption(newOptionWithArg(ARGUMENT.PATH_TO_CORE, "path", "The path to dotnet core.")) -462 .addOption(newOptionWithArg(ARGUMENT.HINTS_FILE, "file", "The file path to the hints XML file.")) -463 .addOption(newOption(ARGUMENT.RETIRED, "Enables the retired analyzers.")) -464 .addOption(newOption(ARGUMENT.DISABLE_MSBUILD, "Disable the MS Build Analyzer.")) -465 .addOption(newOption(ARGUMENT.DISABLE_JAR, "Disable the Jar Analyzer.")) -466 .addOption(newOption(ARGUMENT.DISABLE_ARCHIVE, "Disable the Archive Analyzer.")) -467 .addOption(newOption(ARGUMENT.DISABLE_KEV, "Disable the Known Exploited Vulnerability Analyzer.")) -468 .addOption(newOptionWithArg(ARGUMENT.KEV_URL, "url", "The url to the CISA Known Exploited Vulnerabilities JSON data feed")) -469 .addOption(newOption(ARGUMENT.DISABLE_ASSEMBLY, "Disable the .NET Assembly Analyzer.")) -470 .addOption(newOption(ARGUMENT.DISABLE_PY_DIST, "Disable the Python Distribution Analyzer.")) -471 .addOption(newOption(ARGUMENT.DISABLE_CMAKE, "Disable the Cmake Analyzer.")) -472 .addOption(newOption(ARGUMENT.DISABLE_PY_PKG, "Disable the Python Package Analyzer.")) -473 .addOption(newOption(ARGUMENT.DISABLE_MIX_AUDIT, "Disable the Elixir mix_audit Analyzer.")) -474 .addOption(newOption(ARGUMENT.DISABLE_RUBYGEMS, "Disable the Ruby Gemspec Analyzer.")) -475 .addOption(newOption(ARGUMENT.DISABLE_BUNDLE_AUDIT, "Disable the Ruby Bundler-Audit Analyzer.")) -476 .addOption(newOption(ARGUMENT.DISABLE_FILENAME, "Disable the File Name Analyzer.")) -477 .addOption(newOption(ARGUMENT.DISABLE_AUTOCONF, "Disable the Autoconf Analyzer.")) -478 .addOption(newOption(ARGUMENT.DISABLE_MAVEN_INSTALL, "Disable the Maven install Analyzer.")) -479 .addOption(newOption(ARGUMENT.DISABLE_PIP, "Disable the pip Analyzer.")) -480 .addOption(newOption(ARGUMENT.DISABLE_PIPFILE, "Disable the Pipfile Analyzer.")) -481 .addOption(newOption(ARGUMENT.DISABLE_COMPOSER, "Disable the PHP Composer Analyzer.")) -482 .addOption(newOption(ARGUMENT.DISABLE_CPAN, "Disable the Perl CPAN file Analyzer.")) -483 .addOption(newOption(ARGUMENT.DISABLE_POETRY, "Disable the Poetry Analyzer.")) -484 .addOption(newOption(ARGUMENT.DISABLE_GOLANG_MOD, "Disable the Golang Mod Analyzer.")) -485 .addOption(newOption(ARGUMENT.DISABLE_DART, "Disable the Dart Analyzer.")) -486 .addOption(newOption(ARGUMENT.DISABLE_OPENSSL, "Disable the OpenSSL Analyzer.")) -487 .addOption(newOption(ARGUMENT.DISABLE_NUSPEC, "Disable the Nuspec Analyzer.")) -488 .addOption(newOption(ARGUMENT.DISABLE_NUGETCONF, "Disable the Nuget packages.config Analyzer.")) -489 .addOption(newOption(ARGUMENT.DISABLE_CENTRAL, "Disable the Central Analyzer. If this analyzer " -490 + "is disabled it is likely you also want to disable the Nexus Analyzer.")) -491 .addOption(newOption(ARGUMENT.DISABLE_CENTRAL_CACHE, "Disallow the Central Analyzer from caching results")) -492 .addOption(newOption(ARGUMENT.DISABLE_OSSINDEX, "Disable the Sonatype OSS Index Analyzer.")) -493 .addOption(newOption(ARGUMENT.DISABLE_OSSINDEX_CACHE, "Disallow the OSS Index Analyzer from caching results")) -494 .addOption(newOption(ARGUMENT.DISABLE_COCOAPODS, "Disable the CocoaPods Analyzer.")) -495 .addOption(newOption(ARGUMENT.DISABLE_SWIFT, "Disable the swift package Analyzer.")) -496 .addOption(newOption(ARGUMENT.DISABLE_SWIFT_RESOLVED, "Disable the swift package resolved Analyzer.")) -497 .addOption(newOption(ARGUMENT.DISABLE_GO_DEP, "Disable the Golang Package Analyzer.")) -498 .addOption(newOption(ARGUMENT.DISABLE_NODE_JS, "Disable the Node.js Package Analyzer.")) -499 .addOption(newOption(ARGUMENT.NODE_PACKAGE_SKIP_DEV_DEPENDENCIES, "Configures the Node Package Analyzer to skip devDependencies")) -500 .addOption(newOption(ARGUMENT.DISABLE_NODE_AUDIT, "Disable the Node Audit Analyzer.")) -501 .addOption(newOption(ARGUMENT.DISABLE_PNPM_AUDIT, "Disable the Pnpm Audit Analyzer.")) -502 .addOption(newOption(ARGUMENT.DISABLE_YARN_AUDIT, "Disable the Yarn Audit Analyzer.")) -503 .addOption(newOption(ARGUMENT.DISABLE_NODE_AUDIT_CACHE, "Disallow the Node Audit Analyzer from caching results")) -504 .addOption(newOption(ARGUMENT.DISABLE_NODE_AUDIT_SKIPDEV, "Configures the Node Audit Analyzer to skip devDependencies")) -505 .addOption(newOption(ARGUMENT.DISABLE_RETIRE_JS, "Disable the RetireJS Analyzer.")) -506 .addOption(newOption(ARGUMENT.ENABLE_NEXUS, "Enable the Nexus Analyzer.")) -507 .addOption(newOption(ARGUMENT.ARTIFACTORY_ENABLED, "Whether the Artifactory Analyzer should be enabled.")) -508 .addOption(newOption(ARGUMENT.PURGE_NVD, "Purges the local NVD data cache")) -509 .addOption(newOption(ARGUMENT.DISABLE_HOSTED_SUPPRESSIONS, "Disable the usage of the hosted suppressions file")) -510 .addOption(newOption(ARGUMENT.HOSTED_SUPPRESSIONS_FORCEUPDATE, "Force the hosted suppressions file to update even" -511 + " if autoupdate is disabled")) -512 .addOption(newOptionWithArg(ARGUMENT.HOSTED_SUPPRESSIONS_VALID_FOR_HOURS, "hours", -513"The number of hours to wait before checking for new updates of the the hosted suppressions file.")) -514 .addOption(newOptionWithArg(ARGUMENT.HOSTED_SUPPRESSIONS_URL, "url", -515"The URL for a mirrored hosted suppressions file")); -516 -517 } +421 .addOption(newOptionWithArg(ARGUMENT.RETIREJS_URL_PASSWORD, "password", +422"The password to authenticate to Retire JS Repository URL")) +423 .addOption(newOption(ARGUMENT.RETIREJS_FILTER_NON_VULNERABLE, "Specifies that the Retire JS " +424 + "Analyzer should filter out non-vulnerable JS files from the report.")) +425 .addOption(newOptionWithArg(ARGUMENT.ARTIFACTORY_PARALLEL_ANALYSIS, "true/false", +426"Whether the Artifactory Analyzer should use parallel analysis.")) +427 .addOption(newOptionWithArg(ARGUMENT.ARTIFACTORY_USES_PROXY, "true/false", +428"Whether the Artifactory Analyzer should use the proxy.")) +429 .addOption(newOptionWithArg(ARGUMENT.ARTIFACTORY_USERNAME, "username", +430"The Artifactory username for authentication.")) +431 .addOption(newOptionWithArg(ARGUMENT.ARTIFACTORY_API_TOKEN, "token", +432"The Artifactory API token.")) +433 .addOption(newOptionWithArg(ARGUMENT.ARTIFACTORY_BEARER_TOKEN, "token", +434"The Artifactory bearer token.")) +435 .addOption(newOptionWithArg(ARGUMENT.ARTIFACTORY_URL, "url", +436"The Artifactory URL.")) +437 .addOption(newOptionWithArg(ARGUMENT.PATH_TO_GO, "path", +438"The path to the `go` executable.")) +439 .addOption(newOptionWithArg(ARGUMENT.PATH_TO_YARN, "path", +440"The path to the `yarn` executable.")) +441 .addOption(newOptionWithArg(ARGUMENT.PATH_TO_PNPM, "path", +442"The path to the `pnpm` executable.")) +443 .addOption(newOptionWithArg(ARGUMENT.RETIREJS_FILTERS, "pattern", +444"Specify Retire JS content filter used to exclude files from analysis based on their content; " +445 + "most commonly used to exclude based on your applications own copyright line. This " +446 + "option can be specified multiple times.")) +447 .addOption(newOptionWithArg(ARGUMENT.NEXUS_URL, "url", +448"The url to the Nexus Server's REST API Endpoint (http://domain/nexus/service/local). If not " +449 + "set the Nexus Analyzer will be disabled.")) +450 .addOption(newOptionWithArg(ARGUMENT.NEXUS_USERNAME, "username", +451"The username to authenticate to the Nexus Server's REST API Endpoint. If not set the Nexus " +452 + "Analyzer will use an unauthenticated connection.")) +453 .addOption(newOptionWithArg(ARGUMENT.NEXUS_PASSWORD, "password", +454"The password to authenticate to the Nexus Server's REST API Endpoint. If not set the Nexus " +455 + "Analyzer will use an unauthenticated connection.")) +456//TODO remove as this should be covered by non-proxy hosts +457 .addOption(newOptionWithArg(ARGUMENT.NEXUS_USES_PROXY, "true/false", +458"Whether or not the configured proxy should be used when connecting to Nexus.")) +459 .addOption(newOptionWithArg(ARGUMENT.ADDITIONAL_ZIP_EXTENSIONS, "extensions", +460"A comma separated list of additional extensions to be scanned as ZIP files (ZIP, EAR, WAR " +461 + "are already treated as zip files)")) +462 .addOption(newOptionWithArg(ARGUMENT.PROP_SHORT, ARGUMENT.PROP, "file", "A property file to load.")) +463 .addOption(newOptionWithArg(ARGUMENT.PATH_TO_CORE, "path", "The path to dotnet core.")) +464 .addOption(newOptionWithArg(ARGUMENT.HINTS_FILE, "file", "The file path to the hints XML file.")) +465 .addOption(newOption(ARGUMENT.RETIRED, "Enables the retired analyzers.")) +466 .addOption(newOption(ARGUMENT.DISABLE_MSBUILD, "Disable the MS Build Analyzer.")) +467 .addOption(newOption(ARGUMENT.DISABLE_JAR, "Disable the Jar Analyzer.")) +468 .addOption(newOption(ARGUMENT.DISABLE_ARCHIVE, "Disable the Archive Analyzer.")) +469 .addOption(newOption(ARGUMENT.DISABLE_KEV, "Disable the Known Exploited Vulnerability Analyzer.")) +470 .addOption(newOptionWithArg(ARGUMENT.KEV_URL, "url", "The url to the CISA Known Exploited Vulnerabilities JSON data feed")) +471 .addOption(newOption(ARGUMENT.DISABLE_ASSEMBLY, "Disable the .NET Assembly Analyzer.")) +472 .addOption(newOption(ARGUMENT.DISABLE_PY_DIST, "Disable the Python Distribution Analyzer.")) +473 .addOption(newOption(ARGUMENT.DISABLE_CMAKE, "Disable the Cmake Analyzer.")) +474 .addOption(newOption(ARGUMENT.DISABLE_PY_PKG, "Disable the Python Package Analyzer.")) +475 .addOption(newOption(ARGUMENT.DISABLE_MIX_AUDIT, "Disable the Elixir mix_audit Analyzer.")) +476 .addOption(newOption(ARGUMENT.DISABLE_RUBYGEMS, "Disable the Ruby Gemspec Analyzer.")) +477 .addOption(newOption(ARGUMENT.DISABLE_BUNDLE_AUDIT, "Disable the Ruby Bundler-Audit Analyzer.")) +478 .addOption(newOption(ARGUMENT.DISABLE_FILENAME, "Disable the File Name Analyzer.")) +479 .addOption(newOption(ARGUMENT.DISABLE_AUTOCONF, "Disable the Autoconf Analyzer.")) +480 .addOption(newOption(ARGUMENT.DISABLE_MAVEN_INSTALL, "Disable the Maven install Analyzer.")) +481 .addOption(newOption(ARGUMENT.DISABLE_PIP, "Disable the pip Analyzer.")) +482 .addOption(newOption(ARGUMENT.DISABLE_PIPFILE, "Disable the Pipfile Analyzer.")) +483 .addOption(newOption(ARGUMENT.DISABLE_COMPOSER, "Disable the PHP Composer Analyzer.")) +484 .addOption(newOption(ARGUMENT.DISABLE_CPAN, "Disable the Perl CPAN file Analyzer.")) +485 .addOption(newOption(ARGUMENT.DISABLE_POETRY, "Disable the Poetry Analyzer.")) +486 .addOption(newOption(ARGUMENT.DISABLE_GOLANG_MOD, "Disable the Golang Mod Analyzer.")) +487 .addOption(newOption(ARGUMENT.DISABLE_DART, "Disable the Dart Analyzer.")) +488 .addOption(newOption(ARGUMENT.DISABLE_OPENSSL, "Disable the OpenSSL Analyzer.")) +489 .addOption(newOption(ARGUMENT.DISABLE_NUSPEC, "Disable the Nuspec Analyzer.")) +490 .addOption(newOption(ARGUMENT.DISABLE_NUGETCONF, "Disable the Nuget packages.config Analyzer.")) +491 .addOption(newOption(ARGUMENT.DISABLE_CENTRAL, "Disable the Central Analyzer. If this analyzer " +492 + "is disabled it is likely you also want to disable the Nexus Analyzer.")) +493 .addOption(newOption(ARGUMENT.DISABLE_CENTRAL_CACHE, "Disallow the Central Analyzer from caching results")) +494 .addOption(newOption(ARGUMENT.DISABLE_OSSINDEX, "Disable the Sonatype OSS Index Analyzer.")) +495 .addOption(newOption(ARGUMENT.DISABLE_OSSINDEX_CACHE, "Disallow the OSS Index Analyzer from caching results")) +496 .addOption(newOption(ARGUMENT.DISABLE_COCOAPODS, "Disable the CocoaPods Analyzer.")) +497 .addOption(newOption(ARGUMENT.DISABLE_SWIFT, "Disable the swift package Analyzer.")) +498 .addOption(newOption(ARGUMENT.DISABLE_SWIFT_RESOLVED, "Disable the swift package resolved Analyzer.")) +499 .addOption(newOption(ARGUMENT.DISABLE_GO_DEP, "Disable the Golang Package Analyzer.")) +500 .addOption(newOption(ARGUMENT.DISABLE_NODE_JS, "Disable the Node.js Package Analyzer.")) +501 .addOption(newOption(ARGUMENT.NODE_PACKAGE_SKIP_DEV_DEPENDENCIES, "Configures the Node Package Analyzer to skip devDependencies")) +502 .addOption(newOption(ARGUMENT.DISABLE_NODE_AUDIT, "Disable the Node Audit Analyzer.")) +503 .addOption(newOption(ARGUMENT.DISABLE_PNPM_AUDIT, "Disable the Pnpm Audit Analyzer.")) +504 .addOption(newOption(ARGUMENT.DISABLE_YARN_AUDIT, "Disable the Yarn Audit Analyzer.")) +505 .addOption(newOption(ARGUMENT.DISABLE_NODE_AUDIT_CACHE, "Disallow the Node Audit Analyzer from caching results")) +506 .addOption(newOption(ARGUMENT.DISABLE_NODE_AUDIT_SKIPDEV, "Configures the Node Audit Analyzer to skip devDependencies")) +507 .addOption(newOption(ARGUMENT.DISABLE_RETIRE_JS, "Disable the RetireJS Analyzer.")) +508 .addOption(newOption(ARGUMENT.ENABLE_NEXUS, "Enable the Nexus Analyzer.")) +509 .addOption(newOption(ARGUMENT.ARTIFACTORY_ENABLED, "Whether the Artifactory Analyzer should be enabled.")) +510 .addOption(newOption(ARGUMENT.PURGE_NVD, "Purges the local NVD data cache")) +511 .addOption(newOption(ARGUMENT.DISABLE_HOSTED_SUPPRESSIONS, "Disable the usage of the hosted suppressions file")) +512 .addOption(newOption(ARGUMENT.HOSTED_SUPPRESSIONS_FORCEUPDATE, "Force the hosted suppressions file to update even" +513 + " if autoupdate is disabled")) +514 .addOption(newOptionWithArg(ARGUMENT.HOSTED_SUPPRESSIONS_VALID_FOR_HOURS, "hours", +515"The number of hours to wait before checking for new updates of the the hosted suppressions file.")) +516 .addOption(newOptionWithArg(ARGUMENT.HOSTED_SUPPRESSIONS_URL, "url", +517"The URL for a mirrored hosted suppressions file")); 518 -519/** -520 * Adds the deprecated command line options to the given options collection. -521 * These are split out for purposes of not including them in the help -522 * message. We need to add the deprecated options so as not to break -523 * existing scripts. -524 * -525 * @param options a collection of command line arguments -526 */ -527 @SuppressWarnings({"static-access", "deprecation"}) -528privatevoid addDeprecatedOptions(final Options options) { -529//not a real option - but enables java debugging via the shell script -530 options.addOption(newOption("debug", -531"Used to enable java debugging of the cli via dependency-check.sh.")); -532 } -533 -534/** -535 * Determines if the 'version' command line argument was passed in. -536 * -537 * @return whether or not the 'version' command line argument was passed in -538 */ -539publicboolean isGetVersion() { -540return (line != null) && line.hasOption(ARGUMENT.VERSION); -541 } -542 -543/** -544 * Determines if the 'help' command line argument was passed in. -545 * -546 * @return whether or not the 'help' command line argument was passed in -547 */ -548publicboolean isGetHelp() { -549return (line != null) && line.hasOption(ARGUMENT.HELP); -550 } -551 -552/** -553 * Determines if the 'scan' command line argument was passed in. -554 * -555 * @return whether or not the 'scan' command line argument was passed in -556 */ -557publicboolean isRunScan() { -558return (line != null) && isValid && line.hasOption(ARGUMENT.SCAN); -559 } -560 -561/** -562 * Returns the symbolic link depth (how deeply symbolic links will be -563 * followed). -564 * -565 * @return the symbolic link depth -566 */ -567publicint getSymLinkDepth() { -568int value = 0; -569try { -570 value = Integer.parseInt(line.getOptionValue(ARGUMENT.SYM_LINK_DEPTH, "0")); -571if (value < 0) { -572 value = 0; -573 } -574 } catch (NumberFormatException ex) { -575 LOGGER.debug("Symbolic link was not a number"); -576 } -577return value; -578 } -579 -580/** -581 * Utility method to determine if one of the disable options has been set. -582 * If not set, this method will check the currently configured settings for -583 * the current value to return. -584 * <p> -585 * Example given `--disableArchive` on the command line would cause this -586 * method to return true for the disable archive setting. -587 * -588 * @param disableFlag the command line disable option -589 * @param setting the corresponding settings key -590 * @return true if the disable option was set, if not set the currently -591 * configured value will be returned -592 */ -593publicboolean isDisabled(String disableFlag, String setting) { -594if (line == null || !line.hasOption(disableFlag)) { -595try { -596return !settings.getBoolean(setting); -597 } catch (InvalidSettingException ise) { -598 LOGGER.warn("Invalid property setting '{}' defaulting to false", setting); -599return false; -600 } -601 } else { -602returntrue; -603 } -604 } -605 -606/** -607 * Returns true if the disableNodeAudit command line argument was specified. -608 * -609 * @return true if the disableNodeAudit command line argument was specified; -610 * otherwise false -611 */ -612publicboolean isNodeAuditDisabled() { -613return isDisabled(ARGUMENT.DISABLE_NODE_AUDIT, Settings.KEYS.ANALYZER_NODE_AUDIT_ENABLED); -614 } -615 -616/** -617 * Returns true if the disableYarnAudit command line argument was specified. -618 * -619 * @return true if the disableYarnAudit command line argument was specified; -620 * otherwise false -621 */ -622publicboolean isYarnAuditDisabled() { -623return isDisabled(ARGUMENT.DISABLE_YARN_AUDIT, Settings.KEYS.ANALYZER_YARN_AUDIT_ENABLED); -624 } -625 -626/** -627 * Returns true if the disablePnpmAudit command line argument was specified. -628 * -629 * @return true if the disablePnpmAudit command line argument was specified; -630 * otherwise false -631 */ -632publicboolean isPnpmAuditDisabled() { -633return isDisabled(ARGUMENT.DISABLE_PNPM_AUDIT, Settings.KEYS.ANALYZER_PNPM_AUDIT_ENABLED); -634 } -635 -636/** -637 * Returns true if the Nexus Analyzer should use the configured proxy to -638 * connect to Nexus; otherwise false is returned. -639 * -640 * @return true if the Nexus Analyzer should use the configured proxy to -641 * connect to Nexus; otherwise false -642 */ -643publicboolean isNexusUsesProxy() { -644// If they didn't specify whether Nexus needs to use the proxy, we should -645// still honor the property if it's set. -646if (line == null || !line.hasOption(ARGUMENT.NEXUS_USES_PROXY)) { -647try { -648return settings.getBoolean(Settings.KEYS.ANALYZER_NEXUS_USES_PROXY); -649 } catch (InvalidSettingException ise) { -650returntrue; -651 } -652 } else { -653return Boolean.parseBoolean(line.getOptionValue(ARGUMENT.NEXUS_USES_PROXY)); -654 } -655 } -656 -657/** -658 * Returns the argument boolean value. -659 * -660 * @param argument the argument -661 * @return the argument boolean value -662 */ -663 @SuppressFBWarnings(justification = "Accepting that this is a bad practice - used a Boolean as we needed three states", -664 value = {"NP_BOOLEAN_RETURN_NULL"}) -665public Boolean getBooleanArgument(String argument) { -666if (line != null && line.hasOption(argument)) { -667final String value = line.getOptionValue(argument); -668if (value != null) { -669return Boolean.parseBoolean(value); -670 } -671 } -672returnnull; -673 } -674 -675/** -676 * Returns the argument value for the given option. -677 * -678 * @param option the option -679 * @return the value of the argument -680 */ -681public String getStringArgument(String option) { -682return getStringArgument(option, null); -683 } -684 -685/** -686 * Returns the argument value for the given option. -687 * -688 * @param option the option -689 * @param key the dependency-check settings key for the option. -690 * @return the value of the argument -691 */ -692public String getStringArgument(String option, String key) { -693if (line != null && line.hasOption(option)) { -694if (key != null && (option.toLowerCase().endsWith("password") -695 || option.toLowerCase().endsWith("pass"))) { -696 LOGGER.warn("{} used on the command line, consider moving the password " -697 + "to a properties file using the key `{}` and using the " -698 + "--propertyfile argument instead", option, key); -699 } -700return line.getOptionValue(option); -701 } -702returnnull; -703 } -704 -705/** -706 * Returns the argument value for the given option. -707 * -708 * @param option the option -709 * @return the value of the argument -710 */ -711public String[] getStringArguments(String option) { -712if (line != null && line.hasOption(option)) { -713return line.getOptionValues(option); -714 } -715returnnull; -716 } -717 -718/** -719 * Returns the argument value for the given option. -720 * -721 * @param option the option -722 * @return the value of the argument -723 */ -724public File getFileArgument(String option) { -725final String path = line.getOptionValue(option); -726if (path != null) { -727returnnew File(path); -728 } -729returnnull; -730 } -731 -732/** -733 * Displays the command line help message to the standard output. -734 */ -735publicvoid printHelp() { -736final HelpFormatter formatter = new HelpFormatter(); -737final Options options = new Options(); -738 addStandardOptions(options); -739if (line != null && line.hasOption(ARGUMENT.ADVANCED_HELP)) { -740 addAdvancedOptions(options); -741 } -742final String helpMsg = String.format("%n%s" -743 + " can be used to identify if there are any known CVE vulnerabilities in libraries utilized by an application. " -744 + "%s will automatically update required data from the Internet, such as the CVE and CPE data files from nvd.nist.gov.%n%n", -745 settings.getString(Settings.KEYS.APPLICATION_NAME, "DependencyCheck"), -746 settings.getString(Settings.KEYS.APPLICATION_NAME, "DependencyCheck")); -747 -748 formatter.printHelp(settings.getString(Settings.KEYS.APPLICATION_NAME, "DependencyCheck"), -749 helpMsg, -750 options, -751"", -752true); -753 } -754 -755/** -756 * Retrieves the file command line parameter(s) specified for the 'scan' -757 * argument. -758 * -759 * @return the file paths specified on the command line for scan -760 */ -761public String[] getScanFiles() { -762return line.getOptionValues(ARGUMENT.SCAN); -763 } -764 -765/** -766 * Retrieves the list of excluded file patterns specified by the 'exclude' -767 * argument. -768 * -769 * @return the excluded file patterns -770 */ -771public String[] getExcludeList() { -772return line.getOptionValues(ARGUMENT.EXCLUDE); -773 } -774 -775/** -776 * Retrieves the list of retire JS content filters used to exclude JS files -777 * by content. -778 * -779 * @return the retireJS filters -780 */ -781public String[] getRetireJsFilters() { -782return line.getOptionValues(ARGUMENT.RETIREJS_FILTERS); -783 } -784 -785/** -786 * Returns whether or not the retireJS analyzer should exclude -787 * non-vulnerable JS from the report. -788 * -789 * @return <code>true</code> if non-vulnerable JS should be filtered in the -790 * RetireJS Analyzer; otherwise <code>null</code> -791 */ -792 @SuppressFBWarnings(justification = "Accepting that this is a bad practice - but made more sense in this use case", -793 value = {"NP_BOOLEAN_RETURN_NULL"}) -794public Boolean isRetireJsFilterNonVulnerable() { -795return (line != null && line.hasOption(ARGUMENT.RETIREJS_FILTER_NON_VULNERABLE)) ? true : null; -796 } -797 -798/** -799 * Returns the directory to write the reports to specified on the command -800 * line. -801 * -802 * @return the path to the reports directory. -803 */ -804public String getReportDirectory() { -805return line.getOptionValue(ARGUMENT.OUT, "."); -806 } -807 -808/** -809 * Returns the output format specified on the command line. Defaults to HTML -810 * if no format was specified. -811 * -812 * @return the output format name. -813 */ -814public String[] getReportFormat() { -815if (line.hasOption(ARGUMENT.OUTPUT_FORMAT)) { -816return line.getOptionValues(ARGUMENT.OUTPUT_FORMAT); -817 } -818returnnew String[]{"HTML"}; -819 } -820 -821/** -822 * Returns the application name specified on the command line. -823 * -824 * @return the application name. -825 */ -826public String getProjectName() { -827 String name = line.getOptionValue(ARGUMENT.PROJECT); -828if (name == null) { -829 name = ""; -830 } -831return name; -832 } -833 -834/** -835 * <p> -836 * Prints the manifest information to standard output.</p> -837 * <ul><li>Implementation-Title: ${pom.name}</li> -838 * <li>Implementation-Version: ${pom.version}</li></ul> -839 */ -840publicvoid printVersionInfo() { -841final String version = String.format("%s version %s", -842 settings.getString(Settings.KEYS.APPLICATION_NAME, "dependency-check"), -843 settings.getString(Settings.KEYS.APPLICATION_VERSION, "Unknown")); -844 System.out.println(version); -845 } -846 -847/** -848 * Checks if the update only flag has been set. -849 * -850 * @return <code>true</code> if the update only flag has been set; otherwise -851 * <code>false</code>. -852 */ -853publicboolean isUpdateOnly() { -854return line != null && line.hasOption(ARGUMENT.UPDATE_ONLY); -855 } -856 -857/** -858 * Checks if the purge NVD flag has been set. -859 * -860 * @return <code>true</code> if the purge nvd flag has been set; otherwise -861 * <code>false</code>. -862 */ -863publicboolean isPurge() { -864return line != null && line.hasOption(ARGUMENT.PURGE_NVD); -865 } -866 -867/** -868 * Returns the database driver name if specified; otherwise null is -869 * returned. -870 * -871 * @return the database driver name if specified; otherwise null is returned -872 */ -873public String getDatabaseDriverName() { -874return line.getOptionValue(ARGUMENT.DB_DRIVER); -875 } -876 -877/** -878 * Returns the argument value. -879 * -880 * @param argument the argument -881 * @return the value of the argument -882 */ -883public Integer getIntegerValue(String argument) { -884final String v = line.getOptionValue(argument); -885if (v != null) { -886return Integer.parseInt(v); -887 } -888returnnull; -889 } -890 -891/** -892 * Checks if the option is present. If present it will return -893 * <code>true</code>; otherwise <code>false</code>. -894 * -895 * @param option the option to check -896 * @return <code>true</code> if auto-update is allowed; otherwise -897 * <code>null</code> -898 */ -899 @SuppressFBWarnings(justification = "Accepting that this is a bad practice - but made more sense in this use case", -900 value = {"NP_BOOLEAN_RETURN_NULL"}) -901public Boolean hasOption(String option) { -902return (line != null && line.hasOption(option)) ? true : null; -903 } -904 -905/** -906 * Returns the CVSS value to fail on. -907 * -908 * @return 11 if nothing is set. Otherwise it returns the int passed from -909 * the command line arg -910 */ -911publicfloat getFailOnCVSS() { -912if (line.hasOption(ARGUMENT.FAIL_ON_CVSS)) { -913final String value = line.getOptionValue(ARGUMENT.FAIL_ON_CVSS); -914try { -915return Float.parseFloat(value); -916 } catch (NumberFormatException nfe) { -917return 11; -918 } -919 } else { -920return 11; -921 } -922 } -923 -924/** -925 * Returns the float argument for the given option. -926 * -927 * @param option the option -928 * @param defaultValue the value if the option is not present -929 * @return the value of the argument if present; otherwise the defaultValue -930 */ -931publicfloat getFloatArgument(String option, float defaultValue) { -932if (line.hasOption(option)) { -933final String value = line.getOptionValue(option); -934try { -935return Integer.parseInt(value); -936 } catch (NumberFormatException nfe) { -937return defaultValue; -938 } -939 } else { -940return defaultValue; -941 } -942 } -943 -944/** -945 * Builds a new option. -946 * -947 * @param name the long name -948 * @param description the description -949 * @return a new option -950 */ -951private Option newOption(String name, String description) { -952return Option.builder().longOpt(name).desc(description).build(); -953 } -954 -955/** -956 * Builds a new option. -957 * -958 * @param shortName the short name -959 * @param name the long name -960 * @param description the description -961 * @return a new option -962 */ -963private Option newOption(String shortName, String name, String description) { -964return Option.builder(shortName).longOpt(name).desc(description).build(); -965 } -966 -967/** -968 * Builds a new option. -969 * -970 * @param name the long name -971 * @param arg the argument name -972 * @param description the description -973 * @return a new option -974 */ -975private Option newOptionWithArg(String name, String arg, String description) { -976return Option.builder().longOpt(name).argName(arg).hasArg().desc(description).build(); -977 } -978 -979/** -980 * Builds a new option. -981 * -982 * @param shortName the short name -983 * @param name the long name -984 * @param arg the argument name -985 * @param description the description -986 * @return a new option -987 */ -988private Option newOptionWithArg(String shortName, String name, String arg, String description) { -989return Option.builder(shortName).longOpt(name).argName(arg).hasArg().desc(description).build(); -990 } -991 -992/** -993 * Builds a new option group so that an option can be specified multiple -994 * times on the command line. -995 * -996 * @param option the option to add to the group -997 * @return a new option group -998 */ -999private OptionGroup newOptionGroup(Option option) { -1000final OptionGroup group = new OptionGroup(); -1001 group.addOption(option); -1002return group; -1003 } -1004 -1005/** -1006 * A collection of static final strings that represent the possible command -1007 * line arguments. -1008 */ -1009publicstaticclassARGUMENT { -1010 -1011/** -1012 * The long CLI argument name specifying the directory/file to scan. -1013 */ -1014publicstaticfinal String SCAN = "scan"; -1015/** -1016 * The short CLI argument name specifying the directory/file to scan. -1017 */ -1018publicstaticfinal String SCAN_SHORT = "s"; -1019/** -1020 * The long CLI argument name specifying that the CPE/CVE/etc. data -1021 * should not be automatically updated. -1022 */ -1023publicstaticfinal String DISABLE_AUTO_UPDATE = "noupdate"; -1024/** -1025 * The short CLI argument name specifying that the CPE/CVE/etc. data -1026 * should not be automatically updated. -1027 */ -1028publicstaticfinal String DISABLE_AUTO_UPDATE_SHORT = "n"; -1029/** -1030 * The long CLI argument name specifying that only the update phase -1031 * should be executed; no scan should be run. -1032 */ -1033publicstaticfinal String UPDATE_ONLY = "updateonly"; -1034/** -1035 * The long CLI argument name specifying that only the update phase -1036 * should be executed; no scan should be run. -1037 */ -1038publicstaticfinal String PURGE_NVD = "purge"; -1039/** -1040 * The long CLI argument name specifying the directory to write the -1041 * reports to. -1042 */ -1043publicstaticfinal String OUT = "out"; -1044/** -1045 * The short CLI argument name specifying the directory to write the -1046 * reports to. -1047 */ -1048publicstaticfinal String OUT_SHORT = "o"; -1049/** -1050 * The long CLI argument name specifying the output format to write the -1051 * reports to. -1052 */ -1053publicstaticfinal String OUTPUT_FORMAT = "format"; -1054/** -1055 * The short CLI argument name specifying the output format to write the -1056 * reports to. -1057 */ -1058publicstaticfinal String OUTPUT_FORMAT_SHORT = "f"; -1059/** -1060 * The long CLI argument name specifying the name of the project to be -1061 * scanned. -1062 */ -1063publicstaticfinal String PROJECT = "project"; -1064/** -1065 * The long CLI argument name asking for help. -1066 */ -1067publicstaticfinal String HELP = "help"; -1068/** -1069 * The long CLI argument name asking for advanced help. -1070 */ -1071publicstaticfinal String ADVANCED_HELP = "advancedHelp"; -1072/** -1073 * The short CLI argument name asking for help. -1074 */ -1075publicstaticfinal String HELP_SHORT = "h"; -1076/** -1077 * The long CLI argument name asking for the version. -1078 */ -1079publicstaticfinal String VERSION_SHORT = "v"; -1080/** -1081 * The short CLI argument name asking for the version. -1082 */ -1083publicstaticfinal String VERSION = "version"; -1084/** -1085 * The CLI argument name indicating the proxy port. -1086 */ -1087publicstaticfinal String PROXY_PORT = "proxyport"; -1088/** -1089 * The CLI argument name indicating the proxy server. -1090 */ -1091publicstaticfinal String PROXY_SERVER = "proxyserver"; -1092/** -1093 * The CLI argument name indicating the proxy username. -1094 */ -1095publicstaticfinal String PROXY_USERNAME = "proxyuser"; -1096/** -1097 * The CLI argument name indicating the proxy password. -1098 */ -1099publicstaticfinal String PROXY_PASSWORD = "proxypass"; -1100/** -1101 * The CLI argument name indicating the proxy proxy exclusion list. -1102 */ -1103publicstaticfinal String NON_PROXY_HOSTS = "nonProxyHosts"; -1104/** -1105 * The short CLI argument name indicating the connection timeout. -1106 */ -1107publicstaticfinal String CONNECTION_TIMEOUT_SHORT = "c"; -1108/** -1109 * The CLI argument name indicating the connection timeout. -1110 */ -1111publicstaticfinal String CONNECTION_TIMEOUT = "connectiontimeout"; -1112/** -1113 * The CLI argument name indicating the connection read timeout. -1114 */ -1115publicstaticfinal String CONNECTION_READ_TIMEOUT = "readtimeout"; -1116/** -1117 * The short CLI argument name for setting the location of an additional -1118 * properties file. -1119 */ -1120publicstaticfinal String PROP_SHORT = "P"; -1121/** -1122 * The CLI argument name for setting the location of an additional -1123 * properties file. -1124 */ -1125publicstaticfinal String PROP = "propertyfile"; -1126/** -1127 * The CLI argument name for setting the location of the data directory. -1128 */ -1129publicstaticfinal String DATA_DIRECTORY = "data"; -1130/** -1131 * The CLI argument name for setting the URL for the CVE Data Files. -1132 */ -1133publicstaticfinal String NVD_API_KEY = "nvdApiKey"; -1134/** -1135 * The CLI argument name for setting the maximum number of retry requests for a single call to the NVD API. -1136 */ -1137publicstaticfinal String NVD_API_MAX_RETRY_COUNT = "nvdMaxRetryCount"; -1138/** -1139 * The CLI argument name for setting the number of hours to wait before -1140 * checking for new updates from the NVD. -1141 */ -1142publicstaticfinal String NVD_API_VALID_FOR_HOURS = "nvdValidForHours"; -1143/** -1144 * The CLI argument name for the NVD API Data Feed URL. -1145 */ -1146publicstaticfinal String NVD_API_DATAFEED_URL = "nvdDatafeed"; -1147/** -1148 * The username for basic auth to the CVE data. -1149 */ -1150publicstaticfinal String NVD_API_DATAFEED_USER = "nvdUser"; -1151/** -1152 * The password for basic auth to the CVE data. -1153 */ -1154publicstaticfinal String NVD_API_DATAFEED_PASSWORD = "nvdPassword"; -1155/** -1156 * The time in milliseconds to wait between downloading NVD API data. -1157 */ -1158publicstaticfinal String NVD_API_DELAY = "nvdApiDelay"; -1159/** -1160 * The short CLI argument name for setting the location of the data -1161 * directory. -1162 */ -1163publicstaticfinal String DATA_DIRECTORY_SHORT = "d"; -1164/** -1165 * The CLI argument name for setting the location of the data directory. -1166 */ -1167publicstaticfinal String VERBOSE_LOG = "log"; -1168/** -1169 * The short CLI argument name for setting the location of the data -1170 * directory. -1171 */ -1172publicstaticfinal String VERBOSE_LOG_SHORT = "l"; -1173/** -1174 * The CLI argument name for setting the depth of symbolic links that -1175 * will be followed. -1176 */ -1177publicstaticfinal String SYM_LINK_DEPTH = "symLink"; -1178/** -1179 * The CLI argument name for setting the location of the suppression -1180 * file(s). -1181 */ -1182publicstaticfinal String SUPPRESSION_FILES = "suppression"; -1183/** -1184 * The CLI argument name for setting the location of the hint file. -1185 */ -1186publicstaticfinal String HINTS_FILE = "hints"; -1187/** -1188 * Disables the Jar Analyzer. -1189 */ -1190publicstaticfinal String DISABLE_JAR = "disableJar"; -1191/** -1192 * Disable the MS Build Analyzer. -1193 */ -1194publicstaticfinal String DISABLE_MSBUILD = "disableMSBuild"; -1195/** -1196 * Disables the Archive Analyzer. -1197 */ -1198publicstaticfinal String DISABLE_ARCHIVE = "disableArchive"; -1199/** -1200 * Disables the Known Exploited Analyzer. -1201 */ -1202publicstaticfinal String DISABLE_KEV = "disableKnownExploited"; -1203/** -1204 * The URL to the CISA Known Exploited Vulnerability JSON datafeed. -1205 */ -1206publicstaticfinal String KEV_URL = "kevURL"; -1207/** -1208 * Disables the Python Distribution Analyzer. -1209 */ -1210publicstaticfinal String DISABLE_PY_DIST = "disablePyDist"; -1211/** -1212 * Disables the Python Package Analyzer. -1213 */ -1214publicstaticfinal String DISABLE_PY_PKG = "disablePyPkg"; -1215/** -1216 * Disables the Elixir mix audit Analyzer. -1217 */ -1218publicstaticfinal String DISABLE_MIX_AUDIT = "disableMixAudit"; -1219/** -1220 * Disables the Golang Dependency Analyzer. -1221 */ -1222publicstaticfinal String DISABLE_GO_DEP = "disableGolangDep"; -1223/** -1224 * Disables the PHP Composer Analyzer. -1225 */ -1226publicstaticfinal String DISABLE_COMPOSER = "disableComposer"; -1227/** -1228 * Disables the Perl CPAN File Analyzer. -1229 */ -1230publicstaticfinal String DISABLE_CPAN = "disableCpan"; -1231/** -1232 * Disables the Golang Mod Analyzer. -1233 */ -1234publicstaticfinal String DISABLE_GOLANG_MOD = "disableGolangMod"; -1235/** -1236 * Disables the Dart Analyzer. -1237 */ -1238publicstaticfinal String DISABLE_DART = "disableDart"; -1239/** -1240 * The CLI argument name for setting the path to `go`. -1241 */ -1242publicstaticfinal String PATH_TO_GO = "go"; -1243/** -1244 * The CLI argument name for setting the path to `yarn`. -1245 */ -1246publicstaticfinal String PATH_TO_YARN = "yarn"; -1247/** -1248 * The CLI argument name for setting the path to `pnpm`. -1249 */ -1250publicstaticfinal String PATH_TO_PNPM = "pnpm"; -1251/** -1252 * Disables the Ruby Gemspec Analyzer. -1253 */ -1254publicstaticfinal String DISABLE_RUBYGEMS = "disableRubygems"; -1255/** -1256 * Disables the Autoconf Analyzer. -1257 */ -1258publicstaticfinal String DISABLE_AUTOCONF = "disableAutoconf"; -1259/** -1260 * Disables the Maven install Analyzer. -1261 */ -1262publicstaticfinal String DISABLE_MAVEN_INSTALL = "disableMavenInstall"; -1263/** -1264 * Disables the pip Analyzer. -1265 */ -1266publicstaticfinal String DISABLE_PIP = "disablePip"; -1267/** -1268 * Disables the Pipfile Analyzer. -1269 */ -1270publicstaticfinal String DISABLE_PIPFILE = "disablePipfile"; -1271/** -1272 * Disables the Poetry Analyzer. -1273 */ -1274publicstaticfinal String DISABLE_POETRY = "disablePoetry"; -1275/** -1276 * Disables the Cmake Analyzer. -1277 */ -1278publicstaticfinal String DISABLE_CMAKE = "disableCmake"; -1279/** -1280 * Disables the cocoapods analyzer. -1281 */ -1282publicstaticfinal String DISABLE_COCOAPODS = "disableCocoapodsAnalyzer"; -1283/** -1284 * Disables the swift package manager analyzer. -1285 */ -1286publicstaticfinal String DISABLE_SWIFT = "disableSwiftPackageManagerAnalyzer"; -1287/** -1288 * Disables the swift package resolved analyzer. -1289 */ -1290publicstaticfinal String DISABLE_SWIFT_RESOLVED = "disableSwiftPackageResolvedAnalyzer"; -1291/** -1292 * Disables the Assembly Analyzer. -1293 */ -1294publicstaticfinal String DISABLE_ASSEMBLY = "disableAssembly"; -1295/** -1296 * Disables the Ruby Bundler Audit Analyzer. -1297 */ -1298publicstaticfinal String DISABLE_BUNDLE_AUDIT = "disableBundleAudit"; -1299/** -1300 * Disables the File Name Analyzer. -1301 */ -1302publicstaticfinal String DISABLE_FILENAME = "disableFileName"; -1303/** -1304 * Disables the Nuspec Analyzer. -1305 */ -1306publicstaticfinal String DISABLE_NUSPEC = "disableNuspec"; -1307/** -1308 * Disables the Nuget packages.config Analyzer. -1309 */ -1310publicstaticfinal String DISABLE_NUGETCONF = "disableNugetconf"; -1311/** -1312 * Disables the Central Analyzer. -1313 */ -1314publicstaticfinal String DISABLE_CENTRAL = "disableCentral"; -1315/** -1316 * Disables the Central Analyzer's ability to cache results locally. -1317 */ -1318publicstaticfinal String DISABLE_CENTRAL_CACHE = "disableCentralCache"; -1319/** -1320 * The alternative URL for Maven Central Search. -1321 */ -1322publicstaticfinal String CENTRAL_URL = "centralUrl"; -1323/** -1324 * Disables the Nexus Analyzer. -1325 */ -1326publicstaticfinal String ENABLE_NEXUS = "enableNexus"; -1327/** -1328 * Disables the Sonatype OSS Index Analyzer. -1329 */ -1330publicstaticfinal String DISABLE_OSSINDEX = "disableOssIndex"; -1331/** -1332 * Disables the Sonatype OSS Index Analyzer's ability to cache results -1333 * locally. -1334 */ -1335publicstaticfinal String DISABLE_OSSINDEX_CACHE = "disableOssIndexCache"; -1336/** -1337 * The alternative URL for the Sonatype OSS Index. -1338 */ -1339publicstaticfinal String OSSINDEX_URL = "ossIndexUrl"; -1340/** -1341 * The username for the Sonatype OSS Index. -1342 */ -1343publicstaticfinal String OSSINDEX_USERNAME = "ossIndexUsername"; -1344/** -1345 * The password for the Sonatype OSS Index. -1346 */ -1347publicstaticfinal String OSSINDEX_PASSWORD = "ossIndexPassword"; -1348/** -1349 * The password for the Sonatype OSS Index. -1350 */ -1351publicstaticfinal String OSSINDEX_WARN_ONLY_ON_REMOTE_ERRORS = "ossIndexRemoteErrorWarnOnly"; -1352/** -1353 * Disables the OpenSSL Analyzer. -1354 */ -1355publicstaticfinal String DISABLE_OPENSSL = "disableOpenSSL"; -1356/** -1357 * Disables the Node.js Package Analyzer. -1358 */ -1359publicstaticfinal String DISABLE_NODE_JS = "disableNodeJS"; -1360/** -1361 * Skips dev dependencies in Node Package Analyzer. -1362 */ -1363publicstaticfinal String NODE_PACKAGE_SKIP_DEV_DEPENDENCIES = "nodePackageSkipDevDependencies"; -1364/** -1365 * Disables the Node Audit Analyzer. -1366 */ -1367publicstaticfinal String DISABLE_NODE_AUDIT = "disableNodeAudit"; -1368/** -1369 * Disables the Yarn Audit Analyzer. -1370 */ -1371publicstaticfinal String DISABLE_YARN_AUDIT = "disableYarnAudit"; -1372/** -1373 * Disables the Pnpm Audit Analyzer. -1374 */ -1375publicstaticfinal String DISABLE_PNPM_AUDIT = "disablePnpmAudit"; -1376/** -1377 * Disables the Node Audit Analyzer's ability to cache results locally. -1378 */ -1379publicstaticfinal String DISABLE_NODE_AUDIT_CACHE = "disableNodeAuditCache"; -1380/** -1381 * Configures the Node Audit Analyzer to skip the dev dependencies. -1382 */ -1383publicstaticfinal String DISABLE_NODE_AUDIT_SKIPDEV = "nodeAuditSkipDevDependencies"; -1384/** -1385 * Disables the RetireJS Analyzer. -1386 */ -1387publicstaticfinal String DISABLE_RETIRE_JS = "disableRetireJS"; -1388/** -1389 * Whether the RetireJS Analyzer will update regardless of the -1390 * `autoupdate` setting. -1391 */ -1392publicstaticfinal String RETIRE_JS_FORCEUPDATE = "retireJsForceUpdate"; -1393/** -1394 * The URL to the retire JS repository. -1395 */ -1396publicstaticfinal String RETIREJS_URL = "retireJsUrl"; -1397/** -1398 * The username to the retire JS repository. -1399 */ -1400publicstaticfinal String RETIREJS_URL_USER = "retireJsUrlUser"; -1401/** -1402 * The password to the retire JS repository. -1403 */ -1404publicstaticfinal String RETIREJS_URL_PASSWORD = "retireJsUrlPass"; -1405/** -1406 * The URL of the nexus server. -1407 */ -1408publicstaticfinal String NEXUS_URL = "nexus"; -1409/** -1410 * The username for the nexus server. -1411 */ -1412publicstaticfinal String NEXUS_USERNAME = "nexusUser"; -1413/** -1414 * The password for the nexus server. -1415 */ -1416publicstaticfinal String NEXUS_PASSWORD = "nexusPass"; -1417/** -1418 * Whether or not the defined proxy should be used when connecting to -1419 * Nexus. -1420 */ -1421publicstaticfinal String NEXUS_USES_PROXY = "nexusUsesProxy"; -1422/** -1423 * The CLI argument name for setting the connection string. -1424 */ -1425publicstaticfinal String CONNECTION_STRING = "connectionString"; -1426/** -1427 * The CLI argument name for setting the database user name. -1428 */ -1429publicstaticfinal String DB_NAME = "dbUser"; -1430/** -1431 * The CLI argument name for setting the database password. -1432 */ -1433publicstaticfinal String DB_PASSWORD = "dbPassword"; -1434/** -1435 * The CLI argument name for setting the database driver name. -1436 */ -1437publicstaticfinal String DB_DRIVER = "dbDriverName"; -1438/** -1439 * The CLI argument name for setting the path to the database driver; in -1440 * case it is not on the class path. -1441 */ -1442publicstaticfinal String DB_DRIVER_PATH = "dbDriverPath"; -1443/** -1444 * The CLI argument name for setting the path to dotnet core. -1445 */ -1446publicstaticfinal String PATH_TO_CORE = "dotnet"; -1447/** -1448 * The CLI argument name for setting extra extensions. -1449 */ -1450publicstaticfinal String ADDITIONAL_ZIP_EXTENSIONS = "zipExtensions"; -1451/** -1452 * Exclude path argument. -1453 */ -1454publicstaticfinal String EXCLUDE = "exclude"; -1455/** -1456 * The CLI argument name for setting the path to bundle-audit for Ruby -1457 * bundle analysis. -1458 */ -1459publicstaticfinal String PATH_TO_BUNDLE_AUDIT = "bundleAudit"; -1460/** -1461 * The CLI argument name for setting the path that should be used as the -1462 * working directory that the bundle-audit command used for Ruby bundle -1463 * analysis should be executed from. This will allow for the usage of -1464 * rbenv -1465 */ -1466publicstaticfinal String PATH_TO_BUNDLE_AUDIT_WORKING_DIRECTORY = "bundleAuditWorkingDirectory"; -1467/** -1468 * The CLI argument name for setting the path to mix_audit for Elixir -1469 * analysis. -1470 */ -1471publicstaticfinal String PATH_TO_MIX_AUDIT = "mixAudit"; -1472/** -1473 * The CLI argument to enable the experimental analyzers. -1474 */ -1475publicstaticfinal String EXPERIMENTAL = "enableExperimental"; -1476/** -1477 * The CLI argument to enable the retired analyzers. -1478 */ -1479publicstaticfinal String RETIRED = "enableRetired"; -1480/** -1481 * The CLI argument for the retire js content filters. -1482 */ -1483publicstaticfinal String RETIREJS_FILTERS = "retirejsFilter"; -1484/** -1485 * The CLI argument for the retire js content filters. -1486 */ -1487publicstaticfinal String RETIREJS_FILTER_NON_VULNERABLE = "retirejsFilterNonVulnerable"; -1488/** -1489 * The CLI argument for indicating if the Artifactory analyzer should be -1490 * enabled. -1491 */ -1492publicstaticfinal String ARTIFACTORY_ENABLED = "enableArtifactory"; -1493/** -1494 * The CLI argument for indicating if the Artifactory analyzer should -1495 * use the proxy. -1496 */ -1497publicstaticfinal String ARTIFACTORY_URL = "artifactoryUrl"; -1498/** -1499 * The CLI argument for indicating the Artifactory username. -1500 */ -1501publicstaticfinal String ARTIFACTORY_USERNAME = "artifactoryUsername"; -1502/** -1503 * The CLI argument for indicating the Artifactory API token. -1504 */ -1505publicstaticfinal String ARTIFACTORY_API_TOKEN = "artifactoryApiToken"; -1506/** -1507 * The CLI argument for indicating the Artifactory bearer token. -1508 */ -1509publicstaticfinal String ARTIFACTORY_BEARER_TOKEN = "artifactoryBearerToken"; -1510/** -1511 * The CLI argument for indicating if the Artifactory analyzer should -1512 * use the proxy. -1513 */ -1514publicstaticfinal String ARTIFACTORY_USES_PROXY = "artifactoryUseProxy"; -1515/** -1516 * The CLI argument for indicating if the Artifactory analyzer should -1517 * use the parallel analysis. -1518 */ -1519publicstaticfinal String ARTIFACTORY_PARALLEL_ANALYSIS = "artifactoryParallelAnalysis"; -1520/** -1521 * The CLI argument to configure when the execution should be considered -1522 * a failure. -1523 */ -1524publicstaticfinal String FAIL_ON_CVSS = "failOnCVSS"; -1525/** -1526 * The CLI argument to configure if the XML and JSON reports should be -1527 * pretty printed. -1528 */ -1529publicstaticfinal String PRETTY_PRINT = "prettyPrint"; -1530/** -1531 * The CLI argument to set the threshold that is considered a failure -1532 * when generating the JUNIT report format. -1533 */ -1534publicstaticfinal String FAIL_JUNIT_ON_CVSS = "junitFailOnCVSS"; -1535/** -1536 * The CLI argument to set the number of hours to wait before -1537 * re-checking hosted suppressions file for updates. -1538 */ -1539publicstaticfinal String DISABLE_HOSTED_SUPPRESSIONS = "disableHostedSuppressions"; -1540/** -1541 * The CLI argument to set the number of hours to wait before -1542 * re-checking hosted suppressions file for updates. -1543 */ -1544publicstaticfinal String HOSTED_SUPPRESSIONS_VALID_FOR_HOURS = "hostedSuppressionsValidForHours"; -1545/** -1546 * The CLI argument to set Whether the hosted suppressions file will -1547 * update regardless of the `noupdate` argument. -1548 */ -1549publicstaticfinal String HOSTED_SUPPRESSIONS_FORCEUPDATE = "hostedSuppressionsForceUpdate"; -1550/** -1551 * The CLI argument to set the location of a mirrored hosted -1552 * suppressions file . -1553 */ -1554publicstaticfinal String HOSTED_SUPPRESSIONS_URL = "hostedSuppressionsUrl"; -1555 } -1556 } +519 } +520 +521/** +522 * Adds the deprecated command line options to the given options collection. +523 * These are split out for purposes of not including them in the help +524 * message. We need to add the deprecated options so as not to break +525 * existing scripts. +526 * +527 * @param options a collection of command line arguments +528 */ +529 @SuppressWarnings({"static-access", "deprecation"}) +530privatevoid addDeprecatedOptions(final Options options) { +531//not a real option - but enables java debugging via the shell script +532 options.addOption(newOption("debug", +533"Used to enable java debugging of the cli via dependency-check.sh.")); +534 } +535 +536/** +537 * Determines if the 'version' command line argument was passed in. +538 * +539 * @return whether or not the 'version' command line argument was passed in +540 */ +541publicboolean isGetVersion() { +542return (line != null) && line.hasOption(ARGUMENT.VERSION); +543 } +544 +545/** +546 * Determines if the 'help' command line argument was passed in. +547 * +548 * @return whether or not the 'help' command line argument was passed in +549 */ +550publicboolean isGetHelp() { +551return (line != null) && line.hasOption(ARGUMENT.HELP); +552 } +553 +554/** +555 * Determines if the 'scan' command line argument was passed in. +556 * +557 * @return whether or not the 'scan' command line argument was passed in +558 */ +559publicboolean isRunScan() { +560return (line != null) && isValid && line.hasOption(ARGUMENT.SCAN); +561 } +562 +563/** +564 * Returns the symbolic link depth (how deeply symbolic links will be +565 * followed). +566 * +567 * @return the symbolic link depth +568 */ +569publicint getSymLinkDepth() { +570int value = 0; +571try { +572 value = Integer.parseInt(line.getOptionValue(ARGUMENT.SYM_LINK_DEPTH, "0")); +573if (value < 0) { +574 value = 0; +575 } +576 } catch (NumberFormatException ex) { +577 LOGGER.debug("Symbolic link was not a number"); +578 } +579return value; +580 } +581 +582/** +583 * Utility method to determine if one of the disable options has been set. +584 * If not set, this method will check the currently configured settings for +585 * the current value to return. +586 * <p> +587 * Example given `--disableArchive` on the command line would cause this +588 * method to return true for the disable archive setting. +589 * +590 * @param disableFlag the command line disable option +591 * @param setting the corresponding settings key +592 * @return true if the disable option was set, if not set the currently +593 * configured value will be returned +594 */ +595publicboolean isDisabled(String disableFlag, String setting) { +596if (line == null || !line.hasOption(disableFlag)) { +597try { +598return !settings.getBoolean(setting); +599 } catch (InvalidSettingException ise) { +600 LOGGER.warn("Invalid property setting '{}' defaulting to false", setting); +601return false; +602 } +603 } else { +604returntrue; +605 } +606 } +607 +608/** +609 * Returns true if the disableNodeAudit command line argument was specified. +610 * +611 * @return true if the disableNodeAudit command line argument was specified; +612 * otherwise false +613 */ +614publicboolean isNodeAuditDisabled() { +615return isDisabled(ARGUMENT.DISABLE_NODE_AUDIT, Settings.KEYS.ANALYZER_NODE_AUDIT_ENABLED); +616 } +617 +618/** +619 * Returns true if the disableYarnAudit command line argument was specified. +620 * +621 * @return true if the disableYarnAudit command line argument was specified; +622 * otherwise false +623 */ +624publicboolean isYarnAuditDisabled() { +625return isDisabled(ARGUMENT.DISABLE_YARN_AUDIT, Settings.KEYS.ANALYZER_YARN_AUDIT_ENABLED); +626 } +627 +628/** +629 * Returns true if the disablePnpmAudit command line argument was specified. +630 * +631 * @return true if the disablePnpmAudit command line argument was specified; +632 * otherwise false +633 */ +634publicboolean isPnpmAuditDisabled() { +635return isDisabled(ARGUMENT.DISABLE_PNPM_AUDIT, Settings.KEYS.ANALYZER_PNPM_AUDIT_ENABLED); +636 } +637 +638/** +639 * Returns true if the Nexus Analyzer should use the configured proxy to +640 * connect to Nexus; otherwise false is returned. +641 * +642 * @return true if the Nexus Analyzer should use the configured proxy to +643 * connect to Nexus; otherwise false +644 */ +645publicboolean isNexusUsesProxy() { +646// If they didn't specify whether Nexus needs to use the proxy, we should +647// still honor the property if it's set. +648if (line == null || !line.hasOption(ARGUMENT.NEXUS_USES_PROXY)) { +649try { +650return settings.getBoolean(Settings.KEYS.ANALYZER_NEXUS_USES_PROXY); +651 } catch (InvalidSettingException ise) { +652returntrue; +653 } +654 } else { +655return Boolean.parseBoolean(line.getOptionValue(ARGUMENT.NEXUS_USES_PROXY)); +656 } +657 } +658 +659/** +660 * Returns the argument boolean value. +661 * +662 * @param argument the argument +663 * @return the argument boolean value +664 */ +665 @SuppressFBWarnings(justification = "Accepting that this is a bad practice - used a Boolean as we needed three states", +666 value = {"NP_BOOLEAN_RETURN_NULL"}) +667public Boolean getBooleanArgument(String argument) { +668if (line != null && line.hasOption(argument)) { +669final String value = line.getOptionValue(argument); +670if (value != null) { +671return Boolean.parseBoolean(value); +672 } +673 } +674returnnull; +675 } +676 +677/** +678 * Returns the argument value for the given option. +679 * +680 * @param option the option +681 * @return the value of the argument +682 */ +683public String getStringArgument(String option) { +684return getStringArgument(option, null); +685 } +686 +687/** +688 * Returns the argument value for the given option. +689 * +690 * @param option the option +691 * @param key the dependency-check settings key for the option. +692 * @return the value of the argument +693 */ +694public String getStringArgument(String option, String key) { +695if (line != null && line.hasOption(option)) { +696if (key != null && (option.toLowerCase().endsWith("password") +697 || option.toLowerCase().endsWith("pass"))) { +698 LOGGER.warn("{} used on the command line, consider moving the password " +699 + "to a properties file using the key `{}` and using the " +700 + "--propertyfile argument instead", option, key); +701 } +702return line.getOptionValue(option); +703 } +704returnnull; +705 } +706 +707/** +708 * Returns the argument value for the given option. +709 * +710 * @param option the option +711 * @return the value of the argument +712 */ +713public String[] getStringArguments(String option) { +714if (line != null && line.hasOption(option)) { +715return line.getOptionValues(option); +716 } +717returnnull; +718 } +719 +720/** +721 * Returns the argument value for the given option. +722 * +723 * @param option the option +724 * @return the value of the argument +725 */ +726public File getFileArgument(String option) { +727final String path = line.getOptionValue(option); +728if (path != null) { +729returnnew File(path); +730 } +731returnnull; +732 } +733 +734/** +735 * Displays the command line help message to the standard output. +736 */ +737publicvoid printHelp() { +738final HelpFormatter formatter = new HelpFormatter(); +739final Options options = new Options(); +740 addStandardOptions(options); +741if (line != null && line.hasOption(ARGUMENT.ADVANCED_HELP)) { +742 addAdvancedOptions(options); +743 } +744final String helpMsg = String.format("%n%s" +745 + " can be used to identify if there are any known CVE vulnerabilities in libraries utilized by an application. " +746 + "%s will automatically update required data from the Internet, such as the CVE and CPE data files from nvd.nist.gov.%n%n", +747 settings.getString(Settings.KEYS.APPLICATION_NAME, "DependencyCheck"), +748 settings.getString(Settings.KEYS.APPLICATION_NAME, "DependencyCheck")); +749 +750 formatter.printHelp(settings.getString(Settings.KEYS.APPLICATION_NAME, "DependencyCheck"), +751 helpMsg, +752 options, +753"", +754true); +755 } +756 +757/** +758 * Retrieves the file command line parameter(s) specified for the 'scan' +759 * argument. +760 * +761 * @return the file paths specified on the command line for scan +762 */ +763public String[] getScanFiles() { +764return line.getOptionValues(ARGUMENT.SCAN); +765 } +766 +767/** +768 * Retrieves the list of excluded file patterns specified by the 'exclude' +769 * argument. +770 * +771 * @return the excluded file patterns +772 */ +773public String[] getExcludeList() { +774return line.getOptionValues(ARGUMENT.EXCLUDE); +775 } +776 +777/** +778 * Retrieves the list of retire JS content filters used to exclude JS files +779 * by content. +780 * +781 * @return the retireJS filters +782 */ +783public String[] getRetireJsFilters() { +784return line.getOptionValues(ARGUMENT.RETIREJS_FILTERS); +785 } +786 +787/** +788 * Returns whether or not the retireJS analyzer should exclude +789 * non-vulnerable JS from the report. +790 * +791 * @return <code>true</code> if non-vulnerable JS should be filtered in the +792 * RetireJS Analyzer; otherwise <code>null</code> +793 */ +794 @SuppressFBWarnings(justification = "Accepting that this is a bad practice - but made more sense in this use case", +795 value = {"NP_BOOLEAN_RETURN_NULL"}) +796public Boolean isRetireJsFilterNonVulnerable() { +797return (line != null && line.hasOption(ARGUMENT.RETIREJS_FILTER_NON_VULNERABLE)) ? true : null; +798 } +799 +800/** +801 * Returns the directory to write the reports to specified on the command +802 * line. +803 * +804 * @return the path to the reports directory. +805 */ +806public String getReportDirectory() { +807return line.getOptionValue(ARGUMENT.OUT, "."); +808 } +809 +810/** +811 * Returns the output format specified on the command line. Defaults to HTML +812 * if no format was specified. +813 * +814 * @return the output format name. +815 */ +816public String[] getReportFormat() { +817if (line.hasOption(ARGUMENT.OUTPUT_FORMAT)) { +818return line.getOptionValues(ARGUMENT.OUTPUT_FORMAT); +819 } +820returnnew String[]{"HTML"}; +821 } +822 +823/** +824 * Returns the application name specified on the command line. +825 * +826 * @return the application name. +827 */ +828public String getProjectName() { +829 String name = line.getOptionValue(ARGUMENT.PROJECT); +830if (name == null) { +831 name = ""; +832 } +833return name; +834 } +835 +836/** +837 * <p> +838 * Prints the manifest information to standard output.</p> +839 * <ul><li>Implementation-Title: ${pom.name}</li> +840 * <li>Implementation-Version: ${pom.version}</li></ul> +841 */ +842publicvoid printVersionInfo() { +843final String version = String.format("%s version %s", +844 settings.getString(Settings.KEYS.APPLICATION_NAME, "dependency-check"), +845 settings.getString(Settings.KEYS.APPLICATION_VERSION, "Unknown")); +846 System.out.println(version); +847 } +848 +849/** +850 * Checks if the update only flag has been set. +851 * +852 * @return <code>true</code> if the update only flag has been set; otherwise +853 * <code>false</code>. +854 */ +855publicboolean isUpdateOnly() { +856return line != null && line.hasOption(ARGUMENT.UPDATE_ONLY); +857 } +858 +859/** +860 * Checks if the purge NVD flag has been set. +861 * +862 * @return <code>true</code> if the purge nvd flag has been set; otherwise +863 * <code>false</code>. +864 */ +865publicboolean isPurge() { +866return line != null && line.hasOption(ARGUMENT.PURGE_NVD); +867 } +868 +869/** +870 * Returns the database driver name if specified; otherwise null is +871 * returned. +872 * +873 * @return the database driver name if specified; otherwise null is returned +874 */ +875public String getDatabaseDriverName() { +876return line.getOptionValue(ARGUMENT.DB_DRIVER); +877 } +878 +879/** +880 * Returns the argument value. +881 * +882 * @param argument the argument +883 * @return the value of the argument +884 */ +885public Integer getIntegerValue(String argument) { +886final String v = line.getOptionValue(argument); +887if (v != null) { +888return Integer.parseInt(v); +889 } +890returnnull; +891 } +892 +893/** +894 * Checks if the option is present. If present it will return +895 * <code>true</code>; otherwise <code>false</code>. +896 * +897 * @param option the option to check +898 * @return <code>true</code> if auto-update is allowed; otherwise +899 * <code>null</code> +900 */ +901 @SuppressFBWarnings(justification = "Accepting that this is a bad practice - but made more sense in this use case", +902 value = {"NP_BOOLEAN_RETURN_NULL"}) +903public Boolean hasOption(String option) { +904return (line != null && line.hasOption(option)) ? true : null; +905 } +906 +907/** +908 * Returns the CVSS value to fail on. +909 * +910 * @return 11 if nothing is set. Otherwise it returns the int passed from +911 * the command line arg +912 */ +913publicfloat getFailOnCVSS() { +914if (line.hasOption(ARGUMENT.FAIL_ON_CVSS)) { +915final String value = line.getOptionValue(ARGUMENT.FAIL_ON_CVSS); +916try { +917return Float.parseFloat(value); +918 } catch (NumberFormatException nfe) { +919return 11; +920 } +921 } else { +922return 11; +923 } +924 } +925 +926/** +927 * Returns the float argument for the given option. +928 * +929 * @param option the option +930 * @param defaultValue the value if the option is not present +931 * @return the value of the argument if present; otherwise the defaultValue +932 */ +933publicfloat getFloatArgument(String option, float defaultValue) { +934if (line.hasOption(option)) { +935final String value = line.getOptionValue(option); +936try { +937return Integer.parseInt(value); +938 } catch (NumberFormatException nfe) { +939return defaultValue; +940 } +941 } else { +942return defaultValue; +943 } +944 } +945 +946/** +947 * Builds a new option. +948 * +949 * @param name the long name +950 * @param description the description +951 * @return a new option +952 */ +953private Option newOption(String name, String description) { +954return Option.builder().longOpt(name).desc(description).build(); +955 } +956 +957/** +958 * Builds a new option. +959 * +960 * @param shortName the short name +961 * @param name the long name +962 * @param description the description +963 * @return a new option +964 */ +965private Option newOption(String shortName, String name, String description) { +966return Option.builder(shortName).longOpt(name).desc(description).build(); +967 } +968 +969/** +970 * Builds a new option. +971 * +972 * @param name the long name +973 * @param arg the argument name +974 * @param description the description +975 * @return a new option +976 */ +977private Option newOptionWithArg(String name, String arg, String description) { +978return Option.builder().longOpt(name).argName(arg).hasArg().desc(description).build(); +979 } +980 +981/** +982 * Builds a new option. +983 * +984 * @param shortName the short name +985 * @param name the long name +986 * @param arg the argument name +987 * @param description the description +988 * @return a new option +989 */ +990private Option newOptionWithArg(String shortName, String name, String arg, String description) { +991return Option.builder(shortName).longOpt(name).argName(arg).hasArg().desc(description).build(); +992 } +993 +994/** +995 * Builds a new option group so that an option can be specified multiple +996 * times on the command line. +997 * +998 * @param option the option to add to the group +999 * @return a new option group +1000 */ +1001private OptionGroup newOptionGroup(Option option) { +1002final OptionGroup group = new OptionGroup(); +1003 group.addOption(option); +1004return group; +1005 } +1006 +1007/** +1008 * A collection of static final strings that represent the possible command +1009 * line arguments. +1010 */ +1011publicstaticclassARGUMENT { +1012 +1013/** +1014 * The long CLI argument name specifying the directory/file to scan. +1015 */ +1016publicstaticfinal String SCAN = "scan"; +1017/** +1018 * The short CLI argument name specifying the directory/file to scan. +1019 */ +1020publicstaticfinal String SCAN_SHORT = "s"; +1021/** +1022 * The long CLI argument name specifying that the CPE/CVE/etc. data +1023 * should not be automatically updated. +1024 */ +1025publicstaticfinal String DISABLE_AUTO_UPDATE = "noupdate"; +1026/** +1027 * The short CLI argument name specifying that the CPE/CVE/etc. data +1028 * should not be automatically updated. +1029 */ +1030publicstaticfinal String DISABLE_AUTO_UPDATE_SHORT = "n"; +1031/** +1032 * The long CLI argument name specifying that only the update phase +1033 * should be executed; no scan should be run. +1034 */ +1035publicstaticfinal String UPDATE_ONLY = "updateonly"; +1036/** +1037 * The long CLI argument name specifying that only the update phase +1038 * should be executed; no scan should be run. +1039 */ +1040publicstaticfinal String PURGE_NVD = "purge"; +1041/** +1042 * The long CLI argument name specifying the directory to write the +1043 * reports to. +1044 */ +1045publicstaticfinal String OUT = "out"; +1046/** +1047 * The short CLI argument name specifying the directory to write the +1048 * reports to. +1049 */ +1050publicstaticfinal String OUT_SHORT = "o"; +1051/** +1052 * The long CLI argument name specifying the output format to write the +1053 * reports to. +1054 */ +1055publicstaticfinal String OUTPUT_FORMAT = "format"; +1056/** +1057 * The short CLI argument name specifying the output format to write the +1058 * reports to. +1059 */ +1060publicstaticfinal String OUTPUT_FORMAT_SHORT = "f"; +1061/** +1062 * The long CLI argument name specifying the name of the project to be +1063 * scanned. +1064 */ +1065publicstaticfinal String PROJECT = "project"; +1066/** +1067 * The long CLI argument name asking for help. +1068 */ +1069publicstaticfinal String HELP = "help"; +1070/** +1071 * The long CLI argument name asking for advanced help. +1072 */ +1073publicstaticfinal String ADVANCED_HELP = "advancedHelp"; +1074/** +1075 * The short CLI argument name asking for help. +1076 */ +1077publicstaticfinal String HELP_SHORT = "h"; +1078/** +1079 * The long CLI argument name asking for the version. +1080 */ +1081publicstaticfinal String VERSION_SHORT = "v"; +1082/** +1083 * The short CLI argument name asking for the version. +1084 */ +1085publicstaticfinal String VERSION = "version"; +1086/** +1087 * The CLI argument name indicating the proxy port. +1088 */ +1089publicstaticfinal String PROXY_PORT = "proxyport"; +1090/** +1091 * The CLI argument name indicating the proxy server. +1092 */ +1093publicstaticfinal String PROXY_SERVER = "proxyserver"; +1094/** +1095 * The CLI argument name indicating the proxy username. +1096 */ +1097publicstaticfinal String PROXY_USERNAME = "proxyuser"; +1098/** +1099 * The CLI argument name indicating the proxy password. +1100 */ +1101publicstaticfinal String PROXY_PASSWORD = "proxypass"; +1102/** +1103 * The CLI argument name indicating the proxy proxy exclusion list. +1104 */ +1105publicstaticfinal String NON_PROXY_HOSTS = "nonProxyHosts"; +1106/** +1107 * The short CLI argument name indicating the connection timeout. +1108 */ +1109publicstaticfinal String CONNECTION_TIMEOUT_SHORT = "c"; +1110/** +1111 * The CLI argument name indicating the connection timeout. +1112 */ +1113publicstaticfinal String CONNECTION_TIMEOUT = "connectiontimeout"; +1114/** +1115 * The CLI argument name indicating the connection read timeout. +1116 */ +1117publicstaticfinal String CONNECTION_READ_TIMEOUT = "readtimeout"; +1118/** +1119 * The short CLI argument name for setting the location of an additional +1120 * properties file. +1121 */ +1122publicstaticfinal String PROP_SHORT = "P"; +1123/** +1124 * The CLI argument name for setting the location of an additional +1125 * properties file. +1126 */ +1127publicstaticfinal String PROP = "propertyfile"; +1128/** +1129 * The CLI argument name for setting the location of the data directory. +1130 */ +1131publicstaticfinal String DATA_DIRECTORY = "data"; +1132/** +1133 * The CLI argument name for setting the URL for the NVD API Endpoint +1134 */ +1135publicstaticfinal String NVD_API_ENDPOINT = "nvdApiEndpoint"; +1136/** +1137 * The CLI argument name for setting the URL for the NVD API Key. +1138 */ +1139publicstaticfinal String NVD_API_KEY = "nvdApiKey"; +1140/** +1141 * The CLI argument name for setting the maximum number of retry requests for a single call to the NVD API. +1142 */ +1143publicstaticfinal String NVD_API_MAX_RETRY_COUNT = "nvdMaxRetryCount"; +1144/** +1145 * The CLI argument name for setting the number of hours to wait before +1146 * checking for new updates from the NVD. +1147 */ +1148publicstaticfinal String NVD_API_VALID_FOR_HOURS = "nvdValidForHours"; +1149/** +1150 * The CLI argument name for the NVD API Data Feed URL. +1151 */ +1152publicstaticfinal String NVD_API_DATAFEED_URL = "nvdDatafeed"; +1153/** +1154 * The username for basic auth to the CVE data. +1155 */ +1156publicstaticfinal String NVD_API_DATAFEED_USER = "nvdUser"; +1157/** +1158 * The password for basic auth to the CVE data. +1159 */ +1160publicstaticfinal String NVD_API_DATAFEED_PASSWORD = "nvdPassword"; +1161/** +1162 * The time in milliseconds to wait between downloading NVD API data. +1163 */ +1164publicstaticfinal String NVD_API_DELAY = "nvdApiDelay"; +1165/** +1166 * The short CLI argument name for setting the location of the data +1167 * directory. +1168 */ +1169publicstaticfinal String DATA_DIRECTORY_SHORT = "d"; +1170/** +1171 * The CLI argument name for setting the location of the data directory. +1172 */ +1173publicstaticfinal String VERBOSE_LOG = "log"; +1174/** +1175 * The short CLI argument name for setting the location of the data +1176 * directory. +1177 */ +1178publicstaticfinal String VERBOSE_LOG_SHORT = "l"; +1179/** +1180 * The CLI argument name for setting the depth of symbolic links that +1181 * will be followed. +1182 */ +1183publicstaticfinal String SYM_LINK_DEPTH = "symLink"; +1184/** +1185 * The CLI argument name for setting the location of the suppression +1186 * file(s). +1187 */ +1188publicstaticfinal String SUPPRESSION_FILES = "suppression"; +1189/** +1190 * The CLI argument name for setting the location of the hint file. +1191 */ +1192publicstaticfinal String HINTS_FILE = "hints"; +1193/** +1194 * Disables the Jar Analyzer. +1195 */ +1196publicstaticfinal String DISABLE_JAR = "disableJar"; +1197/** +1198 * Disable the MS Build Analyzer. +1199 */ +1200publicstaticfinal String DISABLE_MSBUILD = "disableMSBuild"; +1201/** +1202 * Disables the Archive Analyzer. +1203 */ +1204publicstaticfinal String DISABLE_ARCHIVE = "disableArchive"; +1205/** +1206 * Disables the Known Exploited Analyzer. +1207 */ +1208publicstaticfinal String DISABLE_KEV = "disableKnownExploited"; +1209/** +1210 * The URL to the CISA Known Exploited Vulnerability JSON datafeed. +1211 */ +1212publicstaticfinal String KEV_URL = "kevURL"; +1213/** +1214 * Disables the Python Distribution Analyzer. +1215 */ +1216publicstaticfinal String DISABLE_PY_DIST = "disablePyDist"; +1217/** +1218 * Disables the Python Package Analyzer. +1219 */ +1220publicstaticfinal String DISABLE_PY_PKG = "disablePyPkg"; +1221/** +1222 * Disables the Elixir mix audit Analyzer. +1223 */ +1224publicstaticfinal String DISABLE_MIX_AUDIT = "disableMixAudit"; +1225/** +1226 * Disables the Golang Dependency Analyzer. +1227 */ +1228publicstaticfinal String DISABLE_GO_DEP = "disableGolangDep"; +1229/** +1230 * Disables the PHP Composer Analyzer. +1231 */ +1232publicstaticfinal String DISABLE_COMPOSER = "disableComposer"; +1233/** +1234 * Disables the Perl CPAN File Analyzer. +1235 */ +1236publicstaticfinal String DISABLE_CPAN = "disableCpan"; +1237/** +1238 * Disables the Golang Mod Analyzer. +1239 */ +1240publicstaticfinal String DISABLE_GOLANG_MOD = "disableGolangMod"; +1241/** +1242 * Disables the Dart Analyzer. +1243 */ +1244publicstaticfinal String DISABLE_DART = "disableDart"; +1245/** +1246 * The CLI argument name for setting the path to `go`. +1247 */ +1248publicstaticfinal String PATH_TO_GO = "go"; +1249/** +1250 * The CLI argument name for setting the path to `yarn`. +1251 */ +1252publicstaticfinal String PATH_TO_YARN = "yarn"; +1253/** +1254 * The CLI argument name for setting the path to `pnpm`. +1255 */ +1256publicstaticfinal String PATH_TO_PNPM = "pnpm"; +1257/** +1258 * Disables the Ruby Gemspec Analyzer. +1259 */ +1260publicstaticfinal String DISABLE_RUBYGEMS = "disableRubygems"; +1261/** +1262 * Disables the Autoconf Analyzer. +1263 */ +1264publicstaticfinal String DISABLE_AUTOCONF = "disableAutoconf"; +1265/** +1266 * Disables the Maven install Analyzer. +1267 */ +1268publicstaticfinal String DISABLE_MAVEN_INSTALL = "disableMavenInstall"; +1269/** +1270 * Disables the pip Analyzer. +1271 */ +1272publicstaticfinal String DISABLE_PIP = "disablePip"; +1273/** +1274 * Disables the Pipfile Analyzer. +1275 */ +1276publicstaticfinal String DISABLE_PIPFILE = "disablePipfile"; +1277/** +1278 * Disables the Poetry Analyzer. +1279 */ +1280publicstaticfinal String DISABLE_POETRY = "disablePoetry"; +1281/** +1282 * Disables the Cmake Analyzer. +1283 */ +1284publicstaticfinal String DISABLE_CMAKE = "disableCmake"; +1285/** +1286 * Disables the cocoapods analyzer. +1287 */ +1288publicstaticfinal String DISABLE_COCOAPODS = "disableCocoapodsAnalyzer"; +1289/** +1290 * Disables the swift package manager analyzer. +1291 */ +1292publicstaticfinal String DISABLE_SWIFT = "disableSwiftPackageManagerAnalyzer"; +1293/** +1294 * Disables the swift package resolved analyzer. +1295 */ +1296publicstaticfinal String DISABLE_SWIFT_RESOLVED = "disableSwiftPackageResolvedAnalyzer"; +1297/** +1298 * Disables the Assembly Analyzer. +1299 */ +1300publicstaticfinal String DISABLE_ASSEMBLY = "disableAssembly"; +1301/** +1302 * Disables the Ruby Bundler Audit Analyzer. +1303 */ +1304publicstaticfinal String DISABLE_BUNDLE_AUDIT = "disableBundleAudit"; +1305/** +1306 * Disables the File Name Analyzer. +1307 */ +1308publicstaticfinal String DISABLE_FILENAME = "disableFileName"; +1309/** +1310 * Disables the Nuspec Analyzer. +1311 */ +1312publicstaticfinal String DISABLE_NUSPEC = "disableNuspec"; +1313/** +1314 * Disables the Nuget packages.config Analyzer. +1315 */ +1316publicstaticfinal String DISABLE_NUGETCONF = "disableNugetconf"; +1317/** +1318 * Disables the Central Analyzer. +1319 */ +1320publicstaticfinal String DISABLE_CENTRAL = "disableCentral"; +1321/** +1322 * Disables the Central Analyzer's ability to cache results locally. +1323 */ +1324publicstaticfinal String DISABLE_CENTRAL_CACHE = "disableCentralCache"; +1325/** +1326 * The alternative URL for Maven Central Search. +1327 */ +1328publicstaticfinal String CENTRAL_URL = "centralUrl"; +1329/** +1330 * Disables the Nexus Analyzer. +1331 */ +1332publicstaticfinal String ENABLE_NEXUS = "enableNexus"; +1333/** +1334 * Disables the Sonatype OSS Index Analyzer. +1335 */ +1336publicstaticfinal String DISABLE_OSSINDEX = "disableOssIndex"; +1337/** +1338 * Disables the Sonatype OSS Index Analyzer's ability to cache results +1339 * locally. +1340 */ +1341publicstaticfinal String DISABLE_OSSINDEX_CACHE = "disableOssIndexCache"; +1342/** +1343 * The alternative URL for the Sonatype OSS Index. +1344 */ +1345publicstaticfinal String OSSINDEX_URL = "ossIndexUrl"; +1346/** +1347 * The username for the Sonatype OSS Index. +1348 */ +1349publicstaticfinal String OSSINDEX_USERNAME = "ossIndexUsername"; +1350/** +1351 * The password for the Sonatype OSS Index. +1352 */ +1353publicstaticfinal String OSSINDEX_PASSWORD = "ossIndexPassword"; +1354/** +1355 * The password for the Sonatype OSS Index. +1356 */ +1357publicstaticfinal String OSSINDEX_WARN_ONLY_ON_REMOTE_ERRORS = "ossIndexRemoteErrorWarnOnly"; +1358/** +1359 * Disables the OpenSSL Analyzer. +1360 */ +1361publicstaticfinal String DISABLE_OPENSSL = "disableOpenSSL"; +1362/** +1363 * Disables the Node.js Package Analyzer. +1364 */ +1365publicstaticfinal String DISABLE_NODE_JS = "disableNodeJS"; +1366/** +1367 * Skips dev dependencies in Node Package Analyzer. +1368 */ +1369publicstaticfinal String NODE_PACKAGE_SKIP_DEV_DEPENDENCIES = "nodePackageSkipDevDependencies"; +1370/** +1371 * Disables the Node Audit Analyzer. +1372 */ +1373publicstaticfinal String DISABLE_NODE_AUDIT = "disableNodeAudit"; +1374/** +1375 * Disables the Yarn Audit Analyzer. +1376 */ +1377publicstaticfinal String DISABLE_YARN_AUDIT = "disableYarnAudit"; +1378/** +1379 * Disables the Pnpm Audit Analyzer. +1380 */ +1381publicstaticfinal String DISABLE_PNPM_AUDIT = "disablePnpmAudit"; +1382/** +1383 * Disables the Node Audit Analyzer's ability to cache results locally. +1384 */ +1385publicstaticfinal String DISABLE_NODE_AUDIT_CACHE = "disableNodeAuditCache"; +1386/** +1387 * Configures the Node Audit Analyzer to skip the dev dependencies. +1388 */ +1389publicstaticfinal String DISABLE_NODE_AUDIT_SKIPDEV = "nodeAuditSkipDevDependencies"; +1390/** +1391 * Disables the RetireJS Analyzer. +1392 */ +1393publicstaticfinal String DISABLE_RETIRE_JS = "disableRetireJS"; +1394/** +1395 * Whether the RetireJS Analyzer will update regardless of the +1396 * `autoupdate` setting. +1397 */ +1398publicstaticfinal String RETIRE_JS_FORCEUPDATE = "retireJsForceUpdate"; +1399/** +1400 * The URL to the retire JS repository. +1401 */ +1402publicstaticfinal String RETIREJS_URL = "retireJsUrl"; +1403/** +1404 * The username to the retire JS repository. +1405 */ +1406publicstaticfinal String RETIREJS_URL_USER = "retireJsUrlUser"; +1407/** +1408 * The password to the retire JS repository. +1409 */ +1410publicstaticfinal String RETIREJS_URL_PASSWORD = "retireJsUrlPass"; +1411/** +1412 * The URL of the nexus server. +1413 */ +1414publicstaticfinal String NEXUS_URL = "nexus"; +1415/** +1416 * The username for the nexus server. +1417 */ +1418publicstaticfinal String NEXUS_USERNAME = "nexusUser"; +1419/** +1420 * The password for the nexus server. +1421 */ +1422publicstaticfinal String NEXUS_PASSWORD = "nexusPass"; +1423/** +1424 * Whether or not the defined proxy should be used when connecting to +1425 * Nexus. +1426 */ +1427publicstaticfinal String NEXUS_USES_PROXY = "nexusUsesProxy"; +1428/** +1429 * The CLI argument name for setting the connection string. +1430 */ +1431publicstaticfinal String CONNECTION_STRING = "connectionString"; +1432/** +1433 * The CLI argument name for setting the database user name. +1434 */ +1435publicstaticfinal String DB_NAME = "dbUser"; +1436/** +1437 * The CLI argument name for setting the database password. +1438 */ +1439publicstaticfinal String DB_PASSWORD = "dbPassword"; +1440/** +1441 * The CLI argument name for setting the database driver name. +1442 */ +1443publicstaticfinal String DB_DRIVER = "dbDriverName"; +1444/** +1445 * The CLI argument name for setting the path to the database driver; in +1446 * case it is not on the class path. +1447 */ +1448publicstaticfinal String DB_DRIVER_PATH = "dbDriverPath"; +1449/** +1450 * The CLI argument name for setting the path to dotnet core. +1451 */ +1452publicstaticfinal String PATH_TO_CORE = "dotnet"; +1453/** +1454 * The CLI argument name for setting extra extensions. +1455 */ +1456publicstaticfinal String ADDITIONAL_ZIP_EXTENSIONS = "zipExtensions"; +1457/** +1458 * Exclude path argument. +1459 */ +1460publicstaticfinal String EXCLUDE = "exclude"; +1461/** +1462 * The CLI argument name for setting the path to bundle-audit for Ruby +1463 * bundle analysis. +1464 */ +1465publicstaticfinal String PATH_TO_BUNDLE_AUDIT = "bundleAudit"; +1466/** +1467 * The CLI argument name for setting the path that should be used as the +1468 * working directory that the bundle-audit command used for Ruby bundle +1469 * analysis should be executed from. This will allow for the usage of +1470 * rbenv +1471 */ +1472publicstaticfinal String PATH_TO_BUNDLE_AUDIT_WORKING_DIRECTORY = "bundleAuditWorkingDirectory"; +1473/** +1474 * The CLI argument name for setting the path to mix_audit for Elixir +1475 * analysis. +1476 */ +1477publicstaticfinal String PATH_TO_MIX_AUDIT = "mixAudit"; +1478/** +1479 * The CLI argument to enable the experimental analyzers. +1480 */ +1481publicstaticfinal String EXPERIMENTAL = "enableExperimental"; +1482/** +1483 * The CLI argument to enable the retired analyzers. +1484 */ +1485publicstaticfinal String RETIRED = "enableRetired"; +1486/** +1487 * The CLI argument for the retire js content filters. +1488 */ +1489publicstaticfinal String RETIREJS_FILTERS = "retirejsFilter"; +1490/** +1491 * The CLI argument for the retire js content filters. +1492 */ +1493publicstaticfinal String RETIREJS_FILTER_NON_VULNERABLE = "retirejsFilterNonVulnerable"; +1494/** +1495 * The CLI argument for indicating if the Artifactory analyzer should be +1496 * enabled. +1497 */ +1498publicstaticfinal String ARTIFACTORY_ENABLED = "enableArtifactory"; +1499/** +1500 * The CLI argument for indicating if the Artifactory analyzer should +1501 * use the proxy. +1502 */ +1503publicstaticfinal String ARTIFACTORY_URL = "artifactoryUrl"; +1504/** +1505 * The CLI argument for indicating the Artifactory username. +1506 */ +1507publicstaticfinal String ARTIFACTORY_USERNAME = "artifactoryUsername"; +1508/** +1509 * The CLI argument for indicating the Artifactory API token. +1510 */ +1511publicstaticfinal String ARTIFACTORY_API_TOKEN = "artifactoryApiToken"; +1512/** +1513 * The CLI argument for indicating the Artifactory bearer token. +1514 */ +1515publicstaticfinal String ARTIFACTORY_BEARER_TOKEN = "artifactoryBearerToken"; +1516/** +1517 * The CLI argument for indicating if the Artifactory analyzer should +1518 * use the proxy. +1519 */ +1520publicstaticfinal String ARTIFACTORY_USES_PROXY = "artifactoryUseProxy"; +1521/** +1522 * The CLI argument for indicating if the Artifactory analyzer should +1523 * use the parallel analysis. +1524 */ +1525publicstaticfinal String ARTIFACTORY_PARALLEL_ANALYSIS = "artifactoryParallelAnalysis"; +1526/** +1527 * The CLI argument to configure when the execution should be considered +1528 * a failure. +1529 */ +1530publicstaticfinal String FAIL_ON_CVSS = "failOnCVSS"; +1531/** +1532 * The CLI argument to configure if the XML and JSON reports should be +1533 * pretty printed. +1534 */ +1535publicstaticfinal String PRETTY_PRINT = "prettyPrint"; +1536/** +1537 * The CLI argument to set the threshold that is considered a failure +1538 * when generating the JUNIT report format. +1539 */ +1540publicstaticfinal String FAIL_JUNIT_ON_CVSS = "junitFailOnCVSS"; +1541/** +1542 * The CLI argument to set the number of hours to wait before +1543 * re-checking hosted suppressions file for updates. +1544 */ +1545publicstaticfinal String DISABLE_HOSTED_SUPPRESSIONS = "disableHostedSuppressions"; +1546/** +1547 * The CLI argument to set the number of hours to wait before +1548 * re-checking hosted suppressions file for updates. +1549 */ +1550publicstaticfinal String HOSTED_SUPPRESSIONS_VALID_FOR_HOURS = "hostedSuppressionsValidForHours"; +1551/** +1552 * The CLI argument to set Whether the hosted suppressions file will +1553 * update regardless of the `noupdate` argument. +1554 */ +1555publicstaticfinal String HOSTED_SUPPRESSIONS_FORCEUPDATE = "hostedSuppressionsForceUpdate"; +1556/** +1557 * The CLI argument to set the location of a mirrored hosted +1558 * suppressions file . +1559 */ +1560publicstaticfinal String HOSTED_SUPPRESSIONS_URL = "hostedSuppressionsUrl"; +1561 } +1562 }
    diff --git a/dependency-check-cli/xref/org/owasp/dependencycheck/package-frame.html b/dependency-check-cli/xref/org/owasp/dependencycheck/package-frame.html index f3f1acacea5..d3707267855 100644 --- a/dependency-check-cli/xref/org/owasp/dependencycheck/package-frame.html +++ b/dependency-check-cli/xref/org/owasp/dependencycheck/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Command Line 9.0.4 Reference Package org.owasp.dependencycheck + Dependency-Check Command Line 9.0.5 Reference Package org.owasp.dependencycheck diff --git a/dependency-check-cli/xref/org/owasp/dependencycheck/package-summary.html b/dependency-check-cli/xref/org/owasp/dependencycheck/package-summary.html index 5c4c441a472..6370d621f0d 100644 --- a/dependency-check-cli/xref/org/owasp/dependencycheck/package-summary.html +++ b/dependency-check-cli/xref/org/owasp/dependencycheck/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Command Line 9.0.4 Reference Package org.owasp.dependencycheck + Dependency-Check Command Line 9.0.5 Reference Package org.owasp.dependencycheck diff --git a/dependency-check-cli/xref/overview-frame.html b/dependency-check-cli/xref/overview-frame.html index 6e6d89ec409..9abc543aaef 100644 --- a/dependency-check-cli/xref/overview-frame.html +++ b/dependency-check-cli/xref/overview-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Command Line 9.0.4 Reference + Dependency-Check Command Line 9.0.5 Reference diff --git a/dependency-check-cli/xref/overview-summary.html b/dependency-check-cli/xref/overview-summary.html index cd96093a655..12ca852daae 100644 --- a/dependency-check-cli/xref/overview-summary.html +++ b/dependency-check-cli/xref/overview-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Command Line 9.0.4 Reference + Dependency-Check Command Line 9.0.5 Reference @@ -24,7 +24,7 @@ -

    Dependency-Check Command Line 9.0.4 Reference

    +

    Dependency-Check Command Line 9.0.5 Reference

    diff --git a/dependency-check-core/apidocs/allclasses-frame.html b/dependency-check-core/apidocs/allclasses-frame.html index 1b815d0cac8..a294c463293 100644 --- a/dependency-check-core/apidocs/allclasses-frame.html +++ b/dependency-check-core/apidocs/allclasses-frame.html @@ -4,7 +4,7 @@ -All Classes (Dependency-Check Core 9.0.4 API) +All Classes (Dependency-Check Core 9.0.5 API) @@ -172,6 +172,7 @@

    All Classes

  • NuspecAnalyzer
  • NuspecParseException
  • NvdApiDataSource
  • +
  • NvdApiDataSource.UrlData
  • NvdApiProcessor
  • NvdCveAnalyzer
  • ODCConnectionTransport
  • diff --git a/dependency-check-core/apidocs/allclasses-noframe.html b/dependency-check-core/apidocs/allclasses-noframe.html index 012e37cf228..b8ef8b0323a 100644 --- a/dependency-check-core/apidocs/allclasses-noframe.html +++ b/dependency-check-core/apidocs/allclasses-noframe.html @@ -4,7 +4,7 @@ -All Classes (Dependency-Check Core 9.0.4 API) +All Classes (Dependency-Check Core 9.0.5 API) @@ -172,6 +172,7 @@

    All Classes

  • NuspecAnalyzer
  • NuspecParseException
  • NvdApiDataSource
  • +
  • NvdApiDataSource.UrlData
  • NvdApiProcessor
  • NvdCveAnalyzer
  • ODCConnectionTransport
  • diff --git a/dependency-check-core/apidocs/argfile b/dependency-check-core/apidocs/argfile index 80e1987077f..1d5065129a4 100644 --- a/dependency-check-core/apidocs/argfile +++ b/dependency-check-core/apidocs/argfile @@ -1,273 +1,273 @@ -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/xml/XmlInputStream.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/xml/XmlEntity.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/xml/package-info.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/xml/suppression/SuppressionErrorHandler.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/xml/suppression/SuppressionParser.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/xml/suppression/package-info.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/xml/suppression/SuppressionHandler.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/xml/suppression/SuppressionRule.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/xml/suppression/SuppressionParseException.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/xml/suppression/PropertyType.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/xml/assembly/GrokParser.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/xml/assembly/GrokHandler.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/xml/assembly/GrokErrorHandler.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/xml/assembly/package-info.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/xml/assembly/AssemblyData.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/xml/assembly/GrokParseException.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/xml/pom/License.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/xml/pom/package-info.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/xml/pom/PomParseException.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/xml/pom/Developer.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/xml/pom/PomUtils.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/xml/pom/PomProjectInputStream.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/xml/pom/Model.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/xml/pom/PomHandler.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/xml/pom/PomParser.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/xml/hints/VendorDuplicatingHintRule.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/xml/hints/EvidenceMatcher.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/xml/hints/HintRule.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/xml/hints/package-info.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/xml/hints/HintParseException.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/xml/hints/HintParser.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/xml/hints/HintHandler.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/xml/hints/HintErrorHandler.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/agent/package-info.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/agent/DependencyCheckScanAgent.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/utils/DBUtils.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/utils/WriteLock.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/utils/Utils.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/utils/ExtractionUtil.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/utils/WriteLockShutdownHook.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/utils/Filter.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/utils/package-info.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/utils/Pair.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/utils/PEParser.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/utils/FileFilterBuilder.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/utils/CvssUtil.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/utils/InterpolationUtil.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/utils/WriteLockShutdownHookFactory.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/utils/DateUtil.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/utils/SeverityUtil.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/utils/UrlStringUtils.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/utils/DependencyVersionUtil.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/utils/PyPACoreMetadataParser.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/utils/WriteLockCleanupHook.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/utils/DependencyVersion.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/dependency/EvidenceCollection.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/dependency/EvidenceType.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/dependency/VulnerableSoftwareBuilder.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/dependency/package-info.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/dependency/Dependency.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/dependency/CweSet.java' '/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/dependency/IncludedByReference.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/dependency/Reference.java' '/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/dependency/Evidence.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/dependency/Reference.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/dependency/Vulnerability.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/dependency/VulnerableSoftware.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/dependency/Confidence.java' '/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/dependency/naming/GenericIdentifier.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/dependency/naming/Identifier.java' '/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/dependency/naming/package-info.java' '/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/dependency/naming/PurlIdentifier.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/dependency/naming/Identifier.java' '/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/dependency/naming/CpeIdentifier.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/dependency/CweSet.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/dependency/VulnerableSoftware.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/dependency/package-info.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/dependency/VulnerableSoftwareBuilder.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/dependency/Confidence.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/dependency/EvidenceType.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/dependency/Dependency.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/dependency/EvidenceCollection.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/dependency/Vulnerability.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/package-info.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/Engine.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/exception/ParseException.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/exception/ReportException.java' '/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/exception/DependencyNotFoundException.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/exception/WriteLockException.java' '/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/exception/package-info.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/exception/ExceptionCollection.java' '/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/exception/InitializationException.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/exception/ParseException.java' '/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/exception/NoDataException.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/exception/ReportException.java' '/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/exception/ScanAgentException.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/exception/WriteLockException.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/exception/ExceptionCollection.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/Engine.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/processing/package-info.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/processing/GoModProcessor.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/processing/MixAuditProcessor.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/processing/BundlerAuditProcessor.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/processing/GrokAssemblyProcessor.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/AbstractDependencyComparingAnalyzer.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/VulnerabilitySuppressionAnalyzer.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/CpeSuppressionAnalyzer.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/HintAnalyzer.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/NvdCveAnalyzer.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/NuspecAnalyzer.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/VersionFilterAnalyzer.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/YarnAuditAnalyzer.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/RubyBundlerAnalyzer.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/PnpmAuditAnalyzer.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/RetireJsAnalyzer.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/exception/ArchiveExtractionException.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/exception/package-info.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/exception/UnexpectedAnalysisException.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/exception/AnalysisException.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/exception/LambdaExceptionWrapper.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/exception/SearchException.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/AnalysisPhase.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/CPEAnalyzer.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/PerlCpanfileAnalyzer.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/UnusedSuppressionRuleAnalyzer.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/KnownExploitedVulnerabilityAnalyzer.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/PoetryAnalyzer.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/NugetconfAnalyzer.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/GolangModAnalyzer.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/NodeAuditAnalyzer.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/LibmanAnalyzer.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/package-info.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/DependencyMergingAnalyzer.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/AnalyzerService.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/OpenSSLAnalyzer.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/RubyGemspecAnalyzer.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/ElixirMixAuditAnalyzer.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/CentralAnalyzer.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/ArchiveAnalyzer.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/PipfilelockAnalyzer.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/ComposerLockAnalyzer.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/RubyBundleAuditAnalyzer.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/FalsePositiveAnalyzer.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/JarAnalyzer.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/PythonDistributionAnalyzer.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/FileTypeAnalyzer.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/ArtifactoryAnalyzer.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/DartAnalyzer.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/AutoconfAnalyzer.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/PythonPackageAnalyzer.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/GolangDepAnalyzer.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/PEAnalyzer.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/SwiftPackageResolvedAnalyzer.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/Retired.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/AbstractAnalyzer.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/PipfileAnalyzer.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/SwiftPackageManagerAnalyzer.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/AbstractNpmAnalyzer.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/CMakeAnalyzer.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/PinnedMavenInstallAnalyzer.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/AbstractSuppressionAnalyzer.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/PipAnalyzer.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/Experimental.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/NexusAnalyzer.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/NpmCPEAnalyzer.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/FileNameAnalyzer.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/AssemblyAnalyzer.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/Analyzer.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/DependencyBundlingAnalyzer.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/OssIndexAnalyzer.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/AbstractFileTypeAnalyzer.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/NodePackageAnalyzer.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/CocoaPodsAnalyzer.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/MSBuildProjectAnalyzer.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/package-info.java' '/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/AnalysisTask.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/agent/DependencyCheckScanAgent.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/agent/package-info.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/xml/XmlInputStream.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/xml/suppression/package-info.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/xml/suppression/SuppressionParser.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/xml/suppression/SuppressionHandler.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/xml/suppression/SuppressionErrorHandler.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/xml/suppression/PropertyType.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/xml/suppression/SuppressionRule.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/xml/suppression/SuppressionParseException.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/xml/hints/VendorDuplicatingHintRule.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/xml/hints/HintParseException.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/xml/hints/HintHandler.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/xml/hints/package-info.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/xml/hints/HintRule.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/xml/hints/HintErrorHandler.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/xml/hints/EvidenceMatcher.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/xml/hints/HintParser.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/xml/package-info.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/xml/XmlEntity.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/xml/assembly/GrokParser.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/xml/assembly/GrokParseException.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/xml/assembly/package-info.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/xml/assembly/GrokErrorHandler.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/xml/assembly/GrokHandler.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/xml/assembly/AssemblyData.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/xml/pom/PomUtils.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/xml/pom/Developer.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/xml/pom/package-info.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/xml/pom/License.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/xml/pom/PomProjectInputStream.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/xml/pom/PomParser.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/xml/pom/PomParseException.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/xml/pom/Model.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/xml/pom/PomHandler.java' '/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/reporting/ReportGenerator.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/reporting/SarifRule.java' '/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/reporting/package-info.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/reporting/SarifRule.java' '/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/reporting/EscapeTool.java' '/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/reporting/ReportTool.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/processing/GoModProcessor.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/processing/GrokAssemblyProcessor.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/processing/BundlerAuditProcessor.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/processing/package-info.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/processing/MixAuditProcessor.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/utils/UrlStringUtils.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/utils/DependencyVersionUtil.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/utils/Filter.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/utils/CvssUtil.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/utils/PEParser.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/utils/WriteLock.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/utils/Pair.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/utils/package-info.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/utils/DBUtils.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/utils/PyPACoreMetadataParser.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/utils/DateUtil.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/utils/DependencyVersion.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/utils/WriteLockShutdownHook.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/utils/ExtractionUtil.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/utils/InterpolationUtil.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/utils/WriteLockCleanupHook.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/utils/FileFilterBuilder.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/utils/WriteLockShutdownHookFactory.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/utils/Utils.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/utils/SeverityUtil.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/central/CentralSearch.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/central/package-info.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/cache/package-info.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/cache/DataCacheFactory.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/cache/DataCache.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/elixir/package-info.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/elixir/MixAuditResult.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/elixir/MixAuditJsonParser.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/composer/ComposerException.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/composer/package-info.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/composer/ComposerDependency.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/composer/ComposerLockParser.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/cwe/App.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/cwe/CweDB.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/cwe/CweHandler.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/cwe/package-info.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/artifactory/ItemImpl.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/artifactory/ChecksumsImpl.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/artifactory/package-info.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/artifactory/FileImpl.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/artifactory/ArtifactorySearch.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/cpe/IndexException.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/cpe/Fields.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/cpe/NpmCpeMemoryIndex.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/cpe/IndexEntry.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/cpe/package-info.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/cpe/MemoryIndex.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/cpe/AbstractMemoryIndex.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/cpe/CpeMemoryIndex.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/nexus/package-info.java' '/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/nexus/MavenArtifact.java' '/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/nexus/NexusV3Search.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/nexus/NexusSearch.java' '/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/nexus/NexusV2Search.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/nexus/package-info.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/update/UpdateService.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/update/HostedSuppressionsDataSource.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/update/cisa/KnownExploitedVulnerabilityParser.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/update/cisa/package-info.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/update/nvd/api/DownloadTask.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/update/nvd/api/package-info.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/update/nvd/api/NvdApiProcessor.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/update/package-info.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/update/NvdApiDataSource.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/update/KnownExploitedDataSource.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/update/exception/UpdateException.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/update/exception/package-info.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/update/exception/CorruptedDatastreamException.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/update/exception/InvalidDataException.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/update/CachedWebDataSource.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/update/EngineVersionCheck.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/update/cpe/CpeEcosystemCache.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/update/cpe/package-info.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/update/cpe/CpePlus.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/update/RetireJSDataSource.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/artifactory/ChecksumsImpl.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/artifactory/ArtifactorySearch.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/artifactory/FileImpl.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/artifactory/package-info.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/artifactory/ItemImpl.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/nexus/NexusSearch.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/nuget/XPathNugetconfParser.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/nuget/NugetconfParseException.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/nuget/XPathNuspecParser.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/nuget/package-info.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/nuget/DirectoryBuildPropsParser.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/nuget/MSBuildProjectParseException.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/nuget/NugetPackageReference.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/nuget/DirectoryPackagesPropsParser.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/nuget/XPathMSBuildProjectParser.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/nuget/NuspecParseException.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/nuget/NugetPackage.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/central/package-info.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/central/CentralSearch.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/nvd/ecosystem/FileExtensionHint.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/nvd/ecosystem/StringAhoCorasickDoubleArrayTrie.java' '/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/nvd/ecosystem/DescriptionKeywordHint.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/nvd/ecosystem/UrlHostHint.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/nvd/ecosystem/Ecosystem.java' '/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/nvd/ecosystem/package-info.java' '/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/nvd/ecosystem/UrlPathHint.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/nvd/ecosystem/Ecosystem.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/nvd/ecosystem/StringAhoCorasickDoubleArrayTrie.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/nvd/ecosystem/UrlEcosystemMapper.java' '/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/nvd/ecosystem/EcosystemHintNature.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/nvd/ecosystem/UrlHostHint.java' '/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/nvd/ecosystem/CveEcosystemMapper.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/nvd/ecosystem/DescriptionEcosystemMapper.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/nvd/ecosystem/FileExtensionHint.java' '/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/nvd/ecosystem/EcosystemHint.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/nvd/ecosystem/UrlEcosystemMapper.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/composer/package-info.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/composer/ComposerLockParser.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/composer/ComposerException.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/composer/ComposerDependency.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/cache/DataCacheFactory.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/cache/DataCache.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/cache/package-info.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/lucene/SearchFieldAnalyzer.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/lucene/UrlTokenizingFilter.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/lucene/package-info.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/lucene/TokenPairConcatenatingFilter.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/lucene/DependencySimilarity.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/lucene/LuceneUtils.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/lucene/AbstractTokenizingFilter.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/lucene/AlphaNumericFilter.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/elixir/MixAuditJsonParser.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/elixir/MixAuditResult.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/elixir/package-info.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/golang/GoModDependency.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/nvd/ecosystem/DescriptionEcosystemMapper.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/nodeaudit/Advisory.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/nodeaudit/NpmPayloadBuilder.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/nodeaudit/package-info.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/nodeaudit/NodeAuditSearch.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/nodeaudit/NpmAuditParser.java' '/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/golang/package-info.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/golang/GoModDependency.java' '/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/golang/GoModJsonParser.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/nvdcve/DriverLoader.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/nvdcve/CveDB.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/nvdcve/H2Functions.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/nvdcve/CveItemOperator.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/update/exception/CorruptedDatastreamException.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/update/exception/UpdateException.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/update/exception/package-info.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/update/exception/InvalidDataException.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/update/cisa/package-info.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/update/cisa/KnownExploitedVulnerabilityParser.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/update/package-info.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/update/EngineVersionCheck.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/update/NvdApiDataSource.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/update/HostedSuppressionsDataSource.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/update/cpe/CpeEcosystemCache.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/update/cpe/CpePlus.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/update/cpe/package-info.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/update/KnownExploitedDataSource.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/update/CachedWebDataSource.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/update/UpdateService.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/update/nvd/api/package-info.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/update/nvd/api/NvdApiProcessor.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/update/nvd/api/DownloadTask.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/update/RetireJSDataSource.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/ossindex/package-info.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/ossindex/ODCConnectionTransport.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/ossindex/OssindexClientFactory.java' '/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/nvdcve/CorruptDatabaseException.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/nvdcve/DatabaseProperties.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/nvdcve/H2Functions.java' '/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/nvdcve/package-info.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/nvdcve/DatabaseException.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/nvdcve/CveDB.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/nvdcve/DatabaseProperties.java' '/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/nvdcve/DatabaseManager.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/nvdcve/DriverLoadException.java' '/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/nvdcve/DriverShim.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/nvdcve/DatabaseException.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/cwe/package-info.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/cwe/CweHandler.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/cwe/App.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/cwe/CweDB.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/nodeaudit/NpmAuditParser.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/nodeaudit/NpmPayloadBuilder.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/nodeaudit/package-info.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/nodeaudit/Advisory.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/nodeaudit/NodeAuditSearch.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/nuget/DirectoryPackagesPropsParser.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/nuget/XPathNugetconfParser.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/nuget/MSBuildProjectParseException.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/nuget/XPathNuspecParser.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/nuget/NuspecParseException.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/nuget/NugetconfParseException.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/nuget/NugetPackageReference.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/nuget/package-info.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/nuget/XPathMSBuildProjectParser.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/nuget/NugetPackage.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/nuget/DirectoryBuildPropsParser.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/cpe/IndexException.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/cpe/package-info.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/cpe/MemoryIndex.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/cpe/AbstractMemoryIndex.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/cpe/NpmCpeMemoryIndex.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/cpe/IndexEntry.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/cpe/Fields.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/cpe/CpeMemoryIndex.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/ossindex/ODCConnectionTransport.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/ossindex/package-info.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/ossindex/OssindexClientFactory.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/NexusAnalyzer.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/MSBuildProjectAnalyzer.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/DartAnalyzer.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/ComposerLockAnalyzer.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/AbstractAnalyzer.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/YarnAuditAnalyzer.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/CentralAnalyzer.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/FalsePositiveAnalyzer.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/ElixirMixAuditAnalyzer.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/VulnerabilitySuppressionAnalyzer.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/NpmCPEAnalyzer.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/AutoconfAnalyzer.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/PipfileAnalyzer.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/AssemblyAnalyzer.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/VersionFilterAnalyzer.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/PinnedMavenInstallAnalyzer.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/AbstractNpmAnalyzer.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/RetireJsAnalyzer.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/AbstractDependencyComparingAnalyzer.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/RubyBundleAuditAnalyzer.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/package-info.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/CMakeAnalyzer.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/NodePackageAnalyzer.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/NugetconfAnalyzer.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/RubyBundlerAnalyzer.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/Retired.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/AbstractFileTypeAnalyzer.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/CPEAnalyzer.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/LibmanAnalyzer.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/FileTypeAnalyzer.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/OpenSSLAnalyzer.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/PoetryAnalyzer.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/NuspecAnalyzer.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/GolangDepAnalyzer.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/PythonPackageAnalyzer.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/SwiftPackageManagerAnalyzer.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/ArtifactoryAnalyzer.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/PythonDistributionAnalyzer.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/exception/ArchiveExtractionException.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/exception/SearchException.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/exception/package-info.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/exception/AnalysisException.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/exception/UnexpectedAnalysisException.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/exception/LambdaExceptionWrapper.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/PipAnalyzer.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/PnpmAuditAnalyzer.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/ArchiveAnalyzer.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/PerlCpanfileAnalyzer.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/NodeAuditAnalyzer.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/CocoaPodsAnalyzer.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/Experimental.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/DependencyMergingAnalyzer.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/DependencyBundlingAnalyzer.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/FileNameAnalyzer.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/AnalyzerService.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/RubyGemspecAnalyzer.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/UnusedSuppressionRuleAnalyzer.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/HintAnalyzer.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/Analyzer.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/NvdCveAnalyzer.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/AnalysisPhase.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/CpeSuppressionAnalyzer.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/AbstractSuppressionAnalyzer.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/PEAnalyzer.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/KnownExploitedVulnerabilityAnalyzer.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/JarAnalyzer.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/PipfilelockAnalyzer.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/SwiftPackageResolvedAnalyzer.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/OssIndexAnalyzer.java' -'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/analyzer/GolangModAnalyzer.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/nvdcve/DriverLoader.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/nvdcve/CveItemOperator.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/nvdcve/DriverLoadException.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/lucene/AbstractTokenizingFilter.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/lucene/UrlTokenizingFilter.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/lucene/package-info.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/lucene/DependencySimilarity.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/lucene/AlphaNumericFilter.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/lucene/TokenPairConcatenatingFilter.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/lucene/SearchFieldAnalyzer.java' +'/home/runner/work/DependencyCheck/DependencyCheck/core/src/main/java/org/owasp/dependencycheck/data/lucene/LuceneUtils.java' '/home/runner/work/DependencyCheck/DependencyCheck/core/target/generated-sources/java/org/owasp/dependencycheck/data/knownexploited/json/KnownExploitedVulnerabilitiesSchema.java' '/home/runner/work/DependencyCheck/DependencyCheck/core/target/generated-sources/java/org/owasp/dependencycheck/data/knownexploited/json/Vulnerability.java' diff --git a/dependency-check-core/apidocs/constant-values.html b/dependency-check-core/apidocs/constant-values.html index 0224dc9b99e..3ca55c09860 100644 --- a/dependency-check-core/apidocs/constant-values.html +++ b/dependency-check-core/apidocs/constant-values.html @@ -4,7 +4,7 @@ -Constant Field Values (Dependency-Check Core 9.0.4 API) +Constant Field Values (Dependency-Check Core 9.0.5 API) @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/agent/package-summary.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/agent/package-summary.html index 3e98fc0c14f..73cd641af83 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/agent/package-summary.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/agent/package-summary.html @@ -4,7 +4,7 @@ -org.owasp.dependencycheck.agent (Dependency-Check Core 9.0.4 API) +org.owasp.dependencycheck.agent (Dependency-Check Core 9.0.5 API) @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/exception/package-summary.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/exception/package-summary.html index e900882cb60..81984a6ca09 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/exception/package-summary.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/exception/package-summary.html @@ -4,7 +4,7 @@ -org.owasp.dependencycheck.analyzer.exception (Dependency-Check Core 9.0.4 API) +org.owasp.dependencycheck.analyzer.exception (Dependency-Check Core 9.0.5 API) @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/package-summary.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/package-summary.html index 4d6344ac17d..6abcbac3dda 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/package-summary.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/package-summary.html @@ -4,7 +4,7 @@ -org.owasp.dependencycheck.analyzer (Dependency-Check Core 9.0.4 API) +org.owasp.dependencycheck.analyzer (Dependency-Check Core 9.0.5 API) @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/artifactory/package-summary.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/artifactory/package-summary.html index 6fc06554942..001b33fe100 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/artifactory/package-summary.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/artifactory/package-summary.html @@ -4,7 +4,7 @@ -org.owasp.dependencycheck.data.artifactory (Dependency-Check Core 9.0.4 API) +org.owasp.dependencycheck.data.artifactory (Dependency-Check Core 9.0.5 API) @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cache/package-summary.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cache/package-summary.html index baa09d790cc..91974fe3105 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cache/package-summary.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cache/package-summary.html @@ -4,7 +4,7 @@ -org.owasp.dependencycheck.data.cache (Dependency-Check Core 9.0.4 API) +org.owasp.dependencycheck.data.cache (Dependency-Check Core 9.0.5 API) @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/central/package-summary.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/central/package-summary.html index f383cac07d7..00910c49983 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/central/package-summary.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/central/package-summary.html @@ -4,7 +4,7 @@ -org.owasp.dependencycheck.data.central (Dependency-Check Core 9.0.4 API) +org.owasp.dependencycheck.data.central (Dependency-Check Core 9.0.5 API) @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/composer/package-summary.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/composer/package-summary.html index 719d0301bb0..ce42173bd15 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/composer/package-summary.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/composer/package-summary.html @@ -4,7 +4,7 @@ -org.owasp.dependencycheck.data.composer (Dependency-Check Core 9.0.4 API) +org.owasp.dependencycheck.data.composer (Dependency-Check Core 9.0.5 API) @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cpe/package-summary.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cpe/package-summary.html index 4eea0426573..90380763704 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cpe/package-summary.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cpe/package-summary.html @@ -4,7 +4,7 @@ -org.owasp.dependencycheck.data.cpe (Dependency-Check Core 9.0.4 API) +org.owasp.dependencycheck.data.cpe (Dependency-Check Core 9.0.5 API) @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cwe/package-summary.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cwe/package-summary.html index ff21c65101d..56d6e39bd93 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cwe/package-summary.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cwe/package-summary.html @@ -4,7 +4,7 @@ -org.owasp.dependencycheck.data.cwe (Dependency-Check Core 9.0.4 API) +org.owasp.dependencycheck.data.cwe (Dependency-Check Core 9.0.5 API) @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/elixir/package-summary.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/elixir/package-summary.html index 79784357e44..a7c247ea7ce 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/elixir/package-summary.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/elixir/package-summary.html @@ -4,7 +4,7 @@ -org.owasp.dependencycheck.data.elixir (Dependency-Check Core 9.0.4 API) +org.owasp.dependencycheck.data.elixir (Dependency-Check Core 9.0.5 API) @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/golang/package-summary.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/golang/package-summary.html index b65a03f144a..7ee7b8c7b04 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/golang/package-summary.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/golang/package-summary.html @@ -4,7 +4,7 @@ -org.owasp.dependencycheck.data.golang (Dependency-Check Core 9.0.4 API) +org.owasp.dependencycheck.data.golang (Dependency-Check Core 9.0.5 API) @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/knownexploited/json/package-summary.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/knownexploited/json/package-summary.html index e8f2a73a5a4..35845789977 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/knownexploited/json/package-summary.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/knownexploited/json/package-summary.html @@ -4,7 +4,7 @@ -org.owasp.dependencycheck.data.knownexploited.json (Dependency-Check Core 9.0.4 API) +org.owasp.dependencycheck.data.knownexploited.json (Dependency-Check Core 9.0.5 API) @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/package-summary.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/package-summary.html index 03cd9002f97..3bc450c69ed 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/package-summary.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/package-summary.html @@ -4,7 +4,7 @@ -org.owasp.dependencycheck.data.lucene (Dependency-Check Core 9.0.4 API) +org.owasp.dependencycheck.data.lucene (Dependency-Check Core 9.0.5 API) @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nexus/package-summary.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nexus/package-summary.html index c56a598a79a..b6f018b0364 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nexus/package-summary.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nexus/package-summary.html @@ -4,7 +4,7 @@ -org.owasp.dependencycheck.data.nexus (Dependency-Check Core 9.0.4 API) +org.owasp.dependencycheck.data.nexus (Dependency-Check Core 9.0.5 API) @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nodeaudit/package-summary.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nodeaudit/package-summary.html index 79a47c4c59a..59f3534e602 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nodeaudit/package-summary.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nodeaudit/package-summary.html @@ -4,7 +4,7 @@ -org.owasp.dependencycheck.data.nodeaudit (Dependency-Check Core 9.0.4 API) +org.owasp.dependencycheck.data.nodeaudit (Dependency-Check Core 9.0.5 API) @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nuget/package-summary.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nuget/package-summary.html index b581e38726d..c81d8c19f06 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nuget/package-summary.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nuget/package-summary.html @@ -4,7 +4,7 @@ -org.owasp.dependencycheck.data.nuget (Dependency-Check Core 9.0.4 API) +org.owasp.dependencycheck.data.nuget (Dependency-Check Core 9.0.5 API) @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvd/ecosystem/package-summary.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvd/ecosystem/package-summary.html index 50ebfef7494..1d370787831 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvd/ecosystem/package-summary.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvd/ecosystem/package-summary.html @@ -4,7 +4,7 @@ -org.owasp.dependencycheck.data.nvd.ecosystem (Dependency-Check Core 9.0.4 API) +org.owasp.dependencycheck.data.nvd.ecosystem (Dependency-Check Core 9.0.5 API) @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,13 +12,13 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/package-summary.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/package-summary.html index ca2add7481c..605bde8ab58 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/package-summary.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/package-summary.html @@ -4,7 +4,7 @@ -org.owasp.dependencycheck.data.nvdcve (Dependency-Check Core 9.0.4 API) +org.owasp.dependencycheck.data.nvdcve (Dependency-Check Core 9.0.5 API) @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/ossindex/package-summary.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/ossindex/package-summary.html index 815f83295e3..283e0375484 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/ossindex/package-summary.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/ossindex/package-summary.html @@ -4,7 +4,7 @@ -org.owasp.dependencycheck.data.ossindex (Dependency-Check Core 9.0.4 API) +org.owasp.dependencycheck.data.ossindex (Dependency-Check Core 9.0.5 API) @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ + + + + + +
    + + +
    Skip navigation links
    + + + + +
    + + + +
    +
    org.owasp.dependencycheck.data.update
    +

    Class NvdApiDataSource.UrlData

    +
    +
    + +
    + +
    +
    +
    + + + + + + + +
    Constructors 
    Constructor and Description
    UrlData(java.lang.String url, + java.lang.String pattern) 
    + + + + + + + +
    + +
    + + + +
    + + +
    Skip navigation links
    + + + + +
    + + +

    Copyright© 2012-21 Jeremy Long. All Rights Reserved.

    + + diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/NvdApiDataSource.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/NvdApiDataSource.html index 68aa0f16592..7f7ef9bd218 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/NvdApiDataSource.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/NvdApiDataSource.html @@ -4,7 +4,7 @@ -NvdApiDataSource (Dependency-Check Core 9.0.4 API) +NvdApiDataSource (Dependency-Check Core 9.0.5 API) @@ -12,13 +12,13 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/cisa/package-summary.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/cisa/package-summary.html index d585b32a18f..e3dd65a427e 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/cisa/package-summary.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/cisa/package-summary.html @@ -4,7 +4,7 @@ -org.owasp.dependencycheck.data.update.cisa (Dependency-Check Core 9.0.4 API) +org.owasp.dependencycheck.data.update.cisa (Dependency-Check Core 9.0.5 API) @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ + + + + + +
    + + +
    Skip navigation links
    + + + + +
    + + +
    +

    Uses of Class
    org.owasp.dependencycheck.data.update.NvdApiDataSource.UrlData

    +
    +
    + +
    + +
    + + +
    Skip navigation links
    + + + + +
    + + +

    Copyright© 2012-21 Jeremy Long. All Rights Reserved.

    + + diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/class-use/NvdApiDataSource.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/class-use/NvdApiDataSource.html index af66c92d858..ffa10e3a253 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/class-use/NvdApiDataSource.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/class-use/NvdApiDataSource.html @@ -4,7 +4,7 @@ -Uses of Class org.owasp.dependencycheck.data.update.NvdApiDataSource (Dependency-Check Core 9.0.4 API) +Uses of Class org.owasp.dependencycheck.data.update.NvdApiDataSource (Dependency-Check Core 9.0.5 API) @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/cpe/package-summary.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/cpe/package-summary.html index b1232e977b0..72fbcc8af26 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/cpe/package-summary.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/cpe/package-summary.html @@ -4,7 +4,7 @@ -org.owasp.dependencycheck.data.update.cpe (Dependency-Check Core 9.0.4 API) +org.owasp.dependencycheck.data.update.cpe (Dependency-Check Core 9.0.5 API) @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/exception/package-summary.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/exception/package-summary.html index 0f008cd2db5..d0f2256ebca 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/exception/package-summary.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/exception/package-summary.html @@ -4,7 +4,7 @@ -org.owasp.dependencycheck.data.update.exception (Dependency-Check Core 9.0.4 API) +org.owasp.dependencycheck.data.update.exception (Dependency-Check Core 9.0.5 API) @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/nvd/api/package-summary.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/nvd/api/package-summary.html index de42a2264ef..d2bfe7bfab2 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/nvd/api/package-summary.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/nvd/api/package-summary.html @@ -4,7 +4,7 @@ -org.owasp.dependencycheck.data.update.nvd.api (Dependency-Check Core 9.0.4 API) +org.owasp.dependencycheck.data.update.nvd.api (Dependency-Check Core 9.0.5 API) @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -21,6 +21,7 @@

    Classes

  • HostedSuppressionsDataSource
  • KnownExploitedDataSource
  • NvdApiDataSource
  • +
  • NvdApiDataSource.UrlData
  • RetireJSDataSource
  • UpdateService
  • diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/package-summary.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/package-summary.html index 2e915dfdd4a..8358ee1adfa 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/package-summary.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/package-summary.html @@ -4,7 +4,7 @@ -org.owasp.dependencycheck.data.update (Dependency-Check Core 9.0.4 API) +org.owasp.dependencycheck.data.update (Dependency-Check Core 9.0.5 API) @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/naming/package-summary.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/naming/package-summary.html index fd53e15b971..06ab06d3dae 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/naming/package-summary.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/naming/package-summary.html @@ -4,7 +4,7 @@ -org.owasp.dependencycheck.dependency.naming (Dependency-Check Core 9.0.4 API) +org.owasp.dependencycheck.dependency.naming (Dependency-Check Core 9.0.5 API) @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/package-summary.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/package-summary.html index d32042a4c7a..0d36d47db38 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/package-summary.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/package-summary.html @@ -4,7 +4,7 @@ -org.owasp.dependencycheck.dependency (Dependency-Check Core 9.0.4 API) +org.owasp.dependencycheck.dependency (Dependency-Check Core 9.0.5 API) @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/exception/package-summary.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/exception/package-summary.html index 49c0f042ff0..c401fbf01af 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/exception/package-summary.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/exception/package-summary.html @@ -4,7 +4,7 @@ -org.owasp.dependencycheck.exception (Dependency-Check Core 9.0.4 API) +org.owasp.dependencycheck.exception (Dependency-Check Core 9.0.5 API) @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/package-summary.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/package-summary.html index 1a9afe6be13..fb8ef3195d2 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/package-summary.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/package-summary.html @@ -4,7 +4,7 @@ -org.owasp.dependencycheck (Dependency-Check Core 9.0.4 API) +org.owasp.dependencycheck (Dependency-Check Core 9.0.5 API) @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/processing/package-summary.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/processing/package-summary.html index 99602d3e80b..9c229dea5d2 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/processing/package-summary.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/processing/package-summary.html @@ -4,7 +4,7 @@ -org.owasp.dependencycheck.processing (Dependency-Check Core 9.0.4 API) +org.owasp.dependencycheck.processing (Dependency-Check Core 9.0.5 API) @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/reporting/package-summary.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/reporting/package-summary.html index d868958e15e..8f808956dd6 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/reporting/package-summary.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/reporting/package-summary.html @@ -4,7 +4,7 @@ -org.owasp.dependencycheck.reporting (Dependency-Check Core 9.0.4 API) +org.owasp.dependencycheck.reporting (Dependency-Check Core 9.0.5 API) @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/package-summary.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/package-summary.html index 23ea72b54dd..55895211e52 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/package-summary.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/package-summary.html @@ -4,7 +4,7 @@ -org.owasp.dependencycheck.utils (Dependency-Check Core 9.0.4 API) +org.owasp.dependencycheck.utils (Dependency-Check Core 9.0.5 API) @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/xml/assembly/package-summary.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/xml/assembly/package-summary.html index a1b04b7fa60..742ec8e6f22 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/xml/assembly/package-summary.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/xml/assembly/package-summary.html @@ -4,7 +4,7 @@ -org.owasp.dependencycheck.xml.assembly (Dependency-Check Core 9.0.4 API) +org.owasp.dependencycheck.xml.assembly (Dependency-Check Core 9.0.5 API) @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/xml/hints/package-summary.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/xml/hints/package-summary.html index b2e08ebbbad..0556e1f5f08 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/xml/hints/package-summary.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/xml/hints/package-summary.html @@ -4,7 +4,7 @@ -org.owasp.dependencycheck.xml.hints (Dependency-Check Core 9.0.4 API) +org.owasp.dependencycheck.xml.hints (Dependency-Check Core 9.0.5 API) @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/xml/package-summary.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/xml/package-summary.html index 56edb1db2ea..3918e0d7dfa 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/xml/package-summary.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/xml/package-summary.html @@ -4,7 +4,7 @@ -org.owasp.dependencycheck.xml (Dependency-Check Core 9.0.4 API) +org.owasp.dependencycheck.xml (Dependency-Check Core 9.0.5 API) @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/xml/pom/package-summary.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/xml/pom/package-summary.html index bacef7c0d81..65925c59ba8 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/xml/pom/package-summary.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/xml/pom/package-summary.html @@ -4,7 +4,7 @@ -org.owasp.dependencycheck.xml.pom (Dependency-Check Core 9.0.4 API) +org.owasp.dependencycheck.xml.pom (Dependency-Check Core 9.0.5 API) @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/xml/suppression/package-summary.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/xml/suppression/package-summary.html index 244d076d544..14f8eb15450 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/xml/suppression/package-summary.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/xml/suppression/package-summary.html @@ -4,7 +4,7 @@ -org.owasp.dependencycheck.xml.suppression (Dependency-Check Core 9.0.4 API) +org.owasp.dependencycheck.xml.suppression (Dependency-Check Core 9.0.5 API) @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ diff --git a/dependency-check-core/apidocs/overview-summary.html b/dependency-check-core/apidocs/overview-summary.html index 3b86544bd12..f5864859ee8 100644 --- a/dependency-check-core/apidocs/overview-summary.html +++ b/dependency-check-core/apidocs/overview-summary.html @@ -4,7 +4,7 @@ -Overview (Dependency-Check Core 9.0.4 API) +Overview (Dependency-Check Core 9.0.5 API) @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@

    Dependency-Check Core

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethodsMissedClasses
    Total25,537 of 70,80363%3,418 of 7,17652%3,0326,1015,87516,0916232,45029249
    org.owasp.dependencycheck.analyzer9,42720,66368%1,5291,94956%1,2222,5202,0436,61372774065
    org.owasp.dependencycheck.data.nvdcve4,0082,26736%45311119%3374329411,41481145311
    org.owasp.dependencycheck.data.update1,85351521%2083213%135165404527214506
    org.owasp.dependencycheck.utils1,8393,71566%24336059%2104604161,26327146023
    org.owasp.dependencycheck.processing9335%722%5361212230162424
    org.owasp.dependencycheck.data.knownexploited.json9068%1620%102119119153213802
    org.owasp.dependencycheck.data.nexus8767%850%6371206225202823
    org.owasp.dependencycheck.dependency8592,92077%12423265%15342619588045239116
    org.owasp.dependencycheck5261,35271%6911762%75168130444177503
    org.owasp.dependencycheck.reporting5111,50474%7917468%103222153486369405
    org.owasp.dependencycheck.xml.pom43897268%518061%5115095358107608
    org.owasp.dependencycheck.agent42640548%3925%86103131231617701
    org.owasp.dependencycheck.xml.suppression2801,24981%3816681%4718965371128207
    org.owasp.dependencycheck.data.artifactory27343061%57%357771178225604
    org.owasp.dependencycheck.exception33%37%405297131374868
    org.owasp.dependencycheck.data.cwe17%16%1419536561023
    org.owasp.dependencycheck.data.nodeaudit1,06282%377366%4411665339136004
    org.owasp.dependencycheck.data.nuget58774%344858%3882622101141210
    org.owasp.dependencycheck.dependency.naming36066%30%256056160134703
    org.owasp.dependencycheck.data.update.nvd.api0%0%111145459922
    org.owasp.dependencycheck.data.cpe41673%50%28594314983715
    org.owasp.dependencycheck.data.lucene52080%5078%14613716262917
    org.owasp.dependencycheck.data.golang40677%79%726251051902
    org.owasp.dependencycheck.data.central38876%64%1325221000401
    org.owasp.dependencycheck.xml.assembly29474%77%156433122124915
    org.owasp.dependencycheck.xml.hints78189%5380%249824205115808
    org.owasp.dependencycheck.data.nvd.ecosystem1,25494%8479%2510917245656010
    org.owasp.dependencycheck.data.cache74%50%51721730903
    org.owasp.dependencycheck.analyzer.exception18%n/a13162632131645
    org.owasp.dependencycheck.data.composer80%60%1123176731303
    org.owasp.dependencycheck.data.elixir83%70%520116621502
    org.owasp.dependencycheck.data.update.exception12%n/a910182091023
    org.owasp.dependencycheck.data.ossindex84%42%7117430402
    org.owasp.dependencycheck.data.update.cisa68%50%147180301
    org.owasp.dependencycheck.xml1,89099%4382%840432901402
    org.owasp.dependencycheck.data.update.cpe91%90%31543221002
    \ No newline at end of file +Dependency-Check Core

    Dependency-Check Core

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethodsMissedClasses
    Total25,920 of 71,27663%3,445 of 7,20652%3,0526,1245,94616,1856272,45831252
    org.owasp.dependencycheck.analyzer9,43020,66068%1,5311,94755%1,2242,5202,0446,61372774065
    org.owasp.dependencycheck.data.nvdcve4,0692,27535%46011019%3444389571,43284148311
    org.owasp.dependencycheck.data.update2,05360422%2173915%139176439585204807
    org.owasp.dependencycheck.utils1,8393,71566%24336059%2104604161,26327146023
    org.owasp.dependencycheck.processing9335%722%5361212230162424
    org.owasp.dependencycheck.data.knownexploited.json9068%1620%102119119153213802
    org.owasp.dependencycheck.data.nexus8767%850%6371206225202823
    org.owasp.dependencycheck.dependency8592,92077%12423265%15342619588045239116
    org.owasp.dependencycheck5261,35271%6911762%75168130444177503
    org.owasp.dependencycheck.reporting5111,50474%7917468%103222153486369405
    org.owasp.dependencycheck.xml.pom43897268%518061%5115095358107608
    org.owasp.dependencycheck.agent42640548%3925%86103131231617701
    org.owasp.dependencycheck.data.update.nvd.api2990%0%17176363111144
    org.owasp.dependencycheck.xml.suppression2801,24981%3816681%4718965371128207
    org.owasp.dependencycheck.data.artifactory27343061%57%357771178225604
    org.owasp.dependencycheck.exception33%37%405297131374868
    org.owasp.dependencycheck.data.cwe17%16%1419536561023
    org.owasp.dependencycheck.data.nodeaudit1,06282%377366%4411665339136004
    org.owasp.dependencycheck.data.nuget58774%344858%3882622101141210
    org.owasp.dependencycheck.dependency.naming36066%30%256056160134703
    org.owasp.dependencycheck.data.cpe41673%50%28594314983715
    org.owasp.dependencycheck.data.lucene51679%4976%15613816262917
    org.owasp.dependencycheck.data.golang40677%79%726251051902
    org.owasp.dependencycheck.data.central38876%64%1325221000401
    org.owasp.dependencycheck.xml.assembly29474%77%156433122124915
    org.owasp.dependencycheck.xml.hints78189%5380%249824205115808
    org.owasp.dependencycheck.data.nvd.ecosystem1,25494%8479%2510917245656010
    org.owasp.dependencycheck.data.cache74%50%51721730903
    org.owasp.dependencycheck.analyzer.exception18%n/a13162632131645
    org.owasp.dependencycheck.data.composer80%60%1123176731303
    org.owasp.dependencycheck.data.elixir83%70%520116621502
    org.owasp.dependencycheck.data.update.exception12%n/a910182091023
    org.owasp.dependencycheck.data.ossindex84%42%7117430402
    org.owasp.dependencycheck.data.update.cisa68%50%147180301
    org.owasp.dependencycheck.xml1,89099%4382%840432901402
    org.owasp.dependencycheck.data.update.cpe91%90%31543221002
    \ No newline at end of file diff --git a/dependency-check-core/jacoco/jacoco-sessions.html b/dependency-check-core/jacoco/jacoco-sessions.html index 91d9df318b3..83c15775371 100644 --- a/dependency-check-core/jacoco/jacoco-sessions.html +++ b/dependency-check-core/jacoco/jacoco-sessions.html @@ -1 +1 @@ -Sessions

    Sessions

    This coverage report is based on execution data from the following sessions:

    SessionStart TimeDump Time
    fv-az773-600-977c0ffDec 8, 2023 11:17:50 AMDec 8, 2023 11:18:39 AM
    fv-az773-600-2168b4bdDec 8, 2023 11:19:18 AMDec 8, 2023 11:22:04 AM

    Execution data for the following classes is considered in this report:

    ClassId
    ch.qos.logback.classic.Levele2155b45608f35d7
    ch.qos.logback.classic.Loggerf35d4d4ad6b0173a
    ch.qos.logback.classic.LoggerContextd057ce3cea631d6b
    ch.qos.logback.classic.PatternLayout6b4fcc6f23c89763
    ch.qos.logback.classic.encoder.PatternLayoutEncoderb5df0ef8a1a735ea
    ch.qos.logback.classic.joran.JoranConfigurator63bb214e0f720ae8
    ch.qos.logback.classic.joran.action.ConfigurationAction90d861250f52b75f
    ch.qos.logback.classic.joran.action.ConsolePluginAction2969e4b8b532cec5
    ch.qos.logback.classic.joran.action.ContextNameAction4ffd1a75c51a473f
    ch.qos.logback.classic.joran.action.EvaluatorActioncc2e7d3c2fc18087
    ch.qos.logback.classic.joran.action.InsertFromJNDIActionfce902dbb9dbd2a7
    ch.qos.logback.classic.joran.action.JMXConfiguratorActiona58b513df0924938
    ch.qos.logback.classic.joran.action.LevelAction8f89eefaf59271f1
    ch.qos.logback.classic.joran.action.LoggerAction8d55f78fdf86cda9
    ch.qos.logback.classic.joran.action.LoggerContextListenerAction835263a7d9309be9
    ch.qos.logback.classic.joran.action.ReceiverAction9e9bd00760b812f2
    ch.qos.logback.classic.joran.action.RootLoggerAction0528540059645c3d
    ch.qos.logback.classic.pattern.ClassicConverter78403f02659989af
    ch.qos.logback.classic.pattern.EnsureExceptionHandlingf9c97b8da786f083
    ch.qos.logback.classic.pattern.LevelConverter05b4415a3dbcaaf4
    ch.qos.logback.classic.pattern.LineSeparatorConverter2e2dc69c3bdc6cd3
    ch.qos.logback.classic.pattern.MessageConverteref2f64b51bca1aac
    ch.qos.logback.classic.pattern.ThrowableHandlingConverter266cc4ca75fcd39d
    ch.qos.logback.classic.pattern.ThrowableProxyConverter46dc88ad0c97e462
    ch.qos.logback.classic.selector.DefaultContextSelectorfd861e3242ccff2f
    ch.qos.logback.classic.sift.SiftAction9f73df3037d696a7
    ch.qos.logback.classic.spi.EventArgUtil88f3990bf293da69
    ch.qos.logback.classic.spi.LoggerContextVOecac106025bca4a3
    ch.qos.logback.classic.spi.LoggingEvent75c5fe4974050a6f
    ch.qos.logback.classic.spi.PlatformInfo0e826c07ba59ae45
    ch.qos.logback.classic.spi.StackTraceElementProxyada177236960344b
    ch.qos.logback.classic.spi.ThrowableProxya302aaf0d3a92fc1
    ch.qos.logback.classic.spi.ThrowableProxyUtil6e061d0582f771fe
    ch.qos.logback.classic.spi.TurboFilterListaa3cf39d0c0c651e
    ch.qos.logback.classic.util.ContextInitializerf560906e9553d69f
    ch.qos.logback.classic.util.ContextSelectorStaticBinder271bbf6fa66123b1
    ch.qos.logback.classic.util.DefaultNestedComponentRules840b992fa00c7e60
    ch.qos.logback.classic.util.EnvUtil39b5543082458460
    ch.qos.logback.classic.util.LogbackMDCAdaptera05682a253fd41d4
    ch.qos.logback.classic.util.LoggerNameUtilb8d88c97a0cadcfa
    ch.qos.logback.core.BasicStatusManagerf42ab87c1f66e222
    ch.qos.logback.core.ConsoleAppenderd101474cda5e45c9
    ch.qos.logback.core.ContextBase707ceedbd09855e6
    ch.qos.logback.core.CoreConstants09363a83cd5b4101
    ch.qos.logback.core.LayoutBasee6bfd3b1edc3ab01
    ch.qos.logback.core.OutputStreamAppender79e07918442741f3
    ch.qos.logback.core.UnsynchronizedAppenderBase0672be5753362c70
    ch.qos.logback.core.encoder.EncoderBasef2507a7276f26c10
    ch.qos.logback.core.encoder.LayoutWrappingEncoder6c80790d34287d6b
    ch.qos.logback.core.helpers.CyclicBuffer422c7b9f7318f10a
    ch.qos.logback.core.joran.GenericConfigurator3f448ac12ab6a263
    ch.qos.logback.core.joran.JoranConfiguratorBase38c4decb94b320f7
    ch.qos.logback.core.joran.action.AbstractEventEvaluatorActionbf3cf252a2822906
    ch.qos.logback.core.joran.action.Action7cf2d4f3569d0788
    ch.qos.logback.core.joran.action.AppenderAction22c3c549e13663a1
    ch.qos.logback.core.joran.action.AppenderRefAction3c0bd482c9925292
    ch.qos.logback.core.joran.action.ContextPropertyAction4d47e7c289aa172b
    ch.qos.logback.core.joran.action.ConversionRuleAction6ad21d1237f36c71
    ch.qos.logback.core.joran.action.DefinePropertyAction3d08042673a6e5dc
    ch.qos.logback.core.joran.action.IADataForBasicPropertycbe844e4f3903797
    ch.qos.logback.core.joran.action.IADataForComplexProperty9b210f34ec734f9e
    ch.qos.logback.core.joran.action.ImplicitAction86dae105afebc13c
    ch.qos.logback.core.joran.action.IncludeAction2775b098b6b111dc
    ch.qos.logback.core.joran.action.NOPAction69348e8c62d1a733
    ch.qos.logback.core.joran.action.NestedBasicPropertyIA89ed90b29bc14f36
    ch.qos.logback.core.joran.action.NestedBasicPropertyIA.108e44e1168d7ea7b
    ch.qos.logback.core.joran.action.NestedComplexPropertyIA178aace2d0448f6a
    ch.qos.logback.core.joran.action.NestedComplexPropertyIA.15160250e9b77af57
    ch.qos.logback.core.joran.action.NewRuleAction265aa9ab808da62d
    ch.qos.logback.core.joran.action.ParamActionad2376677140dcb4
    ch.qos.logback.core.joran.action.PropertyAction81b578f6564d00a1
    ch.qos.logback.core.joran.action.ShutdownHookActione67fa543b234ff0d
    ch.qos.logback.core.joran.action.StatusListenerAction4cf479b0b81398f3
    ch.qos.logback.core.joran.action.TimestampActiond7a48c3648a91ea8
    ch.qos.logback.core.joran.conditional.ElseActionfe56c4a40374cd79
    ch.qos.logback.core.joran.conditional.IfAction87c92d3efc3996c9
    ch.qos.logback.core.joran.conditional.ThenActiondd7886fdda1bb93e
    ch.qos.logback.core.joran.conditional.ThenOrElseActionBase9e00d4141028a50c
    ch.qos.logback.core.joran.event.BodyEvent0c8f2f07c6888bab
    ch.qos.logback.core.joran.event.EndEvent0c2e1da47ad508cc
    ch.qos.logback.core.joran.event.SaxEvent80662212b5cc3b53
    ch.qos.logback.core.joran.event.SaxEventRecorder639eb66c9ea90531
    ch.qos.logback.core.joran.event.StartEvent914de9498a78076d
    ch.qos.logback.core.joran.spi.CAI_WithLocatorSupportf96b1cd7be830663
    ch.qos.logback.core.joran.spi.ConfigurationWatchListfba78df767e05182
    ch.qos.logback.core.joran.spi.ConsoleTarget6e2cdd5051fbf329
    ch.qos.logback.core.joran.spi.ConsoleTarget.19612187e03729cd5
    ch.qos.logback.core.joran.spi.ConsoleTarget.2ea3332451607183e
    ch.qos.logback.core.joran.spi.DefaultNestedComponentRegistryf3ac4f0369a959d6
    ch.qos.logback.core.joran.spi.ElementPathab4711e5039d31b0
    ch.qos.logback.core.joran.spi.ElementSelector605584d4fe3a6b67
    ch.qos.logback.core.joran.spi.EventPlayer739ef0261c196bb2
    ch.qos.logback.core.joran.spi.HostClassAndPropertyDouble199aef84b04dd48c
    ch.qos.logback.core.joran.spi.InterpretationContextce4c00a894617c6e
    ch.qos.logback.core.joran.spi.Interpreter634fa7d2dde257a5
    ch.qos.logback.core.joran.spi.NoAutoStartUtil6fe8a98ba9c5ce85
    ch.qos.logback.core.joran.spi.SimpleRuleStore19c383749dc55e01
    ch.qos.logback.core.joran.util.ConfigurationWatchListUtila35db514967601cf
    ch.qos.logback.core.joran.util.PropertySetter8f7e7385541ef400
    ch.qos.logback.core.joran.util.StringToObjectConverter2e393f7832702c3f
    ch.qos.logback.core.joran.util.beans.BeanDescriptiona249e33828fc438a
    ch.qos.logback.core.joran.util.beans.BeanDescriptionCache9d679b6b2b24c9f7
    ch.qos.logback.core.joran.util.beans.BeanDescriptionFactory1abb714ec36ec08c
    ch.qos.logback.core.joran.util.beans.BeanUtil889c2d82913f56d3
    ch.qos.logback.core.net.ssl.SSLNestedComponentRegistryRulescdeda61b0c175e73
    ch.qos.logback.core.pattern.Converter925f6cb417029041
    ch.qos.logback.core.pattern.ConverterUtildd9b10877d49fdef
    ch.qos.logback.core.pattern.DynamicConverter66d903dd096314f6
    ch.qos.logback.core.pattern.FormattingConverterc3110b5495da3c0a
    ch.qos.logback.core.pattern.LiteralConverter65b2e319699170e6
    ch.qos.logback.core.pattern.PatternLayoutBasea804a6743796ed4f
    ch.qos.logback.core.pattern.PatternLayoutEncoderBase8869b320200d58ca
    ch.qos.logback.core.pattern.parser.Compiler1c6d6460ba38602b
    ch.qos.logback.core.pattern.parser.FormattingNodec1ea708a78deec04
    ch.qos.logback.core.pattern.parser.Node6c2db44212d84b68
    ch.qos.logback.core.pattern.parser.Parser7b1aef016f4f95f3
    ch.qos.logback.core.pattern.parser.SimpleKeywordNodef700f290325e600d
    ch.qos.logback.core.pattern.parser.Token4f7e433507e860ed
    ch.qos.logback.core.pattern.parser.TokenStreamb0bdcf4b6e0f87aa
    ch.qos.logback.core.pattern.parser.TokenStream.1fd95c0c735fd0ef7
    ch.qos.logback.core.pattern.parser.TokenStream.TokenizerState3467111fb3bf68e6
    ch.qos.logback.core.pattern.util.RegularEscapeUtil1cc07c8d9d362995
    ch.qos.logback.core.pattern.util.RestrictedEscapeUtil05ac894407a1822b
    ch.qos.logback.core.spi.AppenderAttachableImpl356e7661a1308dba
    ch.qos.logback.core.spi.ContextAwareBase507768fbb8be644f
    ch.qos.logback.core.spi.ContextAwareImple054ab71d51b27ec
    ch.qos.logback.core.spi.FilterAttachableImple0d2c4e50fd975d2
    ch.qos.logback.core.spi.FilterReply8ffb0681c411c96a
    ch.qos.logback.core.spi.LogbackLockb3b7af385a799776
    ch.qos.logback.core.status.InfoStatus1d3c0987bb0ffe10
    ch.qos.logback.core.status.NopStatusListener91f16a8aa6c07841
    ch.qos.logback.core.status.StatusBase7c1cffd1a9986020
    ch.qos.logback.core.status.StatusUtilb5fec2971e383d38
    ch.qos.logback.core.subst.Node173ef78e5278fe04
    ch.qos.logback.core.subst.Node.Typeb8a40f4b8fbe988c
    ch.qos.logback.core.subst.NodeToStringTransformer1e8620cc7b5415cb
    ch.qos.logback.core.subst.NodeToStringTransformer.15967309dea3614e0
    ch.qos.logback.core.subst.Parserc06549d7b1e1487d
    ch.qos.logback.core.subst.Parser.178a0480962b020ea
    ch.qos.logback.core.subst.Token3f38da4ca554aafd
    ch.qos.logback.core.subst.Token.Typed037d0aeea85e517
    ch.qos.logback.core.subst.Tokenizer6a388c818909b082
    ch.qos.logback.core.subst.Tokenizer.15446562f97e885f7
    ch.qos.logback.core.subst.Tokenizer.TokenizerStatea43d7665d3995d51
    ch.qos.logback.core.util.AggregationTypee82dcae26638e651
    ch.qos.logback.core.util.COWArrayListfd4fbd3c0c90c052
    ch.qos.logback.core.util.EnvUtiladc66c330ddaa6c4
    ch.qos.logback.core.util.Loader6a7f26fdd43cf12b
    ch.qos.logback.core.util.Loader.1d6e48f075e51e44b
    ch.qos.logback.core.util.OptionHelpered7183d6bad9d2a9
    ch.qos.logback.core.util.StatusListenerConfigHelperb3e50ff76e275069
    com.carrotsearch.randomizedtesting.AnnotatedMethodProvider870a55255b1b9874
    com.carrotsearch.randomizedtesting.AssertingRandombc6b942a30a356c5
    com.carrotsearch.randomizedtesting.ClassModel1c54b0b31c4809a8
    com.carrotsearch.randomizedtesting.ClassModel.1d51749768e05f02c
    com.carrotsearch.randomizedtesting.ClassModel.2b36aa748efbd92c5
    com.carrotsearch.randomizedtesting.ClassModel.3fef4fc8d2deeb5b7
    com.carrotsearch.randomizedtesting.ClassModel.46ecd1e7b73283918
    com.carrotsearch.randomizedtesting.ClassModel.ClassElement32641c3b612e2000
    com.carrotsearch.randomizedtesting.ClassModel.FieldModel12d4aa56244c04e1
    com.carrotsearch.randomizedtesting.ClassModel.MethodModelb5b4442a8318aed8
    com.carrotsearch.randomizedtesting.ClassModel.ModelBuildercddb924852bb6dde
    com.carrotsearch.randomizedtesting.ClassModel.Scopeaa426d5279db6a28
    com.carrotsearch.randomizedtesting.Classes0809fe74e4957d43
    com.carrotsearch.randomizedtesting.GroupEvaluator21e3b9902dc11570
    com.carrotsearch.randomizedtesting.JUnit4MethodProviderc4fbfb340b1f9b91
    com.carrotsearch.randomizedtesting.LifecycleScope76d2edaacf355a64
    com.carrotsearch.randomizedtesting.MixWithSuiteName4936da537ef90919
    com.carrotsearch.randomizedtesting.MurmurHash3dc1fe13d2e45fbde
    com.carrotsearch.randomizedtesting.RandomSupplier5059bd085d912ff0
    com.carrotsearch.randomizedtesting.RandomSupplier.1b488ed5f8eeb0508
    com.carrotsearch.randomizedtesting.RandomizedContext0871c6176ee46550
    com.carrotsearch.randomizedtesting.RandomizedContext.PerThreadResources38a54cd3c28af3f4
    com.carrotsearch.randomizedtesting.RandomizedRunnerf435c833bd7a1290
    com.carrotsearch.randomizedtesting.RandomizedRunner.1311a2c43c3a86804
    com.carrotsearch.randomizedtesting.RandomizedRunner.10677259c6d4acafb7
    com.carrotsearch.randomizedtesting.RandomizedRunner.1291cf8f6c00f05ce5
    com.carrotsearch.randomizedtesting.RandomizedRunner.1369525e145a25e424
    com.carrotsearch.randomizedtesting.RandomizedRunner.144c9cffcd64959f9c
    com.carrotsearch.randomizedtesting.RandomizedRunner.16fa4a640e168c2a28
    com.carrotsearch.randomizedtesting.RandomizedRunner.2897920ea6206924c
    com.carrotsearch.randomizedtesting.RandomizedRunner.3c6cf366dbe702633
    com.carrotsearch.randomizedtesting.RandomizedRunner.415c279082308fa7b
    com.carrotsearch.randomizedtesting.RandomizedRunner.4.1365d71ee75a3af6d
    com.carrotsearch.randomizedtesting.RandomizedRunner.53923722803acad97
    com.carrotsearch.randomizedtesting.RandomizedRunner.64bd50f959306c567
    com.carrotsearch.randomizedtesting.RandomizedRunner.7e672de2e37c6c02c
    com.carrotsearch.randomizedtesting.RandomizedRunner.8f8e56fa0f9722cb5
    com.carrotsearch.randomizedtesting.RandomizedRunner.9ac614c1ad6590c5a
    com.carrotsearch.randomizedtesting.RandomizedRunner.NewInstanceProviderbeb4d4f1b37f9d79
    com.carrotsearch.randomizedtesting.RandomizedRunner.QueueUncaughtExceptionsHandlerc2801a551ed8279d
    com.carrotsearch.randomizedtesting.RandomizedRunner.TestCandidateaa058e6fd4c69a2f
    com.carrotsearch.randomizedtesting.RandomizedRunner.TestMethodExecution86c82e21c3362a05
    com.carrotsearch.randomizedtesting.RandomizedTest6b786839b5bb4aa3
    com.carrotsearch.randomizedtesting.RandomizedTest.528b1e9f1a376a530
    com.carrotsearch.randomizedtesting.Randomnesse7bc07c7164b9a2a
    com.carrotsearch.randomizedtesting.RunnerContainera752f3533230abc9
    com.carrotsearch.randomizedtesting.RunnerThreadGroupa73ceb274c63742c
    com.carrotsearch.randomizedtesting.SeedUtilsc716edaa47db8c94
    com.carrotsearch.randomizedtesting.SysGlobals280c161ca05ac910
    com.carrotsearch.randomizedtesting.ThreadLeakControl1c065600921d1926
    com.carrotsearch.randomizedtesting.ThreadLeakControl.19c30a37c631c9313
    com.carrotsearch.randomizedtesting.ThreadLeakControl.2fabf7c3bb505955b
    com.carrotsearch.randomizedtesting.ThreadLeakControl.323242fe460bc7321
    com.carrotsearch.randomizedtesting.ThreadLeakControl.43ae46e0f281d83ff
    com.carrotsearch.randomizedtesting.ThreadLeakControl.5b4b6763fa9897f61
    com.carrotsearch.randomizedtesting.ThreadLeakControl.KnownSystemThread50fb2dd7cdd4d17d
    com.carrotsearch.randomizedtesting.ThreadLeakControl.StatementRunnerda62ca3606950f08
    com.carrotsearch.randomizedtesting.ThreadLeakControl.SubNotifier7d2d6668e37ea99a
    com.carrotsearch.randomizedtesting.ThreadLeakControl.ThisThreadFilter7ee5d47b77ffda43
    com.carrotsearch.randomizedtesting.ThreadLeakControl.TimeoutValueca1a398e8e8c1629
    com.carrotsearch.randomizedtesting.Threads5c3a4a81f877b976
    com.carrotsearch.randomizedtesting.Threads.1d43b35f243fce9b7
    com.carrotsearch.randomizedtesting.Threads.294a0843e825809f2
    com.carrotsearch.randomizedtesting.TraceFormatting571278bfe93b896a
    com.carrotsearch.randomizedtesting.Validationda264d9df734b20d
    com.carrotsearch.randomizedtesting.Validation.ClassValidationada1a16e086f93c8
    com.carrotsearch.randomizedtesting.Validation.MethodValidation8d01d0e25112daba
    com.carrotsearch.randomizedtesting.Xoroshiro128PlusRandom2af0cbffcf103734
    com.carrotsearch.randomizedtesting.annotations.TestCaseInstanceProvider.Typeee3523de62816c9a
    com.carrotsearch.randomizedtesting.annotations.ThreadLeakAction.Action63b2d43a3fb3b5b5
    com.carrotsearch.randomizedtesting.annotations.ThreadLeakGroup.Group3f9fa893bc3683d2
    com.carrotsearch.randomizedtesting.annotations.ThreadLeakScope.Scopec2e0da95bb4b3997
    com.carrotsearch.randomizedtesting.annotations.ThreadLeakZombies.Consequence4b7bee6e7799c0f1
    com.carrotsearch.randomizedtesting.generators.RandomNumbersc538db0b0172327e
    com.carrotsearch.randomizedtesting.generators.RandomPicksc6e97ea71382d909
    com.carrotsearch.randomizedtesting.rules.Constants9c04fe3fe96a37a2
    com.carrotsearch.randomizedtesting.rules.IdentityHashSet04aef2cf5c180289
    com.carrotsearch.randomizedtesting.rules.MurmurHash3c122cc0a4bccb7cd
    com.carrotsearch.randomizedtesting.rules.NoClassHooksShadowingRule4e833a72a0f0c4e1
    com.carrotsearch.randomizedtesting.rules.NoInstanceHooksOverridesRule2637ddb92e2d0374
    com.carrotsearch.randomizedtesting.rules.NoShadowingOrOverridesOnMethodsRuleca045faae41fdba6
    com.carrotsearch.randomizedtesting.rules.NoShadowingOrOverridesOnMethodsRule.14cd6fe7c25a0076b
    com.carrotsearch.randomizedtesting.rules.RamUsageEstimator40ab80815ba784de
    com.carrotsearch.randomizedtesting.rules.RamUsageEstimator.JvmFeatureabcefc1a12ff2556
    com.carrotsearch.randomizedtesting.rules.StatementAdapter0bdc9159f1c7e344
    com.carrotsearch.randomizedtesting.rules.StaticFieldsInvariantRule8e83573a8886d991
    com.carrotsearch.randomizedtesting.rules.StaticFieldsInvariantRule.15f2865f111e4b08f
    com.carrotsearch.randomizedtesting.rules.StaticFieldsInvariantRule.1.1248f73c6354cf733
    com.carrotsearch.randomizedtesting.rules.StaticFieldsInvariantRule.1.21f2e4f2c0045e7c1
    com.carrotsearch.randomizedtesting.rules.StaticFieldsInvariantRule.Entryb14bf3d1ad551875
    com.carrotsearch.randomizedtesting.rules.TestRuleAdapter1309f8aa68553621
    com.carrotsearch.randomizedtesting.rules.TestRuleAdapter.1f9368df6c549caef
    com.esotericsoftware.minlog.Logc05158d5e66d9c02
    com.esotericsoftware.minlog.Log.Logger349e3e9c35cef91b
    com.fasterxml.jackson.annotation.JsonAutoDetect.16be52ec71dcf28a2
    com.fasterxml.jackson.annotation.JsonAutoDetect.Visibilitye56bcd385626eead
    com.fasterxml.jackson.annotation.JsonFormat.Featuree632f8db525e6519
    com.fasterxml.jackson.annotation.JsonFormat.Features75fb2eb9717dc62a
    com.fasterxml.jackson.annotation.JsonFormat.Shapec19c22f9661f3b7d
    com.fasterxml.jackson.annotation.JsonFormat.Value0eb8231d09bfd09a
    com.fasterxml.jackson.annotation.JsonIgnoreProperties.Value4f0da3cf85f6ca76
    com.fasterxml.jackson.annotation.JsonInclude.Include30ab0a782ad08747
    com.fasterxml.jackson.annotation.JsonInclude.Valuea558d9f40414e748
    com.fasterxml.jackson.annotation.JsonIncludeProperties.Value7ed084480a07ee84
    com.fasterxml.jackson.annotation.JsonProperty.Accessb5322e85ff85e8b9
    com.fasterxml.jackson.annotation.JsonSetter.Value6ee26ce006658a00
    com.fasterxml.jackson.annotation.Nulls724f990ec72b618f
    com.fasterxml.jackson.annotation.PropertyAccessora506c0b4a9292088
    com.fasterxml.jackson.core.Base64Variant820db952b2ce1918
    com.fasterxml.jackson.core.Base64Variant.PaddingReadBehaviourdd0e63a614fe004b
    com.fasterxml.jackson.core.Base64Variantse646bbe091ae79c0
    com.fasterxml.jackson.core.ErrorReportConfiguration6ae7b9c14364f861
    com.fasterxml.jackson.core.JsonEncodingcb4ae57cec60e79d
    com.fasterxml.jackson.core.JsonFactory4b6dbe517dc74f05
    com.fasterxml.jackson.core.JsonFactory.Feature6053a66ef91d8599
    com.fasterxml.jackson.core.JsonGenerator8a53f1394a871e41
    com.fasterxml.jackson.core.JsonGenerator.Featuredca43627a1b1d378
    com.fasterxml.jackson.core.JsonParserbfa2b2aaf45dbdaf
    com.fasterxml.jackson.core.JsonParser.Feature7e095b73debaa45f
    com.fasterxml.jackson.core.JsonParser.NumberType88e7ccc17e76b9de
    com.fasterxml.jackson.core.JsonStreamContext369abe89770bcf3d
    com.fasterxml.jackson.core.JsonTokeneed63a6e4a8e9120
    com.fasterxml.jackson.core.ObjectCodec4de1a295d9dc31ca
    com.fasterxml.jackson.core.PrettyPrinterf27d5528a26794c9
    com.fasterxml.jackson.core.StreamReadCapabilitya4c561ff4de25114
    com.fasterxml.jackson.core.StreamReadConstraintsfef85c00a0df6225
    com.fasterxml.jackson.core.StreamReadFeature9a2e8953e3d6037c
    com.fasterxml.jackson.core.StreamWriteCapability20b236b266d25323
    com.fasterxml.jackson.core.StreamWriteConstraintsf2bb5b3756dacf82
    com.fasterxml.jackson.core.TokenStreamFactory41de330f27eca392
    com.fasterxml.jackson.core.TreeCodec18594f8a8dcec6a2
    com.fasterxml.jackson.core.Version9e2d74f157825603
    com.fasterxml.jackson.core.base.GeneratorBase769b434d47814ead
    com.fasterxml.jackson.core.base.ParserBase7ea5c57b85e68f85
    com.fasterxml.jackson.core.base.ParserMinimalBasedafc6c7b6eb27cb5
    com.fasterxml.jackson.core.io.CharTypes07a8747913d8e991
    com.fasterxml.jackson.core.io.ContentReferencec1bf9547a5b31574
    com.fasterxml.jackson.core.io.IOContext92f945a4db96d4d1
    com.fasterxml.jackson.core.io.JsonStringEncodercaf3b669acbbe223
    com.fasterxml.jackson.core.io.NumberInput6b34a37c1fb6a484
    com.fasterxml.jackson.core.io.NumberOutput9603d1200ce5afbc
    com.fasterxml.jackson.core.io.SegmentedStringWriteraf9b17af11ce151f
    com.fasterxml.jackson.core.io.SerializedStringde06c047872018ad
    com.fasterxml.jackson.core.json.ByteSourceJsonBootstrapper0ba003a54273d8f7
    com.fasterxml.jackson.core.json.JsonGeneratorImpl62f7e0732a7b3f16
    com.fasterxml.jackson.core.json.JsonReadContext7fe93ff4dfcd910a
    com.fasterxml.jackson.core.json.JsonWriteContext80adf9bb4918112e
    com.fasterxml.jackson.core.json.ReaderBasedJsonParser5a748aacc97cbeaf
    com.fasterxml.jackson.core.json.UTF8JsonGeneratorccf70777c87bc779
    com.fasterxml.jackson.core.json.UTF8StreamJsonParser9774ce4b622b6787
    com.fasterxml.jackson.core.json.WriterBasedJsonGenerator4c9c68d95ea16405
    com.fasterxml.jackson.core.sym.ByteQuadsCanonicalizer5054f4087e115bac
    com.fasterxml.jackson.core.sym.ByteQuadsCanonicalizer.TableInfoeb0211d6faa23d01
    com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer098437effe93aab8
    com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer.Bucket7c0255c4c5f898c2
    com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer.TableInfo7f8a1e78ae4259c6
    com.fasterxml.jackson.core.type.ResolvedType8a4589ad9960ed59
    com.fasterxml.jackson.core.util.BufferRecycler130f2ce298e329d8
    com.fasterxml.jackson.core.util.BufferRecyclers4e7bee8eece90b3a
    com.fasterxml.jackson.core.util.DefaultIndenter18913563e8366f39
    com.fasterxml.jackson.core.util.DefaultPrettyPrinterdffce786178e5ff1
    com.fasterxml.jackson.core.util.DefaultPrettyPrinter.FixedSpaceIndenter418687d575a4f083
    com.fasterxml.jackson.core.util.DefaultPrettyPrinter.NopIndenter110c0bf83e5c079c
    com.fasterxml.jackson.core.util.InternCacheb55c4c122f488f2e
    com.fasterxml.jackson.core.util.JacksonFeatureSet69b6b3d8af7f13b3
    com.fasterxml.jackson.core.util.JsonRecyclerPoolsbb15cd8e45e37fee
    com.fasterxml.jackson.core.util.JsonRecyclerPools.ThreadLocalPoolb47528b0197c08e2
    com.fasterxml.jackson.core.util.ReadConstrainedTextBuffer23fc9ce24061d845
    com.fasterxml.jackson.core.util.RecyclerPool.ThreadLocalPoolBase23bd83512f98e1cd
    com.fasterxml.jackson.core.util.Separatorsdb601d3f3bad91c2
    com.fasterxml.jackson.core.util.Separators.Spacing511422cc9db17520
    com.fasterxml.jackson.core.util.TextBuffere0024e1d666b4905
    com.fasterxml.jackson.core.util.VersionUtil665fa94b3d0b07a9
    com.fasterxml.jackson.databind.AnnotationIntrospector905eb800c47f61a4
    com.fasterxml.jackson.databind.AnnotationIntrospector.ReferenceProperty09f92466c78dd697
    com.fasterxml.jackson.databind.AnnotationIntrospector.ReferenceProperty.Typed90a083248c5b3dc
    com.fasterxml.jackson.databind.BeanDescriptionb72f4d814c7d9796
    com.fasterxml.jackson.databind.BeanProperty.Std1dc3c0a141338eba
    com.fasterxml.jackson.databind.DatabindContext190fc61056492212
    com.fasterxml.jackson.databind.DeserializationConfiga66abddaffd0eeda
    com.fasterxml.jackson.databind.DeserializationContexte42cf81978826049
    com.fasterxml.jackson.databind.DeserializationFeaturee8c5e101ec4650d4
    com.fasterxml.jackson.databind.JavaType4b4e8dfd897d7a79
    com.fasterxml.jackson.databind.JsonDeserializerf155d5de89ce5a60
    com.fasterxml.jackson.databind.JsonNode56cae57f74bf28ed
    com.fasterxml.jackson.databind.JsonSerializable.Based7667d73e9aa24c4
    com.fasterxml.jackson.databind.JsonSerializeradb9d1fae01b02c7
    com.fasterxml.jackson.databind.KeyDeserializer57c3ce9990767641
    com.fasterxml.jackson.databind.MapperFeatured7d85f4bfd3cff7a
    com.fasterxml.jackson.databind.MappingJsonFactory65cdd9294dfaf29a
    com.fasterxml.jackson.databind.Modulebb66b81d910dbd05
    com.fasterxml.jackson.databind.ObjectMapper1267d692f0f6e0ba
    com.fasterxml.jackson.databind.ObjectMapper.10b9220e9c1bc2c47
    com.fasterxml.jackson.databind.ObjectReader1d24d1af08075eb3
    com.fasterxml.jackson.databind.PropertyMetadata56620abf8cdd07c8
    com.fasterxml.jackson.databind.PropertyName217cf81be2326911
    com.fasterxml.jackson.databind.SerializationConfig40620b2ae2347380
    com.fasterxml.jackson.databind.SerializationFeature9609ec0ec1e8bc2a
    com.fasterxml.jackson.databind.SerializerProvider10f427a250ca2427
    com.fasterxml.jackson.databind.cfg.BaseSettings74949427e8604cd4
    com.fasterxml.jackson.databind.cfg.CoercionAction9e15561f16680f97
    com.fasterxml.jackson.databind.cfg.CoercionConfigffad61191adeb87e
    com.fasterxml.jackson.databind.cfg.CoercionConfigs8937a55c926c734f
    com.fasterxml.jackson.databind.cfg.CoercionConfigs.1931244b15cf2e1f1
    com.fasterxml.jackson.databind.cfg.CoercionInputShape90aad4e377b3dccd
    com.fasterxml.jackson.databind.cfg.ConfigOverridef1771a0d408303c8
    com.fasterxml.jackson.databind.cfg.ConfigOverride.Empty3372ed519d9bafb4
    com.fasterxml.jackson.databind.cfg.ConfigOverrides7943101710d9f910
    com.fasterxml.jackson.databind.cfg.ConstructorDetector9af1c9a41cb4b83d
    com.fasterxml.jackson.databind.cfg.ConstructorDetector.SingleArgConstructorb0c67222cebc30be
    com.fasterxml.jackson.databind.cfg.ContextAttributes216e6db5a97ae48a
    com.fasterxml.jackson.databind.cfg.ContextAttributes.Implede427cff276c0b8
    com.fasterxml.jackson.databind.cfg.DatatypeFeaturesf4893ef156575441
    com.fasterxml.jackson.databind.cfg.DatatypeFeatures.DefaultHolder81838084595fa0c8
    com.fasterxml.jackson.databind.cfg.DefaultCacheProvider6bbb2aa855b50726
    com.fasterxml.jackson.databind.cfg.DeserializerFactoryConfig7861ff22cec5640b
    com.fasterxml.jackson.databind.cfg.EnumFeature16e95ce7a3f1f1ee
    com.fasterxml.jackson.databind.cfg.JsonNodeFeature93b45511772e9fc3
    com.fasterxml.jackson.databind.cfg.MapperConfigc7b0b1bb3bc6f9f1
    com.fasterxml.jackson.databind.cfg.MapperConfigBase5bb7b8ef48c720d7
    com.fasterxml.jackson.databind.cfg.MutableCoercionConfig262e6b36c9ca989e
    com.fasterxml.jackson.databind.cfg.SerializerFactoryConfigd93f22d3258ee4c0
    com.fasterxml.jackson.databind.deser.BasicDeserializerFactory3944ee9b76fde7a2
    com.fasterxml.jackson.databind.deser.BasicDeserializerFactory.ContainerDefaultMappingsdf7805e17fdc7522
    com.fasterxml.jackson.databind.deser.BasicDeserializerFactory.CreatorCollectionStatef0dbb90499e14fa4
    com.fasterxml.jackson.databind.deser.BeanDeserializer51262781f5e28489
    com.fasterxml.jackson.databind.deser.BeanDeserializerBasedf7ad1189a3b508b
    com.fasterxml.jackson.databind.deser.BeanDeserializerBuilderd5bdf1bb9953f729
    com.fasterxml.jackson.databind.deser.BeanDeserializerFactory65809d9bdea9493b
    com.fasterxml.jackson.databind.deser.BeanDeserializerModifier184167b49d96ae56
    com.fasterxml.jackson.databind.deser.DefaultDeserializationContext5756779a22fd7d68
    com.fasterxml.jackson.databind.deser.DefaultDeserializationContext.Impl8057860fe47eb5da
    com.fasterxml.jackson.databind.deser.DeserializerCache7d85f058f583e5dd
    com.fasterxml.jackson.databind.deser.DeserializerFactory2ebdf24d93849f1a
    com.fasterxml.jackson.databind.deser.SettableAnyPropertyaad043facc07e3e1
    com.fasterxml.jackson.databind.deser.SettableAnyProperty.MethodAnyProperty9e6e2416f9612c30
    com.fasterxml.jackson.databind.deser.SettableBeanPropertye32815b47681953f
    com.fasterxml.jackson.databind.deser.SettableBeanProperty.Delegating9a42268c2af26ce4
    com.fasterxml.jackson.databind.deser.ValueInstantiator500a74eea26ebb5d
    com.fasterxml.jackson.databind.deser.ValueInstantiator.Base56fce65bc9fdb762
    com.fasterxml.jackson.databind.deser.impl.BeanPropertyMapabab716eded67ac2
    com.fasterxml.jackson.databind.deser.impl.CreatorCollector0f8b3def4682a020
    com.fasterxml.jackson.databind.deser.impl.FailingDeserializer4904d8577f214eb3
    com.fasterxml.jackson.databind.deser.impl.FieldProperty79a77498e066a15d
    com.fasterxml.jackson.databind.deser.impl.JDKValueInstantiators008ddf7a64eb2d4a
    com.fasterxml.jackson.databind.deser.impl.JDKValueInstantiators.ArrayListInstantiator187a1232f1bf2643
    com.fasterxml.jackson.databind.deser.impl.JDKValueInstantiators.LinkedHashMapInstantiator8e9a27c2b9ea0809
    com.fasterxml.jackson.databind.deser.impl.MethodPropertydf95398e08d528a0
    com.fasterxml.jackson.databind.deser.impl.NullsConstantProvider83cd716157aa0f9a
    com.fasterxml.jackson.databind.deser.std.BaseNodeDeserializer82dde7b6c751ad90
    com.fasterxml.jackson.databind.deser.std.BaseNodeDeserializer.ContainerStack47ba851b95cd1477
    com.fasterxml.jackson.databind.deser.std.CollectionDeserializer264403aa8c0a30f7
    com.fasterxml.jackson.databind.deser.std.ContainerDeserializerBase0f7cf99ff0b0c8a0
    com.fasterxml.jackson.databind.deser.std.DateDeserializers9e6826e9538c1d95
    com.fasterxml.jackson.databind.deser.std.DateDeserializers.DateBasedDeserializera724948d8fa77410
    com.fasterxml.jackson.databind.deser.std.DateDeserializers.DateDeserializer15a9d57b22e2ade2
    com.fasterxml.jackson.databind.deser.std.FromStringDeserializerb5093028e19eaf91
    com.fasterxml.jackson.databind.deser.std.JdkDeserializersa7ac27fec28e8de9
    com.fasterxml.jackson.databind.deser.std.JsonNodeDeserializer39345e6cbb5ce5e8
    com.fasterxml.jackson.databind.deser.std.MapDeserializerb32eea18a36cb24a
    com.fasterxml.jackson.databind.deser.std.NumberDeserializersaf4aa96d306dfbb7
    com.fasterxml.jackson.databind.deser.std.NumberDeserializers.BooleanDeserializer30e8686ef1609fb9
    com.fasterxml.jackson.databind.deser.std.NumberDeserializers.IntegerDeserializercb695275ccadb732
    com.fasterxml.jackson.databind.deser.std.NumberDeserializers.LongDeserializer003b30a97cae021a
    com.fasterxml.jackson.databind.deser.std.NumberDeserializers.NumberDeserializer24d7e253adbe49ba
    com.fasterxml.jackson.databind.deser.std.NumberDeserializers.PrimitiveOrWrapperDeserializer467caf19a87c057e
    com.fasterxml.jackson.databind.deser.std.StdDeserializer2122bf750d1b5b89
    com.fasterxml.jackson.databind.deser.std.StdKeyDeserializera4a518bbbaf161f0
    com.fasterxml.jackson.databind.deser.std.StdKeyDeserializer.StringKDf39c6c872cbaa313
    com.fasterxml.jackson.databind.deser.std.StdKeyDeserializers2ca4ab5d0f0b71dd
    com.fasterxml.jackson.databind.deser.std.StdScalarDeserializer25286f364997b846
    com.fasterxml.jackson.databind.deser.std.StdValueInstantiator34181f4c11253cc9
    com.fasterxml.jackson.databind.deser.std.StringArrayDeserializerdbeac8e57a8a807e
    com.fasterxml.jackson.databind.deser.std.StringDeserializer36ba9f92a53b7892
    com.fasterxml.jackson.databind.deser.std.UntypedObjectDeserializerd9dd77561d0b2427
    com.fasterxml.jackson.databind.deser.std.UntypedObjectDeserializerNRe1ad05bf432fcba5
    com.fasterxml.jackson.databind.ext.Java7Handlers31410c423d95a2d0
    com.fasterxml.jackson.databind.ext.Java7HandlersImpl423b0b9d126fb382
    com.fasterxml.jackson.databind.ext.Java7Support4b7557784caa415a
    com.fasterxml.jackson.databind.ext.Java7SupportImpl94a94fc44678f7e9
    com.fasterxml.jackson.databind.ext.OptionalHandlerFactorya873be98e8f52009
    com.fasterxml.jackson.databind.introspect.AccessorNamingStrategy3d3b7f563f5ca70a
    com.fasterxml.jackson.databind.introspect.AccessorNamingStrategy.Provider6026222786456f26
    com.fasterxml.jackson.databind.introspect.Annotated47d3d49f2b832d54
    com.fasterxml.jackson.databind.introspect.AnnotatedClass208d1216b93f97d9
    com.fasterxml.jackson.databind.introspect.AnnotatedClass.Creatorsecbba5a1c87c995f
    com.fasterxml.jackson.databind.introspect.AnnotatedClassResolver9c1435b88f5e9e91
    com.fasterxml.jackson.databind.introspect.AnnotatedConstructoreaf946db37898a44
    com.fasterxml.jackson.databind.introspect.AnnotatedCreatorCollectorf1dbd789d7b2161e
    com.fasterxml.jackson.databind.introspect.AnnotatedFielde6e45b21b9cdeda3
    com.fasterxml.jackson.databind.introspect.AnnotatedFieldCollectord6830919dea39e8f
    com.fasterxml.jackson.databind.introspect.AnnotatedFieldCollector.FieldBuilder571d9e7fb561d385
    com.fasterxml.jackson.databind.introspect.AnnotatedMember5879537c033bd580
    com.fasterxml.jackson.databind.introspect.AnnotatedMethodad2f0bf303d90ae0
    com.fasterxml.jackson.databind.introspect.AnnotatedMethodCollectore8e34bff5e47f125
    com.fasterxml.jackson.databind.introspect.AnnotatedMethodCollector.MethodBuilderb522d96f88a7ade4
    com.fasterxml.jackson.databind.introspect.AnnotatedMethodMapd69be24a07cecf16
    com.fasterxml.jackson.databind.introspect.AnnotatedWithParams54f7d4537c15cfdb
    com.fasterxml.jackson.databind.introspect.AnnotationCollectorc389709d2ffbb364
    com.fasterxml.jackson.databind.introspect.AnnotationCollector.EmptyCollectora87b6b2439611ec7
    com.fasterxml.jackson.databind.introspect.AnnotationCollector.NCollector9e3f6012728d8752
    com.fasterxml.jackson.databind.introspect.AnnotationCollector.NoAnnotations9173d7167a075d90
    com.fasterxml.jackson.databind.introspect.AnnotationCollector.OneCollector4d7ed4cd12d6011c
    com.fasterxml.jackson.databind.introspect.AnnotationCollector.TwoAnnotationscfd34e461249c2a8
    com.fasterxml.jackson.databind.introspect.AnnotationMap78aa63dcada1ee05
    com.fasterxml.jackson.databind.introspect.BasicBeanDescription4f0d484434fb6325
    com.fasterxml.jackson.databind.introspect.BasicClassIntrospectorfcecadfe75a5c2af
    com.fasterxml.jackson.databind.introspect.BeanPropertyDefinitiond3bbcf006607ecb0
    com.fasterxml.jackson.databind.introspect.ClassIntrospectorb20a1133edfcf6b5
    com.fasterxml.jackson.databind.introspect.CollectorBasefec0f38373f479ba
    com.fasterxml.jackson.databind.introspect.ConcreteBeanPropertyBasefa5bde6be1d392b1
    com.fasterxml.jackson.databind.introspect.DefaultAccessorNamingStrategyefc1568392fc0098
    com.fasterxml.jackson.databind.introspect.DefaultAccessorNamingStrategy.Provider9679bb882d2d354f
    com.fasterxml.jackson.databind.introspect.JacksonAnnotationIntrospector9d54114155341c05
    com.fasterxml.jackson.databind.introspect.MemberKey0e604899c13122c4
    com.fasterxml.jackson.databind.introspect.POJOPropertiesCollector1821e69f144ab189
    com.fasterxml.jackson.databind.introspect.POJOPropertyBuilder87b50c8168df5d0b
    com.fasterxml.jackson.databind.introspect.POJOPropertyBuilder.1925ffe3a324d008c
    com.fasterxml.jackson.databind.introspect.POJOPropertyBuilder.2f9f5816009560a85
    com.fasterxml.jackson.databind.introspect.POJOPropertyBuilder.4ccfa1b83e27ecd92
    com.fasterxml.jackson.databind.introspect.POJOPropertyBuilder.58bc5c843a115ba34
    com.fasterxml.jackson.databind.introspect.POJOPropertyBuilder.6a2d5a4cee9bda8de
    com.fasterxml.jackson.databind.introspect.POJOPropertyBuilder.Linkedef62b5db9e7546d6
    com.fasterxml.jackson.databind.introspect.SimpleMixInResolver6a0721d817cbf413
    com.fasterxml.jackson.databind.introspect.TypeResolutionContext.Basic09190ef225acb240
    com.fasterxml.jackson.databind.introspect.VisibilityChecker.Std86f77996bd544f4e
    com.fasterxml.jackson.databind.jsontype.PolymorphicTypeValidatorff1c7cc76de984ce
    com.fasterxml.jackson.databind.jsontype.PolymorphicTypeValidator.Baseea9ae0e64ce11069
    com.fasterxml.jackson.databind.jsontype.SubtypeResolverb2ed8bc0e5fe669c
    com.fasterxml.jackson.databind.jsontype.impl.LaissezFaireSubTypeValidatord02dab29b87ed521
    com.fasterxml.jackson.databind.jsontype.impl.StdSubtypeResolver342823e6800eb76b
    com.fasterxml.jackson.databind.jsontype.impl.SubTypeValidatora7ad2f19c2210a88
    com.fasterxml.jackson.databind.node.ArrayNodeeddaf67053a53e40
    com.fasterxml.jackson.databind.node.BaseJsonNodebfd90fff281f00ca
    com.fasterxml.jackson.databind.node.BooleanNodecebb2fcdf8e3b29f
    com.fasterxml.jackson.databind.node.ContainerNode3e656b4335d16878
    com.fasterxml.jackson.databind.node.JsonNodeFactoryb407554ab061d84d
    com.fasterxml.jackson.databind.node.JsonNodeTypea26f1eeaaa06bdd6
    com.fasterxml.jackson.databind.node.NullNodeb1e6b4cd83f34f0f
    com.fasterxml.jackson.databind.node.ObjectNode74aad756ca3a7d79
    com.fasterxml.jackson.databind.node.TextNode24a44d604f63089e
    com.fasterxml.jackson.databind.node.ValueNode836490b62c1c13d7
    com.fasterxml.jackson.databind.ser.BasicSerializerFactoryda909c46cb0d91a4
    com.fasterxml.jackson.databind.ser.BeanSerializerFactory16faed09cf6c52b8
    com.fasterxml.jackson.databind.ser.BeanSerializerModifier67661ad652d96db0
    com.fasterxml.jackson.databind.ser.ContainerSerializer67b35562bf415143
    com.fasterxml.jackson.databind.ser.DefaultSerializerProvider7081bda43dcfcb52
    com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.Implbb7a481d8d11e37e
    com.fasterxml.jackson.databind.ser.SerializerCache05a580ec11f5621f
    com.fasterxml.jackson.databind.ser.SerializerFactorya96ec5a87f2a9dec
    com.fasterxml.jackson.databind.ser.impl.FailingSerializer96696f091a076f00
    com.fasterxml.jackson.databind.ser.impl.ReadOnlyClassToSerializerMapf7673b78d4dbb21a
    com.fasterxml.jackson.databind.ser.impl.StringArraySerializere460ddec25a8c614
    com.fasterxml.jackson.databind.ser.impl.UnknownSerializer0f0b100c24ae521b
    com.fasterxml.jackson.databind.ser.std.ArraySerializerBasec8c6410977eb572f
    com.fasterxml.jackson.databind.ser.std.BooleanSerializera5e7ba6f955baf41
    com.fasterxml.jackson.databind.ser.std.CalendarSerializerda6df272674c3c19
    com.fasterxml.jackson.databind.ser.std.DateSerializerdcf355b20d60965d
    com.fasterxml.jackson.databind.ser.std.DateTimeSerializerBasefb1c17ba4f02cbe0
    com.fasterxml.jackson.databind.ser.std.NullSerializer55885eb24739c250
    com.fasterxml.jackson.databind.ser.std.NumberSerializer2b09bf235752694e
    com.fasterxml.jackson.databind.ser.std.NumberSerializersdfe8936a5bca95d8
    com.fasterxml.jackson.databind.ser.std.NumberSerializers.Base243c88192bb86ee4
    com.fasterxml.jackson.databind.ser.std.NumberSerializers.DoubleSerializer5b65fb8c8ea04f02
    com.fasterxml.jackson.databind.ser.std.NumberSerializers.FloatSerializer0849cda863777be8
    com.fasterxml.jackson.databind.ser.std.NumberSerializers.IntLikeSerializer37f949791419da14
    com.fasterxml.jackson.databind.ser.std.NumberSerializers.IntegerSerializer8572ad7f464034dd
    com.fasterxml.jackson.databind.ser.std.NumberSerializers.LongSerializer1bcc67c140cfbe03
    com.fasterxml.jackson.databind.ser.std.NumberSerializers.ShortSerializera678b068eca9e8b6
    com.fasterxml.jackson.databind.ser.std.StdJdkSerializersb1d950d41858d3ba
    com.fasterxml.jackson.databind.ser.std.StdScalarSerializer294ce690d4fde5d1
    com.fasterxml.jackson.databind.ser.std.StdSerializer2eb989e3aa9ebf8b
    com.fasterxml.jackson.databind.ser.std.StringSerializerb6342c9e6a90d477
    com.fasterxml.jackson.databind.ser.std.ToEmptyObjectSerializerdcbbfaf250568a42
    com.fasterxml.jackson.databind.ser.std.ToStringSerializerb965af9d2adb22d7
    com.fasterxml.jackson.databind.ser.std.ToStringSerializerBase4df4671bce83caa1
    com.fasterxml.jackson.databind.ser.std.UUIDSerializer9825ed90a3a1ea38
    com.fasterxml.jackson.databind.type.ArrayTypeada34943c659785c
    com.fasterxml.jackson.databind.type.ClassStackb4e39752aaaff8ce
    com.fasterxml.jackson.databind.type.CollectionLikeTypefdca9c74891003b6
    com.fasterxml.jackson.databind.type.CollectionType754ccfd8e93b2fdd
    com.fasterxml.jackson.databind.type.LogicalTypee0e08cb4c4d717b1
    com.fasterxml.jackson.databind.type.MapLikeType84a6b76ead78268b
    com.fasterxml.jackson.databind.type.MapTypee4c0bbd455f37026
    com.fasterxml.jackson.databind.type.SimpleType9bf726d4e15bb139
    com.fasterxml.jackson.databind.type.TypeBase84e347a8123ba86e
    com.fasterxml.jackson.databind.type.TypeBindings69af78e44b169d2b
    com.fasterxml.jackson.databind.type.TypeBindings.AsKey3cf63795dd54b8b7
    com.fasterxml.jackson.databind.type.TypeBindings.TypeParamStashc0b0ab8001879ee4
    com.fasterxml.jackson.databind.type.TypeFactory3596cbf80365f39f
    com.fasterxml.jackson.databind.type.TypeParser539ac466374b5334
    com.fasterxml.jackson.databind.util.AccessPattern44bf82acd8a3fffc
    com.fasterxml.jackson.databind.util.ArrayBuildersc14a06ce657aa67b
    com.fasterxml.jackson.databind.util.ArrayIteratore4c9e4d38ac21c90
    com.fasterxml.jackson.databind.util.BeanUtilaca352d66ffbab01
    com.fasterxml.jackson.databind.util.ClassUtil7a2a6f716f5500a1
    com.fasterxml.jackson.databind.util.ClassUtil.Ctor1fd4710f90ff53de
    com.fasterxml.jackson.databind.util.IgnorePropertiesUtil81001725c2203f99
    com.fasterxml.jackson.databind.util.LRUMapc487e14750ddd25e
    com.fasterxml.jackson.databind.util.LinkedNode73ca05873e25cb2e
    com.fasterxml.jackson.databind.util.NativeImageUtilb8f4495279426166
    com.fasterxml.jackson.databind.util.ObjectBuffer14fbae37b93a957b
    com.fasterxml.jackson.databind.util.RootNameLookupadd4d1fb1a084862
    com.fasterxml.jackson.databind.util.StdDateFormatc6d4539431425f11
    com.fasterxml.jackson.databind.util.TypeKey32162ed128b7bbbd
    com.fasterxml.jackson.databind.util.internal.LinkedDeque9bfc4fbb2b0b1196
    com.fasterxml.jackson.databind.util.internal.PrivateMaxEntriesMap3f0ff22fe5779861
    com.fasterxml.jackson.databind.util.internal.PrivateMaxEntriesMap.AddTask866aec97a77c2650
    com.fasterxml.jackson.databind.util.internal.PrivateMaxEntriesMap.Builderdcc244062522bdc6
    com.fasterxml.jackson.databind.util.internal.PrivateMaxEntriesMap.DrainStatusa1e26b7a083af651
    com.fasterxml.jackson.databind.util.internal.PrivateMaxEntriesMap.DrainStatus.12de09d3a3bfcdca6
    com.fasterxml.jackson.databind.util.internal.PrivateMaxEntriesMap.DrainStatus.22928516020b2e91a
    com.fasterxml.jackson.databind.util.internal.PrivateMaxEntriesMap.DrainStatus.326e6a18539bc3d80
    com.fasterxml.jackson.databind.util.internal.PrivateMaxEntriesMap.EntryIterator86fc40b47b6d46b6
    com.fasterxml.jackson.databind.util.internal.PrivateMaxEntriesMap.EntrySet69a473f3bfd1c6f1
    com.fasterxml.jackson.databind.util.internal.PrivateMaxEntriesMap.Node2dc3669c077d2e56
    com.fasterxml.jackson.databind.util.internal.PrivateMaxEntriesMap.WeightedValuec5874d009c2eaa54
    com.fasterxml.jackson.dataformat.yaml.UTF8Readerd9ab1e2ee45a21fd
    com.fasterxml.jackson.dataformat.yaml.YAMLFactory4efdb92f8a3604f4
    com.fasterxml.jackson.dataformat.yaml.YAMLGenerator.Feature3997ab216dffff80
    com.fasterxml.jackson.dataformat.yaml.YAMLParser6940099f147dfcce
    com.fasterxml.jackson.dataformat.yaml.YAMLParser.Featureb97e3913845b5cf5
    com.fasterxml.jackson.dataformat.yaml.util.StringQuotingChecker5f323d61ac73bf31
    com.fasterxml.jackson.dataformat.yaml.util.StringQuotingChecker.Default6a8ea0e261b261f8
    com.fasterxml.jackson.module.afterburner.AfterburnerModule199d238f356edc15
    com.fasterxml.jackson.module.afterburner.PackageVersionfbb919d8d00a45fe
    com.fasterxml.jackson.module.afterburner.asm.AnnotationWriter26e3f2a9d5189a44
    com.fasterxml.jackson.module.afterburner.asm.Attribute2efab23372ecfa18
    com.fasterxml.jackson.module.afterburner.asm.ByteVector468fd5dee16f6f94
    com.fasterxml.jackson.module.afterburner.asm.ClassVisitor388846e4960febe3
    com.fasterxml.jackson.module.afterburner.asm.ClassWriter7a3ec1cd43411b75
    com.fasterxml.jackson.module.afterburner.asm.Edgef5aa419176534f91
    com.fasterxml.jackson.module.afterburner.asm.Handler2b61e7f54f039d20
    com.fasterxml.jackson.module.afterburner.asm.Label90eefbf66285b8b1
    com.fasterxml.jackson.module.afterburner.asm.MethodVisitor7f2af2bb098c6f8e
    com.fasterxml.jackson.module.afterburner.asm.MethodWriteree2650d838332d42
    com.fasterxml.jackson.module.afterburner.asm.Symbolcefaf3084e73060d
    com.fasterxml.jackson.module.afterburner.asm.SymbolTable6cf9d3ecd897faab
    com.fasterxml.jackson.module.afterburner.asm.SymbolTable.Entry993e8bf5b40e2a91
    com.fasterxml.jackson.module.afterburner.asm.Typefe8b4208cc440f98
    com.fasterxml.jackson.module.afterburner.deser.BeanPropertyMutator09cd3d9e6eec535b
    com.fasterxml.jackson.module.afterburner.deser.CreatorOptimizer0d78c5502066de2c
    com.fasterxml.jackson.module.afterburner.deser.DeserializerModifier186576b3d88ebe97
    com.fasterxml.jackson.module.afterburner.deser.OptimizedSettableBeanPropertyb0c47b39c874bdb4
    com.fasterxml.jackson.module.afterburner.deser.OptimizedValueInstantiator8e6517b1726f0473
    com.fasterxml.jackson.module.afterburner.deser.PropertyMutatorCollector1e09436de9cc8c21
    com.fasterxml.jackson.module.afterburner.deser.SettableObjectMethodProperty155fd5d16e22fb45
    com.fasterxml.jackson.module.afterburner.deser.SettableStringMethodProperty4457db5f3a904ed7
    com.fasterxml.jackson.module.afterburner.deser.SuperSonicBeanDeserializer50615d83c69a1adc
    com.fasterxml.jackson.module.afterburner.deser.SuperSonicDeserializerBuilderbbe0324c14e17af7
    com.fasterxml.jackson.module.afterburner.ser.SerializerModifier744fe03e232889f5
    com.fasterxml.jackson.module.afterburner.util.ClassName8e6fab406db350e7
    com.fasterxml.jackson.module.afterburner.util.DynamicPropertyAccessorBase8391a4ac810e01cf
    com.fasterxml.jackson.module.afterburner.util.MyClassLoaderb2d336f342ed1563
    com.github.packageurl.PackageURLc010d37d9eb81e63
    com.github.packageurl.PackageURLBuilder6e21230bb11d0b1b
    com.google.common.base.Absentde1298f27b4c0693
    com.google.common.base.AbstractIteratord3c5d8c6ad30f701
    com.google.common.base.AbstractIterator.137bd022d95007827
    com.google.common.base.AbstractIterator.State5c56bd34c8972d4a
    com.google.common.base.CharMatcher0bcd1962498d67ba
    com.google.common.base.CharMatcher.FastMatcheraa197b1215c57922
    com.google.common.base.CharMatcher.Is85a5a52367686a88
    com.google.common.base.CharMatcher.NamedFastMatcher1e00ea1226db6ddb
    com.google.common.base.CharMatcher.None94d35101bfaf99d7
    com.google.common.base.Charsetsb599c8a556d9d5a8
    com.google.common.base.Joiner4f5db87c2677ce13
    com.google.common.base.MoreObjects2565f99d2ba4b7cf
    com.google.common.base.NullnessCasts290a1618a5ccec9b
    com.google.common.base.Objects80ef57c5924c3f99
    com.google.common.base.Optionala4c1dc586be5462d
    com.google.common.base.Platforma8753559da3e0a37
    com.google.common.base.Platform.JdkPatternCompiler4259946d36f73bee
    com.google.common.base.Preconditionsa5fabd1b8022b288
    com.google.common.base.Splitterd6c6a68453118cca
    com.google.common.base.Splitter.1d8d2c3ca70a09053
    com.google.common.base.Splitter.1.17083f874903fe1d7
    com.google.common.base.Splitter.55d1c083eae2ee290
    com.google.common.base.Splitter.MapSplitter815a0b456d527d84
    com.google.common.base.Splitter.SplittingIteratorcb39f1152c0e9779
    com.google.common.base.Stopwatchb1150a266f12bc53
    com.google.common.base.Stringsbea92ea6583d7b26
    com.google.common.base.Tickera137bcbc3022c785
    com.google.common.base.Ticker.1ffda8a6855f4a7b2
    com.google.common.collect.ImmutableCollection626210369d72ba7f
    com.google.common.collect.ImmutableList7e362db835e33620
    com.google.common.collect.Iterators7f7c5bd7ae559e91
    com.google.common.collect.Iterators.924c265b2fbd77921
    com.google.common.collect.Listsc2633c96ba6cb82e
    com.google.common.collect.ObjectArrays69a3fcec40250c5f
    com.google.common.collect.SingletonImmutableList725730889990e3a6
    com.google.common.collect.UnmodifiableIterator4c89154b495fc329
    com.google.common.escape.Escaperd247467cf41c5f8c
    com.google.common.escape.UnicodeEscapera8216beb030b3e8b
    com.google.common.hash.AbstractByteHasher43ccab786ba752ee
    com.google.common.hash.AbstractHashFunctione7cdd4395c15bca3
    com.google.common.hash.AbstractHasher59ceb1e4e187815d
    com.google.common.hash.HashCodeed297fa3843fbc28
    com.google.common.hash.HashCode.BytesHashCoded8d66bc065c6f203
    com.google.common.hash.Hashingfa2a7673255116be
    com.google.common.hash.Hashing.Sha1Holder57a354416797d9a9
    com.google.common.hash.Java8Compatibility6f24ea57c51ed729
    com.google.common.hash.MessageDigestHashFunction6238f335a3476b82
    com.google.common.hash.MessageDigestHashFunction.MessageDigestHasher7d8b65680644a50b
    com.google.common.io.ByteSource68686fa428221aec
    com.google.common.io.ByteSource.AsCharSource181f8e24cb6711f8
    com.google.common.io.ByteStreams54fcce135598266c
    com.google.common.io.ByteStreams.12b43e9d0abf526aa
    com.google.common.io.CharSourcebc0c0f9fc3e87ec6
    com.google.common.io.CharStreamsa4ac0d1fb66d2450
    com.google.common.io.Closerf172748005764c91
    com.google.common.io.Closer.SuppressingSuppressore6d89820611fa8e8
    com.google.common.io.CountingInputStreamae5d955fd3e02a6b
    com.google.common.io.Resourcesf568e92af131e150
    com.google.common.io.Resources.UrlByteSource3abc3d7530912c7f
    com.google.common.math.IntMathe5dfbae9828a34c5
    com.google.common.net.PercentEscaper03193048d6f0d2c5
    com.google.common.primitives.Intsc5ac9c1a28bb42ab
    com.google.common.reflect.TypeCapture537798a44eb9d727
    com.google.common.reflect.TypeToken688b4af49d28e643
    com.google.gson.FieldNamingPolicya9ccb88e12628bab
    com.google.gson.FieldNamingPolicy.174e60530f9dfd5a6
    com.google.gson.FieldNamingPolicy.2cca6591a7aa10fd3
    com.google.gson.FieldNamingPolicy.3a2f613527e2eaacb
    com.google.gson.FieldNamingPolicy.4139ef2624c75bbd3
    com.google.gson.FieldNamingPolicy.56355fc1f4b132f3e
    com.google.gson.FieldNamingPolicy.6d2839c0903e98a16
    com.google.gson.FieldNamingPolicy.7b15574aea5c36ec6
    com.google.gson.Gson9168cd903aae42f9
    com.google.gson.Gson.1c5e2e5dca8dd7866
    com.google.gson.Gson.216403a6a348bf5ce
    com.google.gson.Gson.489af96dd826fb2a8
    com.google.gson.Gson.57197f614ed9d59b8
    com.google.gson.Gson.FutureTypeAdaptera4a4659f7abd22c4
    com.google.gson.GsonBuilder9fc656420c7554bc
    com.google.gson.JsonElement291e91aec4faff2c
    com.google.gson.JsonPrimitived174e7126f45f7bd
    com.google.gson.LongSerializationPolicy0383e8018575dd2d
    com.google.gson.LongSerializationPolicy.1cff239f5198750ee
    com.google.gson.LongSerializationPolicy.2f8175a77e442ec4a
    com.google.gson.ToNumberPolicy6b3f5eb48341c0f7
    com.google.gson.ToNumberPolicy.13e28bcbd9e18f906
    com.google.gson.ToNumberPolicy.29ed1f6c68a8f7a31
    com.google.gson.ToNumberPolicy.378745d4a07673284
    com.google.gson.ToNumberPolicy.44f0bc632663193b9
    com.google.gson.TypeAdapter747644c650689faf
    com.google.gson.TypeAdapter.1c6c289b4bd4187f1
    com.google.gson.internal..Gson.Preconditions2ad574710e4bd8e8
    com.google.gson.internal..Gson.Types0a992fa162ddfec7
    com.google.gson.internal..Gson.Types.ParameterizedTypeImpl13e67e1502e68402
    com.google.gson.internal.ConstructorConstructor4604d9d4dbd14c3e
    com.google.gson.internal.ConstructorConstructor.4242b5990ddcc9896
    com.google.gson.internal.ConstructorConstructor.96d16b437a1aadb36
    com.google.gson.internal.Excluder9e16a75d38817706
    com.google.gson.internal.JsonReaderInternalAccessa64aa20bd74e6d9e
    com.google.gson.internal.Primitivesce797cf2bd15cce7
    com.google.gson.internal.Streamsadda68f4d0312fb9
    com.google.gson.internal.bind.ArrayTypeAdapterebce4a78f6b30b13
    com.google.gson.internal.bind.ArrayTypeAdapter.13c5f19f1af83884f
    com.google.gson.internal.bind.CollectionTypeAdapterFactoryc89f9bd47ce9b7e4
    com.google.gson.internal.bind.CollectionTypeAdapterFactory.Adapter5b304b7c5b05b2c8
    com.google.gson.internal.bind.DateTypeAdaptera918f4b3cc484a9e
    com.google.gson.internal.bind.DateTypeAdapter.11e1e04a31853ce1a
    com.google.gson.internal.bind.DefaultDateTypeAdapter.DateType67600e175a04fa9c
    com.google.gson.internal.bind.DefaultDateTypeAdapter.DateType.195e6b44340ce7477
    com.google.gson.internal.bind.JsonAdapterAnnotationTypeAdapterFactoryf754ec6a28319d24
    com.google.gson.internal.bind.MapTypeAdapterFactory2bfca7fe4e11de02
    com.google.gson.internal.bind.NumberTypeAdapter2c1c4b5a515ff5cc
    com.google.gson.internal.bind.NumberTypeAdapter.1d669ec06e8eb62d8
    com.google.gson.internal.bind.ObjectTypeAdaptera67e2c1a77fe9b1f
    com.google.gson.internal.bind.ObjectTypeAdapter.10a877dd0db982bc4
    com.google.gson.internal.bind.ReflectiveTypeAdapterFactory2c3e1166fdd10498
    com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.135840f861ded8c9d
    com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.Adapter06b5bf10c2fd2e33
    com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.BoundField4a9a63a52b21996f
    com.google.gson.internal.bind.TreeTypeAdapter55e5de6125bdb4af
    com.google.gson.internal.bind.TreeTypeAdapter.GsonContextImplf8b98fea70d55222
    com.google.gson.internal.bind.TreeTypeAdapter.SingleTypeFactorya5b8e2bfa2d00164
    com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapperf6e42ebf3100825e
    com.google.gson.internal.bind.TypeAdapterse87d94b30b5ca06d
    com.google.gson.internal.bind.TypeAdapters.1f3a08ce801e7e166
    com.google.gson.internal.bind.TypeAdapters.10324fe998dd174cb8
    com.google.gson.internal.bind.TypeAdapters.118f64dd900dd5a878
    com.google.gson.internal.bind.TypeAdapters.126573c8fd79b9a346
    com.google.gson.internal.bind.TypeAdapters.13a28915fb6a45886c
    com.google.gson.internal.bind.TypeAdapters.143ac468d495830a9c
    com.google.gson.internal.bind.TypeAdapters.156c7c1df28c9ed2cb
    com.google.gson.internal.bind.TypeAdapters.1683a302c4cf99d019
    com.google.gson.internal.bind.TypeAdapters.176fbdd7f772ab7b04
    com.google.gson.internal.bind.TypeAdapters.188f008280626b9a30
    com.google.gson.internal.bind.TypeAdapters.194d879aedaa8d7e02
    com.google.gson.internal.bind.TypeAdapters.24a7a8852a34fa31f
    com.google.gson.internal.bind.TypeAdapters.20b01fba078a84d79c
    com.google.gson.internal.bind.TypeAdapters.2184c2ec0830eeafab
    com.google.gson.internal.bind.TypeAdapters.22a9e744a24ba07bc4
    com.google.gson.internal.bind.TypeAdapters.23b1dddfadd864df22
    com.google.gson.internal.bind.TypeAdapters.24dfa61efb73771bbf
    com.google.gson.internal.bind.TypeAdapters.2564bf17af3af78980
    com.google.gson.internal.bind.TypeAdapters.2628da15be09d13d5f
    com.google.gson.internal.bind.TypeAdapters.27cb5007828ff50e28
    com.google.gson.internal.bind.TypeAdapters.28a45569ee9930457e
    com.google.gson.internal.bind.TypeAdapters.29eb3b09d82067f483
    com.google.gson.internal.bind.TypeAdapters.38d545ecafd8a8df5
    com.google.gson.internal.bind.TypeAdapters.319536a9b7f1c3d09d
    com.google.gson.internal.bind.TypeAdapters.328dd9202bcacd4315
    com.google.gson.internal.bind.TypeAdapters.337e97d467239e5f1e
    com.google.gson.internal.bind.TypeAdapters.3443e209386fcb4f0e
    com.google.gson.internal.bind.TypeAdapters.35f9f197d0a4dbbbb9
    com.google.gson.internal.bind.TypeAdapters.48868f90de082bf2b
    com.google.gson.internal.bind.TypeAdapters.57240432c98aaa286
    com.google.gson.internal.bind.TypeAdapters.63a4cfe0747ca9789
    com.google.gson.internal.bind.TypeAdapters.77219eb05f82d8a49
    com.google.gson.internal.bind.TypeAdapters.8e0f2944db3d0fb53
    com.google.gson.internal.bind.TypeAdapters.9fe01915226959bf4
    com.google.gson.internal.reflect.ReflectionHelper44fad9d8bd1320c8
    com.google.gson.internal.sql.SqlDateTypeAdapter759c80a351806a6a
    com.google.gson.internal.sql.SqlDateTypeAdapter.15e8177dacb42fdcc
    com.google.gson.internal.sql.SqlTimeTypeAdapterc03cfadd1131b29a
    com.google.gson.internal.sql.SqlTimeTypeAdapter.138f494c57c386f02
    com.google.gson.internal.sql.SqlTimestampTypeAdapter685ac2966df2335f
    com.google.gson.internal.sql.SqlTimestampTypeAdapter.138e74c1f432005c2
    com.google.gson.internal.sql.SqlTypesSupport24f8c951b0c966e1
    com.google.gson.internal.sql.SqlTypesSupport.185ef3fff6448d68a
    com.google.gson.internal.sql.SqlTypesSupport.20c921201327ae0f7
    com.google.gson.reflect.TypeToken2aa6775adf4a2815
    com.google.gson.stream.JsonReader760ec45a181a831f
    com.google.gson.stream.JsonReader.1819e4318eb6656bd
    com.google.gson.stream.JsonToken991a7375285784a1
    com.google.gson.stream.JsonWriter5f56466c75be28bc
    com.h3xstream.retirejs.repo.JsLibrary5d11b317102303f5
    com.h3xstream.retirejs.repo.JsLibraryResult814bb4d45dfe1e0b
    com.h3xstream.retirejs.repo.JsVulnerabilityf4bb1cfa90e6e469
    com.h3xstream.retirejs.repo.ScannerFacade01c9c1db2838e35a
    com.h3xstream.retirejs.repo.VulnerabilitiesRepositoryb739f5ef8899977b
    com.h3xstream.retirejs.repo.VulnerabilitiesRepositoryLoader010000276d5c65ec
    com.h3xstream.retirejs.util.CompareVersionUtil0c88223651256c2d
    com.h3xstream.retirejs.util.HashUtil1304965382179e56
    com.h3xstream.retirejs.util.RegexUtil916e0c9c88baca5b
    com.hankcs.algorithm.AhoCorasickDoubleArrayTriecef76a3b8583c0d8
    com.hankcs.algorithm.AhoCorasickDoubleArrayTrie.Buildere116cc2ef4f3bf95
    com.hankcs.algorithm.AhoCorasickDoubleArrayTrie.Hitb4d44553d9d45bc2
    com.hankcs.algorithm.State8219f5343445a01f
    com.moandjiezana.toml.ArrayValueReaderbbf4c403f7c9afe9
    com.moandjiezana.toml.BooleanValueReaderWriter7efc1effa9effd42
    com.moandjiezana.toml.Containera0e636e8beb0033f
    com.moandjiezana.toml.Container.Table85570c6c8ff5b239
    com.moandjiezana.toml.Container.TableArray55d83ce0a83ba94f
    com.moandjiezana.toml.Contextcece0d91c425523b
    com.moandjiezana.toml.DateValueReaderWriter412c83a733ce79aa
    com.moandjiezana.toml.DateValueReaderWriter.DateConverterJdk6b63f8bc63f50137f
    com.moandjiezana.toml.Identifier23510c825f717050
    com.moandjiezana.toml.Identifier.Typebdaf5cf0f5bf5952
    com.moandjiezana.toml.IdentifierConverterc55da9d2f668ee3f
    com.moandjiezana.toml.InlineTableValueReader745f289e18ddbb46
    com.moandjiezana.toml.Keys7f7591dd9cf18f27
    com.moandjiezana.toml.Keys.Keyb37f915828092172
    com.moandjiezana.toml.LiteralStringValueReaderfa4133d47d5338ac
    com.moandjiezana.toml.MultilineLiteralStringValueReader3cae71f02a06642a
    com.moandjiezana.toml.MultilineStringValueReader427eabb026f69f0c
    com.moandjiezana.toml.NumberValueReaderWriter8bb586d62577a3b6
    com.moandjiezana.toml.Results5f9fd677fdc6fa8b
    com.moandjiezana.toml.Results.Errors79f250efa77a951c
    com.moandjiezana.toml.StringValueReaderWriter2b8d354b0fee8bd4
    com.moandjiezana.toml.Tomlf5996531c63d19d1
    com.moandjiezana.toml.TomlParserf2f3f62989f16012
    com.moandjiezana.toml.ValueReaders6d37181fd4f18d91
    com.mysql.jdbc.AbandonedConnectionCleanupThread707891d5a502a442
    com.mysql.jdbc.Driver309d083fba52450b
    com.mysql.jdbc.Messages811188856766f3be
    com.mysql.jdbc.NonRegisteringDriver4076c54424c48bb9
    com.mysql.jdbc.StringUtilsff1d78cab6077f38
    com.mysql.jdbc.Util020cd4d561559a49
    com.sun.crypto.provider.AESCipher9379cbb969dccdab
    com.sun.crypto.provider.AESCipher.Generaldd25667a734d67f2
    com.sun.crypto.provider.AESConstantsff56ec558b5f24b2
    com.sun.crypto.provider.AESCrypt8f74d327e3757900
    com.sun.crypto.provider.CipherCorea719a438faf0a701
    com.sun.crypto.provider.CounterModefab22112699963b8
    com.sun.crypto.provider.DHParameters16f962dbaa27c76a
    com.sun.crypto.provider.ElectronicCodeBook55bee70106027943
    com.sun.crypto.provider.FeedbackCipherfe3b493a4f1f3358
    com.sun.crypto.provider.GCTR363ef00c8e464985
    com.sun.crypto.provider.GHASHe2e4c8ed73293545
    com.sun.crypto.provider.GaloisCounterModed5653e4b1d135ece
    com.sun.crypto.provider.HmacCored10e0726d0a7a75b
    com.sun.crypto.provider.HmacCore.HmacSHA256e51d50e772714011
    com.sun.crypto.provider.PKCS5Padding2f576a81eac7847f
    com.sun.crypto.provider.Preconditionsfd7e7c3ada235a9b
    com.sun.crypto.provider.Preconditions.168fa2261aa6363f8
    com.sun.crypto.provider.RangeUtil83f9533ae557ea46
    com.sun.crypto.provider.SunJCE33c998c6ba77d73e
    com.sun.crypto.provider.SymmetricCipher67e05752931ac6b4
    com.sun.crypto.provider.TlsKeyMaterialGenerator9a670d07119f980e
    com.sun.crypto.provider.TlsMasterSecretGeneratorb5bb91b132a7e1ed
    com.sun.crypto.provider.TlsMasterSecretGenerator.TlsMasterSecretKey47a2de5eed80bb69
    com.sun.crypto.provider.TlsPrfGenerator7f3cc07aa4e0ef26
    com.sun.crypto.provider.TlsPrfGenerator.V12854f82e423bf885a
    io.github.jeremylong.jcs3.slf4j.Slf4jAdapter6faeb93da707d61c
    io.github.jeremylong.jcs3.slf4j.Slf4jLogFactoryf96607e602f6e2af
    io.github.jeremylong.openvulnerability.client.nvd.Configf3beb84a109d4b1d
    io.github.jeremylong.openvulnerability.client.nvd.Config.Operator59d33ed4ecb93d1a
    io.github.jeremylong.openvulnerability.client.nvd.CpeMatch054f2076c10d37d5
    io.github.jeremylong.openvulnerability.client.nvd.CveItem44167ef95eadee21
    io.github.jeremylong.openvulnerability.client.nvd.CvssV2c598dccdeb0796d4
    io.github.jeremylong.openvulnerability.client.nvd.CvssV2.Typec8a5f42e14588744
    io.github.jeremylong.openvulnerability.client.nvd.CvssV2Data46cf1489bdb16e2c
    io.github.jeremylong.openvulnerability.client.nvd.CvssV2Data.AccessComplexityType4b727756fd7afc8f
    io.github.jeremylong.openvulnerability.client.nvd.CvssV2Data.AccessVectorType9be7812343637a98
    io.github.jeremylong.openvulnerability.client.nvd.CvssV2Data.AuthenticationTypef9e66c082b7d5b7f
    io.github.jeremylong.openvulnerability.client.nvd.CvssV2Data.CiaRequirementType566749ba23873cba
    io.github.jeremylong.openvulnerability.client.nvd.CvssV2Data.CiaType6825e093146ac4fd
    io.github.jeremylong.openvulnerability.client.nvd.CvssV2Data.CollateralDamagePotentialType3dab85e8b792465a
    io.github.jeremylong.openvulnerability.client.nvd.CvssV2Data.ExploitabilityType5637500b96aaf9d6
    io.github.jeremylong.openvulnerability.client.nvd.CvssV2Data.RemediationLevelType83b36fc335cf1aec
    io.github.jeremylong.openvulnerability.client.nvd.CvssV2Data.ReportConfidenceTypec278a7d2aa3f6861
    io.github.jeremylong.openvulnerability.client.nvd.CvssV2Data.TargetDistributionTypee10489652bb0f924
    io.github.jeremylong.openvulnerability.client.nvd.CvssV2Data.Version29d3f3d317564b7c
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3bed953eb3208b3b5
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3.Type4ffc8b69f1ebf953
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3Data5b1476d2f8696d14
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3Data.AttackComplexityType0c7b7fa26bb8364e
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3Data.AttackVectorTypef9692d23fc4d0814
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3Data.CiaRequirementTypee25b27974539d0e2
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3Data.CiaType65b3e0a08371ce41
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3Data.ConfidenceTypefe24e867fbd6445d
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3Data.ExploitCodeMaturityTyped0c528d24ff9be40
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3Data.ModifiedAttackComplexityTypeb9c63569c8d42c4f
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3Data.ModifiedAttackVectorTypee055d6e53e32180d
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3Data.ModifiedCiaTypedafe385378718922
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3Data.ModifiedPrivilegesRequiredType8e153d53da7dbccb
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3Data.ModifiedScopeTypeeac977b8fdb58555
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3Data.ModifiedUserInteractionTyped0242304dffe7c2c
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3Data.PrivilegesRequiredTypec6b3e30c55fedb48
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3Data.RemediationLevelType5bfb96dfad679414
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3Data.ScopeTyped521a47d32508edc
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3Data.SeverityType7dba5f64a6708bdf
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3Data.UserInteractionTypee65ee421331e824b
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3Data.Versiondb94623c16eb505c
    io.github.jeremylong.openvulnerability.client.nvd.DefCveItem9ad305442ad670bb
    io.github.jeremylong.openvulnerability.client.nvd.LangString2adbe707e58eb9bf
    io.github.jeremylong.openvulnerability.client.nvd.Node0f06cf05a91a1603
    io.github.jeremylong.openvulnerability.client.nvd.Node.Operatorff1e145b9c081100
    io.github.jeremylong.openvulnerability.client.nvd.Reference32347bbabaad713b
    javax.json.EmptyArrayf63598214cdf4813
    javax.json.EmptyObjectaae67fb779fa6a51
    javax.json.Json6ffaf75211f5d863
    javax.json.JsonException17f885a50fda253b
    javax.json.JsonValue089ae0dae533de78
    javax.json.JsonValue.ValueType8eff2e7ad0d72a52
    javax.json.JsonValueImpl6019370326b8ea85
    javax.json.spi.JsonProvider888f378958cffe6e
    javax.json.stream.JsonParser.Event00828f9746dd1366
    javax.json.stream.JsonParsingException8e505ab497f27e80
    junit.framework.Assert3d2ac0fd1eb0a202
    junit.framework.TestCase8660e4c9fdffa3b0
    mockit.Expectationsa5ca24af9ea1e29d
    mockit.Invocationa96336e1f386171f
    mockit.Invocationsae30bbe6d3cbdc5a
    mockit.MockUpe8171f437ed496ae
    mockit.Verificationse43cd41e9eda23f5
    mockit.asm.AnnotatedReadercd282e0a5a53baea
    mockit.asm.BaseWriter582f5e60cf7a7aa4
    mockit.asm.SignatureWriterdf63ed411efbf4b6
    mockit.asm.annotations.AnnotationReader1a8efb95d77d1cc4
    mockit.asm.annotations.AnnotationVisitor028e56514beb3239
    mockit.asm.classes.BootstrapMethodsWriter070fb6d0941f3fc5
    mockit.asm.classes.ClassInfo373729acd80f0ac2
    mockit.asm.classes.ClassReader35b19ee242b52e68
    mockit.asm.classes.ClassVisitorecc8c148efb1fb05
    mockit.asm.classes.ClassWriter138f6d9fdc880f33
    mockit.asm.classes.ConstantPoolCopyinge69830abde6594e3
    mockit.asm.classes.InnerClassesWriter161eb63681ff89cf
    mockit.asm.classes.InterfaceWriter50ed3e595493fede
    mockit.asm.classes.SourceFileWritere8fc300748dc0805
    mockit.asm.classes.WrappingClassVisitor05ea9f6f99307be6
    mockit.asm.constantPool.AttributeWriter14f301dde0efc458
    mockit.asm.constantPool.BootstrapMethodItemd90beed7427f6b89
    mockit.asm.constantPool.ClassMemberItemaa126e5329780a07
    mockit.asm.constantPool.ConstantPoolGeneration0fa17a48409c3309
    mockit.asm.constantPool.DoubleItem34f414546b36c4df
    mockit.asm.constantPool.DynamicItem3cea8c55017846c0
    mockit.asm.constantPool.FloatItembd61b107266c3b95
    mockit.asm.constantPool.IntItemd97e2f1dc717a13e
    mockit.asm.constantPool.IntValueItem98e99f11b2caca0e
    mockit.asm.constantPool.Itemd068fa4ff3fcee61
    mockit.asm.constantPool.LongItem6b22c746ea1433c1
    mockit.asm.constantPool.LongValueItem2ccc0f1c20cad69e
    mockit.asm.constantPool.MergedTypeTableItem0d0b1da6270fd88c
    mockit.asm.constantPool.MethodHandleItem39bcee524a8a7b98
    mockit.asm.constantPool.NameAndTypeItemb7bb836a0ec0d51d
    mockit.asm.constantPool.NormalTypeTableItem0f252ab8f9880312
    mockit.asm.constantPool.StringItem88ca5a93ae8a30e1
    mockit.asm.constantPool.TypeOrMemberItemdab75af23a47e2b1
    mockit.asm.constantPool.TypeTableItemd8a8ef64ff3ac452
    mockit.asm.constantPool.UninitializedTypeTableItem370461ef51a65392
    mockit.asm.controlFlow.CFGAnalysisa06e124c809928c9
    mockit.asm.controlFlow.Edge5d83111f9538c66f
    mockit.asm.controlFlow.Frame386d35773c19369a
    mockit.asm.controlFlow.Label5bca527bd719557c
    mockit.asm.controlFlow.StackMapTableWriter7bcdf022caa20775
    mockit.asm.exceptionHandling.ExceptionHandlerdd9e712d320f6d7e
    mockit.asm.exceptionHandling.ExceptionHandling286f458f00be3947
    mockit.asm.fields.FieldReader053ae610f8947b76
    mockit.asm.fields.FieldVisitor6c321d4980a2d7f3
    mockit.asm.jvmConstants.Access642ded812da66040
    mockit.asm.jvmConstants.JVMInstructiondeeb476cf4f7665b
    mockit.asm.metadata.ClassMetadataReader86fe7615054981b5
    mockit.asm.metadata.ClassMetadataReader.AnnotationInfobc09c40a0f38e185
    mockit.asm.metadata.ClassMetadataReader.Attribute6d901176eb06252c
    mockit.asm.metadata.ClassMetadataReader.ConstantPoolTag83ba5ffd57f73b11
    mockit.asm.metadata.ClassMetadataReader.MemberInfodd16bea0c59df08f
    mockit.asm.metadata.ClassMetadataReader.MethodInfo3e1c9829877de254
    mockit.asm.metadata.ObjectWithAttributese089abe59f8ade12
    mockit.asm.methods.ExceptionsWritere5e41e85406ed2b8
    mockit.asm.methods.LineNumberTableWriter7fa755996e63e0b5
    mockit.asm.methods.LocalVariableTableWriter0ff2250f9d363442
    mockit.asm.methods.MethodReader0d46bdb10e1cb567
    mockit.asm.methods.MethodVisitor6aafdb0e0bd9f04d
    mockit.asm.methods.MethodWriterc77ca17c110fc381
    mockit.asm.methods.WrappingMethodVisitorfe2114a373ed09e3
    mockit.asm.types.ArrayType3897ad248dad3058
    mockit.asm.types.JavaType6a617aca55015b96
    mockit.asm.types.MethodTypec9e3c18945da5ef2
    mockit.asm.types.ObjectType439dacb2d6b69467
    mockit.asm.types.PrimitiveType9907457aea9de70c
    mockit.asm.types.ReferenceTypec3a32354b2fe0c85
    mockit.asm.util.ByteVectoradf5209dcdaf01d5
    mockit.asm.util.BytecodeReaderad4c2af17a40d4d0
    mockit.asm.util.MethodHandle92e6865d03832eba
    mockit.coverage.CodeCoverage57c4b93cf9705048
    mockit.coverage.Configuration0f191cfcb58e3996
    mockit.coverage.testRedundancy.TestCoveragee7294c8646aeb601
    mockit.integration.TestRunnerDecorator10c6d4d07e4bb526
    mockit.integration.junit4.FakeFrameworkMethod202fa832304031cd
    mockit.integration.junit4.FakeRunNotifierf2d8e332a2590c60
    mockit.integration.junit4.JUnit4TestRunnerDecoratorc2eadb5bf6beaf6c
    mockit.internal.BaseClassModifiere801aefb4d7fd037
    mockit.internal.BaseClassModifier.1cd1242b388012ca6
    mockit.internal.BaseClassModifier.DynamicConstructorModifier9c3819f88596d6ec
    mockit.internal.BaseClassModifier.DynamicModifierc5d17ff8720815cc
    mockit.internal.BaseInvocationf7de466f17f4adbb
    mockit.internal.ClassFile41b638065ae166a7
    mockit.internal.ClassLoadingBridgee658793228cc4a49
    mockit.internal.classGeneration.ImplementationClass2135f7addfcebcd6
    mockit.internal.classGeneration.ImplementationClass.1536a2c72142555ed
    mockit.internal.classGeneration.MockedTypeInfo68a825b302f3eb59
    mockit.internal.expectations.ActiveInvocations69ad4a6200b38312
    mockit.internal.expectations.BaseVerificationPhase87e4ee5c3619f378
    mockit.internal.expectations.EquivalentInstances362587d82a6eaac5
    mockit.internal.expectations.ExecutionMode4a3f56de3f6793be
    mockit.internal.expectations.ExecutionMode.1a900ac53a8700d67
    mockit.internal.expectations.ExecutionMode.27dd0941ca37ec639
    mockit.internal.expectations.ExecutionMode.362b90756f9778f56
    mockit.internal.expectations.Expectation95467daa361db635
    mockit.internal.expectations.FailureStatebf61b469fc5afbad
    mockit.internal.expectations.InstanceBasedMatching9458cbdaa0fbebaa
    mockit.internal.expectations.MockingFilters72d1d75a8e0bced9
    mockit.internal.expectations.PartiallyMockedInstancescc8eaf5beac6af68
    mockit.internal.expectations.Phase4b7b646b1461d185
    mockit.internal.expectations.PhasedExecutionState311475019f0a3618
    mockit.internal.expectations.RecordAndReplayExecutionf879ec0212b83007
    mockit.internal.expectations.RecordPhase72f84a97a45b27c2
    mockit.internal.expectations.ReplayPhaseeff6e0c32e152072
    mockit.internal.expectations.TestOnlyPhase486d5bcf2172a309
    mockit.internal.expectations.UnorderedVerificationPhasee55f216a7f32651e
    mockit.internal.expectations.VerifiedExpectationa46e58acfeca6ffe
    mockit.internal.expectations.argumentMatching.ArgumentMismatch7e4d4f0743fce2e7
    mockit.internal.expectations.argumentMatching.EqualityMatcher654944fb0b4dbb74
    mockit.internal.expectations.invocation.ArgumentValuesAndMatchersbf66f1397afb818b
    mockit.internal.expectations.invocation.ArgumentValuesAndMatchersWithoutVarargs20905e089eb2e724
    mockit.internal.expectations.invocation.ExpectationError45b9b9e0ad095651
    mockit.internal.expectations.invocation.ExpectedInvocation352bd6ec8fd0e356
    mockit.internal.expectations.invocation.InvocationArgumentse50fe83108136f8d
    mockit.internal.expectations.invocation.InvocationConstraints89c26f66c460c3cc
    mockit.internal.expectations.invocation.InvocationResult795227bac41bb536
    mockit.internal.expectations.invocation.InvocationResult.ReturnValueResult83eebd54ffa005f4
    mockit.internal.expectations.invocation.InvocationResult.ThrowableResult84c355650d9268a6
    mockit.internal.expectations.invocation.InvocationResults50ebacc33f832e61
    mockit.internal.expectations.invocation.MissingInvocation9b35598e71537a84
    mockit.internal.expectations.invocation.ReturnTypeConversion8212210241aee895
    mockit.internal.expectations.mocking.BaseTypeRedefinition1be9edc56c8472a3
    mockit.internal.expectations.mocking.BaseTypeRedefinition.1254cbcef8f1456a4
    mockit.internal.expectations.mocking.BaseTypeRedefinition.MockedClass6093d4a41ef633da
    mockit.internal.expectations.mocking.CascadingTypeRedefinitionfcd631b5e20cae4d
    mockit.internal.expectations.mocking.FieldTypeRedefinition643d5cb7fe95f721
    mockit.internal.expectations.mocking.FieldTypeRedefinitionsc4cb3bcb5359dd6a
    mockit.internal.expectations.mocking.InstanceFactory6d483d25245f1011
    mockit.internal.expectations.mocking.InstanceFactory.ClassInstanceFactory6f68864233d9feee
    mockit.internal.expectations.mocking.InstanceFactory.InterfaceInstanceFactory56ed7f3600525438
    mockit.internal.expectations.mocking.InterfaceImplementationGenerator9f43fe3ed12f2864
    mockit.internal.expectations.mocking.MockedBridge331090874886c8c7
    mockit.internal.expectations.mocking.MockedClassModifier335bd2da36742989
    mockit.internal.expectations.mocking.MockedTypeb261d998676dfb65
    mockit.internal.expectations.mocking.PartialMocking8ab7478a89c15271
    mockit.internal.expectations.mocking.TypeRedefinition09c82ffd7d201892
    mockit.internal.expectations.mocking.TypeRedefinitions055dc33e135fb36a
    mockit.internal.expectations.state.CascadingTypesb9acfb27aa4a8790
    mockit.internal.expectations.state.ExecutingTestacf34225777d2f3b
    mockit.internal.expectations.state.ExecutingTest.13b09910b1e29a191
    mockit.internal.expectations.state.MockedTypeCascade7557b5d1187de6dd
    mockit.internal.expectations.transformation.ArgumentCapturing3d314ed0e738b141
    mockit.internal.expectations.transformation.ArgumentMatchingea14fda886ae32fa
    mockit.internal.expectations.transformation.ExpectationsTransformereaac4e9336d5ca40
    mockit.internal.expectations.transformation.ExpectationsTransformer.10494472efdd78888
    mockit.internal.expectations.transformation.InvocationBlockModifier80a4e8399ed7199b
    mockit.internal.faking.FakeBridgeda78f19ce898d263
    mockit.internal.faking.FakeClassSetupe4606a4618ad323c
    mockit.internal.faking.FakeClasses3cd46eb6591366cb
    mockit.internal.faking.FakeClasses.SavePointfecc58d760c6ed06
    mockit.internal.faking.FakeInvocatione3e355bfb78d2072
    mockit.internal.faking.FakeMethodBridge2fd5b959860f5d53
    mockit.internal.faking.FakeMethodCollectoraa97db550361bc87
    mockit.internal.faking.FakeMethods471e51097727667e
    mockit.internal.faking.FakeMethods.FakeMethodb5d99f462770e149
    mockit.internal.faking.FakeState01259986b514ed46
    mockit.internal.faking.FakeStatese760ab91481812c0
    mockit.internal.faking.FakedClassModifier28fa1e02ea9dd34f
    mockit.internal.injection.InjectionPoint872aa5b219261f64
    mockit.internal.injection.InjectionPoint.KindOfInjectionPoint041b00ce689e65c0
    mockit.internal.injection.InjectionProvider1076f7e808be8615
    mockit.internal.injection.InjectionProviders62b38f89bfedb6c7
    mockit.internal.injection.InjectionState6e9537644e97642f
    mockit.internal.injection.Injector4ff47fa912f63618
    mockit.internal.injection.InterfaceResolutionc5428bf18cac5f85
    mockit.internal.injection.InterfaceResolution.130a49c92c2d8b04f
    mockit.internal.injection.LifecycleMethodsed1a5aaae6cf42e3
    mockit.internal.injection.TestedClassd76cf885566451d1
    mockit.internal.injection.TestedClassInstantiationsbfc9ebb0ae421152
    mockit.internal.injection.TestedField9aacd38abc210052
    mockit.internal.injection.TestedObjectbdd0e59488a17cbb
    mockit.internal.injection.TestedObjectCreation48c6d6a50501e864
    mockit.internal.injection.constructor.ConstructorInjection960b7bb54a98707e
    mockit.internal.injection.constructor.ConstructorSearch7ff788771021cb2c
    mockit.internal.injection.constructor.ConstructorSearch.13853d0031525a038
    mockit.internal.injection.field.FieldInjection0337d293a6ebe59a
    mockit.internal.reflection.ConstructorReflection9b22876825249d28
    mockit.internal.reflection.FieldReflection9bc5ffc5070fbac5
    mockit.internal.reflection.GenericTypeReflectiona556abe88b104f52
    mockit.internal.reflection.MethodReflection1dbef6dbfa2e952c
    mockit.internal.reflection.ParameterReflectionbcce5f023dd0cd1c
    mockit.internal.reflection.RealMethodOrConstructorf1472d7088adbb08
    mockit.internal.startup.ClassLoadingBridgeFields29d0d6d7f507fa33
    mockit.internal.startup.ClassLoadingBridgeFields.FieldAdditionTransformer682a4d5236ea1c37
    mockit.internal.startup.ClassLoadingBridgeFields.FieldAdditionTransformer.12e9fd2fdf39cd8c3
    mockit.internal.startup.JMockitInitialization1f5ea374ed1901b8
    mockit.internal.startup.Startup177b14c50aa68246
    mockit.internal.state.CachedClassfiles231a21c71ced4214
    mockit.internal.state.MockFixture394c3264450f978b
    mockit.internal.state.ParameterNames9f70a2910daf7cd7
    mockit.internal.state.SavePointda4c7e434f406431
    mockit.internal.state.TestRun6409fd3c8b761b63
    mockit.internal.state.TestRun.17d6ccf983062f278
    mockit.internal.util.AutoBoxingc40175661b1ad22a
    mockit.internal.util.ClassLoad5bd538d4254708e6
    mockit.internal.util.ClassNaming53e8188d1e80d2e0
    mockit.internal.util.DefaultValuesef05257af12a99c9
    mockit.internal.util.DefaultValues.162f4d730e55d8be8
    mockit.internal.util.DefaultValues.2621af0a0fceb45db
    mockit.internal.util.DefaultValues.31d048754f5398a62
    mockit.internal.util.GeneratedClassesd6753b83268ef779
    mockit.internal.util.MethodFormatter40721403a6cb120d
    mockit.internal.util.ObjectMethods35068f8b60236186
    mockit.internal.util.ParameterNameExtractor23af23efb21b6d24
    mockit.internal.util.StackTraceff09e8982b37f81c
    mockit.internal.util.TypeConversione064dff353fc3c14
    mockit.internal.util.TypeDescriptor24a81b29cb32532c
    mockit.internal.util.Utilitiesd7b5e7b685099df9
    net.bytebuddy.ByteBuddyd4e5f2084d659ff9
    net.bytebuddy.ClassFileVersion907fca1b89111e0a
    net.bytebuddy.ClassFileVersion.VersionLocator.Resolvedc8b4f3ffa3a708cf
    net.bytebuddy.ClassFileVersion.VersionLocator.Resolver575662f2862fb481
    net.bytebuddy.NamingStrategy.AbstractBase77e9d686c976f6e6
    net.bytebuddy.NamingStrategy.Suffixing65bfa03c85847dc9
    net.bytebuddy.NamingStrategy.Suffixing.BaseNameResolver.ForUnnamedType1fb9c5c929a4a173
    net.bytebuddy.NamingStrategy.SuffixingRandomcdbdedcf0cea0a02
    net.bytebuddy.TypeCached02df3631a17fa08
    net.bytebuddy.TypeCache.LookupKeyb75da15a4577d948
    net.bytebuddy.TypeCache.SimpleKey99731a44c3f39c30
    net.bytebuddy.TypeCache.Sort3f135d4f310abf3c
    net.bytebuddy.TypeCache.Sort.13be4336e35a8cbfd
    net.bytebuddy.TypeCache.Sort.25a2bb9e71930a24a
    net.bytebuddy.TypeCache.Sort.35792db85826ac4ba
    net.bytebuddy.TypeCache.StorageKeyda984e48de27d4a8
    net.bytebuddy.TypeCache.WithInlineExpunction5c74d69cd94d649e
    net.bytebuddy.asm.AsmVisitorWrapper.NoOpa613c160b15bbc65
    net.bytebuddy.description.ByteCodeElement.Token.TokenList1070489264457774
    net.bytebuddy.description.ModifierReviewable.AbstractBase0b625f401d945e23
    net.bytebuddy.description.NamedElement.WithDescriptor69f25e85d31086f5
    net.bytebuddy.description.TypeVariableSource.AbstractBaseb8003891860323ce
    net.bytebuddy.description.annotation.AnnotationDescription7e080fcc4ab41eb1
    net.bytebuddy.description.annotation.AnnotationDescription.AbstractBase55a8b2f7b58a15aa
    net.bytebuddy.description.annotation.AnnotationDescription.ForLoadedAnnotationa2b247526c4d26ca
    net.bytebuddy.description.annotation.AnnotationList.AbstractBasec3dca45e359b717d
    net.bytebuddy.description.annotation.AnnotationList.Empty10e1e01ec4afb6b0
    net.bytebuddy.description.annotation.AnnotationList.Explicitb96636e855735fc3
    net.bytebuddy.description.annotation.AnnotationList.ForLoadedAnnotationsa6be8b00fa72ab7a
    net.bytebuddy.description.annotation.AnnotationSource.Empty034fcbd435657d97
    net.bytebuddy.description.annotation.AnnotationValuee46e60f3e4357d8a
    net.bytebuddy.description.annotation.AnnotationValue.AbstractBase6b46c288929d794a
    net.bytebuddy.description.annotation.AnnotationValue.ForConstant650f7b88da7502df
    net.bytebuddy.description.annotation.AnnotationValue.ForConstant.PropertyDelegate.ForNonArrayType8683233734d98d81
    net.bytebuddy.description.annotation.AnnotationValue.ForConstant.PropertyDelegate.ForNonArrayType.1ecf694f5c718a013
    net.bytebuddy.description.annotation.AnnotationValue.ForConstant.PropertyDelegate.ForNonArrayType.2113fe247f14fdcdd
    net.bytebuddy.description.annotation.AnnotationValue.ForConstant.PropertyDelegate.ForNonArrayType.3ad40ce4c8d647d57
    net.bytebuddy.description.annotation.AnnotationValue.ForConstant.PropertyDelegate.ForNonArrayType.4649136274570c878
    net.bytebuddy.description.annotation.AnnotationValue.ForConstant.PropertyDelegate.ForNonArrayType.525519a3723562b18
    net.bytebuddy.description.annotation.AnnotationValue.ForConstant.PropertyDelegate.ForNonArrayType.6d0a4ee1eb78e8925
    net.bytebuddy.description.annotation.AnnotationValue.ForConstant.PropertyDelegate.ForNonArrayType.75cc6d38c7688ce9e
    net.bytebuddy.description.annotation.AnnotationValue.ForConstant.PropertyDelegate.ForNonArrayType.8542fa217a5fe4c51
    net.bytebuddy.description.annotation.AnnotationValue.ForConstant.PropertyDelegate.ForNonArrayType.99adc51229ebb26c9
    net.bytebuddy.description.annotation.AnnotationValue.ForEnumerationDescription451401174e8ca82f
    net.bytebuddy.description.annotation.AnnotationValue.ForEnumerationDescription.Loadedfda0610025cc12ff
    net.bytebuddy.description.annotation.AnnotationValue.ForTypeDescription256f9475d7baab5e
    net.bytebuddy.description.annotation.AnnotationValue.Loaded.AbstractBase1a834bbf25c86ab4
    net.bytebuddy.description.enumeration.EnumerationDescription.AbstractBase36efae2fe3237ba9
    net.bytebuddy.description.enumeration.EnumerationDescription.ForLoadedEnumeration5b47cbeca30adac0
    net.bytebuddy.description.field.FieldDescription68bfcf27b64f643e
    net.bytebuddy.description.field.FieldDescription.AbstractBase8e18b7d4e1ceddcb
    net.bytebuddy.description.field.FieldDescription.InDefinedShape.AbstractBasee1174a0c69da5a57
    net.bytebuddy.description.field.FieldDescription.Latentf267c31e54d89fa1
    net.bytebuddy.description.field.FieldDescription.SignatureToken3fabeebea84ce146
    net.bytebuddy.description.field.FieldDescription.Token3f20efc75bd15e42
    net.bytebuddy.description.field.FieldList.AbstractBase78739d279005d8a4
    net.bytebuddy.description.field.FieldList.Explicit323b76a02a64f9a7
    net.bytebuddy.description.field.FieldList.ForTokensea98dba6ef4eb758
    net.bytebuddy.description.method.MethodDescriptioncb9472a3dd295bbd
    net.bytebuddy.description.method.MethodDescription.AbstractBasedeaeb62afc98ead8
    net.bytebuddy.description.method.MethodDescription.ForLoadedConstructorf8e1111441309268
    net.bytebuddy.description.method.MethodDescription.ForLoadedMethodd9fe344c56539dc6
    net.bytebuddy.description.method.MethodDescription.InDefinedShape.AbstractBase673ca3d2d56a4b0a
    net.bytebuddy.description.method.MethodDescription.InDefinedShape.AbstractBase.ForLoadedExecutabledb01999a48adc399
    net.bytebuddy.description.method.MethodDescription.Latent20e100c8a3802774
    net.bytebuddy.description.method.MethodDescription.Latent.TypeInitializerd5f8ea2d4fb9f2a7
    net.bytebuddy.description.method.MethodDescription.SignatureToken5888f2557f6a88e0
    net.bytebuddy.description.method.MethodDescription.Tokena89fdbfb13002946
    net.bytebuddy.description.method.MethodDescription.TypeSubstituting8dc21d2e259d2c0f
    net.bytebuddy.description.method.MethodDescription.TypeTokenf7f14b8ac76ebd98
    net.bytebuddy.description.method.MethodList.AbstractBaseb054427f9b6a48f1
    net.bytebuddy.description.method.MethodList.Explicitb03ab4c21a93dfd0
    net.bytebuddy.description.method.MethodList.ForLoadedMethods38bd1bf17eb05676
    net.bytebuddy.description.method.MethodList.ForTokens40aa960dc7616ac5
    net.bytebuddy.description.method.MethodList.TypeSubstitutingf1f510557a04392e
    net.bytebuddy.description.method.ParameterDescription.AbstractBase173e1a83772e6071
    net.bytebuddy.description.method.ParameterDescription.ForLoadedParameter8dd9bfdcb695c00c
    net.bytebuddy.description.method.ParameterDescription.ForLoadedParameter.OfConstructora18e1a81fc7465d0
    net.bytebuddy.description.method.ParameterDescription.ForLoadedParameter.OfMethod811597af8855d53c
    net.bytebuddy.description.method.ParameterDescription.InDefinedShape.AbstractBase717f5d8d90c005f1
    net.bytebuddy.description.method.ParameterDescription.Latent1aa2e08f2ad0d5c2
    net.bytebuddy.description.method.ParameterDescription.Token36549650fa40d54b
    net.bytebuddy.description.method.ParameterDescription.Token.TypeList1890975119bdb094
    net.bytebuddy.description.method.ParameterDescription.TypeSubstituting6cc95e3ea064743d
    net.bytebuddy.description.method.ParameterList.AbstractBase6fe6f7a3a2c191ea
    net.bytebuddy.description.method.ParameterList.Empty8f4a45d2f54ed28b
    net.bytebuddy.description.method.ParameterList.Explicit.ForTypes75d84e0b4fcd99a9
    net.bytebuddy.description.method.ParameterList.ForLoadedExecutable1456c072c3be7105
    net.bytebuddy.description.method.ParameterList.ForLoadedExecutable.OfConstructor6d7eaa8911075319
    net.bytebuddy.description.method.ParameterList.ForLoadedExecutable.OfMethodf0835708e2d15fb4
    net.bytebuddy.description.method.ParameterList.ForTokensb77d0ee711552f0c
    net.bytebuddy.description.method.ParameterList.TypeSubstituting293f1f350b97c439
    net.bytebuddy.description.modifier.FieldManifestation61ed9ad5f460d425
    net.bytebuddy.description.modifier.ModifierContributor.Resolver4c37457cc5fe415c
    net.bytebuddy.description.modifier.Ownership03978521bbedeaac
    net.bytebuddy.description.modifier.SynchronizationState1ee1e76d573ad75b
    net.bytebuddy.description.modifier.SyntheticState0ea0b3d14a159257
    net.bytebuddy.description.modifier.TypeManifestation823497b74af56cf0
    net.bytebuddy.description.modifier.Visibilityeddec8671a9488f2
    net.bytebuddy.description.modifier.Visibility.1d7e383ada6123e01
    net.bytebuddy.description.type.PackageDescription.AbstractBasefbc5f3918eb9463b
    net.bytebuddy.description.type.PackageDescription.ForLoadedPackage647cf445f49b7cf5
    net.bytebuddy.description.type.PackageDescription.Simple0cb49b8e5cdceb1d
    net.bytebuddy.description.type.RecordComponentList.AbstractBasefa2d664156de0c87
    net.bytebuddy.description.type.RecordComponentList.ForTokensb72447d1fcbe18bd
    net.bytebuddy.description.type.TypeDefinition.Sorte252ac8a021f4082
    net.bytebuddy.description.type.TypeDefinition.SuperClassIteratordcc41092c6176f54
    net.bytebuddy.description.type.TypeDescription36fd0fa20ad52135
    net.bytebuddy.description.type.TypeDescription.AbstractBase258559cdb4b6404f
    net.bytebuddy.description.type.TypeDescription.AbstractBase.OfSimpleTypec72c2e5e6e03df99
    net.bytebuddy.description.type.TypeDescription.ArrayProjectiona900e473d864b2b5
    net.bytebuddy.description.type.TypeDescription.ForLoadedType8fa35f44ace50391
    net.bytebuddy.description.type.TypeDescription.Generic5601518ac3dba89e
    net.bytebuddy.description.type.TypeDescription.Generic.AbstractBase3e49593313e4528f
    net.bytebuddy.description.type.TypeDescription.Generic.AnnotationReader.Delegatorb0fc4c110c19aecd
    net.bytebuddy.description.type.TypeDescription.Generic.AnnotationReader.Delegator.Chainedce5936070db33961
    net.bytebuddy.description.type.TypeDescription.Generic.AnnotationReader.Delegator.ForLoadedExecutableExceptionType83ae335cad65ee98
    net.bytebuddy.description.type.TypeDescription.Generic.AnnotationReader.Delegator.ForLoadedExecutableParameterType3db4d13b1a55ffe8
    net.bytebuddy.description.type.TypeDescription.Generic.AnnotationReader.Delegator.ForLoadedInterface25bcc5acc7d6039e
    net.bytebuddy.description.type.TypeDescription.Generic.AnnotationReader.Delegator.ForLoadedMethodReturnType68fd86a349490e9d
    net.bytebuddy.description.type.TypeDescription.Generic.AnnotationReader.Delegator.ForLoadedSuperClass64cbe4cf03033a19
    net.bytebuddy.description.type.TypeDescription.Generic.AnnotationReader.Delegator.Simple58348630fb7f5660
    net.bytebuddy.description.type.TypeDescription.Generic.AnnotationReader.ForComponentType0f95408415168381
    net.bytebuddy.description.type.TypeDescription.Generic.AnnotationReader.ForTypeArgumentc4c5a6817a5b11ba
    net.bytebuddy.description.type.TypeDescription.Generic.AnnotationReader.NoOp7d262d1efdc1a658
    net.bytebuddy.description.type.TypeDescription.Generic.LazyProjection0ee749354388952f
    net.bytebuddy.description.type.TypeDescription.Generic.LazyProjection.ForLoadedReturnType09e831a0a48649e7
    net.bytebuddy.description.type.TypeDescription.Generic.LazyProjection.ForLoadedSuperClass4097c89a98a6a8c7
    net.bytebuddy.description.type.TypeDescription.Generic.LazyProjection.OfConstructorParameter268259d971f079da
    net.bytebuddy.description.type.TypeDescription.Generic.LazyProjection.OfMethodParametercc35cbb5a12db70b
    net.bytebuddy.description.type.TypeDescription.Generic.LazyProjection.WithEagerNavigationba4ed13a2c16fa27
    net.bytebuddy.description.type.TypeDescription.Generic.LazyProjection.WithEagerNavigation.OfAnnotatedElement5bccd0ca3c6cf39e
    net.bytebuddy.description.type.TypeDescription.Generic.LazyProjection.WithLazyNavigation5734f0b82230f143
    net.bytebuddy.description.type.TypeDescription.Generic.LazyProjection.WithLazyNavigation.OfAnnotatedElement2203d6c2cc2e43d7
    net.bytebuddy.description.type.TypeDescription.Generic.LazyProjection.WithResolvedErasure5656afa8f8c7fa04
    net.bytebuddy.description.type.TypeDescription.Generic.LazyProxy837c46ba31dd9215
    net.bytebuddy.description.type.TypeDescription.Generic.OfGenericArrayd13b176c2d3dc84b
    net.bytebuddy.description.type.TypeDescription.Generic.OfGenericArray.Latent5d23c8971e97c94c
    net.bytebuddy.description.type.TypeDescription.Generic.OfNonGenericTypeffefd02f303394e6
    net.bytebuddy.description.type.TypeDescription.Generic.OfNonGenericType.ForErasured952d613f637b449
    net.bytebuddy.description.type.TypeDescription.Generic.OfNonGenericType.ForLoadedTypef00423b3668c6a6d
    net.bytebuddy.description.type.TypeDescription.Generic.OfParameterizedType91d595189a038777
    net.bytebuddy.description.type.TypeDescription.Generic.OfParameterizedType.ForGenerifiedErasure4fa1e7c89c00c97f
    net.bytebuddy.description.type.TypeDescription.Generic.OfParameterizedType.ForLoadedType68b564e96aa7b7f7
    net.bytebuddy.description.type.TypeDescription.Generic.OfParameterizedType.ForLoadedType.ParameterArgumentTypeList186a3e289af3008c
    net.bytebuddy.description.type.TypeDescription.Generic.OfParameterizedType.Latent0563e8e02d018d81
    net.bytebuddy.description.type.TypeDescription.Generic.Visitor.ForRawType2730ba635b3e4dae
    net.bytebuddy.description.type.TypeDescription.Generic.Visitor.ForSignatureVisitor7c9ee6e3c386d02f
    net.bytebuddy.description.type.TypeDescription.Generic.Visitor.ForSignatureVisitor.OfTypeArgumentd8e6035b10ed1222
    net.bytebuddy.description.type.TypeDescription.Generic.Visitor.Reducing6646869e65b4683e
    net.bytebuddy.description.type.TypeDescription.Generic.Visitor.Reifyingf695f950ef96d452
    net.bytebuddy.description.type.TypeDescription.Generic.Visitor.Reifying.13887b35198c64c3f
    net.bytebuddy.description.type.TypeDescription.Generic.Visitor.Reifying.2dda2c47b308dfe77
    net.bytebuddy.description.type.TypeDescription.Generic.Visitor.Substitutor65dc96c548e3e991
    net.bytebuddy.description.type.TypeDescription.Generic.Visitor.Substitutor.ForAttachmentda6e736f271084bb
    net.bytebuddy.description.type.TypeDescription.Generic.Visitor.Substitutor.ForDetachment84581ab83cefe0ba
    net.bytebuddy.description.type.TypeDescription.Generic.Visitor.Substitutor.WithoutTypeSubstitution17ef049604f02334
    net.bytebuddy.description.type.TypeDescription.LazyProxy12b49bec0a736b32
    net.bytebuddy.description.type.TypeListda60a7cfb717d0a8
    net.bytebuddy.description.type.TypeList.AbstractBase4700315364477234
    net.bytebuddy.description.type.TypeList.Empty59d00ad7b53c811a
    net.bytebuddy.description.type.TypeList.Explicit81495dfc3a359dfe
    net.bytebuddy.description.type.TypeList.ForLoadedTypes4356a7471aec6f20
    net.bytebuddy.description.type.TypeList.Generic.AbstractBase5376e1d2298a6512
    net.bytebuddy.description.type.TypeList.Generic.Emptydf9431d33e66dbb4
    net.bytebuddy.description.type.TypeList.Generic.Explicit1ab8c93e54ee2ac6
    net.bytebuddy.description.type.TypeList.Generic.ForDetachedTypes1b6544725fdb45a6
    net.bytebuddy.description.type.TypeList.Generic.ForDetachedTypes.OfTypeVariables05b85732c40f12b7
    net.bytebuddy.description.type.TypeList.Generic.ForDetachedTypes.WithResolvedErasure3ae7efc80de7c3db
    net.bytebuddy.description.type.TypeList.Generic.ForLoadedTypesc603bfa8790b860c
    net.bytebuddy.description.type.TypeList.Generic.ForLoadedTypes.OfTypeVariablesd713fc161a8b3c83
    net.bytebuddy.description.type.TypeList.Generic.OfConstructorExceptionTypes41a985dd07ed867c
    net.bytebuddy.description.type.TypeList.Generic.OfConstructorExceptionTypes.TypeProjectiona9a42d16f46764ff
    net.bytebuddy.description.type.TypeList.Generic.OfLoadedInterfaceTypes99d4f3faf0ed1337
    net.bytebuddy.description.type.TypeList.Generic.OfLoadedInterfaceTypes.TypeProjection7f6f3c7654719119
    net.bytebuddy.description.type.TypeList.Generic.OfMethodExceptionTypes74966b175ac75ab9
    net.bytebuddy.description.type.TypeList.Generic.OfMethodExceptionTypes.TypeProjection2d651d381fd3d0a8
    net.bytebuddy.dynamic.DynamicType.Builder.AbstractBase531a2e961b13325b
    net.bytebuddy.dynamic.DynamicType.Builder.AbstractBase.Adapter5f4faab3b408ec94
    net.bytebuddy.dynamic.DynamicType.Builder.AbstractBase.Adapter.FieldDefinitionAdapterfd8d7a11be3c9ede
    net.bytebuddy.dynamic.DynamicType.Builder.AbstractBase.Adapter.MethodDefinitionAdaptere75374fa15e452ff
    net.bytebuddy.dynamic.DynamicType.Builder.AbstractBase.Adapter.MethodDefinitionAdapter.AnnotationAdapterbaf66768a8ba7010
    net.bytebuddy.dynamic.DynamicType.Builder.AbstractBase.Adapter.MethodDefinitionAdapter.SimpleParameterAnnotationAdapter24c4f03b22480ac9
    net.bytebuddy.dynamic.DynamicType.Builder.AbstractBase.Adapter.MethodMatchAdapter5914cb1a77b4c084
    net.bytebuddy.dynamic.DynamicType.Builder.AbstractBase.Adapter.MethodMatchAdapter.AnnotationAdapter8becc0d3a2f579f7
    net.bytebuddy.dynamic.DynamicType.Builder.AbstractBase.Adapter.OptionalMethodMatchAdapter1e5cba284e697ff2
    net.bytebuddy.dynamic.DynamicType.Builder.AbstractBase.Delegatorcd65d88864fb9551
    net.bytebuddy.dynamic.DynamicType.Builder.AbstractBase.UsingTypeWriter2c521e681717b547
    net.bytebuddy.dynamic.DynamicType.Builder.FieldDefinition.Optional.AbstractBaseae345146b4ff4937
    net.bytebuddy.dynamic.DynamicType.Builder.FieldDefinition.Optional.Valuable.AbstractBasebbf864ab6ae58db5
    net.bytebuddy.dynamic.DynamicType.Builder.FieldDefinition.Optional.Valuable.AbstractBase.Adapterc094da12c027af78
    net.bytebuddy.dynamic.DynamicType.Builder.MethodDefinition.AbstractBase9c472892ce0a50bb
    net.bytebuddy.dynamic.DynamicType.Builder.MethodDefinition.AbstractBase.Adapterd3915da6e1e1de4c
    net.bytebuddy.dynamic.DynamicType.Builder.MethodDefinition.ExceptionDefinition.AbstractBase5d66e82b417f9b46
    net.bytebuddy.dynamic.DynamicType.Builder.MethodDefinition.ImplementationDefinition.AbstractBasee0513b10037138a8
    net.bytebuddy.dynamic.DynamicType.Builder.MethodDefinition.ParameterDefinition.AbstractBasece292c22036f8154
    net.bytebuddy.dynamic.DynamicType.Builder.MethodDefinition.ParameterDefinition.Initial.AbstractBase75703fad010e1cc6
    net.bytebuddy.dynamic.DynamicType.Builder.MethodDefinition.ParameterDefinition.Simple.AbstractBase0a7a2334f6a9b15d
    net.bytebuddy.dynamic.DynamicType.Builder.MethodDefinition.ParameterDefinition.Simple.Annotatable.AbstractBasec67240824c7cd31a
    net.bytebuddy.dynamic.DynamicType.Builder.MethodDefinition.ParameterDefinition.Simple.Annotatable.AbstractBase.Adapterf1f199a3d7662651
    net.bytebuddy.dynamic.DynamicType.Builder.MethodDefinition.ReceiverTypeDefinition.AbstractBasea20cd2a086e77441
    net.bytebuddy.dynamic.DynamicType.Builder.MethodDefinition.TypeVariableDefinition.AbstractBaseb010816c4e7b6513
    net.bytebuddy.dynamic.DynamicType.Defaultca6748217ece3884
    net.bytebuddy.dynamic.DynamicType.Default.Loadede63ea06339154cad
    net.bytebuddy.dynamic.DynamicType.Default.Unloaded876286f205b44199
    net.bytebuddy.dynamic.TargetType26c139b5f2f58862
    net.bytebuddy.dynamic.Transformer.Compounda5a52522b43091ef
    net.bytebuddy.dynamic.Transformer.ForMethod22ab387d59f6c970
    net.bytebuddy.dynamic.Transformer.ForMethod.MethodModifierTransformer829c18ff395159ba
    net.bytebuddy.dynamic.Transformer.ForMethod.TransformedMethod083bfd5734c4504d
    net.bytebuddy.dynamic.Transformer.ForMethod.TransformedMethod.AttachmentVisitor43014c50e1310fbf
    net.bytebuddy.dynamic.Transformer.ForMethod.TransformedMethod.TransformedParameter84642c4a6f0d1bdc
    net.bytebuddy.dynamic.Transformer.ForMethod.TransformedMethod.TransformedParameterList54d561afbee57f99
    net.bytebuddy.dynamic.Transformer.NoOp49cd89a2b3b975a3
    net.bytebuddy.dynamic.TypeResolutionStrategy.Passived5784ee7fb36ce53
    net.bytebuddy.dynamic.VisibilityBridgeStrategy.Defaultae8d9f7fd85c6aad
    net.bytebuddy.dynamic.VisibilityBridgeStrategy.Default.163c0d42260c7599e
    net.bytebuddy.dynamic.VisibilityBridgeStrategy.Default.2a8389e9d32c4ecd7
    net.bytebuddy.dynamic.VisibilityBridgeStrategy.Default.330f7afc5a8be245c
    net.bytebuddy.dynamic.loading.ByteArrayClassLoader.PersistenceHandler811732d1db761cc5
    net.bytebuddy.dynamic.loading.ByteArrayClassLoader.PersistenceHandler.1c9ee72578a4d55a4
    net.bytebuddy.dynamic.loading.ByteArrayClassLoader.PersistenceHandler.2f7eb2a49ccc0c5d4
    net.bytebuddy.dynamic.loading.ClassInjector.AbstractBase331215a38873f162
    net.bytebuddy.dynamic.loading.ClassInjector.UsingReflection9b4c6d016e86d89d
    net.bytebuddy.dynamic.loading.ClassInjector.UsingReflection.Dispatcher.CreationActione95efd9bc7c2fbec
    net.bytebuddy.dynamic.loading.ClassInjector.UsingReflection.Dispatcher.Direct2a61312aae25f447
    net.bytebuddy.dynamic.loading.ClassInjector.UsingReflection.Dispatcher.Direct.ForJava7CapableVm5b1e1d52a58d44e8
    net.bytebuddy.dynamic.loading.ClassLoadingStrategy17fb081ccc92f99c
    net.bytebuddy.dynamic.loading.ClassLoadingStrategy.Default7390ec8634515594
    net.bytebuddy.dynamic.loading.ClassLoadingStrategy.Default.InjectionDispatcher759cb7a298fc98b7
    net.bytebuddy.dynamic.loading.ClassLoadingStrategy.Default.WrappingDispatcher88c49bdd78533ba6
    net.bytebuddy.dynamic.loading.MultipleParentClassLoader.Builderc6fb9f2d63f216f9
    net.bytebuddy.dynamic.loading.PackageDefinitionStrategy.Definition.Undefined1b8dafe51f80088c
    net.bytebuddy.dynamic.loading.PackageDefinitionStrategy.NoOp31480ec85144aa31
    net.bytebuddy.dynamic.loading.PackageDefinitionStrategy.Triviald0ed587787d4d89f
    net.bytebuddy.dynamic.scaffold.ClassWriterStrategy.Defaultf0774d4bbe85a809
    net.bytebuddy.dynamic.scaffold.ClassWriterStrategy.Default.109a3c2cfe88a5ae4
    net.bytebuddy.dynamic.scaffold.ClassWriterStrategy.Default.276afb59bd5abdd5f
    net.bytebuddy.dynamic.scaffold.ClassWriterStrategy.FrameComputingClassWriter52e278e8d81b4dc4
    net.bytebuddy.dynamic.scaffold.FieldLocator.AbstractBasedb8c5004661a0bd8
    net.bytebuddy.dynamic.scaffold.FieldLocator.ForClassHierarchy0e8431af1152b965
    net.bytebuddy.dynamic.scaffold.FieldLocator.ForClassHierarchy.Factoryd97235dbbc3871e9
    net.bytebuddy.dynamic.scaffold.FieldLocator.Resolution.Simple7e3dca01a01498d1
    net.bytebuddy.dynamic.scaffold.FieldRegistry.Defaultcc5265630d0906f2
    net.bytebuddy.dynamic.scaffold.FieldRegistry.Default.Compiled00933225bc77b175
    net.bytebuddy.dynamic.scaffold.FieldRegistry.Default.Compiled.Entry0ec1361a69a955fd
    net.bytebuddy.dynamic.scaffold.FieldRegistry.Default.Entrya7413622fd851aa9
    net.bytebuddy.dynamic.scaffold.InstrumentedType.Default83177f7ca587cf30
    net.bytebuddy.dynamic.scaffold.InstrumentedType.Factory.Defaultcd900ae01efd903f
    net.bytebuddy.dynamic.scaffold.InstrumentedType.Factory.Default.1a7ce85bb2f37ff77
    net.bytebuddy.dynamic.scaffold.InstrumentedType.Factory.Default.2ad157a47dace4f55
    net.bytebuddy.dynamic.scaffold.MethodGraph.Compilerfc88be698cc4a50f
    net.bytebuddy.dynamic.scaffold.MethodGraph.Compiler.AbstractBasead55505e167100d9
    net.bytebuddy.dynamic.scaffold.MethodGraph.Compiler.Defaulta37bac0e0eceb0c9
    net.bytebuddy.dynamic.scaffold.MethodGraph.Compiler.Default.Harmonizer.ForJavaMethod4b92bfc82ab49b25
    net.bytebuddy.dynamic.scaffold.MethodGraph.Compiler.Default.Harmonizer.ForJavaMethod.Tokene2da236960e0a189
    net.bytebuddy.dynamic.scaffold.MethodGraph.Compiler.Default.Key421619c0f44567f3
    net.bytebuddy.dynamic.scaffold.MethodGraph.Compiler.Default.Key.Detached82540bbf94c15922
    net.bytebuddy.dynamic.scaffold.MethodGraph.Compiler.Default.Key.Harmonized5d9ad1d55d82a355
    net.bytebuddy.dynamic.scaffold.MethodGraph.Compiler.Default.Key.Storef948e4de58324a0f
    net.bytebuddy.dynamic.scaffold.MethodGraph.Compiler.Default.Key.Store.Entry.Initial1fc852958287c36a
    net.bytebuddy.dynamic.scaffold.MethodGraph.Compiler.Default.Key.Store.Entry.Resolved6672a261c5f5dd2e
    net.bytebuddy.dynamic.scaffold.MethodGraph.Compiler.Default.Key.Store.Entry.Resolved.Node0f0b18948cce4159
    net.bytebuddy.dynamic.scaffold.MethodGraph.Compiler.Default.Key.Store.Graphf50e2614e64a132c
    net.bytebuddy.dynamic.scaffold.MethodGraph.Compiler.Default.Merger.Directional0ba0f74ab7d66be7
    net.bytebuddy.dynamic.scaffold.MethodGraph.Linked.Delegation7341085250d5f338
    net.bytebuddy.dynamic.scaffold.MethodGraph.Node.Simplef9767f80e7124acc
    net.bytebuddy.dynamic.scaffold.MethodGraph.Node.Sort8e20af4bf9dad8a0
    net.bytebuddy.dynamic.scaffold.MethodGraph.Node.Unresolvedc42332646fb3e771
    net.bytebuddy.dynamic.scaffold.MethodGraph.NodeList3f435ec381113f00
    net.bytebuddy.dynamic.scaffold.MethodGraph.Simple9a1f1f9d25ac44be
    net.bytebuddy.dynamic.scaffold.MethodRegistry.Default35ae92274e85ac88
    net.bytebuddy.dynamic.scaffold.MethodRegistry.Default.Compileddd840dc4ea29fc06
    net.bytebuddy.dynamic.scaffold.MethodRegistry.Default.Compiled.Entry827864e42dc177c2
    net.bytebuddy.dynamic.scaffold.MethodRegistry.Default.Entry66b9b2c39c4a08ee
    net.bytebuddy.dynamic.scaffold.MethodRegistry.Default.Prepared3c270a20a21353d7
    net.bytebuddy.dynamic.scaffold.MethodRegistry.Default.Prepared.Entrye96586202cb119f0
    net.bytebuddy.dynamic.scaffold.MethodRegistry.Handler.ForImplementationea77701fcbc47e2c
    net.bytebuddy.dynamic.scaffold.MethodRegistry.Handler.ForImplementation.Compiled7b000ab44a4af2cc
    net.bytebuddy.dynamic.scaffold.RecordComponentRegistry.Defaulteec49897d441dcbe
    net.bytebuddy.dynamic.scaffold.RecordComponentRegistry.Default.Compiled1d64a300c478cbd4
    net.bytebuddy.dynamic.scaffold.TypeInitializer.Drain.Defaulta3bc2736d5ad95f5
    net.bytebuddy.dynamic.scaffold.TypeInitializer.Noned062b02ed3f4d342
    net.bytebuddy.dynamic.scaffold.TypeInitializer.Simple3429322f4d42e2d4
    net.bytebuddy.dynamic.scaffold.TypeValidationb9ab70dc0d5e3c60
    net.bytebuddy.dynamic.scaffold.TypeWriter.Defaultc13cf997e386f3cc
    net.bytebuddy.dynamic.scaffold.TypeWriter.Default.ClassDumpAction.Dispatcher.Disabledd4f0d2e7fbcab045
    net.bytebuddy.dynamic.scaffold.TypeWriter.Default.ForCreationfc9ad618be46b3c0
    net.bytebuddy.dynamic.scaffold.TypeWriter.Default.UnresolvedType3f5380fd3549f07e
    net.bytebuddy.dynamic.scaffold.TypeWriter.Default.ValidatingClassVisitor0449b85d73902e5f
    net.bytebuddy.dynamic.scaffold.TypeWriter.FieldPool.Record.ForExplicitFielda03e0587988aae1f
    net.bytebuddy.dynamic.scaffold.TypeWriter.MethodPool.Record.AccessBridgeWrapper9527fd76169900c9
    net.bytebuddy.dynamic.scaffold.TypeWriter.MethodPool.Record.ForDefinedMethode3fde8a86929682d
    net.bytebuddy.dynamic.scaffold.TypeWriter.MethodPool.Record.ForDefinedMethod.WithBody963047d43410ba83
    net.bytebuddy.dynamic.scaffold.TypeWriter.MethodPool.Record.ForNonImplementedMethod28a00d78fb553a8c
    net.bytebuddy.dynamic.scaffold.TypeWriter.MethodPool.Record.Sort928d954d831a88bc
    net.bytebuddy.dynamic.scaffold.subclass.ConstructorStrategy.Default0d114e09a2faac83
    net.bytebuddy.dynamic.scaffold.subclass.ConstructorStrategy.Default.116fc5c99e02d7f9f
    net.bytebuddy.dynamic.scaffold.subclass.ConstructorStrategy.Default.2dd199479878d5739
    net.bytebuddy.dynamic.scaffold.subclass.ConstructorStrategy.Default.3792ea5ce51475037
    net.bytebuddy.dynamic.scaffold.subclass.ConstructorStrategy.Default.498fceb895a262b45
    net.bytebuddy.dynamic.scaffold.subclass.ConstructorStrategy.Default.5f0898605f9020c16
    net.bytebuddy.dynamic.scaffold.subclass.SubclassDynamicTypeBuilder16995528b814abfb
    net.bytebuddy.dynamic.scaffold.subclass.SubclassDynamicTypeBuilder.InstrumentableMatcherc2850d79fc87446b
    net.bytebuddy.dynamic.scaffold.subclass.SubclassImplementationTarget17f509a8b52b39f3
    net.bytebuddy.dynamic.scaffold.subclass.SubclassImplementationTarget.Factoryf6c0a700d93e9d10
    net.bytebuddy.dynamic.scaffold.subclass.SubclassImplementationTarget.OriginTypeResolver282c73cc811d5b71
    net.bytebuddy.dynamic.scaffold.subclass.SubclassImplementationTarget.OriginTypeResolver.12eb773d398b87160
    net.bytebuddy.dynamic.scaffold.subclass.SubclassImplementationTarget.OriginTypeResolver.2903a99da03746eb8
    net.bytebuddy.implementation.FieldAccessor0174e94238af9d2f
    net.bytebuddy.implementation.FieldAccessor.FieldLocation.Relativee3f1a92ea73df3a5
    net.bytebuddy.implementation.FieldAccessor.FieldLocation.Relative.Preparedc55029896988613b
    net.bytebuddy.implementation.FieldAccessor.FieldNameExtractor.ForBeanProperty751b847060c7cd95
    net.bytebuddy.implementation.FieldAccessor.ForImplicitProperty623c50de803e8dff
    net.bytebuddy.implementation.FieldAccessor.ForImplicitProperty.Appenderdb2e4aeceee38d5f
    net.bytebuddy.implementation.Implementation.Context.Defaultd63040bc175192ee
    net.bytebuddy.implementation.Implementation.Context.Default.AbstractPropertyAccessorMethod4a69ecc69149f327
    net.bytebuddy.implementation.Implementation.Context.Default.AccessorMethod147ddbd116dc5018
    net.bytebuddy.implementation.Implementation.Context.Default.AccessorMethodDelegation4ecb89b1b8e43487
    net.bytebuddy.implementation.Implementation.Context.Default.CacheValueField091aa1cc83b89353
    net.bytebuddy.implementation.Implementation.Context.Default.DelegationRecord7772d9b1460b4444
    net.bytebuddy.implementation.Implementation.Context.Default.Factory329a9c16f45fea72
    net.bytebuddy.implementation.Implementation.Context.Default.FieldCacheEntry93ea3c3584aedbb3
    net.bytebuddy.implementation.Implementation.Context.ExtractableView.AbstractBasea2bce3211300b141
    net.bytebuddy.implementation.Implementation.Context.FrameGeneration85cfd05a0313231d
    net.bytebuddy.implementation.Implementation.Context.FrameGeneration.11a7229cc1aa2fe64
    net.bytebuddy.implementation.Implementation.Context.FrameGeneration.24c4edc4b4128953d
    net.bytebuddy.implementation.Implementation.Context.FrameGeneration.30086e69e9329bfd5
    net.bytebuddy.implementation.Implementation.SpecialMethodInvocation.AbstractBase99ac1d4463895d3f
    net.bytebuddy.implementation.Implementation.SpecialMethodInvocation.Illegalfe05bdf1b81d2463
    net.bytebuddy.implementation.Implementation.SpecialMethodInvocation.Simple7916d516ba029853
    net.bytebuddy.implementation.Implementation.Target.AbstractBase891cf9f2a321fafd
    net.bytebuddy.implementation.Implementation.Target.AbstractBase.DefaultMethodInvocation29b19b204be139f3
    net.bytebuddy.implementation.Implementation.Target.AbstractBase.DefaultMethodInvocation.13ba9a760aa49a971
    net.bytebuddy.implementation.Implementation.Target.AbstractBase.DefaultMethodInvocation.28279f38afb254f72
    net.bytebuddy.implementation.LoadedTypeInitializer.NoOp1af8ca0d9b7adbe8
    net.bytebuddy.implementation.MethodAccessorFactory.AccessTypea8b1b417256441f1
    net.bytebuddy.implementation.MethodDelegationec9af1244cdb0f2c
    net.bytebuddy.implementation.MethodDelegation.Appender578e9e4be578040b
    net.bytebuddy.implementation.MethodDelegation.ImplementationDelegate.Compiled.ForStaticCall78b3eb01c3540dcc
    net.bytebuddy.implementation.MethodDelegation.ImplementationDelegate.ForStaticMethodf19452fcc061d904
    net.bytebuddy.implementation.MethodDelegation.WithCustomPropertiesc804a366d1128499
    net.bytebuddy.implementation.SuperMethodCall48a9709638c71f00
    net.bytebuddy.implementation.SuperMethodCall.Appender1278488d60ed8e86
    net.bytebuddy.implementation.SuperMethodCall.Appender.TerminationHandler35d2e0ef6d7f630d
    net.bytebuddy.implementation.SuperMethodCall.Appender.TerminationHandler.105664af3a3b6738b
    net.bytebuddy.implementation.SuperMethodCall.Appender.TerminationHandler.2be670f96c6d93831
    net.bytebuddy.implementation.attribute.AnnotationAppender.Default7787cf7f483d6685
    net.bytebuddy.implementation.attribute.AnnotationAppender.ForTypeAnnotations040d5aab72de4582
    net.bytebuddy.implementation.attribute.AnnotationAppender.Target.OnField52ad3ce83f52621f
    net.bytebuddy.implementation.attribute.AnnotationAppender.Target.OnMethodb2534f024a4880dd
    net.bytebuddy.implementation.attribute.AnnotationAppender.Target.OnMethodParameterc9f39d80b694c092
    net.bytebuddy.implementation.attribute.AnnotationAppender.Target.OnTypedb8f4f1dbbcf3c3e
    net.bytebuddy.implementation.attribute.AnnotationRetention6dca59a58d56874f
    net.bytebuddy.implementation.attribute.AnnotationValueFilter.Default190882f8828de18a
    net.bytebuddy.implementation.attribute.AnnotationValueFilter.Default.1593737e47cc84848
    net.bytebuddy.implementation.attribute.AnnotationValueFilter.Default.2a61861baa0bc96ee
    net.bytebuddy.implementation.attribute.FieldAttributeAppender.ForInstrumentedFieldca19f51ae14fb7b4
    net.bytebuddy.implementation.attribute.MethodAttributeAppender.Compound87d24d92007e506e
    net.bytebuddy.implementation.attribute.MethodAttributeAppender.Factory.Compound85113e9ca3ae38c3
    net.bytebuddy.implementation.attribute.MethodAttributeAppender.ForInstrumentedMethod4e40a53e08d4cbbb
    net.bytebuddy.implementation.attribute.MethodAttributeAppender.ForInstrumentedMethod.1a3b87b1a75d290fd
    net.bytebuddy.implementation.attribute.MethodAttributeAppender.ForInstrumentedMethod.210e734a991eea3bf
    net.bytebuddy.implementation.attribute.MethodAttributeAppender.NoOpaa6841038c96aed0
    net.bytebuddy.implementation.attribute.TypeAttributeAppender.ForInstrumentedType537a1dac83c99ae9
    net.bytebuddy.implementation.auxiliary.AuxiliaryType577555a7861b5701
    net.bytebuddy.implementation.auxiliary.AuxiliaryType.NamingStrategy.SuffixingRandom9ff4d19573d987f3
    net.bytebuddy.implementation.auxiliary.MethodCallProxye4ad67673bba91b3
    net.bytebuddy.implementation.auxiliary.MethodCallProxy.AssignableSignatureCalle32307e618f933aa
    net.bytebuddy.implementation.auxiliary.MethodCallProxy.ConstructorCallb40129a97ef170e6
    net.bytebuddy.implementation.auxiliary.MethodCallProxy.ConstructorCall.Appender6a4a35552c21bf78
    net.bytebuddy.implementation.auxiliary.MethodCallProxy.MethodCalld2f0f120376a3b4f
    net.bytebuddy.implementation.auxiliary.MethodCallProxy.MethodCall.Appenderdf4a3b2e219da333
    net.bytebuddy.implementation.auxiliary.MethodCallProxy.PrecomputedMethodGraph7fb29fbd9d22e04c
    net.bytebuddy.implementation.bind.ArgumentTypeResolver74973272be85ce17
    net.bytebuddy.implementation.bind.ArgumentTypeResolver.ParameterIndexTokena8052b758f0a0361
    net.bytebuddy.implementation.bind.DeclaringTypeResolverd1000b5d5bf7bd79
    net.bytebuddy.implementation.bind.MethodDelegationBinder.154de841f73ee4eae
    net.bytebuddy.implementation.bind.MethodDelegationBinder.AmbiguityResolver7d40b5a2d5d69397
    net.bytebuddy.implementation.bind.MethodDelegationBinder.AmbiguityResolver.Compoundeab4a548d2693cd2
    net.bytebuddy.implementation.bind.MethodDelegationBinder.AmbiguityResolver.Resolutione8ca39d95b4ade42
    net.bytebuddy.implementation.bind.MethodDelegationBinder.BindingResolver.Defaulted3f9e212bdf4696
    net.bytebuddy.implementation.bind.MethodDelegationBinder.MethodBinding.Builderffaacecf2e1956bd
    net.bytebuddy.implementation.bind.MethodDelegationBinder.MethodBinding.Builder.Buildfbe15ed2c0b7c26f
    net.bytebuddy.implementation.bind.MethodDelegationBinder.MethodBinding.Illegalca301be97fe35cde
    net.bytebuddy.implementation.bind.MethodDelegationBinder.MethodInvoker.Simpledafea2ba3b2f164b
    net.bytebuddy.implementation.bind.MethodDelegationBinder.ParameterBinding.Anonymous30b0f734840f8b2c
    net.bytebuddy.implementation.bind.MethodDelegationBinder.ParameterBinding.Illegal470dc52d77c3898e
    net.bytebuddy.implementation.bind.MethodDelegationBinder.ParameterBinding.Uniquec60c100f523804e4
    net.bytebuddy.implementation.bind.MethodDelegationBinder.Processor1dd9238ba412581f
    net.bytebuddy.implementation.bind.MethodDelegationBinder.TerminationHandler.Default946265fda2ca27e8
    net.bytebuddy.implementation.bind.MethodDelegationBinder.TerminationHandler.Default.1db109132d7373fda
    net.bytebuddy.implementation.bind.MethodDelegationBinder.TerminationHandler.Default.2cb3895b610bd15d5
    net.bytebuddy.implementation.bind.MethodNameEqualityResolver65a8d1431b34fdcd
    net.bytebuddy.implementation.bind.ParameterLengthResolver58a025cd0f10dff1
    net.bytebuddy.implementation.bind.annotation.AllArguments.Assignmentbfcd0244baa95f1b
    net.bytebuddy.implementation.bind.annotation.AllArguments.Binderb7e6501b9bd85e65
    net.bytebuddy.implementation.bind.annotation.Argument.Binder9d613cfc7a8f0cd6
    net.bytebuddy.implementation.bind.annotation.Argument.BindingMechanicad9a5463673957e4
    net.bytebuddy.implementation.bind.annotation.Argument.BindingMechanic.15750463a9b2658fe
    net.bytebuddy.implementation.bind.annotation.Argument.BindingMechanic.2653fe2b1bb93cce4
    net.bytebuddy.implementation.bind.annotation.BindingPriority.Resolver2fd170c18c979895
    net.bytebuddy.implementation.bind.annotation.Default.Binderfdd8dd2baa86d3db
    net.bytebuddy.implementation.bind.annotation.DefaultCall.Binderd7e4b58cec267a0e
    net.bytebuddy.implementation.bind.annotation.DefaultMethod.Binder03d209c7b50b3b07
    net.bytebuddy.implementation.bind.annotation.Empty.Binder6af2e8e3cdad25b3
    net.bytebuddy.implementation.bind.annotation.FieldValue.Binderffe1f66fdf57240f
    net.bytebuddy.implementation.bind.annotation.FieldValue.Binder.Delegateb16d4f0b5def41e9
    net.bytebuddy.implementation.bind.annotation.IgnoreForBinding.Verifierf6eaa0a37f2ce769
    net.bytebuddy.implementation.bind.annotation.Origin.Binder58bfe04015269f97
    net.bytebuddy.implementation.bind.annotation.RuntimeType.Verifier79ef98193cf36f83
    net.bytebuddy.implementation.bind.annotation.StubValue.Binder90a2fb5cbb2fc45c
    net.bytebuddy.implementation.bind.annotation.Super.Binder159db3adf8f80917
    net.bytebuddy.implementation.bind.annotation.SuperCall.Binderd504027b57aeebbe
    net.bytebuddy.implementation.bind.annotation.SuperMethod.Binder787b81ea7c3cf9d1
    net.bytebuddy.implementation.bind.annotation.TargetMethodAnnotationDrivenBindera9644f0a487b56f8
    net.bytebuddy.implementation.bind.annotation.TargetMethodAnnotationDrivenBinder.DelegationProcessor08e777de45b651f6
    net.bytebuddy.implementation.bind.annotation.TargetMethodAnnotationDrivenBinder.DelegationProcessor.Handler.Boundfe4b74c6469cb373
    net.bytebuddy.implementation.bind.annotation.TargetMethodAnnotationDrivenBinder.DelegationProcessor.Handler.Unbound53b08d554175038c
    net.bytebuddy.implementation.bind.annotation.TargetMethodAnnotationDrivenBinder.ParameterBinder6f273cd5a9428c36
    net.bytebuddy.implementation.bind.annotation.TargetMethodAnnotationDrivenBinder.ParameterBinder.ForFieldBinding49c4acf91fc87123
    net.bytebuddy.implementation.bind.annotation.TargetMethodAnnotationDrivenBinder.Recordf5597b43768b5a7b
    net.bytebuddy.implementation.bind.annotation.This.Binderb3e837fb5b95fa04
    net.bytebuddy.implementation.bytecode.ByteCodeAppender.Compound0f6ce72d7ea48338
    net.bytebuddy.implementation.bytecode.ByteCodeAppender.Simple3d7cd79d87926f75
    net.bytebuddy.implementation.bytecode.ByteCodeAppender.Size897030ac0b46252c
    net.bytebuddy.implementation.bytecode.Duplication87726ed8bb6e39de
    net.bytebuddy.implementation.bytecode.Duplication.16cbf4aae44bb9c6a
    net.bytebuddy.implementation.bytecode.Duplication.2204abf23cbf37c68
    net.bytebuddy.implementation.bytecode.Duplication.30631976e078609bd
    net.bytebuddy.implementation.bytecode.Removal6d539a300caa5092
    net.bytebuddy.implementation.bytecode.Removal.1ab763f3b743f79a5
    net.bytebuddy.implementation.bytecode.Removal.2fd766afb93ac2a09
    net.bytebuddy.implementation.bytecode.StackManipulation.AbstractBase31ac4a0904ac3e09
    net.bytebuddy.implementation.bytecode.StackManipulation.Compound96939a22aac4c91b
    net.bytebuddy.implementation.bytecode.StackManipulation.Illegald75e2eb0d394f6c3
    net.bytebuddy.implementation.bytecode.StackManipulation.Sizee69b15cd3e8d4461
    net.bytebuddy.implementation.bytecode.StackManipulation.Trivial56f2787cdbce4d40
    net.bytebuddy.implementation.bytecode.StackSize80f94e8effa2f7bb
    net.bytebuddy.implementation.bytecode.TypeCreation4865d2e454028bc1
    net.bytebuddy.implementation.bytecode.assign.Assigner7e67d52e9390b000
    net.bytebuddy.implementation.bytecode.assign.Assigner.Typingb09adf7fa17d04b8
    net.bytebuddy.implementation.bytecode.assign.TypeCasting1a445bd188e2931d
    net.bytebuddy.implementation.bytecode.assign.primitive.PrimitiveBoxingDelegatedac9a66a711d1bdb
    net.bytebuddy.implementation.bytecode.assign.primitive.PrimitiveBoxingDelegate.BoxingStackManipulation96e0379915a5a251
    net.bytebuddy.implementation.bytecode.assign.primitive.PrimitiveTypeAwareAssignerc888a19b998b7769
    net.bytebuddy.implementation.bytecode.assign.primitive.PrimitiveUnboxingDelegate14e47d44e5cebb1d
    net.bytebuddy.implementation.bytecode.assign.primitive.PrimitiveUnboxingDelegate.ImplicitlyTypedUnboxingResponsibleadf7d49661fe0566
    net.bytebuddy.implementation.bytecode.assign.primitive.PrimitiveWideningDelegate1008755d8fe45330
    net.bytebuddy.implementation.bytecode.assign.primitive.PrimitiveWideningDelegate.WideningStackManipulation796408ff7247d988
    net.bytebuddy.implementation.bytecode.assign.primitive.VoidAwareAssigner3df36760b29d387a
    net.bytebuddy.implementation.bytecode.assign.reference.GenericTypeAwareAssigner3623cb487284bb53
    net.bytebuddy.implementation.bytecode.assign.reference.ReferenceTypeAwareAssigner59b5f6f8641c87f2
    net.bytebuddy.implementation.bytecode.collection.ArrayFactoryf2dcfb1430649b3e
    net.bytebuddy.implementation.bytecode.collection.ArrayFactory.ArrayCreator7ff584cc516e3f40
    net.bytebuddy.implementation.bytecode.collection.ArrayFactory.ArrayCreator.ForReferenceType2ffee25860dde2e1
    net.bytebuddy.implementation.bytecode.collection.ArrayFactory.ArrayStackManipulation2420354f9fdfb502
    net.bytebuddy.implementation.bytecode.constant.ClassConstant8c2c8e360f844ad5
    net.bytebuddy.implementation.bytecode.constant.ClassConstant.ForReferenceTypea779a54b4d7fcd6c
    net.bytebuddy.implementation.bytecode.constant.DefaultValue56544d5987e5a6d8
    net.bytebuddy.implementation.bytecode.constant.DoubleConstant829c95b7b67e95cf
    net.bytebuddy.implementation.bytecode.constant.FloatConstantbdee038754940fff
    net.bytebuddy.implementation.bytecode.constant.IntegerConstant58a28f871a6a0499
    net.bytebuddy.implementation.bytecode.constant.LongConstant113f925135fa3020
    net.bytebuddy.implementation.bytecode.constant.MethodConstant4af2674773bedc86
    net.bytebuddy.implementation.bytecode.constant.MethodConstant.CachedMethod927dce16203d5f6c
    net.bytebuddy.implementation.bytecode.constant.MethodConstant.ForMethod5c66dba4a8bfbcea
    net.bytebuddy.implementation.bytecode.constant.NullConstant9cf4bfc5c52a2517
    net.bytebuddy.implementation.bytecode.constant.TextConstant76b9599de59f2aeb
    net.bytebuddy.implementation.bytecode.member.FieldAccesse098860a4703e90a
    net.bytebuddy.implementation.bytecode.member.FieldAccess.AccessDispatcher20c90535a547e3cd
    net.bytebuddy.implementation.bytecode.member.FieldAccess.AccessDispatcher.AbstractFieldInstruction75724b7b6b2e4a66
    net.bytebuddy.implementation.bytecode.member.FieldAccess.AccessDispatcher.FieldGetInstructionadcac7724ac0272c
    net.bytebuddy.implementation.bytecode.member.FieldAccess.AccessDispatcher.FieldPutInstructionaeaedb775e139b65
    net.bytebuddy.implementation.bytecode.member.MethodInvocationccdb8e0f61d03f72
    net.bytebuddy.implementation.bytecode.member.MethodInvocation.Invocation7edd2eb29addcb20
    net.bytebuddy.implementation.bytecode.member.MethodReturn3cbfd6833fda70dd
    net.bytebuddy.implementation.bytecode.member.MethodVariableAccess7ec211e72c6c3719
    net.bytebuddy.implementation.bytecode.member.MethodVariableAccess.MethodLoading0b690307be533e18
    net.bytebuddy.implementation.bytecode.member.MethodVariableAccess.MethodLoading.TypeCastingHandler.NoOp3f3d0d86b569e241
    net.bytebuddy.implementation.bytecode.member.MethodVariableAccess.OffsetLoading4794627822a950ec
    net.bytebuddy.jar.asm.AnnotationWriter0932d72e909ca807
    net.bytebuddy.jar.asm.Attribute706e3dca943537f4
    net.bytebuddy.jar.asm.ByteVector202001c737179f70
    net.bytebuddy.jar.asm.ClassVisitor98826fd4e883df65
    net.bytebuddy.jar.asm.ClassWriterc9c9db052671c945
    net.bytebuddy.jar.asm.FieldVisitor21cf79e64cb95598
    net.bytebuddy.jar.asm.FieldWriter3c4ebfcb2bc7032e
    net.bytebuddy.jar.asm.Handler763c7a3b0dc4fc7e
    net.bytebuddy.jar.asm.MethodVisitor3a3fa5cb8e06f5c0
    net.bytebuddy.jar.asm.MethodWriter76fc9326535687d1
    net.bytebuddy.jar.asm.Symbolf44d88efeab63dac
    net.bytebuddy.jar.asm.SymbolTable00001f478e852135
    net.bytebuddy.jar.asm.SymbolTable.Entry904cbca1953e75e2
    net.bytebuddy.jar.asm.Type45a01df29df18510
    net.bytebuddy.jar.asm.TypeReference7c2c246da0bafedc
    net.bytebuddy.jar.asm.signature.SignatureVisitorb9cc80f05fd1a1b5
    net.bytebuddy.jar.asm.signature.SignatureWriter4b49360620cb7f6c
    net.bytebuddy.matcher.AnnotationTypeMatcher4c083a293a95675e
    net.bytebuddy.matcher.BooleanMatcherfc276a6c128e2875
    net.bytebuddy.matcher.CollectionErasureMatcher76b5d2cc623cc312
    net.bytebuddy.matcher.CollectionItemMatcher640386844f0e29b8
    net.bytebuddy.matcher.CollectionOneToOneMatcher670278e525ff9bfc
    net.bytebuddy.matcher.CollectionSizeMatcher8f59b8be9ab4a58b
    net.bytebuddy.matcher.DeclaringAnnotationMatcher72a4630003105f69
    net.bytebuddy.matcher.DeclaringTypeMatcher76e282c5482618bb
    net.bytebuddy.matcher.ElementMatcher.Junction.AbstractBased129e1a5bbea50cb
    net.bytebuddy.matcher.ElementMatcher.Junction.Conjunction6586c7d2abf8bf59
    net.bytebuddy.matcher.ElementMatcher.Junction.Disjunction78eb86ff19c5e913
    net.bytebuddy.matcher.ElementMatcher.Junction.ForNonNullValues40b97e222b442c20
    net.bytebuddy.matcher.ElementMatchers4ccc5ccec6e01297
    net.bytebuddy.matcher.EqualityMatcher7ddcccca3867f2c6
    net.bytebuddy.matcher.ErasureMatcher327b39df894c794a
    net.bytebuddy.matcher.FilterableList.AbstractBaseacc833b482b3e913
    net.bytebuddy.matcher.FilterableList.Empty994e694dc878695f
    net.bytebuddy.matcher.LatentMatcher.Disjunctioncf547e86976c153f
    net.bytebuddy.matcher.LatentMatcher.ForFieldToken08b4951ce99afdff
    net.bytebuddy.matcher.LatentMatcher.ForFieldToken.ResolvedMatcher7a313b55df92d5ce
    net.bytebuddy.matcher.LatentMatcher.ForMethodTokenacf53d7e0ad9c66c
    net.bytebuddy.matcher.LatentMatcher.ForMethodToken.ResolvedMatchera1b47b682cdd16e5
    net.bytebuddy.matcher.LatentMatcher.Resolved838bf93f64347719
    net.bytebuddy.matcher.MethodParameterTypeMatcherd565dce3bed4679b
    net.bytebuddy.matcher.MethodParameterTypesMatcher4f9a1c61c2ca1d30
    net.bytebuddy.matcher.MethodParametersMatcher754bf9d07553d1f9
    net.bytebuddy.matcher.MethodReturnTypeMatcher1b6fa22a35a706bc
    net.bytebuddy.matcher.MethodSortMatcherd9a4a7f8ba8d705a
    net.bytebuddy.matcher.MethodSortMatcher.Sortdf4da3ccf1c43fb2
    net.bytebuddy.matcher.MethodSortMatcher.Sort.19f8edcf420246fae
    net.bytebuddy.matcher.MethodSortMatcher.Sort.25b30e294f2304972
    net.bytebuddy.matcher.MethodSortMatcher.Sort.39c8b9e468a9ba4ee
    net.bytebuddy.matcher.MethodSortMatcher.Sort.44c3709005a13f932
    net.bytebuddy.matcher.MethodSortMatcher.Sort.593400b67a6230353
    net.bytebuddy.matcher.ModifierMatcherc0d2e66fbd31c083
    net.bytebuddy.matcher.ModifierMatcher.Mode09bd88f8f539be92
    net.bytebuddy.matcher.NameMatcherb901fc4b35799fa4
    net.bytebuddy.matcher.NegatingMatchera7d93978e9d78d7e
    net.bytebuddy.matcher.SignatureTokenMatcher60c758b99c3d9148
    net.bytebuddy.matcher.StringMatcher236df1d1d60ab580
    net.bytebuddy.matcher.StringMatcher.Mode78a8ab1a5e998326
    net.bytebuddy.matcher.StringMatcher.Mode.1197cd818fecbf0dc
    net.bytebuddy.matcher.StringMatcher.Mode.2130a12e752b093e0
    net.bytebuddy.matcher.StringMatcher.Mode.337e1825b2b41bae8
    net.bytebuddy.matcher.StringMatcher.Mode.434a59e75ad57ee16
    net.bytebuddy.matcher.StringMatcher.Mode.56b18de0e0195fcc7
    net.bytebuddy.matcher.StringMatcher.Mode.6bdaf5299d13e3bfe
    net.bytebuddy.matcher.StringMatcher.Mode.7f608050eb76b29c9
    net.bytebuddy.matcher.StringMatcher.Mode.87a1f43a330aa49e3
    net.bytebuddy.matcher.StringMatcher.Mode.9d97cfe0669542624
    net.bytebuddy.matcher.SuperTypeMatcher5f65e9ccb1649334
    net.bytebuddy.matcher.TypeSortMatcherbea3cd319f7a9ab6
    net.bytebuddy.matcher.VisibilityMatcher6f0d2c70b6ce50e1
    net.bytebuddy.pool.TypePool.AbstractBase03ef41c73bcdac6f
    net.bytebuddy.pool.TypePool.AbstractBase.Hierarchical1ef4bf1634aa9314
    net.bytebuddy.pool.TypePool.CacheProvider.Simpled45eb8340ca21b2b
    net.bytebuddy.pool.TypePool.ClassLoadingf60fbd5bc692f3c0
    net.bytebuddy.pool.TypePool.Empty8c0a9ed2a729f1ac
    net.bytebuddy.utility.CompoundListb8b501baeee21c20
    net.bytebuddy.utility.ConstructorComparatorc7333b6b982e8e09
    net.bytebuddy.utility.GraalImageCode99c2d8870a99ec8c
    net.bytebuddy.utility.Invoker.Dispatcherba1a34ac612fb532
    net.bytebuddy.utility.JavaModule5223602c7c397de6
    net.bytebuddy.utility.MethodComparator4e5549fe1a1bb16a
    net.bytebuddy.utility.RandomString475c5a28b2a65671
    net.bytebuddy.utility.dispatcher.JavaDispatcher787d0fb443c33196
    net.bytebuddy.utility.dispatcher.JavaDispatcher.Dispatcher.ForDefaultValue4ebad402feea5e1f
    net.bytebuddy.utility.dispatcher.JavaDispatcher.Dispatcher.ForDefaultValue.OfNonPrimitiveArray8e244cbf0b1c2c9a
    net.bytebuddy.utility.dispatcher.JavaDispatcher.Dispatcher.ForInstanceCheck348c5ed1a0ea72ea
    net.bytebuddy.utility.dispatcher.JavaDispatcher.Dispatcher.ForNonStaticMethodbf4d2158c4101736
    net.bytebuddy.utility.dispatcher.JavaDispatcher.Dispatcher.ForStaticMethod2cbd19f9947661fd
    net.bytebuddy.utility.dispatcher.JavaDispatcher.Dispatcher.ForUnresolvedMethodac45606a4649482c
    net.bytebuddy.utility.dispatcher.JavaDispatcher.DynamicClassLoaderfa40b0b626be1aa7
    net.bytebuddy.utility.dispatcher.JavaDispatcher.DynamicClassLoader.Resolver.CreationAction8ca4ae6007eb9fd7
    net.bytebuddy.utility.dispatcher.JavaDispatcher.DynamicClassLoader.Resolver.NoOpfe6a9eb917ca36a6
    net.bytebuddy.utility.dispatcher.JavaDispatcher.InvokerCreationAction8b81db7b9bb021a1
    net.bytebuddy.utility.dispatcher.JavaDispatcher.ProxiedInvocationHandlera4eb032d57e965fc
    net.bytebuddy.utility.privilege.GetMethodAction74124300a1be96ce
    net.bytebuddy.utility.privilege.GetSystemPropertyAction3dcb9c5481b99d57
    org.apache.commons.collections.map.AbstractHashedMap0ffd2ece819fe2bb
    org.apache.commons.collections.map.AbstractHashedMap.HashEntry06168f711b5d9f03
    org.apache.commons.collections.map.AbstractReferenceMap24c5cfa48d1b3dc0
    org.apache.commons.collections.map.AbstractReferenceMap.ReferenceEntry527d4048e51dfc8b
    org.apache.commons.collections.map.AbstractReferenceMap.SoftRef87effea5a7f83649
    org.apache.commons.collections.map.ReferenceMapde0ddfb544d7f809
    org.apache.commons.collections4.multimap.AbstractMultiValuedMap74e3472ae9ced4f9
    org.apache.commons.collections4.multimap.AbstractMultiValuedMap.ValuesIteratore541e0c1fad3e081
    org.apache.commons.collections4.multimap.AbstractMultiValuedMap.WrappedCollection8f2df7667d859a91
    org.apache.commons.collections4.multimap.AbstractSetValuedMap2d23267a2d9e2673
    org.apache.commons.collections4.multimap.AbstractSetValuedMap.WrappedSet55e5b430388b3f86
    org.apache.commons.collections4.multimap.HashSetValuedHashMap1dc89da27c29a73f
    org.apache.commons.compress.archivers.ArchiveInputStreamc115bef2761e394f
    org.apache.commons.compress.archivers.cpio.CpioArchiveEntry2e400c2326020825
    org.apache.commons.compress.archivers.cpio.CpioArchiveInputStream3146da92adf2f2a2
    org.apache.commons.compress.archivers.cpio.CpioUtil2a29a218d315e43f
    org.apache.commons.compress.archivers.tar.TarArchiveEntryb467d16501158136
    org.apache.commons.compress.archivers.tar.TarArchiveInputStreameb8579968090b108
    org.apache.commons.compress.archivers.tar.TarArchiveStructSparse2fe4fed009a20663
    org.apache.commons.compress.archivers.tar.TarUtilsb29e9558b2e1a6d3
    org.apache.commons.compress.archivers.tar.TarUtils.103e1b6a179e4ce57
    org.apache.commons.compress.archivers.zip.AbstractUnicodeExtraFieldcba2954d6d36fe3e
    org.apache.commons.compress.archivers.zip.AsiExtraFielded94b5f3c716bc82
    org.apache.commons.compress.archivers.zip.ExtraFieldUtils667ed5c686b943ef
    org.apache.commons.compress.archivers.zip.ExtraFieldUtils.UnparseableExtraFielde45344e1ce555986
    org.apache.commons.compress.archivers.zip.GeneralPurposeBit3043e50e6ced5d15
    org.apache.commons.compress.archivers.zip.JarMarkerde6615380a4c5219
    org.apache.commons.compress.archivers.zip.NioZipEncoding532af7963d2a21e8
    org.apache.commons.compress.archivers.zip.PKWareExtraHeader65351b789372b76c
    org.apache.commons.compress.archivers.zip.ResourceAlignmentExtraFieldd055d83d27a6ab30
    org.apache.commons.compress.archivers.zip.UnicodeCommentExtraField486f289b5479389f
    org.apache.commons.compress.archivers.zip.UnicodePathExtraField8054310609047dfb
    org.apache.commons.compress.archivers.zip.X000A_NTFSb32b6c415562689f
    org.apache.commons.compress.archivers.zip.X0014_X509Certificatesc20ea476bbfbe7ae
    org.apache.commons.compress.archivers.zip.X0015_CertificateIdForFile19960cf974782496
    org.apache.commons.compress.archivers.zip.X0016_CertificateIdForCentralDirectoryabadbbfd33f97f4a
    org.apache.commons.compress.archivers.zip.X0017_StrongEncryptionHeader8973de3b18f3a927
    org.apache.commons.compress.archivers.zip.X0019_EncryptionRecipientCertificateList02f17fb8a6fe0c8f
    org.apache.commons.compress.archivers.zip.X5455_ExtendedTimestamp72b5ec16aa891bc1
    org.apache.commons.compress.archivers.zip.X7875_NewUnix1b48ac29575b0161
    org.apache.commons.compress.archivers.zip.Zip64ExtendedInformationExtraFieldda22a7433c08f490
    org.apache.commons.compress.archivers.zip.ZipArchiveEntryf3d0d71dab635056
    org.apache.commons.compress.archivers.zip.ZipArchiveEntry.CommentSourcecaf89110a406d0d8
    org.apache.commons.compress.archivers.zip.ZipArchiveEntry.ExtraFieldParsingModebbc8cf51ebd510e0
    org.apache.commons.compress.archivers.zip.ZipArchiveEntry.ExtraFieldParsingMode.105771997127ba1f9
    org.apache.commons.compress.archivers.zip.ZipArchiveEntry.ExtraFieldParsingMode.203cee63ff1d0c93a
    org.apache.commons.compress.archivers.zip.ZipArchiveEntry.NameSourcea480c170444891c2
    org.apache.commons.compress.archivers.zip.ZipArchiveInputStream775850c7b31326d3
    org.apache.commons.compress.archivers.zip.ZipArchiveInputStream.CurrentEntrya7b1695af4265ca6
    org.apache.commons.compress.archivers.zip.ZipArchiveOutputStreamdabd8252cf28c372
    org.apache.commons.compress.archivers.zip.ZipEightByteInteger488c5dd67f3f8c9b
    org.apache.commons.compress.archivers.zip.ZipEncodingHelper39dd72feba574f55
    org.apache.commons.compress.archivers.zip.ZipLongb1d233daff0f37ce
    org.apache.commons.compress.archivers.zip.ZipMethod65a8448945d63fcb
    org.apache.commons.compress.archivers.zip.ZipShorte09d88966fbb3172
    org.apache.commons.compress.archivers.zip.ZipUtil14616bc9d28d38a3
    org.apache.commons.compress.compressors.CompressorInputStreama062fcbd75482f3a
    org.apache.commons.compress.compressors.FileNameUtild387002df2853150
    org.apache.commons.compress.compressors.bzip2.BZip2CompressorInputStream4c9a442712979a6e
    org.apache.commons.compress.compressors.bzip2.BZip2CompressorInputStream.Data162c064e8b29a5cf
    org.apache.commons.compress.compressors.bzip2.BZip2Utils5b347e283cbd5476
    org.apache.commons.compress.compressors.bzip2.CRCd1bb96e431da72f6
    org.apache.commons.compress.compressors.gzip.GzipCompressorInputStreamdcf21888c4a9e67a
    org.apache.commons.compress.compressors.gzip.GzipParameters5ac3652865cc3de1
    org.apache.commons.compress.compressors.gzip.GzipUtils6bba3cd93eb48c8f
    org.apache.commons.compress.compressors.xz.XZCompressorInputStream2204d85f22615837
    org.apache.commons.compress.utils.ArchiveUtils9bb09b154497d197
    org.apache.commons.compress.utils.BitInputStream0ac925b599ee5a7d
    org.apache.commons.compress.utils.ByteUtils4855e8772120e2eb
    org.apache.commons.compress.utils.Charsets3619492983aaf2b8
    org.apache.commons.compress.utils.CountingInputStream56020bde5ae237ed
    org.apache.commons.compress.utils.ExactMathad7e162aea889311
    org.apache.commons.compress.utils.IOUtils1bbef919f9fe90cf
    org.apache.commons.compress.utils.TimeUtilseebacb2d0aacfebc
    org.apache.commons.dbcp2.AbandonedTraceca6d746e5eecfa26
    org.apache.commons.dbcp2.BasicDataSource8f01e6e1f3426242
    org.apache.commons.dbcp2.ConnectionFactoryFactory5ee86737323f033e
    org.apache.commons.dbcp2.DataSourceMXBeanaef3515de3dd4cd7
    org.apache.commons.dbcp2.DelegatingConnection4ce1222f6c8b1f43
    org.apache.commons.dbcp2.DelegatingPreparedStatement2577746074f2a300
    org.apache.commons.dbcp2.DelegatingResultSet3e7d628a34a233d5
    org.apache.commons.dbcp2.DelegatingStatement3eececad9c1f49a4
    org.apache.commons.dbcp2.DriverConnectionFactory587516231985bd76
    org.apache.commons.dbcp2.DriverFactory2e2b684de502c2b5
    org.apache.commons.dbcp2.ObjectNameWrapper60e6f7ddb2d7e6c9
    org.apache.commons.dbcp2.PoolableConnectionbaf5bf7087e41b95
    org.apache.commons.dbcp2.PoolableConnectionFactoryb8db125bd27adcfb
    org.apache.commons.dbcp2.PoolingDataSource4006b0952a9497bf
    org.apache.commons.dbcp2.PoolingDataSource.PoolGuardConnectionWrapper231a4e4e28d22d6c
    org.apache.commons.dbcp2.SwallowedExceptionLogger169d551a035fbaac
    org.apache.commons.dbcp2.Utilsee3a6af61d9672d1
    org.apache.commons.io.ByteOrderMark72bc2458d6ae539e
    org.apache.commons.io.Charsets8ae1973f359dec29
    org.apache.commons.io.FileSystem01b6ca84e51e84c9
    org.apache.commons.io.FileUtilsb05a09ee270979e9
    org.apache.commons.io.FilenameUtils3144089e135875ac
    org.apache.commons.io.IOCaseeb2adab60f66048e
    org.apache.commons.io.IOUtils6ee4556e7885ab91
    org.apache.commons.io.StandardLineSeparator40b593b9edc3531e
    org.apache.commons.io.build.AbstractOriginSupplierb96822d8a43fddbd
    org.apache.commons.io.build.AbstractStreamBuilder57c8b0ea90b8d3a8
    org.apache.commons.io.build.AbstractSupplier21e479bcc7c6d9d4
    org.apache.commons.io.file.Counters3347b40442150325
    org.apache.commons.io.file.Counters.AbstractPathCountersf029129367b66185
    org.apache.commons.io.file.Counters.LongCounter8a0e15c3b7aab6f0
    org.apache.commons.io.file.Counters.LongPathCounters4d05a3ec2389a891
    org.apache.commons.io.file.CountingPathVisitor1a0297f6692d68b7
    org.apache.commons.io.file.DeletingPathVisitor380d01f344f0b03a
    org.apache.commons.io.file.PathUtilsc186f18e4d52fa5b
    org.apache.commons.io.file.SimplePathVisitor42930704cb1f97c1
    org.apache.commons.io.file.StandardDeleteOption670e1c1e2863e0b5
    org.apache.commons.io.filefilter.AbstractFileFilter92dd8bb7f7b80944
    org.apache.commons.io.filefilter.IOFileFilter4896a5eee1f88d05
    org.apache.commons.io.filefilter.NameFileFilterc5f07e722b3a2343
    org.apache.commons.io.filefilter.OrFileFilter6742278773fc9137
    org.apache.commons.io.filefilter.SuffixFileFilterd8b318786a82151d
    org.apache.commons.io.filefilter.SymbolicLinkFileFilterd7784b41fab5d1af
    org.apache.commons.io.filefilter.TrueFileFilterfabf6490458c9b57
    org.apache.commons.io.function.IOConsumer7aab5cab2aee4ea3
    org.apache.commons.io.input.BOMInputStream6b5d217ef3da5d6c
    org.apache.commons.io.input.BOMInputStream.Builderefe9786c70781fac
    org.apache.commons.io.input.ProxyInputStream76d45bc21d35b3af
    org.apache.commons.io.output.AbstractByteArrayOutputStream4d87285f56eadbde
    org.apache.commons.io.output.StringBuilderWriter56db39b128a95142
    org.apache.commons.io.output.ThresholdingOutputStream6ee432e618670fc2
    org.apache.commons.io.output.UnsynchronizedByteArrayOutputStream9536e30200253d9c
    org.apache.commons.io.output.UnsynchronizedByteArrayOutputStream.Builder13c61069da7ce3e3
    org.apache.commons.jcs3.JCS8f519401d676cf6b
    org.apache.commons.jcs3.access.AbstractCacheAccesse81ba2880f7423d5
    org.apache.commons.jcs3.access.CacheAccess60fee977c9a4f6ef
    org.apache.commons.jcs3.admin.JCSAdminBean335bac09272c6ddd
    org.apache.commons.jcs3.auxiliary.AbstractAuxiliaryCachec3b435f52c91e41d
    org.apache.commons.jcs3.auxiliary.AbstractAuxiliaryCacheAttributesc42716886bb512ba
    org.apache.commons.jcs3.auxiliary.AbstractAuxiliaryCacheEventLogginga78f5b7138667460
    org.apache.commons.jcs3.auxiliary.AbstractAuxiliaryCacheFactory79d59581986a1bdd
    org.apache.commons.jcs3.auxiliary.AuxiliaryCacheConfigurator4f03af1ec3db3c06
    org.apache.commons.jcs3.auxiliary.AuxiliaryCacheFactory0321a405678228d2
    org.apache.commons.jcs3.auxiliary.disk.AbstractDiskCache67671715de055295
    org.apache.commons.jcs3.auxiliary.disk.AbstractDiskCache.MyCacheListenerc9cbc2ab7af25ca4
    org.apache.commons.jcs3.auxiliary.disk.AbstractDiskCacheAttributesedebc5b24fc7e7ec
    org.apache.commons.jcs3.auxiliary.disk.PurgatoryElement50e2ad1c5b33a115
    org.apache.commons.jcs3.auxiliary.disk.behavior.IDiskCacheAttributes.DiskLimitType9c89d487ae2639b0
    org.apache.commons.jcs3.auxiliary.disk.indexed.IndexedDisk3159cf09ae265a44
    org.apache.commons.jcs3.auxiliary.disk.indexed.IndexedDiskCachedb85afec6bd28591
    org.apache.commons.jcs3.auxiliary.disk.indexed.IndexedDiskCache.LRUMapCountLimited3e0dcede1f60ced6
    org.apache.commons.jcs3.auxiliary.disk.indexed.IndexedDiskCache.PositionComparator6a375a20224a6491
    org.apache.commons.jcs3.auxiliary.disk.indexed.IndexedDiskCacheAttributes3e721f210f5f73d7
    org.apache.commons.jcs3.auxiliary.disk.indexed.IndexedDiskCacheFactoryf3d2fd9bfe5fcbcc
    org.apache.commons.jcs3.auxiliary.disk.indexed.IndexedDiskElementDescriptorc64cf22ddcdde674
    org.apache.commons.jcs3.engine.AbstractCacheEventQueue1dd87bdda01b32c9
    org.apache.commons.jcs3.engine.AbstractCacheEventQueue.AbstractCacheEventd5fc252ba26d0d9a
    org.apache.commons.jcs3.engine.AbstractCacheEventQueue.PutEvent63bc60c6adf68697
    org.apache.commons.jcs3.engine.CacheElementce9f4204eb5624b3
    org.apache.commons.jcs3.engine.CacheEventQueueFactoryd47896e66d68cd29
    org.apache.commons.jcs3.engine.CacheInfodc3fc0a57a91cc16
    org.apache.commons.jcs3.engine.CacheStatus9e643f244bdbedd6
    org.apache.commons.jcs3.engine.CompositeCacheAttributesdc56debe6e362ccc
    org.apache.commons.jcs3.engine.ElementAttributesc298365f45057415
    org.apache.commons.jcs3.engine.PooledCacheEventQueue1f5b5ca7363a76c5
    org.apache.commons.jcs3.engine.behavior.ICacheEventQueue.QueueTyped36e1adea94244a8
    org.apache.commons.jcs3.engine.behavior.ICacheType.CacheTypee15e922fbbc521a9
    org.apache.commons.jcs3.engine.behavior.ICompositeCacheAttributes.DiskUsagePattern065fe6118e459fb8
    org.apache.commons.jcs3.engine.behavior.IElementSerializer4e17fbd8ff5fa2eb
    org.apache.commons.jcs3.engine.behavior.IElementSerializer.153d5ac924a980857
    org.apache.commons.jcs3.engine.control.CompositeCache2f4c41ef1df85706
    org.apache.commons.jcs3.engine.control.CompositeCache.1bcfb6eb171ef07c2
    org.apache.commons.jcs3.engine.control.CompositeCacheConfiguratorda10a9e1882f0a7e
    org.apache.commons.jcs3.engine.control.CompositeCacheManager7a43e45c9078f783
    org.apache.commons.jcs3.engine.control.event.ElementEventQueuecb2c41edee90aabe
    org.apache.commons.jcs3.engine.control.event.behavior.ElementEventTypec503e0f2d9636028
    org.apache.commons.jcs3.engine.logging.CacheEvente10345bb4afea3ce
    org.apache.commons.jcs3.engine.match.KeyMatcherPatternImpl06d95d21fd7250d0
    org.apache.commons.jcs3.engine.memory.AbstractDoubleLinkedListMemoryCachee3eb93db1ef1802e
    org.apache.commons.jcs3.engine.memory.AbstractMemoryCachebf41e6296592d86a
    org.apache.commons.jcs3.engine.memory.lru.LRUMemoryCachea13109c445649a8d
    org.apache.commons.jcs3.engine.memory.util.MemoryElementDescriptor627c224c61171c8b
    org.apache.commons.jcs3.io.ObjectInputStreamClassLoaderAwarea4e2b94537e2694a
    org.apache.commons.jcs3.io.ObjectInputStreamClassLoaderAware.BlacklistClassResolvereee678bf9eb6a5a8
    org.apache.commons.jcs3.log.JulLogFactorya8b084a513d8f2ac
    org.apache.commons.jcs3.log.LogManager0cd6d34c5624f85e
    org.apache.commons.jcs3.log.LogManager.LogFactoryHolder99d60610207d179b
    org.apache.commons.jcs3.utils.config.OptionConverterb6be9d611cb399e3
    org.apache.commons.jcs3.utils.config.PropertySetter9ce8929e58315d98
    org.apache.commons.jcs3.utils.serialization.StandardSerializerc3182262f045cc00
    org.apache.commons.jcs3.utils.struct.AbstractLRUMap8710b38b6376d281
    org.apache.commons.jcs3.utils.struct.DoubleLinkedList96b73a167e3dd555
    org.apache.commons.jcs3.utils.struct.DoubleLinkedListNode6eb04c0be1b15100
    org.apache.commons.jcs3.utils.struct.LRUElementDescriptor822178194cda5407
    org.apache.commons.jcs3.utils.struct.LRUMap134ebdccaf71b63a
    org.apache.commons.jcs3.utils.threadpool.DaemonThreadFactory90fe18bad604a2e0
    org.apache.commons.jcs3.utils.threadpool.PoolConfiguratione30c6c5b19e2121a
    org.apache.commons.jcs3.utils.threadpool.PoolConfiguration.WhenBlockedPolicyebdbc72499040e4a
    org.apache.commons.jcs3.utils.threadpool.ThreadPoolManagerce4c901d54ed755c
    org.apache.commons.jcs3.utils.threadpool.ThreadPoolManager.101b790dc167d2bc8
    org.apache.commons.jcs3.utils.threadpool.ThreadPoolManager.ThreadPoolManagerHolder6d5c097ee63ac3ce
    org.apache.commons.jcs3.utils.timing.ElapsedTimeredfda6ab2faf0ae5
    org.apache.commons.lang3.ArrayUtils55cd090cc4afae67
    org.apache.commons.lang3.CharSequenceUtils34f2613940096184
    org.apache.commons.lang3.JavaVersion8179bcf6dcfb4712
    org.apache.commons.lang3.LocaleUtilsf5235055ef756a48
    org.apache.commons.lang3.ObjectUtils1c157e9ecfc781f4
    org.apache.commons.lang3.ObjectUtils.Nullbc56db2ba4a397f4
    org.apache.commons.lang3.Range7a388bd8ca7c6565
    org.apache.commons.lang3.Range.ComparableComparator31209bc50fe79100
    org.apache.commons.lang3.StringUtilsb53e9ceb7cab46c1
    org.apache.commons.lang3.SystemProperties1e5e41ac6dcfcac3
    org.apache.commons.lang3.SystemUtils73450f121593e2da
    org.apache.commons.lang3.Validate1641aabfdb381324
    org.apache.commons.lang3.builder.CompareToBuilder0535d4fc6cf3c03f
    org.apache.commons.lang3.builder.EqualsBuilderaa8ad870ff53852c
    org.apache.commons.lang3.builder.HashCodeBuilder2143ccbdbc7e1ea5
    org.apache.commons.lang3.function.Suppliersbbeaffba7b14417d
    org.apache.commons.lang3.math.NumberUtilse9e145d766a6dd75
    org.apache.commons.lang3.mutable.MutableInt69453bf70a893014
    org.apache.commons.lang3.reflect.TypeUtilsdf817998efe361cb
    org.apache.commons.lang3.reflect.TypeUtils.WildcardTypeBuilder5936e9c8d409a438
    org.apache.commons.lang3.reflect.TypeUtils.WildcardTypeImpl5c07c9d0130a96a3
    org.apache.commons.lang3.stream.LangCollectors3ea5549a7ed3c3d7
    org.apache.commons.lang3.stream.LangCollectors.SimpleCollector91fc89bcf302c34b
    org.apache.commons.lang3.stream.Streams954246a3678faf93
    org.apache.commons.lang3.time.DateFormatUtils73ecf93d869b884e
    org.apache.commons.lang3.time.FastDateFormat71485ed44a8946ff
    org.apache.commons.lang3.time.FastDateFormat.1a23732be9811ff8d
    org.apache.commons.lang3.time.FastDateParser6f00d674cd9c2cd7
    org.apache.commons.lang3.time.FastDateParser.18470bf4a6ade3a2c
    org.apache.commons.lang3.time.FastDateParser.264496bd42904c5b5
    org.apache.commons.lang3.time.FastDateParser.324ed8b705930b7de
    org.apache.commons.lang3.time.FastDateParser.447f4a79b21494e5b
    org.apache.commons.lang3.time.FastDateParser.5afafb76217600d65
    org.apache.commons.lang3.time.FastDateParser.CaseInsensitiveTextStrategy546fb2ff9af08cbc
    org.apache.commons.lang3.time.FastDateParser.CopyQuotedStrategy46f1e4716b2bc7d7
    org.apache.commons.lang3.time.FastDateParser.ISO8601TimeZoneStrategy87ad40c3ab68646d
    org.apache.commons.lang3.time.FastDateParser.NumberStrategy99ec5db56a11534b
    org.apache.commons.lang3.time.FastDateParser.PatternStrategyfbafb84dcaa32114
    org.apache.commons.lang3.time.FastDateParser.Strategybc65b5458c1c2360
    org.apache.commons.lang3.time.FastDateParser.StrategyAndWidth76b3891c1cf1eec3
    org.apache.commons.lang3.time.FastDateParser.StrategyParserfde7d41810132d14
    org.apache.commons.lang3.time.FastDateParser.TimeZoneStrategy21977fd3a714776f
    org.apache.commons.lang3.time.FastDateParser.TimeZoneStrategy.TzInfo21cbe6369ba4a7a1
    org.apache.commons.lang3.time.FastDatePrinter31b6e12e2525649e
    org.apache.commons.lang3.time.FastDatePrinter.CharacterLiteral54e10b340dc5d7af
    org.apache.commons.lang3.time.FastDatePrinter.Iso8601_Rule99fb37b87350c025
    org.apache.commons.lang3.time.FastDatePrinter.PaddedNumberFieldba779363617e2f22
    org.apache.commons.lang3.time.FastDatePrinter.StringLiteralcb2254da41d8e280
    org.apache.commons.lang3.time.FastDatePrinter.TextField6a28ec6758972617
    org.apache.commons.lang3.time.FastDatePrinter.TimeZoneNumberRuleae20827d84c6bf34
    org.apache.commons.lang3.time.FastDatePrinter.TwoDigitMonthField51a478c858b62580
    org.apache.commons.lang3.time.FastDatePrinter.TwoDigitNumberField10acfac0db57c7ab
    org.apache.commons.lang3.time.FastTimeZone36b1802d502a2ca3
    org.apache.commons.lang3.time.FormatCacheb9ec8b6073a5ea5a
    org.apache.commons.lang3.time.FormatCache.ArrayKeyfbf37aa076d95bb3
    org.apache.commons.lang3.time.GmtTimeZone840c84d76f301aa2
    org.apache.commons.lang3.time.TimeZones55ec357ece7b3828
    org.apache.commons.lang3.tuple.ImmutablePairea1fdd387104f342
    org.apache.commons.lang3.tuple.Pair24fcf8d25a997dff
    org.apache.commons.logging.LogFactory5c9b6286a0ecaeeb
    org.apache.commons.logging.LogFactory.135cd3441e691f91d
    org.apache.commons.logging.LogFactory.2f1244e6e80ab4e4c
    org.apache.commons.logging.LogFactory.308e35df1f60483aa
    org.apache.commons.logging.LogFactory.4fb4611c54b1bc610
    org.apache.commons.logging.LogFactory.6367c055e3172a33e
    org.apache.commons.logging.impl.SLF4JLocationAwareLogb4a93815004fec58
    org.apache.commons.logging.impl.SLF4JLogFactoryd78e8c8092c84bef
    org.apache.commons.logging.impl.WeakHashtablebda06549392c232d
    org.apache.commons.logging.impl.WeakHashtable.Referenced7e6bd0a967376754
    org.apache.commons.logging.impl.WeakHashtable.WeakKey3c62431e0d7eba54
    org.apache.commons.pool2.BaseObjecta9dd39289abe1d31
    org.apache.commons.pool2.DestroyMode5d1105fc83d83c0d
    org.apache.commons.pool2.ObjectPoolccb6589e8f774501
    org.apache.commons.pool2.PooledObject726d4666486bb8f9
    org.apache.commons.pool2.PooledObjectStatefb0e5d346be6cd55
    org.apache.commons.pool2.impl.BaseGenericObjectPool070a5acff5535437
    org.apache.commons.pool2.impl.BaseGenericObjectPool.IdentityWrapper434e773f29c6ef0b
    org.apache.commons.pool2.impl.BaseGenericObjectPool.StatsStore514c54abe01e16c7
    org.apache.commons.pool2.impl.BaseObjectPoolConfig9bee83eab719802c
    org.apache.commons.pool2.impl.DefaultEvictionPolicy56c4bc556e98d1be
    org.apache.commons.pool2.impl.DefaultPooledObjectddc5b9974a86b680
    org.apache.commons.pool2.impl.GenericObjectPoolfe1a47c0c894e580
    org.apache.commons.pool2.impl.GenericObjectPoolConfig2215008ece83d1da
    org.apache.commons.pool2.impl.InterruptibleReentrantLockef01e1d3943b5184
    org.apache.commons.pool2.impl.LinkedBlockingDequebb1a4d70c6b14c3f
    org.apache.commons.pool2.impl.LinkedBlockingDeque.Node78ac878c7ddd5998
    org.apache.commons.pool2.impl.NoOpCallStacke7f11c61124edc8b
    org.apache.commons.pool2.impl.PoolImplUtils65b544d8439b4d9e
    org.apache.commons.text.StringEscapeUtils5bc5b74e30d7e8bf
    org.apache.commons.text.StringEscapeUtils.XsiUnescaper5a061ee95766f1d3
    org.apache.commons.text.StringSubstitutor3074045dbff7aefd
    org.apache.commons.text.StringSubstitutor.Resultd1377d718b9a4b29
    org.apache.commons.text.TextStringBuilder53129701a3631326
    org.apache.commons.text.WordUtilsf85094830885a3dc
    org.apache.commons.text.matcher.AbstractStringMatcher5f2d66c0bac903d1
    org.apache.commons.text.matcher.AbstractStringMatcher.CharArrayMatcherbc3ea03e56f01c0e
    org.apache.commons.text.matcher.AbstractStringMatcher.CharMatcherb83862079330a0a0
    org.apache.commons.text.matcher.AbstractStringMatcher.CharSetMatcherdef2ef72cf33ffd3
    org.apache.commons.text.matcher.AbstractStringMatcher.NoneMatcher63ccdfd44061b0b4
    org.apache.commons.text.matcher.AbstractStringMatcher.TrimMatcher6399c16c90b1dc79
    org.apache.commons.text.matcher.StringMatcherFactory3355efa06769e538
    org.apache.commons.text.translate.AggregateTranslator9e2a5e3e1c4ed249
    org.apache.commons.text.translate.CharSequenceTranslator84c8f5343c402da6
    org.apache.commons.text.translate.CodePointTranslatorea9fcdc7e5c87a70
    org.apache.commons.text.translate.CsvTranslators77360b05d66a2c8b
    org.apache.commons.text.translate.CsvTranslators.CsvEscaperbe76c35fab7f3dc3
    org.apache.commons.text.translate.CsvTranslators.CsvUnescaper09ac0d4ea60a4c5a
    org.apache.commons.text.translate.EntityArrayseff4bd7528ae958b
    org.apache.commons.text.translate.JavaUnicodeEscaperba174f1a55a33368
    org.apache.commons.text.translate.LookupTranslatorb47bcb49ef353b91
    org.apache.commons.text.translate.NumericEntityEscaperfed36f3c6d451e6b
    org.apache.commons.text.translate.NumericEntityUnescapercca6054255a84ade
    org.apache.commons.text.translate.NumericEntityUnescaper.OPTIONcd3ec6bfbd85a55d
    org.apache.commons.text.translate.OctalUnescaperc72a48b363be373d
    org.apache.commons.text.translate.SinglePassTranslator49d6016a555b6c1a
    org.apache.commons.text.translate.UnicodeEscaper9dad545c5206284f
    org.apache.commons.text.translate.UnicodeUnescapere15b1cf1266b58bf
    org.apache.commons.text.translate.UnicodeUnpairedSurrogateRemover678cce4230e90a18
    org.apache.commons.validator.routines.DomainValidatorb2da0af333fe19ff
    org.apache.commons.validator.routines.DomainValidator.LazyHolder8c756f1f7c74bd6f
    org.apache.commons.validator.routines.RegexValidator7ade8d16f86ddde3
    org.apache.commons.validator.routines.UrlValidator2c5aad0b1affb732
    org.apache.lucene.analysis.Analyzerb3fbc3d4c894fea4
    org.apache.lucene.analysis.Analyzer.12588c4a52a03d489
    org.apache.lucene.analysis.Analyzer.2b11ec0b046fb0739
    org.apache.lucene.analysis.Analyzer.ReuseStrategy373c30afd7c4e7e0
    org.apache.lucene.analysis.Analyzer.StringTokenStreamc9699998ffb50853
    org.apache.lucene.analysis.Analyzer.TokenStreamComponents07ec7e6a7685910d
    org.apache.lucene.analysis.AnalyzerWrapperfea68ba019e933f5
    org.apache.lucene.analysis.BaseTokenStreamTestCaseace694db6bea2383
    org.apache.lucene.analysis.BaseTokenStreamTestCase.AnalysisThread7be8ec27f38b789d
    org.apache.lucene.analysis.BaseTokenStreamTestCase.CheckClearAttributesAttributeImpl72e4cbc59ecc279e
    org.apache.lucene.analysis.CachingTokenFilter7948742bc70cfc8a
    org.apache.lucene.analysis.CharArrayMap5b74a1ab488fac15
    org.apache.lucene.analysis.CharArrayMap.EmptyCharArrayMap6ce1b3c28f6c4a11
    org.apache.lucene.analysis.CharArrayMap.EntryIteratora87ee307a838f240
    org.apache.lucene.analysis.CharArrayMap.EntrySet2025bc28ce5f11cc
    org.apache.lucene.analysis.CharArrayMap.MapEntry73ae6df3a549c4af
    org.apache.lucene.analysis.CharArrayMap.UnmodifiableCharArrayMap8bab8a3a7f9cd4a6
    org.apache.lucene.analysis.CharArraySet111b4a78749d9f46
    org.apache.lucene.analysis.CharFilter5f7a5aa2dec26987
    org.apache.lucene.analysis.CharacterUtilsb8ca5cbf25fdfeed
    org.apache.lucene.analysis.CharacterUtils.CharacterBuffer18d395cdbdb60911
    org.apache.lucene.analysis.DelegatingAnalyzerWrapper9c301ae9d9f5cd8a
    org.apache.lucene.analysis.DelegatingAnalyzerWrapper.DelegatingReuseStrategy76fa58dd625c2849
    org.apache.lucene.analysis.FilteringTokenFilterf403409105fbb533
    org.apache.lucene.analysis.LowerCaseFilterbcfd3a6a56a4fadf
    org.apache.lucene.analysis.MockCharFilter8898750f908492b1
    org.apache.lucene.analysis.MockReaderWrappera1c3a41e7858cc79
    org.apache.lucene.analysis.MockTokenizer61c1b54edbae7422
    org.apache.lucene.analysis.MockTokenizer.Statece6d7875e604b6ed
    org.apache.lucene.analysis.ReusableStringReaderc9f6ec8eb7023f1c
    org.apache.lucene.analysis.StopFilter4230021c4e77a6d7
    org.apache.lucene.analysis.StopwordAnalyzerBase1a57272d581aa22f
    org.apache.lucene.analysis.Tokenfa8b76ec601d2201
    org.apache.lucene.analysis.TokenFilter9e43d230548551cf
    org.apache.lucene.analysis.TokenStream184dbe299c64e6c6
    org.apache.lucene.analysis.Tokenizer7379ed627ab2912a
    org.apache.lucene.analysis.Tokenizer.1bc547a7b9c0cc19f
    org.apache.lucene.analysis.core.KeywordAnalyzer698cf9e1f8021717
    org.apache.lucene.analysis.core.KeywordTokenizer4dbacb3e403ad85a
    org.apache.lucene.analysis.core.LowerCaseFilterba2c1b7980c14a72
    org.apache.lucene.analysis.core.StopFilter8641c6193f901c17
    org.apache.lucene.analysis.core.WhitespaceTokenizer115580a151439e88
    org.apache.lucene.analysis.en.EnglishAnalyzercc688ebf7db7d878
    org.apache.lucene.analysis.miscellaneous.PerFieldAnalyzerWrapperdad7892fd718e4df
    org.apache.lucene.analysis.miscellaneous.WordDelimiterGraphFilterbc9fe7a967fdcfa0
    org.apache.lucene.analysis.miscellaneous.WordDelimiterGraphFilter.PositionSorter2cd32a2ee34c7dce
    org.apache.lucene.analysis.miscellaneous.WordDelimiterGraphFilter.WordDelimiterConcatenation460ee77062ef67d3
    org.apache.lucene.analysis.miscellaneous.WordDelimiterIterator28629af5aededfc5
    org.apache.lucene.analysis.standard.StandardAnalyzer6e8c8f0d82e95083
    org.apache.lucene.analysis.tokenattributes.CharTermAttributeImpl6f123fa71f95b8a2
    org.apache.lucene.analysis.tokenattributes.KeywordAttributeImpl1407e968afc08f38
    org.apache.lucene.analysis.tokenattributes.OffsetAttributeImpl3cfe5975aa49a4c8
    org.apache.lucene.analysis.tokenattributes.PackedTokenAttributeImplc920cac0bdae9098
    org.apache.lucene.analysis.util.CharTokenizer6ca65685e9be18b0
    org.apache.lucene.codecs.BlockTermStateae9ca3d409bef070
    org.apache.lucene.codecs.Codec7d385f022790e396
    org.apache.lucene.codecs.Codec.Holder954feab31b29306c
    org.apache.lucene.codecs.CodecUtil157ab3df291cad53
    org.apache.lucene.codecs.CompetitiveImpactAccumulator3313639ea91339f0
    org.apache.lucene.codecs.CompetitiveImpactAccumulator.1cbf4c621aff70903
    org.apache.lucene.codecs.CompoundDirectory105adc33fae31203
    org.apache.lucene.codecs.CompoundFormatb6f7adfa57db14e8
    org.apache.lucene.codecs.DocValuesFormat59fc29b0272a381d
    org.apache.lucene.codecs.FieldInfosFormatbbc25871d2052537
    org.apache.lucene.codecs.FieldsConsumer8ac90826db599118
    org.apache.lucene.codecs.FieldsProducer5414d54969b0a428
    org.apache.lucene.codecs.FilterCodeca9fdfb4c360c86b6
    org.apache.lucene.codecs.LiveDocsFormat37ab5fda48936c8e
    org.apache.lucene.codecs.MultiLevelSkipListReader154c0dde48784630
    org.apache.lucene.codecs.MultiLevelSkipListWriter271c1c2a90febec5
    org.apache.lucene.codecs.NormsConsumer618d2d433b8c409a
    org.apache.lucene.codecs.NormsFormat666a4c99b55172f0
    org.apache.lucene.codecs.NormsProducer9ca3613d0a1f0cf7
    org.apache.lucene.codecs.PointsFormat893fa9d6f57ed303
    org.apache.lucene.codecs.PointsFormat.1b7e29ffebcefbee5
    org.apache.lucene.codecs.PostingsFormat5c5d51d1200cda53
    org.apache.lucene.codecs.PostingsFormat.Holdercd21b5e5af08083b
    org.apache.lucene.codecs.PostingsReaderBase69fbc8d7a772c1ba
    org.apache.lucene.codecs.PostingsWriterBase70833c5afb411658
    org.apache.lucene.codecs.PushPostingsWriterBase09459ba2fcc66071
    org.apache.lucene.codecs.SegmentInfoFormat186f50b8ba40fe34
    org.apache.lucene.codecs.StoredFieldsFormatf0635529da3f816b
    org.apache.lucene.codecs.StoredFieldsReader44377ce9cabec7b7
    org.apache.lucene.codecs.StoredFieldsWriter18287965dde32b41
    org.apache.lucene.codecs.TermVectorsFormatabae86cbdd868241
    org.apache.lucene.codecs.asserting.AssertingCodec181ff1f5f0c04bb3
    org.apache.lucene.codecs.asserting.AssertingCodec.158c1336bd2481840
    org.apache.lucene.codecs.asserting.AssertingCodec.2efd47e8bc6c5a37e
    org.apache.lucene.codecs.asserting.AssertingDocValuesFormat166b210b883232d9
    org.apache.lucene.codecs.asserting.AssertingLiveDocsFormat3d7b3d8ee59fadd9
    org.apache.lucene.codecs.asserting.AssertingNormsFormat77b17e1410835cea
    org.apache.lucene.codecs.asserting.AssertingPointsFormat79c71415bbc0e918
    org.apache.lucene.codecs.asserting.AssertingPostingsFormatdab4c601fbb38db2
    org.apache.lucene.codecs.asserting.AssertingStoredFieldsFormat977fa1ba133bcbd2
    org.apache.lucene.codecs.asserting.AssertingTermVectorsFormate45fb7fe712c01cd
    org.apache.lucene.codecs.blockterms.LuceneFixedGapad7ee00eda7c1911
    org.apache.lucene.codecs.blockterms.LuceneVarGapDocFreqInterval6aa0d27664bdfe71
    org.apache.lucene.codecs.blockterms.LuceneVarGapFixedInterval44c7e5e1eea47620
    org.apache.lucene.codecs.blocktree.BlockTreeTermsReader4a5eb3e67f7fa9f7
    org.apache.lucene.codecs.blocktree.BlockTreeTermsWriterb036adb9f5245c23
    org.apache.lucene.codecs.blocktree.BlockTreeTermsWriter.PendingBlockc6f4f170bf8bd277
    org.apache.lucene.codecs.blocktree.BlockTreeTermsWriter.PendingEntryf940bc41257f9ec1
    org.apache.lucene.codecs.blocktree.BlockTreeTermsWriter.PendingTerm6e393f062014fa45
    org.apache.lucene.codecs.blocktree.BlockTreeTermsWriter.StatsWriteradd454e2523a11b5
    org.apache.lucene.codecs.blocktree.BlockTreeTermsWriter.TermsWriter0fc215d15cf4d2ff
    org.apache.lucene.codecs.blocktree.CompressionAlgorithmcd5f2e1bcb83ac78
    org.apache.lucene.codecs.blocktree.CompressionAlgorithm.1b89067b1068100c6
    org.apache.lucene.codecs.blocktree.CompressionAlgorithm.25d39130de56dffa9
    org.apache.lucene.codecs.blocktree.CompressionAlgorithm.373218b346be9521d
    org.apache.lucene.codecs.blocktree.FieldReader9ffc10d155e4863b
    org.apache.lucene.codecs.blocktree.SegmentTermsEnumce57a3db048cb9ef
    org.apache.lucene.codecs.blocktree.SegmentTermsEnumFramedcfdb1defbeb4bf6
    org.apache.lucene.codecs.blocktreeords.BlockTreeOrdsPostingsFormat0c4dde2e22fec944
    org.apache.lucene.codecs.bloom.BloomFilterFactory0aab4bea863d894e
    org.apache.lucene.codecs.bloom.BloomFilteringPostingsFormat2c68798b039c5b69
    org.apache.lucene.codecs.bloom.DefaultBloomFilterFactory951036c345a39cad
    org.apache.lucene.codecs.bloom.TestBloomFilteredLucenePostingse99f655c99c9bbbe
    org.apache.lucene.codecs.bloom.TestBloomFilteredLucenePostings.LowMemoryBloomFactory3b6278de7f1cc2b2
    org.apache.lucene.codecs.cheapbastard.CheapBastardCodec7208b1d08807944d
    org.apache.lucene.codecs.compressing.CompressingCodec9dc27bbfc6d275fe
    org.apache.lucene.codecs.compressing.CompressingStoredFieldsFormat896fa678ffe81c92
    org.apache.lucene.codecs.compressing.CompressingStoredFieldsReaderfed51f9077208bb6
    org.apache.lucene.codecs.compressing.CompressingStoredFieldsReader.17bddfb5935f04284
    org.apache.lucene.codecs.compressing.CompressingStoredFieldsReader.BlockStated3812bfab13be812
    org.apache.lucene.codecs.compressing.CompressingStoredFieldsReader.SerializedDocument4cc23a5abef95aaf
    org.apache.lucene.codecs.compressing.CompressingStoredFieldsWriter2dad7ad136db8d57
    org.apache.lucene.codecs.compressing.CompressingTermVectorsFormat873c98aa0b112460
    org.apache.lucene.codecs.compressing.CompressionMode40a206f9a035f885
    org.apache.lucene.codecs.compressing.CompressionMode.15222ebc3d273a019
    org.apache.lucene.codecs.compressing.CompressionMode.2f6685a7e7bb3771a
    org.apache.lucene.codecs.compressing.CompressionMode.3196e0c9c4cbfa662
    org.apache.lucene.codecs.compressing.CompressionMode.477d32d5ef9354e6e
    org.apache.lucene.codecs.compressing.Compressorb0dd429aca65b80e
    org.apache.lucene.codecs.compressing.Decompressor5a441b8b2ca96e65
    org.apache.lucene.codecs.compressing.DeflateWithPresetCompressingCodec560f1be9247c7517
    org.apache.lucene.codecs.compressing.FastCompressingCodec5af07743da5b129c
    org.apache.lucene.codecs.compressing.FastDecompressionCompressingCodece2954e660e381e03
    org.apache.lucene.codecs.compressing.FieldsIndexe7d850a894e41f41
    org.apache.lucene.codecs.compressing.FieldsIndexReaderefa174465074bfbd
    org.apache.lucene.codecs.compressing.FieldsIndexWriter10a973070f4bf7a4
    org.apache.lucene.codecs.compressing.HighCompressionCompressingCodecad8c4af4f2d6eb68
    org.apache.lucene.codecs.compressing.LZ4WithPresetCompressingCodece033e91451f0398f
    org.apache.lucene.codecs.compressing.dummy.DummyCompressingCodec18f1474017678b6b
    org.apache.lucene.codecs.compressing.dummy.DummyCompressingCodec.1c1eeb7d1cac79018
    org.apache.lucene.codecs.compressing.dummy.DummyCompressingCodec.2e6380fab1dddb383
    org.apache.lucene.codecs.compressing.dummy.DummyCompressingCodec.3b492163ee1f96914
    org.apache.lucene.codecs.idversion.IDVersionPostingsFormatc2da72d126aba544
    org.apache.lucene.codecs.lucene50.Lucene50CompoundFormat385a35dbd700d7bd
    org.apache.lucene.codecs.lucene50.Lucene50CompoundReaderf79625b845ff1a72
    org.apache.lucene.codecs.lucene50.Lucene50CompoundReader.FileEntryca388693c592b376
    org.apache.lucene.codecs.lucene50.Lucene50LiveDocsFormatdad069b09c8ebe30
    org.apache.lucene.codecs.lucene50.Lucene50TermVectorsFormate177ce04f8f4313d
    org.apache.lucene.codecs.lucene60.Lucene60FieldInfosFormatbea4d612bda522b3
    org.apache.lucene.codecs.lucene60.Lucene60FieldInfosFormat.1a5faf788eebfcf53
    org.apache.lucene.codecs.lucene80.Lucene80DocValuesFormat18b32b386e539057
    org.apache.lucene.codecs.lucene80.Lucene80DocValuesFormat.Mode86ca2b1c37fd2c44
    org.apache.lucene.codecs.lucene80.Lucene80NormsConsumer19b27d401c1468aa
    org.apache.lucene.codecs.lucene80.Lucene80NormsFormat1e44bf93a20abf13
    org.apache.lucene.codecs.lucene80.Lucene80NormsProducer2d431e4bdf3291b8
    org.apache.lucene.codecs.lucene80.Lucene80NormsProducer.24b5363267f651c95
    org.apache.lucene.codecs.lucene80.Lucene80NormsProducer.37d7991b10f9fe420
    org.apache.lucene.codecs.lucene80.Lucene80NormsProducer.DenseNormsIteratorce4201e8cb7d61f3
    org.apache.lucene.codecs.lucene80.Lucene80NormsProducer.NormsEntryb676b20f594fdb12
    org.apache.lucene.codecs.lucene84.ForDeltaUtilbfe1bbad9d2e544b
    org.apache.lucene.codecs.lucene84.ForUtilde15f512bc648fc1
    org.apache.lucene.codecs.lucene84.Lucene84PostingsFormatbf59ad8fdebd5d74
    org.apache.lucene.codecs.lucene84.Lucene84PostingsFormat.IntBlockTermStatef10b9e05ba79b752
    org.apache.lucene.codecs.lucene84.Lucene84PostingsReader429c11d1836706b4
    org.apache.lucene.codecs.lucene84.Lucene84PostingsReader.BlockDocsEnum757838073fe69387
    org.apache.lucene.codecs.lucene84.Lucene84PostingsReader.BlockImpactsDocsEnum195ba8c2070ddaf5
    org.apache.lucene.codecs.lucene84.Lucene84PostingsWriter2cab59acfc3bb8a5
    org.apache.lucene.codecs.lucene84.Lucene84ScoreSkipReaderc1a818e91bb523bd
    org.apache.lucene.codecs.lucene84.Lucene84ScoreSkipReader.13d1e1fee9c8ae8f2
    org.apache.lucene.codecs.lucene84.Lucene84ScoreSkipReader.MutableImpactList5439f55d0eafe5f6
    org.apache.lucene.codecs.lucene84.Lucene84SkipReader1f7fa252de511870
    org.apache.lucene.codecs.lucene84.Lucene84SkipWriter76f5bd9c5e6e9e31
    org.apache.lucene.codecs.lucene84.PForUtile08db33b54b22cfd
    org.apache.lucene.codecs.lucene86.Lucene86PointsFormatf64406f00a5abe31
    org.apache.lucene.codecs.lucene86.Lucene86SegmentInfoFormat586cf6377df4154e
    org.apache.lucene.codecs.lucene87.DeflateWithPresetDictCompressionModeeef2871dedd17ce4
    org.apache.lucene.codecs.lucene87.LZ4WithPresetDictCompressionModed862ddb8f965ccb4
    org.apache.lucene.codecs.lucene87.LZ4WithPresetDictCompressionMode.LZ4WithPresetDictCompressore6d7dc198735025e
    org.apache.lucene.codecs.lucene87.LZ4WithPresetDictCompressionMode.LZ4WithPresetDictDecompressorcdef0ff6ed46a9fd
    org.apache.lucene.codecs.lucene87.Lucene87Codec9911310a45d92bb3
    org.apache.lucene.codecs.lucene87.Lucene87Codec.128723482ca6440d7
    org.apache.lucene.codecs.lucene87.Lucene87Codec.206911be072d66b12
    org.apache.lucene.codecs.lucene87.Lucene87Codec.Mode0cdb8b76874bda63
    org.apache.lucene.codecs.lucene87.Lucene87StoredFieldsFormat95ec1a8a217a9696
    org.apache.lucene.codecs.lucene87.Lucene87StoredFieldsFormat.1df56e677e7cde89d
    org.apache.lucene.codecs.lucene87.Lucene87StoredFieldsFormat.Mode54f5b49dea8b8336
    org.apache.lucene.codecs.memory.DirectDocValuesFormat599b4732017f8e1a
    org.apache.lucene.codecs.memory.DirectPostingsFormat4dd12af36b0a3791
    org.apache.lucene.codecs.memory.FSTPostingsFormat0488c9d3ef0e445f
    org.apache.lucene.codecs.mockrandom.MockRandomPostingsFormatb296437d6c7fac1c
    org.apache.lucene.codecs.mockrandom.MockRandomPostingsFormat.1a9cb0e2f6482337e
    org.apache.lucene.codecs.perfield.PerFieldDocValuesFormat999be7b49946c809
    org.apache.lucene.codecs.perfield.PerFieldPostingsFormatf4cf062fe4480103
    org.apache.lucene.codecs.perfield.PerFieldPostingsFormat.FieldsGroupa9f65c90021ba143
    org.apache.lucene.codecs.perfield.PerFieldPostingsFormat.FieldsGroup.Buildercf3e5a1c6f5d87c6
    org.apache.lucene.codecs.perfield.PerFieldPostingsFormat.FieldsReader23133a0a2e3e3d10
    org.apache.lucene.codecs.perfield.PerFieldPostingsFormat.FieldsWriter39e6a18f2c347e15
    org.apache.lucene.codecs.perfield.PerFieldPostingsFormat.FieldsWriter.1d45ea394ce4e87d2
    org.apache.lucene.codecs.ramonly.RAMOnlyPostingsFormatb60101c6580c5465
    org.apache.lucene.codecs.simpletext.SimpleTextCodec2c373cb80e8d36bb
    org.apache.lucene.codecs.simpletext.SimpleTextCompoundFormat8f06368999e2d677
    org.apache.lucene.codecs.simpletext.SimpleTextDocValuesFormatf204a428ec29d7f8
    org.apache.lucene.codecs.simpletext.SimpleTextFieldInfosFormat81e806cb10082466
    org.apache.lucene.codecs.simpletext.SimpleTextLiveDocsFormat7c38ab199ac51918
    org.apache.lucene.codecs.simpletext.SimpleTextNormsFormatc15c111c36138a2f
    org.apache.lucene.codecs.simpletext.SimpleTextPointsFormatc8a30d6e5464cb0b
    org.apache.lucene.codecs.simpletext.SimpleTextPostingsFormatecad7a507eb6cf4b
    org.apache.lucene.codecs.simpletext.SimpleTextSegmentInfoFormat6b46afa313fcbff0
    org.apache.lucene.codecs.simpletext.SimpleTextStoredFieldsFormatfd3858ab1bfa364c
    org.apache.lucene.codecs.simpletext.SimpleTextTermVectorsFormat9637b123540cf5bc
    org.apache.lucene.codecs.uniformsplit.UniformSplitPostingsFormat7cc8bd22aa9c73fd
    org.apache.lucene.codecs.uniformsplit.UniformSplitRot13PostingsFormat3caedc240adc5d40
    org.apache.lucene.codecs.uniformsplit.UniformSplitTermsWriterc0bfc0ffbc7e5592
    org.apache.lucene.codecs.uniformsplit.sharedterms.STUniformSplitPostingsFormat9669ad899ca00076
    org.apache.lucene.codecs.uniformsplit.sharedterms.STUniformSplitRot13PostingsFormat92abb9f820ad0db8
    org.apache.lucene.document.Documente1b4f587d42b8bee
    org.apache.lucene.document.DocumentStoredFieldVisitor66c1e4b20aa4d347
    org.apache.lucene.document.Field7f482656d4ca1583
    org.apache.lucene.document.Field.Store313c54f0ca666857
    org.apache.lucene.document.FieldTypeb7c621c07031e9cf
    org.apache.lucene.document.StoredFieldc2d3990da920bf93
    org.apache.lucene.document.TextField3884cff56ab2e8d5
    org.apache.lucene.index.BaseCompositeReaderd97e90ccc7f968ed
    org.apache.lucene.index.BaseTermsEnum98f6b1ecedb5374e
    org.apache.lucene.index.BufferedUpdates87ddb653a8568589
    org.apache.lucene.index.BufferedUpdatesStream826f0e27162b764b
    org.apache.lucene.index.BufferedUpdatesStream.FinishedSegments16a71e5037793419
    org.apache.lucene.index.ByteSliceReader013997c1da8668b7
    org.apache.lucene.index.CodecReader664ad067a4634f30
    org.apache.lucene.index.CompositeReader1ac667c88af4f805
    org.apache.lucene.index.CompositeReaderContext7e031115b0dba787
    org.apache.lucene.index.CompositeReaderContext.Builder071e9447b79df71a
    org.apache.lucene.index.ConcurrentMergeScheduler7192a79827ef3c6d
    org.apache.lucene.index.DefaultIndexingChaind2d4569721a2c208
    org.apache.lucene.index.DefaultIndexingChain.IntBlockAllocatorf8ba5af8ae2348f4
    org.apache.lucene.index.DefaultIndexingChain.PerFieldcce61152033abf01
    org.apache.lucene.index.DirectoryReader872b9ecc9a6593a5
    org.apache.lucene.index.DocConsumere1f0c74a0a5799b0
    org.apache.lucene.index.DocValuesIterator18191cf4f05d1e35
    org.apache.lucene.index.DocValuesType7e1ae71ed4ea7003
    org.apache.lucene.index.DocsWithFieldSet8d19e1081ed95385
    org.apache.lucene.index.DocumentsWriter7cc357393fcb7704
    org.apache.lucene.index.DocumentsWriterDeleteQueue13f9cf08d569e3e2
    org.apache.lucene.index.DocumentsWriterDeleteQueue.DeleteSlicef1270dfe524b0475
    org.apache.lucene.index.DocumentsWriterDeleteQueue.Nodee35b7bfe790524e5
    org.apache.lucene.index.DocumentsWriterFlushControlf0c2fa30940cc6eb
    org.apache.lucene.index.DocumentsWriterFlushQueue2c7673b354c8e663
    org.apache.lucene.index.DocumentsWriterFlushQueue.FlushTicket89df1c2221a6fcc6
    org.apache.lucene.index.DocumentsWriterPerThread04669483a6b45471
    org.apache.lucene.index.DocumentsWriterPerThread.12e2a89a263831e28
    org.apache.lucene.index.DocumentsWriterPerThread.FlushedSegment0b6ff5c256c820c9
    org.apache.lucene.index.DocumentsWriterPerThread.IndexingChaina80ec889dc78a499
    org.apache.lucene.index.DocumentsWriterPerThreadPoolebeda4d160ec6dcd
    org.apache.lucene.index.DocumentsWriterStallControl58d97a046f2a5e61
    org.apache.lucene.index.FieldInfo5d3240edb51a9c8e
    org.apache.lucene.index.FieldInfos0cd129ec82608462
    org.apache.lucene.index.FieldInfos.Builder172eff8db3205492
    org.apache.lucene.index.FieldInfos.FieldNumbers32bc1472e7a4ffd6
    org.apache.lucene.index.FieldInvertState9d275e86858587ac
    org.apache.lucene.index.Fieldseef2020978da652b
    org.apache.lucene.index.FilterLeafReader.FilterFieldsfa901dce56bcbd4a
    org.apache.lucene.index.FlushByRamOrCountsPolicy88d230f4879c8846
    org.apache.lucene.index.FlushPolicyf82b82ae268a26e6
    org.apache.lucene.index.FreqProxFieldse7a3eefa6739fbaf
    org.apache.lucene.index.FreqProxFields.FreqProxDocsEnum9b5450dfccaeb430
    org.apache.lucene.index.FreqProxFields.FreqProxPostingsEnum5c3b159340af0f19
    org.apache.lucene.index.FreqProxFields.FreqProxTermsdedfdef25735032c
    org.apache.lucene.index.FreqProxFields.FreqProxTermsEnum3601506a252c0835
    org.apache.lucene.index.FreqProxTermsWriterdd9e5dfaa06e7132
    org.apache.lucene.index.FreqProxTermsWriterPerField1e6792a1afdb8706
    org.apache.lucene.index.FreqProxTermsWriterPerField.FreqProxPostingsArraya2d8410c7d62b204
    org.apache.lucene.index.Impact882e84c41ed12353
    org.apache.lucene.index.Impacts86133783ef6f8339
    org.apache.lucene.index.ImpactsEnum952b956e16147b18
    org.apache.lucene.index.IndexCommit2c603d2695fc5325
    org.apache.lucene.index.IndexDeletionPolicy74de12c334f0ff0b
    org.apache.lucene.index.IndexFileDeleter864842f2ab2489df
    org.apache.lucene.index.IndexFileDeleter.CommitPointb03c283521652ed6
    org.apache.lucene.index.IndexFileDeleter.RefCount9d0a0ab0f621189a
    org.apache.lucene.index.IndexFileNames5a0676f33d0dd869
    org.apache.lucene.index.IndexOptions3f91d827d790b03c
    org.apache.lucene.index.IndexReader7350521cd77caecb
    org.apache.lucene.index.IndexReader.CacheKeyb51d6a55a323e37e
    org.apache.lucene.index.IndexReaderContext04e32f4b9c330127
    org.apache.lucene.index.IndexWritere0325aeb804ee9cd
    org.apache.lucene.index.IndexWriter.11648142e65802354
    org.apache.lucene.index.IndexWriter.4f13f02d787c63977
    org.apache.lucene.index.IndexWriter.EventQueue036f9bbdb7eaba28
    org.apache.lucene.index.IndexWriter.IndexWriterMergeSourcecf8a98cb877c1183
    org.apache.lucene.index.IndexWriter.Merges2e1fc51eb330086c
    org.apache.lucene.index.IndexWriterConfigd701914f0d6658b6
    org.apache.lucene.index.IndexWriterConfig.OpenMode7cb49344ea5c6351
    org.apache.lucene.index.IndexWriterMaxDocsChanger1bc2995118468740
    org.apache.lucene.index.KeepOnlyLastCommitDeletionPolicy9f22fe8c738d9952
    org.apache.lucene.index.LeafMetaDatabbff7ff01b4134e0
    org.apache.lucene.index.LeafReaderfa1ce8df2ae26a6e
    org.apache.lucene.index.LeafReaderContextfc6c719b81d116df
    org.apache.lucene.index.LiveIndexWriterConfiga2067f8ef3677fdc
    org.apache.lucene.index.MergePolicye4754a4a63055e7b
    org.apache.lucene.index.MergeScheduler647d19e97498fe90
    org.apache.lucene.index.MergeTrigger8b1aa8130dc2b264
    org.apache.lucene.index.NormValuesWriter46f5e71221ca6e02
    org.apache.lucene.index.NormValuesWriter.1c0864a9951fac185
    org.apache.lucene.index.NormValuesWriter.BufferedNormse8da754887bba3a5
    org.apache.lucene.index.NumericDocValuesa2de2240a1d105fa
    org.apache.lucene.index.OrdTermState43005a4850ff3eee
    org.apache.lucene.index.ParallelPostingsArray9e8709952ddc86a9
    org.apache.lucene.index.PostingsEnum13ee3bbe2a9a135b
    org.apache.lucene.index.RandomCodec9d5216583e3f9c53
    org.apache.lucene.index.ReaderPool196c2a1e4e1cb021
    org.apache.lucene.index.ReaderUtil4a74f8dbf0455564
    org.apache.lucene.index.SegmentCommitInfo361389f17f161615
    org.apache.lucene.index.SegmentCoreReaders329963e565bed71e
    org.apache.lucene.index.SegmentCoreReaders.14c22a3a7e7a3464b
    org.apache.lucene.index.SegmentCoreReaders.2f94d04d48a8e6732
    org.apache.lucene.index.SegmentCoreReaders.30dcca50ca892de5e
    org.apache.lucene.index.SegmentDocValues8c267f5425938996
    org.apache.lucene.index.SegmentInfod59792dbd411f918
    org.apache.lucene.index.SegmentInfos8e0cfc1c34a793bc
    org.apache.lucene.index.SegmentInfos.FindSegmentsFile57064a938b60a18c
    org.apache.lucene.index.SegmentReadStatef7f57f7389b9e4aa
    org.apache.lucene.index.SegmentReader63c8cf9560aa58ed
    org.apache.lucene.index.SegmentReader.1007c5e078ca5b49c
    org.apache.lucene.index.SegmentReader.2f1871b747f8ea7f6
    org.apache.lucene.index.SegmentWriteState3df2c751683e36f5
    org.apache.lucene.index.SlowImpactsEnum1474c9337a65b539
    org.apache.lucene.index.SlowImpactsEnum.1d5bb02ac6cfb08ba
    org.apache.lucene.index.StandardDirectoryReader3fc892a97e1fcf74
    org.apache.lucene.index.StandardDirectoryReader.170ecfd4176b47247
    org.apache.lucene.index.StandardDirectoryReader.3ca361c5e2d8fe939
    org.apache.lucene.index.StoredFieldVisitorc234cad09dc1c771
    org.apache.lucene.index.StoredFieldVisitor.Status9cb9d093a6117d87
    org.apache.lucene.index.StoredFieldsConsumer3e50d154a538cc4a
    org.apache.lucene.index.Term998f0369ca56ca77
    org.apache.lucene.index.TermStated94a8fc5aa8fb053
    org.apache.lucene.index.TermStates51833d55b04ca4cd
    org.apache.lucene.index.TermStates.1ec6a01c059b307f9
    org.apache.lucene.index.TermVectorsConsumer5da357250a0de7f2
    org.apache.lucene.index.TermVectorsConsumerPerField1208c70ca8670152
    org.apache.lucene.index.TermVectorsConsumerPerField.TermVectorsPostingsArrayc0105255a2cecf00
    org.apache.lucene.index.Terms7ca39f3bdd238e2b
    org.apache.lucene.index.TermsEnumdfe1f9b0994d664f
    org.apache.lucene.index.TermsEnum.1249f31e05c710308
    org.apache.lucene.index.TermsEnum.SeekStatus8b3a7bcd9e7da648
    org.apache.lucene.index.TermsHashc630c8de6506aac1
    org.apache.lucene.index.TermsHashPerField1b7a39be6c997509
    org.apache.lucene.index.TermsHashPerField.PostingsBytesStartArray5e5e00daabc62112
    org.apache.lucene.index.TieredMergePolicyc430a128b00f05d4
    org.apache.lucene.index.TieredMergePolicy.MERGE_TYPEee4ce8703565589c
    org.apache.lucene.index.TieredMergePolicy.SegmentSizeAndDocs13066978ebee0cf5
    org.apache.lucene.mockfile.DisableFsyncFS778b5ca3f6e81dca
    org.apache.lucene.mockfile.ExtrasFS17704d535444cb25
    org.apache.lucene.mockfile.FilterFileSystem965f8314db3795da
    org.apache.lucene.mockfile.FilterFileSystemProvidera401520e9ad85d23
    org.apache.lucene.mockfile.FilterPath953520f3f3374564
    org.apache.lucene.mockfile.HandleLimitFSb4d21e02aa5d2136
    org.apache.lucene.mockfile.HandleTrackingFS1e433c363f6801fa
    org.apache.lucene.mockfile.LeakFS1d9341a2aedfe396
    org.apache.lucene.mockfile.ShuffleFS17d1a875f1721633
    org.apache.lucene.mockfile.WindowsFSff9a0412c470a6c6
    org.apache.lucene.queryparser.classic.FastCharStream921f61bd34d336b7
    org.apache.lucene.queryparser.classic.QueryParser58a639d223811485
    org.apache.lucene.queryparser.classic.QueryParser.JJCallsb4aa6347602075fe
    org.apache.lucene.queryparser.classic.QueryParser.LookaheadSuccess1e68eb728086b64d
    org.apache.lucene.queryparser.classic.QueryParser.Operatorc369979182f4a099
    org.apache.lucene.queryparser.classic.QueryParserBasec083122d7fdf3d7d
    org.apache.lucene.queryparser.classic.QueryParserTokenManager98e97e8b3adc403b
    org.apache.lucene.queryparser.classic.Tokend87570aef642ebc9
    org.apache.lucene.search.BlockMaxConjunctionScorer061e44a27a9e97e7
    org.apache.lucene.search.BlockMaxConjunctionScorer.174c433408ff6b3bd
    org.apache.lucene.search.BlockMaxConjunctionScorer.23ea95fe22eaa4f92
    org.apache.lucene.search.Boolean2ScorerSupplierc583418a25057486
    org.apache.lucene.search.BooleanClause5517b155135643c4
    org.apache.lucene.search.BooleanClause.Occur734a3ee59f624d3a
    org.apache.lucene.search.BooleanClause.Occur.1844152c852706967
    org.apache.lucene.search.BooleanClause.Occur.2314312e6be9e3919
    org.apache.lucene.search.BooleanClause.Occur.382ed509b5f202c18
    org.apache.lucene.search.BooleanClause.Occur.4daeb1927527fbfcf
    org.apache.lucene.search.BooleanQuery96c1ac631fbd6b0e
    org.apache.lucene.search.BooleanQuery.Builder7e6d4552da2ff245
    org.apache.lucene.search.BooleanWeight174f45125f19caf2
    org.apache.lucene.search.BooleanWeight.WeightedBooleanClause166652adc0fe198e
    org.apache.lucene.search.BoostAttributeImplf093b8b530992fa9
    org.apache.lucene.search.BoostQuery83694dbca36799f8
    org.apache.lucene.search.BulkScorer0cdfc6b4ad3daf0c
    org.apache.lucene.search.CollectionStatistics5ec48820d8f08861
    org.apache.lucene.search.DisiPriorityQueuecd6e7ceb6bb4a75c
    org.apache.lucene.search.DisiWrapperc464918fcb4dc917
    org.apache.lucene.search.DocIdSet5365aa0bacf9a6e7
    org.apache.lucene.search.DocIdSet.131119c239a3307e0
    org.apache.lucene.search.DocIdSetIteratorb2f8b47fe6931904
    org.apache.lucene.search.DocIdSetIterator.26831e1d78fb78367
    org.apache.lucene.search.Explanationf9b8483b4a27fc0e
    org.apache.lucene.search.HitQueue1b55fd31915c139a
    org.apache.lucene.search.HitsThresholdCheckercbcf7b80177ffd7d
    org.apache.lucene.search.HitsThresholdChecker.LocalHitsThresholdChecker0af70e4877c39078
    org.apache.lucene.search.ImpactsDISI13342a2866448a60
    org.apache.lucene.search.IndexSearcher73336568d9558b83
    org.apache.lucene.search.IndexSearcher.28a80822a11869ba3
    org.apache.lucene.search.LRUQueryCachef119ed15eba21643
    org.apache.lucene.search.LRUQueryCache.MinSegmentSizePredicatee8546c497dd5c047
    org.apache.lucene.search.LeafCollector610577ef49520501
    org.apache.lucene.search.LeafSimScorerdae74001f09e0d4b
    org.apache.lucene.search.MaxScoreCacheb0fab390a2eeb1ff
    org.apache.lucene.search.MaxScoreSumPropagator5a91caaf7298e99b
    org.apache.lucene.search.MaxScoreSumPropagator.15ee8239fddd1a671
    org.apache.lucene.search.MultiTermQuery2b75d54f87e0a440
    org.apache.lucene.search.MultiTermQuery.16c9d933f8b8f27ac
    org.apache.lucene.search.MultiTermQuery.RewriteMethoddccbda72605e36e9
    org.apache.lucene.search.Multiset19d136ff7551a790
    org.apache.lucene.search.Multiset.13b110197a7d930cc
    org.apache.lucene.search.PhraseQuery52f7e7a1fb7014c5
    org.apache.lucene.search.PhraseQuery.1471a12eafe62877f
    org.apache.lucene.search.PhraseQuery.Builder13ad717b7ed54825
    org.apache.lucene.search.PhraseWeighta3d8e03071d0b1b9
    org.apache.lucene.search.PhraseWeight.15f7be556b85d06bd
    org.apache.lucene.search.Queryc165f884ce594f28
    org.apache.lucene.search.Scorablece3faa2bf0d13526
    org.apache.lucene.search.ScoreDoc7bfc4d6df3c15e4f
    org.apache.lucene.search.ScoreMode5083adba207caf07
    org.apache.lucene.search.Scorera2e3c4802bca7246
    org.apache.lucene.search.ScorerSupplier50ccb984640f5a29
    org.apache.lucene.search.ScorerUtil4858996195e514c9
    org.apache.lucene.search.ScorerUtil.10d12a67987763dd8
    org.apache.lucene.search.ScoringRewrite53dda8cd115a1b80
    org.apache.lucene.search.ScoringRewrite.1726bc5187a7d9169
    org.apache.lucene.search.ScoringRewrite.2c8ed0d3ea02d9ba7
    org.apache.lucene.search.TermCollectingRewrite3c6917b7de289c31
    org.apache.lucene.search.TermQuery32c14fb4749e12de
    org.apache.lucene.search.TermQuery.TermWeight8232b1155cdcaa35
    org.apache.lucene.search.TermScorerc300e5abbc794b3b
    org.apache.lucene.search.TermStatistics2889bba2906e16a2
    org.apache.lucene.search.TopDocs012373f68cd76882
    org.apache.lucene.search.TopDocs.ScoreMergeSortQueue0d229ef686a287eb
    org.apache.lucene.search.TopDocs.ShardRef645ec85cd874e13e
    org.apache.lucene.search.TopDocsCollectord619b8b8e24362ae
    org.apache.lucene.search.TopScoreDocCollectorf0f271377b503622
    org.apache.lucene.search.TopScoreDocCollector.ScorerLeafCollector0916b64fdd6310f8
    org.apache.lucene.search.TopScoreDocCollector.SimpleTopScoreDocCollectore89ce7447d46c23d
    org.apache.lucene.search.TopScoreDocCollector.SimpleTopScoreDocCollector.1b7fd297ad7b8e993
    org.apache.lucene.search.TotalHitsc054cc870c4bc713
    org.apache.lucene.search.TotalHits.Relationcd9e19742f0a5fea
    org.apache.lucene.search.TwoPhaseIteratorf59ed4e6ee883076
    org.apache.lucene.search.TwoPhaseIterator.TwoPhaseIteratorAsDocIdSetIteratorbde4888d90c9b71d
    org.apache.lucene.search.UsageTrackingQueryCachingPolicyb8f47b0b4f586c84
    org.apache.lucene.search.WANDScorer9b455d37735417e4
    org.apache.lucene.search.WANDScorer.1677f7eae4aa6e58d
    org.apache.lucene.search.WANDScorer.27f071d191fb7cb28
    org.apache.lucene.search.Weightf9b0b832cbdab9cc
    org.apache.lucene.search.Weight.19ae964d7e7004115
    org.apache.lucene.search.Weight.DefaultBulkScorer3367fcb4d4550921
    org.apache.lucene.search.similarities.AfterEffect0793310e5338e24d
    org.apache.lucene.search.similarities.AfterEffectB1597f7ea5c3e93c4
    org.apache.lucene.search.similarities.AfterEffectL6a90c41c7608b070
    org.apache.lucene.search.similarities.AssertingSimilarity17923a752141c3fb
    org.apache.lucene.search.similarities.Axiomaticef27c653cf1c0fd0
    org.apache.lucene.search.similarities.AxiomaticF1EXPb1ce2688bf1afcd2
    org.apache.lucene.search.similarities.AxiomaticF1LOGdd72f238e902de40
    org.apache.lucene.search.similarities.AxiomaticF2EXP50859081cdcc957e
    org.apache.lucene.search.similarities.AxiomaticF2LOG3119cf2421ccde70
    org.apache.lucene.search.similarities.BM25Similarityd69466947ed0f51c
    org.apache.lucene.search.similarities.BM25Similarity.BM25Scorera177d5b0724f1baa
    org.apache.lucene.search.similarities.BasicModel780a9c4f431c3423
    org.apache.lucene.search.similarities.BasicModelG727f4fc93f8d45a8
    org.apache.lucene.search.similarities.BasicModelIFfde4206a7191383c
    org.apache.lucene.search.similarities.BasicModelIn0b31267ef2c33910
    org.apache.lucene.search.similarities.BasicModelIneb50d1f8dc028c177
    org.apache.lucene.search.similarities.BooleanSimilaritybffc1d0892e790d0
    org.apache.lucene.search.similarities.ClassicSimilaritya18f5807ed7f74fc
    org.apache.lucene.search.similarities.DFISimilaritya019dd753e0fc14f
    org.apache.lucene.search.similarities.DFRSimilarity222f32ad49ae18c2
    org.apache.lucene.search.similarities.Distributiond963842a327df5e3
    org.apache.lucene.search.similarities.DistributionLLf4b829c4663cd965
    org.apache.lucene.search.similarities.DistributionSPL4155480c702646cf
    org.apache.lucene.search.similarities.IBSimilarityfc432ec9dcdbb38f
    org.apache.lucene.search.similarities.Independenceef6cacba7ae36174
    org.apache.lucene.search.similarities.IndependenceChiSquarede73589feda3da344
    org.apache.lucene.search.similarities.IndependenceSaturated277005223298f824
    org.apache.lucene.search.similarities.IndependenceStandardized6ab832e92c5e5755
    org.apache.lucene.search.similarities.LMDirichletSimilarity7b525c4b1faa015f
    org.apache.lucene.search.similarities.LMJelinekMercerSimilarityaa1f679a43e25d18
    org.apache.lucene.search.similarities.LMSimilarityf4dbaeeb31b90276
    org.apache.lucene.search.similarities.LMSimilarity.DefaultCollectionModeld5d93d640a49ce3e
    org.apache.lucene.search.similarities.Lambdab69b0f2ff098a199
    org.apache.lucene.search.similarities.LambdaDFea62637e5995c14d
    org.apache.lucene.search.similarities.LambdaTTF476e543bdb354b57
    org.apache.lucene.search.similarities.Normalization2dc7a705bd29f0ee
    org.apache.lucene.search.similarities.NormalizationH15aea0da5071f3040
    org.apache.lucene.search.similarities.NormalizationH261878bf139fb446b
    org.apache.lucene.search.similarities.NormalizationH3c6c58e128d8f0f8d
    org.apache.lucene.search.similarities.NormalizationZ8a3a7285900022a9
    org.apache.lucene.search.similarities.PerFieldSimilarityWrapper42586b5507e510df
    org.apache.lucene.search.similarities.RandomSimilarity423403d812d6a061
    org.apache.lucene.search.similarities.Similaritya3b6d2798ce43d71
    org.apache.lucene.search.similarities.Similarity.SimScorer67d544ce9feeb21a
    org.apache.lucene.search.similarities.SimilarityBase202345704c162a53
    org.apache.lucene.search.similarities.TFIDFSimilaritydf5bd1768147d674
    org.apache.lucene.store.BaseDirectory6900d05994ed44b3
    org.apache.lucene.store.BufferedChecksumb94ebe893a9d3711
    org.apache.lucene.store.BufferedChecksumIndexInput173e2b9c65b07cb6
    org.apache.lucene.store.ByteArrayDataInput78632b2460b70e07
    org.apache.lucene.store.ByteArrayDataOutput7e14c81e582b7d2c
    org.apache.lucene.store.ByteBufferGuard259b97c11bbdc71b
    org.apache.lucene.store.ByteBufferIndexInput4167f4c1126b89a3
    org.apache.lucene.store.ByteBufferIndexInput.SingleBufferImpl2a840aec159d9c7d
    org.apache.lucene.store.ByteBuffersDataOutput15456a13d6afd12c
    org.apache.lucene.store.ByteBuffersDataOutput.ByteBufferRecyclerfe108a40cf58b7b1
    org.apache.lucene.store.ChecksumIndexInput76f48af3f68865dd
    org.apache.lucene.store.DataInput5aa170af6f1e947b
    org.apache.lucene.store.DataOutput492e17024cc912e6
    org.apache.lucene.store.Directory7704110da65f03e8
    org.apache.lucene.store.FSDirectory0e228e59762da3b0
    org.apache.lucene.store.FSDirectory.FSIndexOutputd2beb768917b54a0
    org.apache.lucene.store.FSDirectory.FSIndexOutput.1ec3754510e19ee3f
    org.apache.lucene.store.FSLockFactory742892e30a14e87a
    org.apache.lucene.store.FilterDirectoryb2c8389cd77c4d55
    org.apache.lucene.store.FlushInfof9d01f0e9bbb7c7c
    org.apache.lucene.store.IOContext5f42cca474854a9d
    org.apache.lucene.store.IOContext.Context921bb55758e6d8ff
    org.apache.lucene.store.IndexInput06ce5eb19b42b06b
    org.apache.lucene.store.IndexOutput6f483ded93cfafd7
    org.apache.lucene.store.Lock432af1bf641692dc
    org.apache.lucene.store.LockFactoryece396b0fec91411
    org.apache.lucene.store.LockValidatingDirectoryWrapper560f0d73f379987c
    org.apache.lucene.store.MMapDirectorya9942ea0e3192b38
    org.apache.lucene.store.MockDirectoryWrapper.Throttling9084de50297cd07a
    org.apache.lucene.store.NativeFSLockFactory1cd03d5dd607e96c
    org.apache.lucene.store.NativeFSLockFactory.NativeFSLockc3307e40ef2e24c7
    org.apache.lucene.store.OutputStreamIndexOutput90073bdd6eaf9312
    org.apache.lucene.store.RAMFilea543facba1c62f7f
    org.apache.lucene.store.RAMOutputStreama4d3d0444d01318d
    org.apache.lucene.store.TrackingDirectoryWrapper8f84be302b2ff933
    org.apache.lucene.util.AbstractBeforeAfterRule2855be1c9a045f99
    org.apache.lucene.util.AbstractBeforeAfterRule.18f7e77f230c1050d
    org.apache.lucene.util.Accountable9caec5fbf170e939
    org.apache.lucene.util.ArrayUtil5954c5d90665398b
    org.apache.lucene.util.AttributeFactoryb1bf0e54e4016761
    org.apache.lucene.util.AttributeFactory.157348402ad295daa
    org.apache.lucene.util.AttributeFactory.DefaultAttributeFactory400586c34d95eefd
    org.apache.lucene.util.AttributeFactory.DefaultAttributeFactory.1e37cb5b075d39222
    org.apache.lucene.util.AttributeFactory.StaticImplementationAttributeFactory7835b4eaf27ad5e5
    org.apache.lucene.util.AttributeImpld2e818115d53c6c8
    org.apache.lucene.util.AttributeSource9ed2301ac94454b9
    org.apache.lucene.util.AttributeSource.2627a422f8bda783c
    org.apache.lucene.util.AttributeSource.Stateee682f69cc19d165
    org.apache.lucene.util.BitSet5a574c88f9713d83
    org.apache.lucene.util.BitUtilfb8b4d3d71d70037
    org.apache.lucene.util.ByteBlockPoolc1f7c99648018d91
    org.apache.lucene.util.ByteBlockPool.Allocatore4273ccf741d8276
    org.apache.lucene.util.ByteBlockPool.DirectTrackingAllocator9bf47627846516db
    org.apache.lucene.util.BytesRef5dc0661c38a5f442
    org.apache.lucene.util.BytesRefBuilder6b39f0d53b571bfe
    org.apache.lucene.util.BytesRefHash86e748e8ab5fa687
    org.apache.lucene.util.BytesRefHash.1e19faf8fa62ab4f4
    org.apache.lucene.util.BytesRefHash.BytesStartArray06370cc4bd47788d
    org.apache.lucene.util.CloseableThreadLocalc837a4897f406f88
    org.apache.lucene.util.CollectionUtild405772039814236
    org.apache.lucene.util.CollectionUtil.ListIntroSorter272e33df47ff8a28
    org.apache.lucene.util.Constants71711c9ebda826d2
    org.apache.lucene.util.Counterdd1fe6fe36dc8723
    org.apache.lucene.util.Counter.AtomicCounter702c4b53893ac12e
    org.apache.lucene.util.Counter.SerialCounter577da4101cbc325f
    org.apache.lucene.util.FailureMarker0f7bc1056ce8b9cf
    org.apache.lucene.util.FixedBitSet92d1cd1d5e4309b2
    org.apache.lucene.util.FrequencyTrackingRingBufferf4e55c7fd66a81d5
    org.apache.lucene.util.FrequencyTrackingRingBuffer.IntBag5de9feffb74916c0
    org.apache.lucene.util.FutureArrayseead70d27728315f
    org.apache.lucene.util.FutureObjectsbb12722ddc092a6a
    org.apache.lucene.util.IOUtilsf9815136f890b195
    org.apache.lucene.util.InPlaceMergeSortera72a3702a3f4d8f1
    org.apache.lucene.util.InfoStream5c1d197ea5ba7a73
    org.apache.lucene.util.InfoStream.NoOutputd0750f16f6d2766e
    org.apache.lucene.util.IntBlockPool73804d638cfb8a37
    org.apache.lucene.util.IntBlockPool.Allocator024ee289b8aaee46
    org.apache.lucene.util.IntroSorter08519c1f1ba4a7de
    org.apache.lucene.util.IntsReff9b7dc817ff99274
    org.apache.lucene.util.IntsRefBuilderb5175ed4b449f9b7
    org.apache.lucene.util.LongValues7d8aee853134ae83
    org.apache.lucene.util.LongValues.1f9fa8f9d563676c5
    org.apache.lucene.util.LongValues.216b39160a62d65d4
    org.apache.lucene.util.LongsRefab3dbc979e310089
    org.apache.lucene.util.LuceneJUnit3MethodProvider8c94daef58a50e00
    org.apache.lucene.util.LuceneTestCasea2a4f3a1c4f17145
    org.apache.lucene.util.LuceneTestCase.18c812025ef208e5a
    org.apache.lucene.util.LuceneTestCase.2452293b78e28a121
    org.apache.lucene.util.LuceneTestCase.3aae74f4a1e18ff8b
    org.apache.lucene.util.LuceneTestCase.LiveIWCFlushMode76187b1204474dfb
    org.apache.lucene.util.MSBRadixSorter9adaa4c4786de287
    org.apache.lucene.util.MathUtil6446df2aeb4ba1d0
    org.apache.lucene.util.NamedSPILoaderbd69495c1a655c32
    org.apache.lucene.util.NullInfoStream9d72e8d10eb5b3ed
    org.apache.lucene.util.PriorityQueue86214d87630b6122
    org.apache.lucene.util.PriorityQueue.160a8e49cec5e67af
    org.apache.lucene.util.QueryBuilderf8cdd17d51e120bf
    org.apache.lucene.util.QueryBuilder.TermAndBoost7379a586bc344983
    org.apache.lucene.util.QuickPatchThreadsFilter004147cc3cd3feb6
    org.apache.lucene.util.RamUsageEstimator90dd0e4b91d1e1b1
    org.apache.lucene.util.RamUsageEstimator.170b7c06b4a2ba803
    org.apache.lucene.util.RunListenerPrintReproduceInfodf3fd8cda9ce9415
    org.apache.lucene.util.SPIClassIterator77e3e7ca7aea78ee
    org.apache.lucene.util.SetOnce1f43b17a7dfc86e4
    org.apache.lucene.util.SetOnce.Wrapperfbdf6ca0565e5886
    org.apache.lucene.util.SmallFloat4b4c055a7d5e7c3d
    org.apache.lucene.util.Sorter91a27f89e094d240
    org.apache.lucene.util.StringHelper548b4986a5429a71
    org.apache.lucene.util.StringMSBRadixSorter09fc2a082184e6e8
    org.apache.lucene.util.StringMSBRadixSorter.12864f721fdd69ffd
    org.apache.lucene.util.TestRuleAssertionsRequired175421bab63648e6
    org.apache.lucene.util.TestRuleAssertionsRequired.136cb2ddfe6db60e4
    org.apache.lucene.util.TestRuleDelegate7624c315aaee46c0
    org.apache.lucene.util.TestRuleIgnoreAfterMaxFailures5754de45f2314938
    org.apache.lucene.util.TestRuleIgnoreAfterMaxFailures.15b02d3b2869a618b
    org.apache.lucene.util.TestRuleIgnoreTestSuites209cf27dad2fdbe5
    org.apache.lucene.util.TestRuleIgnoreTestSuites.17c8e739169310bed
    org.apache.lucene.util.TestRuleLimitSysouts6622c9452fe6964b
    org.apache.lucene.util.TestRuleLimitSysouts.DelegateStream005e2894ccfa3946
    org.apache.lucene.util.TestRuleMarkFailureacc71bb7ea6285c4
    org.apache.lucene.util.TestRuleMarkFailure.1fc795a24ce78cca5
    org.apache.lucene.util.TestRuleRestoreSystemProperties83fde525dbbbdd56
    org.apache.lucene.util.TestRuleSetupAndRestoreClassEnv5b6d8be63781d25e
    org.apache.lucene.util.TestRuleSetupAndRestoreInstanceEnv2a570899c512f47c
    org.apache.lucene.util.TestRuleSetupTeardownChained7a4fa8e000e6a599
    org.apache.lucene.util.TestRuleSetupTeardownChained.1b2d36311e662437a
    org.apache.lucene.util.TestRuleStoreClassNamec6401d6db3dd21f2
    org.apache.lucene.util.TestRuleStoreClassName.19643bacff88cea32
    org.apache.lucene.util.TestRuleTemporaryFilesCleanup517b5a9a4ec6ff11
    org.apache.lucene.util.TestRuleThreadAndTestNameba95247677bce2d6
    org.apache.lucene.util.TestRuleThreadAndTestName.1670f15be03e49347
    org.apache.lucene.util.TestUtil431c272583b0fad9
    org.apache.lucene.util.UnicodeUtilaa9656ee8c7acf93
    org.apache.lucene.util.Versiond5dc79d50f2c2d1d
    org.apache.lucene.util.automaton.Automata0edb8f8989f856ed
    org.apache.lucene.util.automaton.Automaton134911b5b3a54df9
    org.apache.lucene.util.automaton.Automaton.15fb150bc69ea7a93
    org.apache.lucene.util.automaton.Automaton.266309bd680d91f24
    org.apache.lucene.util.automaton.Automaton.Builder6c38698f8903f64b
    org.apache.lucene.util.automaton.Automaton.Builder.17d710f6c024b7a17
    org.apache.lucene.util.automaton.CharacterRunAutomatond2632a6cefbb4858
    org.apache.lucene.util.automaton.MinimizationOperationsc654de880611cdb1
    org.apache.lucene.util.automaton.MinimizationOperations.IntPairfa80e4acffb787d8
    org.apache.lucene.util.automaton.MinimizationOperations.StateListadfb9567974550e1
    org.apache.lucene.util.automaton.MinimizationOperations.StateListNode216e146dfcd23713
    org.apache.lucene.util.automaton.Operations291e237735ef00d5
    org.apache.lucene.util.automaton.RegExpceb95f8ecf31c7a4
    org.apache.lucene.util.automaton.RegExp.1d9726bc2132e90b7
    org.apache.lucene.util.automaton.RegExp.Kind1d6b5e94e744d3a0
    org.apache.lucene.util.automaton.RunAutomatonf2b29047ee0b5c84
    org.apache.lucene.util.automaton.StatePair3f8d879446d01641
    org.apache.lucene.util.automaton.Transition35afb5dbb70c7d8b
    org.apache.lucene.util.compress.LZ474e78555e9692654
    org.apache.lucene.util.compress.LZ4.FastCompressionHashTable455953436870f53c
    org.apache.lucene.util.compress.LZ4.HashTablea875bb203fc16df5
    org.apache.lucene.util.compress.LZ4.HighCompressionHashTablefe6aeae6ddf42ee2
    org.apache.lucene.util.compress.LowercaseAsciiCompressionf447544a6d96e316
    org.apache.lucene.util.fst.BitTableUtilae7a3159aea08377
    org.apache.lucene.util.fst.Builder100b4b21b6b35e4f
    org.apache.lucene.util.fst.Builder.Arc03d7ea3d6f291b24
    org.apache.lucene.util.fst.Builder.CompiledNode611103c7aadde65d
    org.apache.lucene.util.fst.Builder.FixedLengthArcsBufferdc3feeb45753c9cf
    org.apache.lucene.util.fst.Builder.UnCompiledNode008d6d1bfef92929
    org.apache.lucene.util.fst.ByteSequenceOutputs143ca7cb1094029b
    org.apache.lucene.util.fst.BytesRefFSTEnum8c5ff799d80df73e
    org.apache.lucene.util.fst.BytesRefFSTEnum.InputOutputfdff5845aec3a017
    org.apache.lucene.util.fst.BytesStore862a096cc44582bf
    org.apache.lucene.util.fst.BytesStore.265e27783d1fb59c4
    org.apache.lucene.util.fst.FST22daed3fbd13fe0f
    org.apache.lucene.util.fst.FST.Arc87a6bbce0deea5dc
    org.apache.lucene.util.fst.FST.Arc.BitTablecd08373a793c76e2
    org.apache.lucene.util.fst.FST.BytesReader9774f9c52f512c2f
    org.apache.lucene.util.fst.FST.INPUT_TYPE4cca0a4d7eb0fc65
    org.apache.lucene.util.fst.FSTEnumb20a467cecfe037b
    org.apache.lucene.util.fst.NodeHashe5fbe5551fd06a18
    org.apache.lucene.util.fst.OffHeapFSTStorec45fc9986debb081
    org.apache.lucene.util.fst.Outputs01b4adaf56ba7d3f
    org.apache.lucene.util.fst.ReverseBytesReader13eb20434ceaa349
    org.apache.lucene.util.fst.ReverseRandomAccessReader8ca4cafc0fd06de6
    org.apache.lucene.util.fst.Utile497ee1ca74a697c
    org.apache.lucene.util.packed.AbstractPagedMutablec34fc67babfbb425
    org.apache.lucene.util.packed.BulkOperatione703484622617102
    org.apache.lucene.util.packed.BulkOperation.18ed6abb8f3648cf6
    org.apache.lucene.util.packed.BulkOperationPacked829a236b3c71b9c5
    org.apache.lucene.util.packed.BulkOperationPacked14bd02140efa827ba
    org.apache.lucene.util.packed.BulkOperationPacked107871df76ca8b0a6d
    org.apache.lucene.util.packed.BulkOperationPacked1131012a043511a3c2
    org.apache.lucene.util.packed.BulkOperationPacked128c9d61a1c0c22fe2
    org.apache.lucene.util.packed.BulkOperationPacked137c3f7554b1c18d1d
    org.apache.lucene.util.packed.BulkOperationPacked1421e5b4c1bd2627b3
    org.apache.lucene.util.packed.BulkOperationPacked1589157585ca7e8aaf
    org.apache.lucene.util.packed.BulkOperationPacked16bd7857d6862d8611
    org.apache.lucene.util.packed.BulkOperationPacked17ee9c6581a4299e15
    org.apache.lucene.util.packed.BulkOperationPacked18559a5bb48c2c0381
    org.apache.lucene.util.packed.BulkOperationPacked19ce141b930277706f
    org.apache.lucene.util.packed.BulkOperationPacked2af735fb9c7872456
    org.apache.lucene.util.packed.BulkOperationPacked20ec750496cb2b69fc
    org.apache.lucene.util.packed.BulkOperationPacked21fd5faea41a357d0e
    org.apache.lucene.util.packed.BulkOperationPacked22b8b2caf3fa40412b
    org.apache.lucene.util.packed.BulkOperationPacked23d3700bb7e9bbb9e7
    org.apache.lucene.util.packed.BulkOperationPacked2497d220c44b683800
    org.apache.lucene.util.packed.BulkOperationPacked31318d5978b9e3782
    org.apache.lucene.util.packed.BulkOperationPacked470c3af2facc8f326
    org.apache.lucene.util.packed.BulkOperationPacked5d206eeee69238498
    org.apache.lucene.util.packed.BulkOperationPacked62dc5d4490742e4f9
    org.apache.lucene.util.packed.BulkOperationPacked7cf065f84c953d1aa
    org.apache.lucene.util.packed.BulkOperationPacked8f743f629bc8f2eec
    org.apache.lucene.util.packed.BulkOperationPacked920af58a528f116a1
    org.apache.lucene.util.packed.BulkOperationPackedSingleBlocked80270f7be26e06
    org.apache.lucene.util.packed.DeltaPackedLongValuesfd3575cd4a686f7b
    org.apache.lucene.util.packed.DeltaPackedLongValues.Builder058b56d9e425c2ec
    org.apache.lucene.util.packed.Direct16f6d3316502557024
    org.apache.lucene.util.packed.Direct81681d7da6313a8e2
    org.apache.lucene.util.packed.DirectMonotonicReader4ca3c68dd3a989a8
    org.apache.lucene.util.packed.DirectMonotonicReader.1ac026cbf03289925
    org.apache.lucene.util.packed.DirectMonotonicReader.Metabd8400ac2b5a5d97
    org.apache.lucene.util.packed.DirectMonotonicWriterab3c850c35c1869b
    org.apache.lucene.util.packed.DirectReader150a3f82db014cc5
    org.apache.lucene.util.packed.DirectReader.DirectPackedReader12763b65d68011c1c4
    org.apache.lucene.util.packed.DirectReader.DirectPackedReader168eb1a1c0c719b770
    org.apache.lucene.util.packed.DirectWriterdffc834e0d38a3e9
    org.apache.lucene.util.packed.GrowableWriter5e5c4629c1cacb32
    org.apache.lucene.util.packed.Packed64caccd5762229d5a5
    org.apache.lucene.util.packed.Packed64SingleBlock3ee3158eebfb2583
    org.apache.lucene.util.packed.Packed64SingleBlock.Packed64SingleBlock1085ec0be75690db7d
    org.apache.lucene.util.packed.Packed64SingleBlock.Packed64SingleBlock125137e3efb8081112
    org.apache.lucene.util.packed.Packed64SingleBlock.Packed64SingleBlock234223fddff5b09fa
    org.apache.lucene.util.packed.Packed64SingleBlock.Packed64SingleBlock4344d44155104d71f
    org.apache.lucene.util.packed.PackedInts5fce3648bb81aba7
    org.apache.lucene.util.packed.PackedInts.1b5e362f7e4f2669f
    org.apache.lucene.util.packed.PackedInts.Formatf66df8d6fa1eb0bf
    org.apache.lucene.util.packed.PackedInts.Format.13b829c5020510e1e
    org.apache.lucene.util.packed.PackedInts.Format.284c5dbb1792af026
    org.apache.lucene.util.packed.PackedInts.FormatAndBits94bd3ad750fed485
    org.apache.lucene.util.packed.PackedInts.Mutable4220eb680213cd52
    org.apache.lucene.util.packed.PackedInts.MutableImpl07f6a90e6a6b8629
    org.apache.lucene.util.packed.PackedInts.NullReaderb8f64fedb09a3dfe
    org.apache.lucene.util.packed.PackedInts.Readerada558745edc141a
    org.apache.lucene.util.packed.PackedInts.ReaderIteratorImpld0ab15244e49ac29
    org.apache.lucene.util.packed.PackedInts.Writera09c912336957fca
    org.apache.lucene.util.packed.PackedLongValuesfcf07dff85fee5e0
    org.apache.lucene.util.packed.PackedLongValues.Builder57417b5ca6cc2f7f
    org.apache.lucene.util.packed.PackedLongValues.Iterator4d30c7ca81efb991
    org.apache.lucene.util.packed.PackedReaderIterator9150185835a6e045
    org.apache.lucene.util.packed.PackedWriterf401186d92e3dfd7
    org.apache.lucene.util.packed.PagedGrowableWriterbf064fd5aabfaffd
    org.apache.maven.plugin.surefire.log.api.NullConsoleLogger9e19e8c6ec7e2af1
    org.apache.maven.surefire.api.booter.BaseProviderFactory3859e78bd81eea39
    org.apache.maven.surefire.api.booter.BiPropertyd22c13c56d5b4593
    org.apache.maven.surefire.api.booter.Command3cd54166633f8826
    org.apache.maven.surefire.api.booter.Constantsdecb9de81c53dc77
    org.apache.maven.surefire.api.booter.DumpErrorSingleton0fb68b22eecee565
    org.apache.maven.surefire.api.booter.ForkedProcessEventTypefb813c97649a2cb4
    org.apache.maven.surefire.api.booter.ForkingReporterFactory43a09ed486105416
    org.apache.maven.surefire.api.booter.ForkingRunListener72fc487c27ef5b8d
    org.apache.maven.surefire.api.booter.MasterProcessCommand4638438d1f9cb2b7
    org.apache.maven.surefire.api.booter.Shutdown22c5299ca66a441d
    org.apache.maven.surefire.api.cli.CommandLineOption4a638448af60a346
    org.apache.maven.surefire.api.filter.NonAbstractClassFilterf9349f28027f7865
    org.apache.maven.surefire.api.provider.AbstractProvidera003e0bc84287c70
    org.apache.maven.surefire.api.report.ConsoleOutputCapture810c9018ba7d1ecc
    org.apache.maven.surefire.api.report.ConsoleOutputCapture.ForwardingPrintStream2c7c3dde8b37b8d9
    org.apache.maven.surefire.api.report.ConsoleOutputCapture.NullOutputStream5731848fa72c76c9
    org.apache.maven.surefire.api.report.ReporterConfigurationa4d0f02ee0a3ce3b
    org.apache.maven.surefire.api.report.RunMode99815bd2f7cf25b8
    org.apache.maven.surefire.api.report.SimpleReportEntrybe57bd60074f466f
    org.apache.maven.surefire.api.report.TestOutputReportEntryb7f0e6ae6773a3e5
    org.apache.maven.surefire.api.stream.AbstractStreamDecoderc51329e6fe95e03f
    org.apache.maven.surefire.api.stream.AbstractStreamDecoder.BufferedStream0e036d9195140045
    org.apache.maven.surefire.api.stream.AbstractStreamDecoder.Memento50fa22818cea4206
    org.apache.maven.surefire.api.stream.AbstractStreamDecoder.Segmentec7b2e9f3dc519b5
    org.apache.maven.surefire.api.stream.AbstractStreamDecoder.StreamReadStatusb28e22fff7af7760
    org.apache.maven.surefire.api.stream.AbstractStreamEncoder5b9d2cab05438b39
    org.apache.maven.surefire.api.stream.SegmentTypea352bcb443bb6539
    org.apache.maven.surefire.api.suite.RunResult14b135b9dcad68f4
    org.apache.maven.surefire.api.testset.DirectoryScannerParameters011c1405154cf543
    org.apache.maven.surefire.api.testset.IncludedExcludedPatternse9dcd696bf90972f
    org.apache.maven.surefire.api.testset.ResolvedTest89f52bebbeb73147
    org.apache.maven.surefire.api.testset.ResolvedTest.ClassMatcherc5f953b9f15d7ab4
    org.apache.maven.surefire.api.testset.ResolvedTest.MethodMatcher7b60e64bb228414b
    org.apache.maven.surefire.api.testset.ResolvedTest.Type2a3fe66966797e51
    org.apache.maven.surefire.api.testset.RunOrderParameters54e3b7abf0f0a29a
    org.apache.maven.surefire.api.testset.TestArtifactInfo534706d1cf843371
    org.apache.maven.surefire.api.testset.TestListResolverdf95312288764ee2
    org.apache.maven.surefire.api.testset.TestRequestc693581994b610fb
    org.apache.maven.surefire.api.util.CloseableIterator1bb59460a90e1562
    org.apache.maven.surefire.api.util.DefaultRunOrderCalculator2be55f855ffc9c23
    org.apache.maven.surefire.api.util.DefaultScanResult3abe973f1a2038a4
    org.apache.maven.surefire.api.util.ReflectionUtils463b61419dafb4bc
    org.apache.maven.surefire.api.util.RunOrdera5c43ed7ff239d28
    org.apache.maven.surefire.api.util.TestsToRun1a59fa62362c2dd4
    org.apache.maven.surefire.api.util.TestsToRun.ClassesIterator3054f1187d144893
    org.apache.maven.surefire.api.util.internal.AbstractNoninterruptibleReadableChannelb76efd5ee4f6a78a
    org.apache.maven.surefire.api.util.internal.AbstractNoninterruptibleWritableChannel7b40a9206100f626
    org.apache.maven.surefire.api.util.internal.Channelsa28ebb2dc3d003c6
    org.apache.maven.surefire.api.util.internal.Channels.31911457c5208109a
    org.apache.maven.surefire.api.util.internal.Channels.461df49d28956b732
    org.apache.maven.surefire.api.util.internal.ClassMethod831eee1f29d6b004
    org.apache.maven.surefire.api.util.internal.DaemonThreadFactory4065ee5e2ad99385
    org.apache.maven.surefire.api.util.internal.DaemonThreadFactory.NamedThreadFactory0dc63f2f250c8f58
    org.apache.maven.surefire.api.util.internal.DumpFileUtils260268350116ea1a
    org.apache.maven.surefire.api.util.internal.ImmutableMapc8d76b0bb433e1e6
    org.apache.maven.surefire.api.util.internal.ImmutableMap.Node61855d8450e86cb5
    org.apache.maven.surefire.api.util.internal.ObjectUtilsd0584b88701e9b97
    org.apache.maven.surefire.api.util.internal.TestClassMethodNameUtilsa01f540094a55e8c
    org.apache.maven.surefire.booter.AbstractPathConfiguration2ad3d057ec281500
    org.apache.maven.surefire.booter.BooterDeserializera2a1a3132d868a74
    org.apache.maven.surefire.booter.ClassLoaderConfiguration5bafac5e09ac0782
    org.apache.maven.surefire.booter.Classpath81f738f937cf4b38
    org.apache.maven.surefire.booter.ClasspathConfigurationb651758fedc3de2d
    org.apache.maven.surefire.booter.CommandReader440cf8805d3444be
    org.apache.maven.surefire.booter.CommandReader.16e995a711f46e676
    org.apache.maven.surefire.booter.CommandReader.CommandRunnable7f7bfee61ebca85e
    org.apache.maven.surefire.booter.ForkedBooterff24aeec916b680b
    org.apache.maven.surefire.booter.ForkedBooter.173179ebb6b41b643
    org.apache.maven.surefire.booter.ForkedBooter.3c51baabea2b75554
    org.apache.maven.surefire.booter.ForkedBooter.468ca1df4a9ada348
    org.apache.maven.surefire.booter.ForkedBooter.608fe853c879dd1a6
    org.apache.maven.surefire.booter.ForkedBooter.78cca77fe0fd3c98d
    org.apache.maven.surefire.booter.ForkedBooter.8779c6068c1dac1db
    org.apache.maven.surefire.booter.ForkedBooter.PingScheduler6e83f53202050979
    org.apache.maven.surefire.booter.ForkedNodeArge055a24d27c554f3
    org.apache.maven.surefire.booter.PpidChecker921ca312a6f63114
    org.apache.maven.surefire.booter.ProcessCheckerType9c8497621409bb1e
    org.apache.maven.surefire.booter.PropertiesWrapperc4362cb430c125af
    org.apache.maven.surefire.booter.ProviderConfiguration84eb716577efc3a7
    org.apache.maven.surefire.booter.StartupConfigurationf457135a627728a6
    org.apache.maven.surefire.booter.SystemPropertyManager0446c7c116836016
    org.apache.maven.surefire.booter.TypeEncodedValue1b039936542eee72
    org.apache.maven.surefire.booter.spi.AbstractMasterProcessChannelProcessorFactoryc30b5b062f066468
    org.apache.maven.surefire.booter.spi.AbstractMasterProcessChannelProcessorFactory.1644e111f23817fd3
    org.apache.maven.surefire.booter.spi.AbstractMasterProcessChannelProcessorFactory.247b08c480603fa8a
    org.apache.maven.surefire.booter.spi.CommandChannelDecoder65f2965c86411193
    org.apache.maven.surefire.booter.spi.EventChannelEncoder114071f00780f71e
    org.apache.maven.surefire.booter.spi.EventChannelEncoder.StackTracee7231bc2c7014c40
    org.apache.maven.surefire.booter.spi.LegacyMasterProcessChannelProcessorFactoryb54085754461a0d1
    org.apache.maven.surefire.booter.spi.SurefireMasterProcessChannelProcessorFactory132a213649249d64
    org.apache.maven.surefire.booter.stream.CommandDecoder0d40efcc428f82e2
    org.apache.maven.surefire.booter.stream.CommandDecoder.19d88d04fa41adab4
    org.apache.maven.surefire.booter.stream.EventEncoder4bdbe84daf58c435
    org.apache.maven.surefire.common.junit3.JUnit3TestCheckerbbad74a9945614a4
    org.apache.maven.surefire.common.junit4.JUnit4ProviderUtilfa2afc137d4ba7b3
    org.apache.maven.surefire.common.junit4.JUnit4Reflector23b83cd8942b7f95
    org.apache.maven.surefire.common.junit4.JUnit4RunListenerd8d5e5130dcf4b9b
    org.apache.maven.surefire.common.junit4.JUnit4RunListenerFactoryccfd1352f097d7b8
    org.apache.maven.surefire.common.junit4.JUnit4TestCheckerf6cf831ca6699119
    org.apache.maven.surefire.common.junit4.JUnitTestFailureListener03f07d8828d7aca4
    org.apache.maven.surefire.common.junit4.Notifiera943b086c230616e
    org.apache.maven.surefire.junit4.JUnit4Provider5d773610b092faec
    org.apache.maven.surefire.junit4.JUnit4Provider.1e7b4bc1546ba10b9
    org.apache.maven.surefire.report.ClassMethodIndexer8b31a053539323b7
    org.apache.maven.surefire.shared.lang3.JavaVersion4e21c3be19560aac
    org.apache.maven.surefire.shared.lang3.SystemUtilse5eafc9ce14dcbec
    org.apache.maven.surefire.shared.lang3.math.NumberUtils11e46630af73f131
    org.apache.maven.surefire.shared.utils.StringUtilsabd8480c7152bf46
    org.apache.maven.surefire.shared.utils.cli.ShutdownHookUtils011b23cd829ec86c
    org.apache.velocity.Templatec72326f66c085d1e
    org.apache.velocity.VelocityContext8ed590292b87a588
    org.apache.velocity.app.VelocityEngine9c939265034e0ab2
    org.apache.velocity.app.event.EventCartridgeded346c7951f1697
    org.apache.velocity.app.event.EventHandlerUtil5ac88b357fcf707c
    org.apache.velocity.context.AbstractContext7c2c19e800108a7b
    org.apache.velocity.context.InternalContextAdapterImpl7718d6c7d6f01429
    org.apache.velocity.context.InternalContextBase10fb0c7430dc4018
    org.apache.velocity.runtime.ParserConfigurationbcd56b6221db3c90
    org.apache.velocity.runtime.ParserPoolImpl2a25b051a66adee1
    org.apache.velocity.runtime.RuntimeConstants.SpaceGobbling1008e6924d8f311e
    org.apache.velocity.runtime.RuntimeInstancef8e2f14c6655a562
    org.apache.velocity.runtime.VelocimacroFactory1e9ea54492c3b0d1
    org.apache.velocity.runtime.VelocimacroManager01dfc0b62e0d84ab
    org.apache.velocity.runtime.VelocimacroManager.MacroEntry26d330eaf2fd31ac
    org.apache.velocity.runtime.directive.Block0dc2ea33bfdf1c8e
    org.apache.velocity.runtime.directive.Break9c4c04e7b7293d93
    org.apache.velocity.runtime.directive.Define2da211af6dc4adf2
    org.apache.velocity.runtime.directive.Directive114c6db128f09cfd
    org.apache.velocity.runtime.directive.Evaluatef1de1a698437317b
    org.apache.velocity.runtime.directive.Foreach795e04f024e903bd
    org.apache.velocity.runtime.directive.ForeachScoped638aec353b474e0
    org.apache.velocity.runtime.directive.Include38dbf0ece5fd3ed8
    org.apache.velocity.runtime.directive.InputBase7ab262413b0572f5
    org.apache.velocity.runtime.directive.Macro44425fcba4519651
    org.apache.velocity.runtime.directive.Macro.MacroArga252d6a716c1fbfc
    org.apache.velocity.runtime.directive.Parse73cd754f962b4f40
    org.apache.velocity.runtime.directive.RuntimeMacro11282b3ae9496214
    org.apache.velocity.runtime.directive.Scopedd64d33559d0c3b4
    org.apache.velocity.runtime.directive.Stop4a8d463f36f9ba3a
    org.apache.velocity.runtime.directive.Stop.146208084d16b60f9
    org.apache.velocity.runtime.directive.StopCommand13468231892e1528
    org.apache.velocity.runtime.directive.VelocimacroProxy42117ecd94da7939
    org.apache.velocity.runtime.parser.LogContext8bd2ab8c45781ea3
    org.apache.velocity.runtime.parser.LogContext.17793b8711118b163
    org.apache.velocity.runtime.parser.Parsere4801b5bb37f6031
    org.apache.velocity.runtime.parser.StandardParser8eaabc4fd8395c5d
    org.apache.velocity.runtime.parser.StandardParser.JJCalls1cd79adce175f30b
    org.apache.velocity.runtime.parser.StandardParser.LookaheadSuccess217f6689d0bd148c
    org.apache.velocity.runtime.parser.StandardParserTokenManagerb513a058a5d25bce
    org.apache.velocity.runtime.parser.StandardParserTokenManager.ParserStatee58c59d922a2d1c0
    org.apache.velocity.runtime.parser.Token035daceb00979634
    org.apache.velocity.runtime.parser.VelocityCharStream0fdd7275e5a6d511
    org.apache.velocity.runtime.parser.node.ASTAddNodef7a360fd0ceeb41f
    org.apache.velocity.runtime.parser.node.ASTAndNodecd14b0b2bfc9c2ef
    org.apache.velocity.runtime.parser.node.ASTBinaryOperator8c2ae99e76bfc2d2
    org.apache.velocity.runtime.parser.node.ASTBlock7426c59d7df1a96a
    org.apache.velocity.runtime.parser.node.ASTCommentb6f6e96d43d8ba8f
    org.apache.velocity.runtime.parser.node.ASTComparisonNode7352bd9088770a83
    org.apache.velocity.runtime.parser.node.ASTDirectivebdd000d27e79daab
    org.apache.velocity.runtime.parser.node.ASTEQNodea05682a5af313370
    org.apache.velocity.runtime.parser.node.ASTElseIfStatementcd01606457a3b636
    org.apache.velocity.runtime.parser.node.ASTElseStatement10b9ce434f126173
    org.apache.velocity.runtime.parser.node.ASTExpressione191b0102927df45
    org.apache.velocity.runtime.parser.node.ASTFalsec15949d123a4de12
    org.apache.velocity.runtime.parser.node.ASTGENodedf404befde820934
    org.apache.velocity.runtime.parser.node.ASTGTNode429c741b43e4423e
    org.apache.velocity.runtime.parser.node.ASTIdentifier681e842674a46467
    org.apache.velocity.runtime.parser.node.ASTIfStatement39cb3d2cbbef8dff
    org.apache.velocity.runtime.parser.node.ASTIndex47f90751ba64c89a
    org.apache.velocity.runtime.parser.node.ASTIntegerLiterale5e50c14ab3e4acc
    org.apache.velocity.runtime.parser.node.ASTLTNode23c5285841d49ed9
    org.apache.velocity.runtime.parser.node.ASTLogicalOperatorfa236397c36b4771
    org.apache.velocity.runtime.parser.node.ASTMathNode22d06eed949108ef
    org.apache.velocity.runtime.parser.node.ASTMethodcc1d6a841b9eec04
    org.apache.velocity.runtime.parser.node.ASTMethod.MethodCacheKeyaf9e51370239a9c4
    org.apache.velocity.runtime.parser.node.ASTMulNode4b3194324ef888d5
    org.apache.velocity.runtime.parser.node.ASTNENode7b01e9808eb0a0ab
    org.apache.velocity.runtime.parser.node.ASTNotNodea51f40cc97c36424
    org.apache.velocity.runtime.parser.node.ASTOrNoded0e443267103c4b8
    org.apache.velocity.runtime.parser.node.ASTReferencec9c9373aa8849276
    org.apache.velocity.runtime.parser.node.ASTSetDirective55fd0a5c9cb9c430
    org.apache.velocity.runtime.parser.node.ASTStringLiteral2f67a986ad5a26f3
    org.apache.velocity.runtime.parser.node.ASTSubtractNode7fc819bc7243ce75
    org.apache.velocity.runtime.parser.node.ASTText389346874b271430
    org.apache.velocity.runtime.parser.node.ASTTextblocke99e39fdf682a6db
    org.apache.velocity.runtime.parser.node.ASTTrued1f94f133f80edab
    org.apache.velocity.runtime.parser.node.ASTWord66d75ec7205a4907
    org.apache.velocity.runtime.parser.node.ASTprocessde4ee2191c1ff63c
    org.apache.velocity.runtime.parser.node.AbstractExecutora0e3576d80f60b4f
    org.apache.velocity.runtime.parser.node.BooleanPropertyExecutorfd4eb69c74029461
    org.apache.velocity.runtime.parser.node.GetExecutor2a235ba3f58955fd
    org.apache.velocity.runtime.parser.node.JJTStandardParserState47563f73993d088b
    org.apache.velocity.runtime.parser.node.MapGetExecutor7461d24a11538750
    org.apache.velocity.runtime.parser.node.MathUtils36743f4dc547ee5e
    org.apache.velocity.runtime.parser.node.NodeUtils3c8679658a17f207
    org.apache.velocity.runtime.parser.node.PropertyExecutor94d607bd85fcb1de
    org.apache.velocity.runtime.parser.node.SimpleNode9462478b614a02dd
    org.apache.velocity.runtime.resource.Resourcee1da0d5e9e84f4f3
    org.apache.velocity.runtime.resource.ResourceCacheImpl7ec381111390acb1
    org.apache.velocity.runtime.resource.ResourceCacheImpl.LRUMap25cb4289e6f518c8
    org.apache.velocity.runtime.resource.ResourceManagerImpla50249c3c61edcd2
    org.apache.velocity.runtime.resource.loader.FileResourceLoader61d50ebf2ba17760
    org.apache.velocity.runtime.resource.loader.ResourceLoader8fe06021f04e44d1
    org.apache.velocity.runtime.resource.loader.ResourceLoaderFactory184d14a10476fd52
    org.apache.velocity.shaded.commons.io.FilenameUtilsd4f97baf766e1dee
    org.apache.velocity.util.ArrayIterator61b1e41a87bed05f
    org.apache.velocity.util.ArrayListWrapper47449ccd52296ca6
    org.apache.velocity.util.ClassUtils0740c02f55974cb5
    org.apache.velocity.util.DeprecationAwareExtProperties27d5b5c05e6a6fec
    org.apache.velocity.util.DuckTypee50af2bb413f166d
    org.apache.velocity.util.DuckType.Typesbae2a6708b77175a
    org.apache.velocity.util.ExtPropertiesea3b60c6666140fe
    org.apache.velocity.util.ExtProperties.PropertiesReaderb618a7014140c253
    org.apache.velocity.util.SimplePool4fae8cabf20b16fc
    org.apache.velocity.util.StringBuilderWriterf611775ab19f47c9
    org.apache.velocity.util.introspection.ClassFieldMap08c07ae2515b1084
    org.apache.velocity.util.introspection.ClassMape8aa0059d0c24712
    org.apache.velocity.util.introspection.ClassMap.MethodCachee879a333bfa71058
    org.apache.velocity.util.introspection.Info7b0899deac2cfcb4
    org.apache.velocity.util.introspection.IntrospectionCacheDatada4e3622ea8bd189
    org.apache.velocity.util.introspection.IntrospectionUtils5600b482789873c7
    org.apache.velocity.util.introspection.Introspectorea0eb025828bb25b
    org.apache.velocity.util.introspection.IntrospectorBasea9523d1d3d9ec81c
    org.apache.velocity.util.introspection.IntrospectorCachecf24bd3e12cff77b
    org.apache.velocity.util.introspection.MethodMap5bc43b57e0eb708b
    org.apache.velocity.util.introspection.MethodMap.Matche9df9a21d7dc07e3
    org.apache.velocity.util.introspection.TypeConversionHandlerImpl2739aba645c510f3
    org.apache.velocity.util.introspection.UberspectImpl9ff3662a2a574180
    org.apache.velocity.util.introspection.UberspectImpl.VelGetterImpl600761c1eb266a6b
    org.apache.velocity.util.introspection.UberspectImpl.VelMethodImpla1520f1ed8867aa3
    org.apache.xalan.processor.TransformerFactoryImpl9d59b9e783463c86
    org.apache.xalan.templates.ElemTemplateElementbdc0d82e7bbe3fba
    org.apache.xalan.templates.FuncKey4c0844f6d3be77cd
    org.apache.xalan.templates.OutputPropertiesd0b5c8e6a517a42d
    org.apache.xalan.transformer.SerializerSwitcherc5d2ebc66301c7fe
    org.apache.xalan.transformer.TransformerIdentityImplbd718a311deaaf2e
    org.apache.xerces.dom.AttrImpl8fa57ecca74d93f3
    org.apache.xerces.dom.AttributeMap1208eeb0c317f9a8
    org.apache.xerces.dom.CDATASectionImpl05a5b2f009639745
    org.apache.xerces.dom.CharacterDataImplaf2999f6c6f16022
    org.apache.xerces.dom.CharacterDataImpl.1aa2ea0f84e15cb5f
    org.apache.xerces.dom.ChildNode96886165e748c549
    org.apache.xerces.dom.CommentImpl0ab89ebb6273ee01
    org.apache.xerces.dom.CoreDocumentImpl60c2944144ade810
    org.apache.xerces.dom.DeepNodeListImpl97224578c95f53e6
    org.apache.xerces.dom.DeferredAttrImpl2b2773eac8785578
    org.apache.xerces.dom.DeferredCDATASectionImpl1c3ea81e5adf3f6a
    org.apache.xerces.dom.DeferredCommentImplaee9cd9d760a7002
    org.apache.xerces.dom.DeferredDocumentImpl917630d7d92d0c23
    org.apache.xerces.dom.DeferredDocumentImpl.RefCount1f46996e59514962
    org.apache.xerces.dom.DeferredElementImpla115073999e131fb
    org.apache.xerces.dom.DeferredTextImple2f70192a64423a9
    org.apache.xerces.dom.DocumentImpl9256b8d63c9b4fd9
    org.apache.xerces.dom.ElementImpl6009adb9702e0645
    org.apache.xerces.dom.NamedNodeMapImpl8392ffc7dd5b584f
    org.apache.xerces.dom.NodeImpl2ac2c6a0250ff742
    org.apache.xerces.dom.NodeListCache5faef04ef70c9f17
    org.apache.xerces.dom.ParentNode8659644b2b20243d
    org.apache.xerces.dom.TextImplbdd0838dd03f01d7
    org.apache.xerces.impl.Constantsa815025e8bfc3641
    org.apache.xerces.impl.Constants.ArrayEnumeration929d153955f16a18
    org.apache.xerces.impl.XMLDTDScannerImpl0ceab68caeabb5bd
    org.apache.xerces.impl.XMLDocumentFragmentScannerImplf66c1f59a35db5db
    org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.ElementStack5092662a55f68b1b
    org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.FragmentContentDispatcher04b727a93d455ba8
    org.apache.xerces.impl.XMLDocumentScannerImple2587fb3df27d4d6
    org.apache.xerces.impl.XMLDocumentScannerImpl.ContentDispatcher5e8688b4476f7d87
    org.apache.xerces.impl.XMLDocumentScannerImpl.DTDDispatcherd13e3319cc526f87
    org.apache.xerces.impl.XMLDocumentScannerImpl.PrologDispatchercff47bf5e00b3bff
    org.apache.xerces.impl.XMLDocumentScannerImpl.TrailingMiscDispatcherc7b214b2d8148ad0
    org.apache.xerces.impl.XMLDocumentScannerImpl.XMLDeclDispatcher905c73ea8ebd3fb8
    org.apache.xerces.impl.XMLEntityManager04ceab06248a216d
    org.apache.xerces.impl.XMLEntityManager.1bb865e7bc2c442b3
    org.apache.xerces.impl.XMLEntityManager.ByteBufferPoola322defbaf63fdc0
    org.apache.xerces.impl.XMLEntityManager.CharacterBuffer12c5b42b58b47a94
    org.apache.xerces.impl.XMLEntityManager.CharacterBufferPoolc9afee8a27afdf8b
    org.apache.xerces.impl.XMLEntityManager.Entity8d6dc89d3fc555e5
    org.apache.xerces.impl.XMLEntityManager.ExternalEntityf046126d300561e8
    org.apache.xerces.impl.XMLEntityManager.RewindableInputStreamafbaf76d3ae9b52f
    org.apache.xerces.impl.XMLEntityManager.ScannedEntityf5d34eec17a4135f
    org.apache.xerces.impl.XMLEntityScanner572c4107b145304c
    org.apache.xerces.impl.XMLErrorReporter673d484209ae93aa
    org.apache.xerces.impl.XMLNSDocumentScannerImpl8df41de3eb0a672d
    org.apache.xerces.impl.XMLNSDocumentScannerImpl.NSContentDispatcher02d084bd31e3aa1c
    org.apache.xerces.impl.XMLScannerab68e9ffdb6e9317
    org.apache.xerces.impl.XMLVersionDetectord216aca10004226c
    org.apache.xerces.impl.dtd.DTDGrammarBucket2224eacf45284f31
    org.apache.xerces.impl.dtd.XMLAttributeDecl46e4635b06cbf39a
    org.apache.xerces.impl.dtd.XMLDTDDescriptionb489ecda2f5a9495
    org.apache.xerces.impl.dtd.XMLDTDProcessor6f796a8354ef015a
    org.apache.xerces.impl.dtd.XMLDTDValidator5422057428ffcce9
    org.apache.xerces.impl.dtd.XMLElementDeclbabada4539fdcc2e
    org.apache.xerces.impl.dtd.XMLEntityDecl21e05a3c0abdeb50
    org.apache.xerces.impl.dtd.XMLNSDTDValidator5a8a64e1b504f6bd
    org.apache.xerces.impl.dtd.XMLSimpleTypeb28eaccdd7ac5d6c
    org.apache.xerces.impl.dtd.models.CMNodef6da5a5607c6c01e
    org.apache.xerces.impl.dtd.models.CMStateSet308d6336a8bc1c13
    org.apache.xerces.impl.dv.DTDDVFactoryfc6fb45244255384
    org.apache.xerces.impl.dv.DatatypeException428d8ad3a40baf3b
    org.apache.xerces.impl.dv.InvalidDatatypeValueExceptionee155db07f127066
    org.apache.xerces.impl.dv.ObjectFactorye93007a33555ed64
    org.apache.xerces.impl.dv.SchemaDVFactory4a038c3952e1e579
    org.apache.xerces.impl.dv.SecuritySupport22a702e42b664254
    org.apache.xerces.impl.dv.SecuritySupport.18f9e4b3ee6a9c52d
    org.apache.xerces.impl.dv.SecuritySupport.237f6696e184a00a5
    org.apache.xerces.impl.dv.ValidatedInfoc44d3051e1fefb6c
    org.apache.xerces.impl.dv.XSFacets5aa66d897b011514
    org.apache.xerces.impl.dv.dtd.DTDDVFactoryImpl01eb5a84c29496a2
    org.apache.xerces.impl.dv.dtd.ENTITYDatatypeValidator5e69f788c026a00f
    org.apache.xerces.impl.dv.dtd.IDDatatypeValidatorcb7a5922e7cd926a
    org.apache.xerces.impl.dv.dtd.IDREFDatatypeValidator6bd828a544290567
    org.apache.xerces.impl.dv.dtd.ListDatatypeValidator8413e1de4a58a9ff
    org.apache.xerces.impl.dv.dtd.NMTOKENDatatypeValidatorb215e61cfcb76a64
    org.apache.xerces.impl.dv.dtd.NOTATIONDatatypeValidatorb693001e6fffd70e
    org.apache.xerces.impl.dv.dtd.StringDatatypeValidator63695ebcff73b37f
    org.apache.xerces.impl.dv.xs.AbstractDateTimeDV5f3febfa6eb976a0
    org.apache.xerces.impl.dv.xs.AbstractDateTimeDV.DateTimeDatadf715622dc507fe3
    org.apache.xerces.impl.dv.xs.AnyAtomicDV8a5fa4bfb5393d0e
    org.apache.xerces.impl.dv.xs.AnySimpleDV352f2d7297f5c41d
    org.apache.xerces.impl.dv.xs.AnyURIDV8088a752bffcd597
    org.apache.xerces.impl.dv.xs.Base64BinaryDV20f79ae5ebece689
    org.apache.xerces.impl.dv.xs.BooleanDV420b615d770b86a2
    org.apache.xerces.impl.dv.xs.DateDV22fc3944a1ff7978
    org.apache.xerces.impl.dv.xs.DateTimeDV2588180850f84029
    org.apache.xerces.impl.dv.xs.DayDVf30fde8776d762d5
    org.apache.xerces.impl.dv.xs.DayTimeDurationDVe9b4f735e73b78b4
    org.apache.xerces.impl.dv.xs.DecimalDV1b49f9c408dc0b07
    org.apache.xerces.impl.dv.xs.DecimalDV.XDecimal6f14bab21566a7f0
    org.apache.xerces.impl.dv.xs.DoubleDV1ef7a8e20f892b6b
    org.apache.xerces.impl.dv.xs.DurationDVe8f22016768df7b5
    org.apache.xerces.impl.dv.xs.EntityDV572a999d58ba4680
    org.apache.xerces.impl.dv.xs.FloatDV08466aad79f1dc66
    org.apache.xerces.impl.dv.xs.HexBinaryDVe69a1e3394c42fde
    org.apache.xerces.impl.dv.xs.IDDV0b10cba6ea60faa2
    org.apache.xerces.impl.dv.xs.IDREFDVdd769d61639c89b2
    org.apache.xerces.impl.dv.xs.IntegerDVea1fb7382a775e87
    org.apache.xerces.impl.dv.xs.ListDVde65ecc17b19dcf5
    org.apache.xerces.impl.dv.xs.ListDV.ListDataba770277eafdf1f0
    org.apache.xerces.impl.dv.xs.MonthDV1fe4874f34f7e58b
    org.apache.xerces.impl.dv.xs.MonthDayDVab5e8a42b0168ba2
    org.apache.xerces.impl.dv.xs.PrecisionDecimalDVb5e073805904298c
    org.apache.xerces.impl.dv.xs.QNameDV1a680d98c3731fd4
    org.apache.xerces.impl.dv.xs.QNameDV.XQNameca97240eadd29e0f
    org.apache.xerces.impl.dv.xs.SchemaDVFactoryImplc0c1843c58cb400f
    org.apache.xerces.impl.dv.xs.StringDV37d47e43f3ec7ff9
    org.apache.xerces.impl.dv.xs.TimeDV50e43a72299557dd
    org.apache.xerces.impl.dv.xs.TypeValidator1d0e4eacb7d6ab03
    org.apache.xerces.impl.dv.xs.UnionDV9058bb084a4eeba9
    org.apache.xerces.impl.dv.xs.XSSimpleTypeDecl4411b005db0bd3cf
    org.apache.xerces.impl.dv.xs.XSSimpleTypeDecl.1f5fdca02b939b766
    org.apache.xerces.impl.dv.xs.XSSimpleTypeDecl.2f426ca8f1929b766
    org.apache.xerces.impl.dv.xs.XSSimpleTypeDecl.ValidationContextImplc9ff1917dd6b12b1
    org.apache.xerces.impl.dv.xs.YearDVc1ff862afb2f801d
    org.apache.xerces.impl.dv.xs.YearMonthDV9916e7c405e4bf27
    org.apache.xerces.impl.dv.xs.YearMonthDurationDVe79e97ace62d8b36
    org.apache.xerces.impl.io.UTF8Readerda0249de90cda2bf
    org.apache.xerces.impl.msg.XMLMessageFormatter9308971d48383433
    org.apache.xerces.impl.validation.ConfigurableValidationState563f65915c21b757
    org.apache.xerces.impl.validation.ValidationManager80820e1751c94dd9
    org.apache.xerces.impl.validation.ValidationState4accdcc5718c1b8f
    org.apache.xerces.impl.xpath.regex.Opc441fc7c6c72bac3
    org.apache.xerces.impl.xpath.regex.Op.CharOp8912c0141e0d9d6d
    org.apache.xerces.impl.xpath.regex.Op.ChildOpc1d4616a46079678
    org.apache.xerces.impl.xpath.regex.Op.ModifierOpb3809398b9938708
    org.apache.xerces.impl.xpath.regex.Op.RangeOp68cf9886bd1005b9
    org.apache.xerces.impl.xpath.regex.Op.StringOpda35aa8732cb642f
    org.apache.xerces.impl.xpath.regex.Op.UnionOp015297eecb7ac5b6
    org.apache.xerces.impl.xpath.regex.ParserForXMLSchema4c1450596c70a904
    org.apache.xerces.impl.xpath.regex.REUtil1d5257ffecc278e8
    org.apache.xerces.impl.xpath.regex.RangeToken64026b6a899d8d48
    org.apache.xerces.impl.xpath.regex.RegexParsere9ce4cc1b271254f
    org.apache.xerces.impl.xpath.regex.RegularExpression65c4497499172454
    org.apache.xerces.impl.xpath.regex.RegularExpression.Context3cfadb61b5bbc546
    org.apache.xerces.impl.xpath.regex.Tokenafd8dff82405215d
    org.apache.xerces.impl.xpath.regex.Token.CharToken5baab981167317a2
    org.apache.xerces.impl.xpath.regex.Token.ClosureToken0345678fe7d8c39c
    org.apache.xerces.impl.xpath.regex.Token.ConcatTokenddfe295c93836640
    org.apache.xerces.impl.xpath.regex.Token.ParenToken3ce1a9f224a174cf
    org.apache.xerces.impl.xpath.regex.Token.StringToken49e1eb5e1dd579e9
    org.apache.xerces.impl.xpath.regex.Token.UnionToken45f190a395af898b
    org.apache.xerces.impl.xs.AttributePSVImplb10abedead38ffb4
    org.apache.xerces.impl.xs.ElementPSVImpl201848dcd7e4fbe9
    org.apache.xerces.impl.xs.SchemaGrammar8bd91959e77c5ba3
    org.apache.xerces.impl.xs.SchemaGrammar.BuiltinAttrDecl2deebbcce02d9bed
    org.apache.xerces.impl.xs.SchemaGrammar.BuiltinSchemaGrammar51deefa7dfd71a4b
    org.apache.xerces.impl.xs.SchemaGrammar.Schema4Annotations7714a2ef652a9bb2
    org.apache.xerces.impl.xs.SchemaGrammar.XSAnyTyped28d66d2d5fde167
    org.apache.xerces.impl.xs.SchemaNamespaceSupport7ef5e08c82008021
    org.apache.xerces.impl.xs.SchemaSymbols76323b24153de642
    org.apache.xerces.impl.xs.SubstitutionGroupHandler0f79fe05178c9186
    org.apache.xerces.impl.xs.SubstitutionGroupHandler.OneSubGroupaded0d357c6e4e5d
    org.apache.xerces.impl.xs.XMLSchemaLoaderc08b44af156bdf87
    org.apache.xerces.impl.xs.XMLSchemaLoader.LocationArray1aa7990648d00736
    org.apache.xerces.impl.xs.XMLSchemaValidator45ac14e2531edabe
    org.apache.xerces.impl.xs.XMLSchemaValidator.LocalIDKeye5cc362c23cf6c42
    org.apache.xerces.impl.xs.XMLSchemaValidator.ValueStoreCache56b1ef3a8ac2aac6
    org.apache.xerces.impl.xs.XMLSchemaValidator.XPathMatcherStack94be5ed1b4b31fb3
    org.apache.xerces.impl.xs.XMLSchemaValidator.XSIErrorReporterce31d2cd1d4c823d
    org.apache.xerces.impl.xs.XSAnnotationImpl33a312f5885d89f4
    org.apache.xerces.impl.xs.XSAttributeDecl2bc80f7ce83ed28b
    org.apache.xerces.impl.xs.XSAttributeGroupDeclc65e143f06724f6b
    org.apache.xerces.impl.xs.XSAttributeUseImpl3b93d56086e922b2
    org.apache.xerces.impl.xs.XSComplexTypeDecl29f142878763c3bc
    org.apache.xerces.impl.xs.XSConstraints75cc39a826f69a99
    org.apache.xerces.impl.xs.XSDDescription4d790791e38aa067
    org.apache.xerces.impl.xs.XSDeclarationPool6eb0d761d2bf125b
    org.apache.xerces.impl.xs.XSElementDecl0c947515279343cf
    org.apache.xerces.impl.xs.XSGrammarBucketd7018ff8113afa03
    org.apache.xerces.impl.xs.XSMessageFormattere7d0071876ec5157
    org.apache.xerces.impl.xs.XSModelGroupImpl551c86388d1ac19e
    org.apache.xerces.impl.xs.XSParticleDecl444de9cb1f6f7367
    org.apache.xerces.impl.xs.XSWildcardDecl736b68fd1f56b0ef
    org.apache.xerces.impl.xs.models.CMBuilderabfdab44fe020875
    org.apache.xerces.impl.xs.models.CMNodeFactoryc30474da1d8b9174
    org.apache.xerces.impl.xs.models.XSAllCM3d3bc7a115d0b9cb
    org.apache.xerces.impl.xs.models.XSCMBinOp3e0191c7688d4964
    org.apache.xerces.impl.xs.models.XSCMLeafc38c2ae91fd4d2b1
    org.apache.xerces.impl.xs.models.XSCMUniOp043736ce272df8a9
    org.apache.xerces.impl.xs.models.XSDFACM1e0e93f28ff7e284
    org.apache.xerces.impl.xs.models.XSEmptyCM5b312fdec64b4b04
    org.apache.xerces.impl.xs.opti.AttrImpl9ca0dd929e63b963
    org.apache.xerces.impl.xs.opti.DefaultDocumentbf0a70ed567f7e83
    org.apache.xerces.impl.xs.opti.DefaultElementd3ce5283611cd297
    org.apache.xerces.impl.xs.opti.DefaultNodeb73b1d188f702dca
    org.apache.xerces.impl.xs.opti.DefaultXMLDocumentHandler7c0d590c13b7d051
    org.apache.xerces.impl.xs.opti.ElementImpl15ea8df13958472a
    org.apache.xerces.impl.xs.opti.NamedNodeMapImpl3d99c390aec8685e
    org.apache.xerces.impl.xs.opti.NodeImplff906a0b83465279
    org.apache.xerces.impl.xs.opti.SchemaDOM055b1ac0f9555e6a
    org.apache.xerces.impl.xs.opti.SchemaDOMParsera5ee2b3131fd253a
    org.apache.xerces.impl.xs.opti.SchemaDOMParser.BooleanStack55549a2a7cc6bad0
    org.apache.xerces.impl.xs.opti.SchemaParsingConfiga86452d91007b592
    org.apache.xerces.impl.xs.traversers.Container589a0071a808f5cf
    org.apache.xerces.impl.xs.traversers.LargeContainer3533da4ed3a0965c
    org.apache.xerces.impl.xs.traversers.OneAttr54e4d08c461c59c4
    org.apache.xerces.impl.xs.traversers.SmallContainer3b7c8ecf4aae92a4
    org.apache.xerces.impl.xs.traversers.XSAttributeChecker04de3dfdeccd403f
    org.apache.xerces.impl.xs.traversers.XSDAbstractIDConstraintTraverser7c13dcca600668e3
    org.apache.xerces.impl.xs.traversers.XSDAbstractParticleTraversercd0add85690bb16e
    org.apache.xerces.impl.xs.traversers.XSDAbstractParticleTraverser.ParticleArray27273cd1f7eca5ed
    org.apache.xerces.impl.xs.traversers.XSDAbstractTraverser86e9859fc2adf1dc
    org.apache.xerces.impl.xs.traversers.XSDAbstractTraverser.FacetInfo45c68f2fb8a65023
    org.apache.xerces.impl.xs.traversers.XSDAttributeGroupTraverser080596b552c27641
    org.apache.xerces.impl.xs.traversers.XSDAttributeTraversere59a538ff94ba6c2
    org.apache.xerces.impl.xs.traversers.XSDComplexTypeTraverser276a1e9f95b48960
    org.apache.xerces.impl.xs.traversers.XSDElementTraverser9d8df3a1d5808fd9
    org.apache.xerces.impl.xs.traversers.XSDGroupTraverserbd8fc5e77016b225
    org.apache.xerces.impl.xs.traversers.XSDHandler4cead45455d699e0
    org.apache.xerces.impl.xs.traversers.XSDHandler.XSDKeye1d29357b4686063
    org.apache.xerces.impl.xs.traversers.XSDKeyrefTraverserf5f0a5d9946e2139
    org.apache.xerces.impl.xs.traversers.XSDNotationTraverseraa841eaf2b4011bb
    org.apache.xerces.impl.xs.traversers.XSDSimpleTypeTraverserc831ab34e408845b
    org.apache.xerces.impl.xs.traversers.XSDUniqueOrKeyTraverser29fb55ace2c949f6
    org.apache.xerces.impl.xs.traversers.XSDWildcardTraverserbe52354c600d17f1
    org.apache.xerces.impl.xs.traversers.XSDocumentInfo2ff4e0280dc29ce9
    org.apache.xerces.impl.xs.util.ShortListImpl545a1c2fd37b9695
    org.apache.xerces.impl.xs.util.ShortListImpl.15b21213f456355a3
    org.apache.xerces.impl.xs.util.SimpleLocator776a2eda0d719d9e
    org.apache.xerces.impl.xs.util.XInt6f1f3dd3cd7f2540
    org.apache.xerces.impl.xs.util.XIntPoold036dae4ceab3cb6
    org.apache.xerces.impl.xs.util.XSObjectListImplbd2cac9b384af381
    org.apache.xerces.impl.xs.util.XSObjectListImpl.1c7514e1d5c9bfcff
    org.apache.xerces.jaxp.DefaultValidationErrorHandler6c25c10d5065f1d4
    org.apache.xerces.jaxp.DocumentBuilderFactoryImpl11c71bb2d1f5deff
    org.apache.xerces.jaxp.DocumentBuilderImple1ef4e8efe9641a5
    org.apache.xerces.jaxp.SAXParserFactoryImpld547c9ded9586081
    org.apache.xerces.jaxp.SAXParserImpl754fc92a88ab9ee5
    org.apache.xerces.jaxp.SAXParserImpl.JAXPSAXParserb425c9f2722eeb09
    org.apache.xerces.jaxp.datatype.DatatypeFactoryImplc8c4c770ca9d119c
    org.apache.xerces.jaxp.datatype.XMLGregorianCalendarImpl37687e0056eb5d32
    org.apache.xerces.jaxp.datatype.XMLGregorianCalendarImpl.Parsera6aae0fd25a17474
    org.apache.xerces.jaxp.validation.AbstractXMLSchema4a4c9115493abd86
    org.apache.xerces.jaxp.validation.DraconianErrorHandler3a8360d611be3e5a
    org.apache.xerces.jaxp.validation.SimpleXMLSchemada5989cad0a520ce
    org.apache.xerces.jaxp.validation.StreamValidatorHelper1b87033e0a985fe1
    org.apache.xerces.jaxp.validation.ValidatorImpl6060b0e85c2de98b
    org.apache.xerces.jaxp.validation.XMLSchemaFactory40567158bdd53887
    org.apache.xerces.jaxp.validation.XMLSchemaFactory.XMLGrammarPoolImplExtension2c7efb503ea844ac
    org.apache.xerces.jaxp.validation.XMLSchemaFactory.XMLGrammarPoolWrapperda856dc49b5e43af
    org.apache.xerces.jaxp.validation.XMLSchemaValidatorComponentManager72c5d710728a0c2d
    org.apache.xerces.parsers.AbstractDOMParser549e5a53091b2b70
    org.apache.xerces.parsers.AbstractSAXParser10a73b288db955f8
    org.apache.xerces.parsers.AbstractSAXParser.29951f28e6e1f22e9
    org.apache.xerces.parsers.AbstractSAXParser.AttributesProxy556c81522bf1f08c
    org.apache.xerces.parsers.AbstractSAXParser.LocatorProxydb4e8b9652a6f22b
    org.apache.xerces.parsers.AbstractXMLDocumentParser8863894dca746b5c
    org.apache.xerces.parsers.BasicParserConfiguration958b01c2367ce20a
    org.apache.xerces.parsers.DOMParser587d331cbd742a98
    org.apache.xerces.parsers.ObjectFactoryc757c5995df24200
    org.apache.xerces.parsers.SAXParser6297dd6cb4aebd4c
    org.apache.xerces.parsers.SecuritySupport0dd1796c902ad6bd
    org.apache.xerces.parsers.SecuritySupport.12dd512aee4faaa4f
    org.apache.xerces.parsers.SecuritySupport.22922557655645a55
    org.apache.xerces.parsers.SecuritySupport.412017a0c1da7e4ec
    org.apache.xerces.parsers.SecuritySupport.629240be163cb8d8e
    org.apache.xerces.parsers.SecuritySupport.70282c605e54f0ca7
    org.apache.xerces.parsers.XIncludeAwareParserConfiguration0d52edf1ea95ce8c
    org.apache.xerces.parsers.XML11Configuration4232068250c66a72
    org.apache.xerces.parsers.XMLParser5ea5d99c949266c4
    org.apache.xerces.util.AugmentationsImpl0c1fe14da46bb416
    org.apache.xerces.util.AugmentationsImpl.AugmentationsItemsContainer63b56783ead2f577
    org.apache.xerces.util.AugmentationsImpl.SmallContainer3fd5ef329d7f0abb
    org.apache.xerces.util.DOMEntityResolverWrapperccc5f375bbcbd81f
    org.apache.xerces.util.DOMUtil8a0e46479af78b62
    org.apache.xerces.util.DefaultErrorHandler99fcb1ecab76f0a4
    org.apache.xerces.util.EntityResolverWrapperae54928d232d4a0f
    org.apache.xerces.util.ErrorHandlerWrapperceb581598ca9223b
    org.apache.xerces.util.IntStack6d86774a62c48823
    org.apache.xerces.util.NamespaceSupport2ec78d35e1dd6396
    org.apache.xerces.util.NamespaceSupport.Prefixes65471e2dafc0f116
    org.apache.xerces.util.ParserConfigurationSettingsb2b8341658db5683
    org.apache.xerces.util.SAXMessageFormatter3f091e452b6ceb44
    org.apache.xerces.util.SecurityManager245b88eb6cd3efde
    org.apache.xerces.util.SymbolHashc538a3dfa3447267
    org.apache.xerces.util.SymbolHash.Entry507b6f95f44c00b0
    org.apache.xerces.util.SymbolTablec57500a0993e2cd1
    org.apache.xerces.util.SymbolTable.Entryed9feab192213eb7
    org.apache.xerces.util.URI884caaebb8950799
    org.apache.xerces.util.XMLAttributesImpl5372548792f8d9a1
    org.apache.xerces.util.XMLAttributesImpl.Attribute4be0ee5403a6dde4
    org.apache.xerces.util.XMLChar19d54097de4c2f40
    org.apache.xerces.util.XMLGrammarPoolImpl44a561a379c0d341
    org.apache.xerces.util.XMLGrammarPoolImpl.Entrya89fc4348bfd4ad3
    org.apache.xerces.util.XMLResourceIdentifierImplfbc9da91fce32602
    org.apache.xerces.util.XMLStringBuffer98e81028fe44707d
    org.apache.xerces.util.XMLSymbolsfb3448511f7b090a
    org.apache.xerces.xni.NamespaceContexta042cfa9211e0090
    org.apache.xerces.xni.QNamee1fbb8aed5fee97e
    org.apache.xerces.xni.XMLStringcd18fb32e73070cb
    org.apache.xerces.xni.XNIExceptionbcf12f9b5bef3cf1
    org.apache.xerces.xni.parser.XMLConfigurationException2e00dcd31070a403
    org.apache.xerces.xni.parser.XMLInputSource9c76a32c97e5c2fb
    org.apache.xerces.xni.parser.XMLParseException97d3d425a7c60e20
    org.apache.xml.dtm.Axis6eb92c3506c5d53a
    org.apache.xml.dtm.DTMAxisTraverser8cda39e0329c33d3
    org.apache.xml.dtm.DTMManager8fdb6ed86bbf40e5
    org.apache.xml.dtm.ObjectFactory8b907856329fbe43
    org.apache.xml.dtm.SecuritySupport355b0bfa498fe620
    org.apache.xml.dtm.SecuritySupport12be2fa8cc5b873724
    org.apache.xml.dtm.SecuritySupport12.110905dd90a2be2f8
    org.apache.xml.dtm.SecuritySupport12.23814cb512b12fc19
    org.apache.xml.dtm.SecuritySupport12.4115eb7d81c0df8dd
    org.apache.xml.dtm.SecuritySupport12.60c146e8d05450179
    org.apache.xml.dtm.SecuritySupport12.7608fed69e18dbe11
    org.apache.xml.dtm.ref.DTMDefaultBaseb214fcc54f48aae5
    org.apache.xml.dtm.ref.DTMDefaultBaseIteratorsd2cfe3ec9706140b
    org.apache.xml.dtm.ref.DTMDefaultBaseTraverserse8f1d265ffa2690c
    org.apache.xml.dtm.ref.DTMDefaultBaseTraversers.AllFromNodeTraverser41f8a982a982b5d8
    org.apache.xml.dtm.ref.DTMDefaultBaseTraversers.AllFromRootTraverserc73f1beb5d2f2e7c
    org.apache.xml.dtm.ref.DTMDefaultBaseTraversers.AttributeTraverser686481dd3ba884f4
    org.apache.xml.dtm.ref.DTMDefaultBaseTraversers.ChildTraversera2c11526ccbd4622
    org.apache.xml.dtm.ref.DTMDefaultBaseTraversers.DescendantFromRootTraversercb6457d5f79098f1
    org.apache.xml.dtm.ref.DTMDefaultBaseTraversers.DescendantOrSelfTraversercb81c513913df626
    org.apache.xml.dtm.ref.DTMDefaultBaseTraversers.DescendantTraverser6686c4a7beb09900
    org.apache.xml.dtm.ref.DTMDefaultBaseTraversers.IndexedDTMAxisTraverserd7025abbe4481cc6
    org.apache.xml.dtm.ref.DTMDefaultBaseTraversers.RootTraverserf3196e884152bc70
    org.apache.xml.dtm.ref.DTMDefaultBaseTraversers.SelfTraverser3071e0c95a5af40e
    org.apache.xml.dtm.ref.DTMManagerDefaultb6047a448ac09b1f
    org.apache.xml.dtm.ref.DTMNodeIterator468658434a3bab8f
    org.apache.xml.dtm.ref.DTMNodeList32906327ff1a37b9
    org.apache.xml.dtm.ref.DTMNodeListBase077d824dc8fef2a5
    org.apache.xml.dtm.ref.ExpandedNameTable573916d69d16002b
    org.apache.xml.dtm.ref.ExpandedNameTable.HashEntry41dbb044cda0dd2d
    org.apache.xml.dtm.ref.ExtendedType68f644353558ac94
    org.apache.xml.dtm.ref.dom2dtm.DOM2DTMff40421045b8dbcf
    org.apache.xml.dtm.ref.dom2dtm.DOM2DTMdefaultNamespaceDeclarationNode40c34513783b63ec
    org.apache.xml.serializer.AttributesImplSerializer5dcdec5a2f1ee983
    org.apache.xml.serializer.CharInfo1aea1483210b6efe
    org.apache.xml.serializer.CharInfo.1b491c801c5fb198e
    org.apache.xml.serializer.CharInfo.CharKeye0a5c645b76750a5
    org.apache.xml.serializer.ElemContext7d0beb07274aa709
    org.apache.xml.serializer.EncodingInfo032bfb0f7fa84126
    org.apache.xml.serializer.Encodingsa08628d721eb774c
    org.apache.xml.serializer.NamespaceMappings8ecb748068271682
    org.apache.xml.serializer.NamespaceMappings.MappingRecord85ea4076e699c390
    org.apache.xml.serializer.ObjectFactory9ba966f7adf280b5
    org.apache.xml.serializer.OutputPropertiesFactory81cb094e134b9026
    org.apache.xml.serializer.OutputPropertiesFactory.1165ec15bc2e43d24
    org.apache.xml.serializer.OutputPropertyUtils676acbf97d6a2313
    org.apache.xml.serializer.SecuritySupporta4f03156c96bcc0b
    org.apache.xml.serializer.SecuritySupport129f482fa023db0264
    org.apache.xml.serializer.SecuritySupport12.1d3503b8cab2b1c94
    org.apache.xml.serializer.SecuritySupport12.22ae4af14ea71baef
    org.apache.xml.serializer.SecuritySupport12.669b891bea0772dd2
    org.apache.xml.serializer.SerializerBasebcfb789bfcf1f617
    org.apache.xml.serializer.SerializerFactory12ae2413164762b6
    org.apache.xml.serializer.ToStream1fc4c5eee8a973a4
    org.apache.xml.serializer.ToStream.BoolStack8308615f6836e0f3
    org.apache.xml.serializer.ToXMLStreamee4ab9d8b80202c3
    org.apache.xml.utils.DOM2Helper018019cb7e8b99c4
    org.apache.xml.utils.DOMHelper46e5330841d3489b
    org.apache.xml.utils.DefaultErrorHandler8ff6a938cef3c847
    org.apache.xml.utils.FastStringBuffer68a1552b94bb092d
    org.apache.xml.utils.IntStack72e1277955991b54
    org.apache.xml.utils.IntVector60e032301d0b6da1
    org.apache.xml.utils.NSInfo5c76583914a49b48
    org.apache.xml.utils.NodeVector7ad821765bd789e2
    org.apache.xml.utils.ObjectPooldf454b9321347a80
    org.apache.xml.utils.ObjectStack1f5abed9e0e6bd7f
    org.apache.xml.utils.ObjectVectord5c99d601f139f8a
    org.apache.xml.utils.StringBufferPoolf0f2474ceddce288
    org.apache.xml.utils.SuballocatedIntVectorcd2943b54deb4b3e
    org.apache.xml.utils.TreeWalker735394ae3abd6915
    org.apache.xml.utils.UnImplNode6607f21a179f3a0f
    org.apache.xml.utils.XMLCharacterRecognizerd08c15e3d27ca589
    org.apache.xml.utils.XMLStringFactory90028b9cf62dd19d
    org.apache.xpath.Expression96ff8943036734b8
    org.apache.xpath.SourceTreeManager9baeb90a8e606394
    org.apache.xpath.VariableStack0bd79c7cdde98a82
    org.apache.xpath.XPathce51920dfda7647f
    org.apache.xpath.XPathContext32f45fb125d92d87
    org.apache.xpath.XPathContext.XPathExpressionContexta6e03cc6bbfa414d
    org.apache.xpath.axes.AttributeIterator11e32521f84649b7
    org.apache.xpath.axes.AxesWalkercbbea9d6b90cd973
    org.apache.xpath.axes.BasicTestIterator2f5609ab582d5209
    org.apache.xpath.axes.ChildTestIteratorcc2a13f10a6594b3
    org.apache.xpath.axes.DescendantIterator8afe3d791057d983
    org.apache.xpath.axes.IteratorPoolf80b75c3a491e516
    org.apache.xpath.axes.LocPathIteratorb0496d063e748c3a
    org.apache.xpath.axes.NodeSequence4f254d9c3cf6bc43
    org.apache.xpath.axes.PredicatedNodeTest5035fba7b9bfda65
    org.apache.xpath.axes.SelfIteratorNoPredicate98ffc773fdc21ecc
    org.apache.xpath.axes.WalkerFactoryf48a883e6fcfac21
    org.apache.xpath.axes.WalkingIterator09e65f22a8610464
    org.apache.xpath.compiler.Compiler9618b1a5e3cc3df7
    org.apache.xpath.compiler.FunctionTablea0005ab97f2b6270
    org.apache.xpath.compiler.Lexer694bb1a294c83993
    org.apache.xpath.compiler.OpMapdf25a77a3172dad9
    org.apache.xpath.compiler.OpMapVector8f099d94ac045342
    org.apache.xpath.compiler.XPathParser0e180af5ed826660
    org.apache.xpath.jaxp.JAXPVariableStackd618dd7df394dfd5
    org.apache.xpath.jaxp.XPathFactoryImpl21f848203239f18d
    org.apache.xpath.jaxp.XPathImpl4e3c197e09725969
    org.apache.xpath.objects.Comparatoraac20f7dcb11b435
    org.apache.xpath.objects.EqualComparator100f511d13317e2c
    org.apache.xpath.objects.GreaterThanComparator3420cf78c3985cbc
    org.apache.xpath.objects.GreaterThanOrEqualComparator7b26b4287101a3c7
    org.apache.xpath.objects.LessThanComparator4662d159399b0d3d
    org.apache.xpath.objects.LessThanOrEqualComparator3040087024446d3b
    org.apache.xpath.objects.NotEqualComparator7ae4c578d185332d
    org.apache.xpath.objects.XBoolean73ac83cf6e2e1958
    org.apache.xpath.objects.XBooleanStatic1e826c9616ce98d3
    org.apache.xpath.objects.XMLStringFactoryImplb9c89eb7aa15de43
    org.apache.xpath.objects.XNodeSet493324984362f74a
    org.apache.xpath.objects.XNumber92eecabd6a2723fc
    org.apache.xpath.objects.XObject3b185d0b0a602103
    org.apache.xpath.objects.XStringc8a5fd09e3fbe59c
    org.apache.xpath.operations.Equals56ac0c1b849f1b23
    org.apache.xpath.operations.Operation8dc620f36600d33a
    org.apache.xpath.patterns.NodeTest497875e862eeba99
    org.boris.pecoff4j.COFFHeader4cb0771113b7d65a
    org.boris.pecoff4j.DOSHeader89830dcbd806bb7d
    org.boris.pecoff4j.DOSStubd214b683daaacea4
    org.boris.pecoff4j.ImageDatad4ba2a732540a340
    org.boris.pecoff4j.ImageDataDirectory59c3087d05397ea4
    org.boris.pecoff4j.ImportDirectoryce65e43056e0c9b6
    org.boris.pecoff4j.ImportDirectoryEntry28956f04d3b26710
    org.boris.pecoff4j.OptionalHeader11e690329c7487b5
    org.boris.pecoff4j.PE097f622d25343d27
    org.boris.pecoff4j.PESignatureeeed97bcc2731494
    org.boris.pecoff4j.RVAConverter3a5b268ecee59bb3
    org.boris.pecoff4j.ResourceDirectory9587c1c47cd9c2bb
    org.boris.pecoff4j.ResourceDirectoryTablefd9cdfd73c7275ac
    org.boris.pecoff4j.ResourceEntry586cb10ba8c88742
    org.boris.pecoff4j.SectionDataff30e1212af76df9
    org.boris.pecoff4j.SectionHeaderdda41651b9600bc4
    org.boris.pecoff4j.SectionTablec89e669d0c10f742
    org.boris.pecoff4j.SectionTable.1e37d686aca1d9ebe
    org.boris.pecoff4j.io.ByteArrayDataReader7e685d96b370a723
    org.boris.pecoff4j.io.DataEntrycc5820327b650972
    org.boris.pecoff4j.io.DataReader214285cddec8782c
    org.boris.pecoff4j.io.ResourceParser8b988f2d4dab0936
    org.boris.pecoff4j.resources.FixedFileInfo561af6c8b5ce124e
    org.boris.pecoff4j.resources.StringFileInfo318ad75a741478fe
    org.boris.pecoff4j.resources.StringPair1b2bec5a5c61d611
    org.boris.pecoff4j.resources.StringTableb7883c0e625a0b7f
    org.boris.pecoff4j.resources.VarFileInfo95250d35e435053a
    org.boris.pecoff4j.resources.VersionInfobe14060d370ea581
    org.boris.pecoff4j.util.DataObject44ff57e4c3f64117
    org.boris.pecoff4j.util.IntMapa7de8c52c304fd1e
    org.boris.pecoff4j.util.IntMap.Entryf098fc2aeca9e312
    org.boris.pecoff4j.util.ResourceHelper5a9f50d308c9b625
    org.eclipse.packager.rpm.RpmLead8588e98f52d536f7
    org.eclipse.packager.rpm.RpmTag05e81aa8a65f7711
    org.eclipse.packager.rpm.Rpmsa2e82d900f4c50b3
    org.eclipse.packager.rpm.coding.PayloadCodinga20247eaf4c8e329
    org.eclipse.packager.rpm.coding.XZPayloadCoding001576c12c84a49d
    org.eclipse.packager.rpm.parse.HeaderValuee99528ed75bd655e
    org.eclipse.packager.rpm.parse.HeaderValue.Unknown37b8ae8b41b6fc70
    org.eclipse.packager.rpm.parse.InputHeaderdef259e8966b8629
    org.eclipse.packager.rpm.parse.RpmInputStream90c9f22fbb7bb5c2
    org.glassfish.json.BufferPoolImpl836d09e6b15fe927
    org.glassfish.json.JsonArrayBuilderImpl6f06b1bcb60d1d9c
    org.glassfish.json.JsonArrayBuilderImpl.JsonArrayImpl2473913d684e5724
    org.glassfish.json.JsonGeneratorImpl937b0598d8d2e71b
    org.glassfish.json.JsonGeneratorImpl.1b133e1d8946eca9f
    org.glassfish.json.JsonGeneratorImpl.Contextaa0f0f4f2a8e62b8
    org.glassfish.json.JsonGeneratorImpl.Scope14d4f9adf5fa5d91
    org.glassfish.json.JsonLocationImpl09415ef44747f80c
    org.glassfish.json.JsonMessagesf06a0f8cb79df459
    org.glassfish.json.JsonNumberImpl447ab5411c7724b8
    org.glassfish.json.JsonNumberImpl.JsonBigDecimalNumber8e8bc0bf92f28ef9
    org.glassfish.json.JsonNumberImpl.JsonIntNumber9a2c3dafe9ba2ecb
    org.glassfish.json.JsonObjectBuilderImpl1211ee75fd7bf0f1
    org.glassfish.json.JsonObjectBuilderImpl.JsonObjectImpl40b8f8ac2ba906b1
    org.glassfish.json.JsonParserImpl5cb1b1235d83a520
    org.glassfish.json.JsonParserImpl.472f5c19858fdac74
    org.glassfish.json.JsonParserImpl.ArrayContext070fe26322fac856
    org.glassfish.json.JsonParserImpl.Context7a006c910b75a2d2
    org.glassfish.json.JsonParserImpl.NoneContext03216417686aafcd
    org.glassfish.json.JsonParserImpl.ObjectContextc784c334c97a0446
    org.glassfish.json.JsonParserImpl.Stackb1ea5cd4417c3854
    org.glassfish.json.JsonProviderImpl9f077215b667ebce
    org.glassfish.json.JsonReaderFactoryImpl567d129b07c2ef77
    org.glassfish.json.JsonReaderImpl0505c7e42b01830d
    org.glassfish.json.JsonStringImpld4e9a70b4eb97432
    org.glassfish.json.JsonTokenizer04b00aebe1b8d506
    org.glassfish.json.JsonTokenizer.JsonTokenc25a727e32262f68
    org.glassfish.json.JsonWriterImpl06306e24801941f8
    org.glassfish.json.UnicodeDetectingInputStreamcbb27135a66d814d
    org.h2.Driver1f044461dbd822a6
    org.h2.api.ErrorCode840ef5ab229bbf49
    org.h2.api.IntervalQualifier246aae6a9c36f2b7
    org.h2.api.IntervalQualifier.1bf97f880f3318a4a
    org.h2.command.Commandf15559eee5a4b67d
    org.h2.command.CommandContainer7f1438019fc91d17
    org.h2.command.CommandListfddd5691a587a13e
    org.h2.command.Parser2bb8f9e5a4a70b2e
    org.h2.command.Parser.1cb4488aad45d295c
    org.h2.command.Parser.NullConstraintType1f57cffeb49c7540
    org.h2.command.Prepared2afc45f364116e7c
    org.h2.command.Token9041f63f56392fb0
    org.h2.command.Token.CharacterStringTokendfb98b3bd2551690
    org.h2.command.Token.EndOfInputTokence0acd08cca36d96
    org.h2.command.Token.IdentifierToken96fa97b12ec39d26
    org.h2.command.Token.IntegerToken706265d29c73ee40
    org.h2.command.Token.KeywordToken89175f50cf553a38
    org.h2.command.Token.LiteralToken55ac31d811877860
    org.h2.command.Token.ParameterTokena1dbfddba95ea8c7
    org.h2.command.Tokenizer43f9aad9c9c53267
    org.h2.command.ddl.AlterTable7aa39625dc5b307b
    org.h2.command.ddl.AlterTableAddConstraint6b675b8c9348065a
    org.h2.command.ddl.AlterTableAlterColumnc901e4c8571def2f
    org.h2.command.ddl.AlterTableRenameColumn804458f1e4fad270
    org.h2.command.ddl.Analyzed44dcecb13e7b816
    org.h2.command.ddl.Analyze.SelectivityData9d2bf75f8d5ea568
    org.h2.command.ddl.CommandWithColumns5d9315b33ee69573
    org.h2.command.ddl.CreateFunctionAliasd2883f3f10fd8091
    org.h2.command.ddl.CreateIndexf31feb6e3685ea46
    org.h2.command.ddl.CreateSequencef0b8c2a1c5e12476
    org.h2.command.ddl.CreateTablee7275c1615ebec1c
    org.h2.command.ddl.CreateTableData3569f1ca31e74768
    org.h2.command.ddl.CreateUser2695390fae1d1c8e
    org.h2.command.ddl.DefineCommandcdddc9c95e413810
    org.h2.command.ddl.DropTablec459b4654874bc90
    org.h2.command.ddl.DropTable.SchemaAndTable6a855d249c69374b
    org.h2.command.ddl.SchemaCommand37562b22aa4d46eb
    org.h2.command.ddl.SchemaOwnerCommandd933ca320cd38b16
    org.h2.command.ddl.SequenceOptionsac62424e14dc3d1f
    org.h2.command.dml.CommandWithValuesfe71d1b4348da45a
    org.h2.command.dml.DataChangeStatement33e9a83e6aa9a2b0
    org.h2.command.dml.FilteredDataChangeStatementd1f06c41064db97d
    org.h2.command.dml.Insert92b352a399a37d13
    org.h2.command.dml.Mergef44a09337cc1f188
    org.h2.command.dml.NoOperation45224ad69233db9a
    org.h2.command.dml.Setd21842a092a85228
    org.h2.command.dml.SetClauseList8d7af84401b9e26f
    org.h2.command.dml.SetClauseList.SetSimple8f716343f11c7e82
    org.h2.command.dml.SetClauseList.UpdateAction1eb72da8fe8e5057
    org.h2.command.dml.SetTypes016d945a5f04106d
    org.h2.command.dml.TransactionCommand3d756d024aef2b4e
    org.h2.command.dml.Update1bc1970970fb06be
    org.h2.command.query.AllColumnsForPlan450f809346d1808b
    org.h2.command.query.Optimizer46f986c336d6a3f6
    org.h2.command.query.Queryb4b2ce90b74182d5
    org.h2.command.query.Query.OffsetFetch19fb6b1d83396f8a
    org.h2.command.query.QueryOrderBy23777a00278ca3a2
    org.h2.command.query.Selectf5dc2c718161fa97
    org.h2.command.query.Select.LazyResultGroupSortedc599665435c0d17c
    org.h2.command.query.Select.LazyResultQueryFlat85da5085987fa500
    org.h2.command.query.Select.LazyResultSelectbccfb20cef56dd5e
    org.h2.command.query.SelectGroups31af3273b4e64a1c
    org.h2.command.query.SelectGroups.Groupede4db5aab5499ea40
    org.h2.compress.CompressLZF4b905f980eac239a
    org.h2.constraint.Constraintf020b750ed00e5a4
    org.h2.constraint.Constraint.Type22cd7378e3a10d3f
    org.h2.constraint.ConstraintActionType5628afb57ab6e865
    org.h2.constraint.ConstraintReferential2a77c026aeb8aab4
    org.h2.constraint.ConstraintUniqued487c96b0517f1bf
    org.h2.engine.Commentaeb6905a57d7cbf6
    org.h2.engine.ConnectionInfo343d6a137cb5b573
    org.h2.engine.Database83e12c5a8547f3c5
    org.h2.engine.DbObjecta1d54de7a70f69aa
    org.h2.engine.DbSettingsc16ca39af0b52094
    org.h2.engine.Engine8d1bef8b32a84ba9
    org.h2.engine.Engine.DatabaseHolderf3e1da4d84fad7c4
    org.h2.engine.IsolationLeveldc3d1e0f909bb346
    org.h2.engine.MetaRecord29bceca9a65575ba
    org.h2.engine.Moded125cf383981bd10
    org.h2.engine.Mode.CharPadding8cf8ff3cbc571739
    org.h2.engine.Mode.ExpressionNames88384897021057f2
    org.h2.engine.Mode.ModeEnuma38cd43a6cd506a3
    org.h2.engine.Mode.UniqueIndexNullsHandling502dde04362c0a05
    org.h2.engine.Mode.ViewExpressionNames5d52fc04ceb58107
    org.h2.engine.OnExitDatabaseCloserbf4571800d7637b7
    org.h2.engine.RightOwnerc6021e43f64032ac
    org.h2.engine.Role094194bad60e1b75
    org.h2.engine.Session64d6d72ad82917c2
    org.h2.engine.SessionLocal51a58f8ace245808
    org.h2.engine.SessionLocal.155f9583f8325b772
    org.h2.engine.SessionLocal.Savepoint781800cec7d35e7d
    org.h2.engine.SessionLocal.State1a3f8ed61a9b559b
    org.h2.engine.SessionRemotef37ba123636968a3
    org.h2.engine.Settingc86b1d51f590b2b5
    org.h2.engine.SettingsBase47dcfc6eb02612ad
    org.h2.engine.SysProperties738fc14326e6697a
    org.h2.engine.User6642d70796bd346f
    org.h2.expression.Alias47aad16dec6f33d9
    org.h2.expression.Expressionbb4614abe3a7154a
    org.h2.expression.ExpressionColumnf3c03411ffc0fd1f
    org.h2.expression.ExpressionVisitorcabab1ad46664b16
    org.h2.expression.Operation0b942a11663e00451
    org.h2.expression.Parameter9867f0e8942380a2
    org.h2.expression.ValueExpressionb0947d3b406882f5
    org.h2.expression.Wildcardd50b73091423744c
    org.h2.expression.aggregate.AbstractAggregatea1557954a9f0e0fd
    org.h2.expression.aggregate.Aggregatede37080964c8db3d
    org.h2.expression.aggregate.Aggregate.128b7d61d336b32ba
    org.h2.expression.aggregate.AggregateType1f12aa2df974eb3f
    org.h2.expression.analysis.DataAnalysisOperation0b8d4789dc81b499
    org.h2.expression.analysis.WindowFunctionType9edb2feb98f39fd3
    org.h2.expression.condition.CompareLikebfca5d36f3721656
    org.h2.expression.condition.CompareLike.LikeTypee95df3a5894c0c26
    org.h2.expression.condition.Comparisonab7a87af7f1330e7
    org.h2.expression.condition.Conditionbb2da5a03aff382e
    org.h2.expression.condition.ConditionAndOr2634baba9064882c
    org.h2.expression.condition.ConditionAndOrN0491a0d6c6b89083
    org.h2.expression.condition.ConditionAndOrN.1cfd803b14c295199
    org.h2.expression.condition.ConditionIne017bd7adb1fec4c
    org.h2.expression.condition.ConditionInConstantSetaddc1ef3077dfa02
    org.h2.expression.function.BuiltinFunctions78766f5d309e1eec
    org.h2.index.Index1437895d5bdaf159
    org.h2.index.Index.1a3373b1a421e99ac
    org.h2.index.IndexCondition0e9d41fbd2afa93d
    org.h2.index.IndexCursor21f3911a0d80a7b2
    org.h2.index.IndexTypedb20d5927a484411
    org.h2.index.SingleRowCursor6f2da13a23aba782
    org.h2.jdbc.JdbcConnectionaa9112f98496def0
    org.h2.jdbc.JdbcDatabaseMetaData4b65250c88adaaa7
    org.h2.jdbc.JdbcPreparedStatement0aaec231f77e8af1
    org.h2.jdbc.JdbcResultSet6616d9dd2dd82d4f
    org.h2.jdbc.JdbcSQLSyntaxErrorException2bd1ec0ceace2a26
    org.h2.jdbc.JdbcStatementdf8e9ff4d1b735bd
    org.h2.jdbc.meta.DatabaseMeta379d6005c31973cb
    org.h2.jdbc.meta.DatabaseMetaLocal9825c2b1e6cec520
    org.h2.jdbc.meta.DatabaseMetaLocalBasea42ca75579848556
    org.h2.message.DbException3f0e60c471f39e98
    org.h2.message.Trace491f3dad3147c898
    org.h2.message.TraceObjectc9beab9cd4384a9d
    org.h2.message.TraceSystemaa8bb0c0af8cc8c0
    org.h2.mode.DefaultNullOrderingd83aa2fead8d7efe
    org.h2.mode.ModeFunction03b3e1d15a53837f
    org.h2.mvstore.Chunk2b8a58455a4c2e7c
    org.h2.mvstore.Chunk.PositionComparator717579c9b8e61fcb
    org.h2.mvstore.Cursor5d963e5e8ab0be55
    org.h2.mvstore.CursorPosd146fb9483aa8712
    org.h2.mvstore.DataUtils6f9e8b0e67603e41
    org.h2.mvstore.FileStore4d01e40aea5428e5
    org.h2.mvstore.FreeSpaceBitSet55db07b87d11e2d4
    org.h2.mvstore.MVMap32c3349a2372c157
    org.h2.mvstore.MVMap.48673b0dfdf29edc4
    org.h2.mvstore.MVMap.BasicBuilder12a8106056e3784e
    org.h2.mvstore.MVMap.Builder51c13779e4e1a2de
    org.h2.mvstore.MVMap.Decision2391341a8b4c7da2
    org.h2.mvstore.MVMap.DecisionMaker7fe21a9c95f0236a
    org.h2.mvstore.MVMap.DecisionMaker.159f115a410484a7f
    org.h2.mvstore.MVMap.DecisionMaker.26070fe88d005eac4
    org.h2.mvstore.MVMap.DecisionMaker.3be1c10e28ff6d6ed
    org.h2.mvstore.MVMap.DecisionMaker.4f9827774c99da346
    org.h2.mvstore.MVMap.DecisionMaker.5275afe4d593556c7
    org.h2.mvstore.MVMap.IntValueHolderfb1881f08df938cf
    org.h2.mvstore.MVMap.RewriteDecisionMaker3e5cd264616ca1dc
    org.h2.mvstore.MVStore4fc94bbd472340df
    org.h2.mvstore.MVStore.BackgroundWriterThread5e4fe6f9b6650f62
    org.h2.mvstore.MVStore.Builder22b94348c270ef84
    org.h2.mvstore.MVStore.RemovedPageInfo31c493fb15eead92
    org.h2.mvstore.MVStore.TxCounterf5c51e97efd048ff
    org.h2.mvstore.MVStoreTool40622d2c8e8a8fae
    org.h2.mvstore.MVStoreTool.GenericDataTypeabe626abc33a1797
    org.h2.mvstore.Page5b32006674721ed6
    org.h2.mvstore.Page.Leaf48d9ba9ba9662350
    org.h2.mvstore.Page.NonLeafbd593ef4c947b0e0
    org.h2.mvstore.Page.PageReferencea98dbb4602145de4
    org.h2.mvstore.RootReference8b29fe57e28baad2
    org.h2.mvstore.StreamStorea4b55720e4fa8a71
    org.h2.mvstore.WriteBufferf98e4194dfd876cb
    org.h2.mvstore.cache.CacheLongKeyLIRS70a2cf8ef58af26d
    org.h2.mvstore.cache.CacheLongKeyLIRS.Configab6a58ffa39c6717
    org.h2.mvstore.cache.CacheLongKeyLIRS.Entry7e7768c4cf65b4d3
    org.h2.mvstore.cache.CacheLongKeyLIRS.Segmentf45e9bdce23b5c6a
    org.h2.mvstore.cache.FilePathCache5cc88ecfa563617d
    org.h2.mvstore.db.LobStorageMapeee0296b34855abd
    org.h2.mvstore.db.LobStorageMap.BlobMeta.Type56a8bacb3e75d3c8
    org.h2.mvstore.db.LobStorageMap.BlobReference.Type9792efaa202c63aa
    org.h2.mvstore.db.MVDelegateIndex75a01b645f8a059b
    org.h2.mvstore.db.MVIndex30888e50fac82aa6
    org.h2.mvstore.db.MVPrimaryIndex4f32c68b3cab90d0
    org.h2.mvstore.db.MVPrimaryIndex.MVStoreCursorca89bfad0dcdffb4
    org.h2.mvstore.db.MVSecondaryIndex9c8fdcc12dea3c65
    org.h2.mvstore.db.MVSecondaryIndex.MVStoreCursor790db329af86c31a
    org.h2.mvstore.db.MVTablef4e542fe436bca97
    org.h2.mvstore.db.MVTable.TraceLockEvent2c65ff40346dd416
    org.h2.mvstore.db.NullValueDataType75887b246893f2df
    org.h2.mvstore.db.RowDataType415fc270aba4597d
    org.h2.mvstore.db.RowDataType.Factory61377fce7824577e
    org.h2.mvstore.db.Store9aa6802d26be5c1b
    org.h2.mvstore.db.ValueDataTypeddc57cbd4a05c876
    org.h2.mvstore.db.ValueDataType.Factory03156b0134bc4c6d
    org.h2.mvstore.tx.CommitDecisionMakerae621b8defbb83c6
    org.h2.mvstore.tx.Record254f69f363a486df
    org.h2.mvstore.tx.Record.Type13c88f7aecc610aa
    org.h2.mvstore.tx.Snapshot7825bd583d62dd0e
    org.h2.mvstore.tx.Transaction75932f57c40d96dc
    org.h2.mvstore.tx.TransactionMapa4908653e3ce2a56
    org.h2.mvstore.tx.TransactionMap.25cafec78b793e40f
    org.h2.mvstore.tx.TransactionMap.CommittedIterator22e94be11a21d3ac
    org.h2.mvstore.tx.TransactionMap.TMIterator80572a0d1caf43d1
    org.h2.mvstore.tx.TransactionMap.UncommittedIterator57853f3b6dbd4d83
    org.h2.mvstore.tx.TransactionMap.ValidationIterator75ff7710527bb148
    org.h2.mvstore.tx.TransactionStore5a88a95b9fb34fd5
    org.h2.mvstore.tx.TransactionStore.TxMapBuilder57e161cc52d96ce9
    org.h2.mvstore.tx.TransactionStore.TxMapBuilder.TMVMapf60431e734e35b1e
    org.h2.mvstore.tx.TxDecisionMaker85e444859e7357fd
    org.h2.mvstore.tx.TxDecisionMaker.LockDecisionMaker7ea1a788b9a585d7
    org.h2.mvstore.tx.TxDecisionMaker.PutIfAbsentDecisionMaker1259ec8cbd8d5f8c
    org.h2.mvstore.tx.VersionedBitSetcb03917e9303dd05
    org.h2.mvstore.tx.VersionedValueCommitted1f63835704f93873
    org.h2.mvstore.tx.VersionedValueTypee90353e002224186
    org.h2.mvstore.tx.VersionedValueType.Factoryb6f7352cd3439a49
    org.h2.mvstore.tx.VersionedValueUncommitted5871ba85ec76be11
    org.h2.mvstore.type.BasicDataType21b8242aa76782c6
    org.h2.mvstore.type.ByteArrayDataTypee926b9099661c292
    org.h2.mvstore.type.LongDataTypea03799f8c42a57d4
    org.h2.mvstore.type.MetaType1b436879079fb452
    org.h2.mvstore.type.ObjectDataType0579ed66fbb3a9d1
    org.h2.mvstore.type.ObjectDataType.AutoDetectDataTyped93d15cbc56bc2c0
    org.h2.mvstore.type.ObjectDataType.NullType9b8599d75350eb1b
    org.h2.mvstore.type.StringDataType4997f0a656a9b7fc
    org.h2.result.DefaultRowa9aef564d7a9fe69
    org.h2.result.FetchedResult2008c917d16b1cc3
    org.h2.result.LazyResult432ec92435f96622
    org.h2.result.LocalResult9de4335bee1fec76
    org.h2.result.ResultWithGeneratedKeys56dd718df0035863
    org.h2.result.Rowe004551f934d55a4
    org.h2.result.RowFactory301cd649330026d4
    org.h2.result.RowFactory.DefaultRowFactory5ab0b7f9f28099de
    org.h2.result.RowFactory.Holder41f1cc54c079c8d7
    org.h2.result.SearchRowd20e3d81378dc409
    org.h2.result.SimpleRowValueb7d88298dd608b52
    org.h2.result.SortOrder497173c7c397dac3
    org.h2.result.Sparseb44a8f52a128b90c
    org.h2.schema.FunctionAlias2e55d18c6db10dae
    org.h2.schema.FunctionAlias.JavaMethod85554b6f739981d5
    org.h2.schema.InformationSchema5e171fc1d52567fb
    org.h2.schema.MetaSchemac20f6c35b912334c
    org.h2.schema.Schemaf6454b28cba42d52
    org.h2.schema.SchemaObject36331feedf964ee6
    org.h2.schema.Sequence11a6133ecefc8aa4
    org.h2.schema.Sequence.Cycleb813b944f3b57fe2
    org.h2.schema.UserDefinedFunctionfbc4095ef115a3ff
    org.h2.security.SHA2561377489050965973
    org.h2.store.FileLockMethod0a5e8bccdf92e35d
    org.h2.store.fs.FilePath3e0e7373c74033d1
    org.h2.store.fs.FilePathWrapper87d875796781afee
    org.h2.store.fs.FileUtils060a02c4aa2ff96e
    org.h2.store.fs.async.FilePathAsync16b33a44b1b5c235
    org.h2.store.fs.disk.FilePathDisk9ad70347c3c53b77
    org.h2.store.fs.mem.FileMemData659f85e22c47f221
    org.h2.store.fs.mem.FileMemData.Cachec73e11e6de2d8b69
    org.h2.store.fs.mem.FilePathMem595d031b8b0ce4b0
    org.h2.store.fs.mem.FilePathMemLZFfd5d7643ab9b5c2f
    org.h2.store.fs.niomapped.FilePathNioMapped67f5832e83405fcb
    org.h2.store.fs.niomem.FilePathNioMemf67f0322fbf112b5
    org.h2.store.fs.niomem.FilePathNioMemLZF132bbce83f940aba
    org.h2.store.fs.retry.FilePathRetryOnInterrupt3d5668f3ef57ef12
    org.h2.store.fs.split.FilePathSplite0332cdbd53823fa
    org.h2.store.fs.zip.FilePathZip571394bd7911f1b6
    org.h2.table.Column500d643f327e8cd1
    org.h2.table.ColumnResolver4b2aaf94f471a049
    org.h2.table.DataChangeDeltaTablecfef12b2b35a029b
    org.h2.table.DataChangeDeltaTable.ResultOption73e3b4dbc5058973
    org.h2.table.IndexColumnc5ce22adf3f59bf5
    org.h2.table.Plan612dabb67cb62cc8
    org.h2.table.PlanItem2def26bf3b87d892
    org.h2.table.Tableed8d3f8796b74a1d
    org.h2.table.TableBasef9650065ef79d0f9
    org.h2.table.TableFilter1580e6e3d1837400
    org.h2.table.TableFilter.MapColumnsVisitor931d604ec2d424fa
    org.h2.table.TableType56836f7ea831c8ba
    org.h2.table.TableView637347b8559c044a
    org.h2.util.CloseWatcherd678edef8d7cbcbd
    org.h2.util.DateTimeUtilsacbb58d9000f572f
    org.h2.util.IOUtils06d92b9f3551d003
    org.h2.util.JdbcUtilsa7cfc728a8939a3e
    org.h2.util.MathUtilsbdf93c5de1c6efb3
    org.h2.util.MemoryEstimator7bd6b84998f4470b
    org.h2.util.ParserUtil398474903b80ed1c
    org.h2.util.Permutations1c369f58220c466d
    org.h2.util.SmallLRUCache63a9505e4a72e86e
    org.h2.util.StringUtilscf6054820621813b
    org.h2.util.TempFileDeletere68e70f0f01e6e19
    org.h2.util.TimeZoneProvidera9c2d46d5ee1d017
    org.h2.util.TimeZoneProvider.Simpled186373cefabcbb3
    org.h2.util.Utils2e2bbc2f742b19b6
    org.h2.value.CompareMode58b22695ed1120a6
    org.h2.value.DataTypebe6090f80ecffcac
    org.h2.value.ExtTypeInfo8a940de3624beb39
    org.h2.value.ExtTypeInfoNumeric3f914c76eef2be60
    org.h2.value.ExtTypeInfoRowdeaab78daddc8908
    org.h2.value.TypeInfo9580e5a8b9802809
    org.h2.value.Valuead2c19061ba2725c
    org.h2.value.ValueBigDecimalBase215bf47c3c8205bb
    org.h2.value.ValueBigint8ec2db6a6c646098
    org.h2.value.ValueBoolean4f6af7c87c5a47ef
    org.h2.value.ValueChar05adce8c2875c4f5
    org.h2.value.ValueInteger3d79aac636fd91c9
    org.h2.value.ValueNull51a52bf735d3f5c0
    org.h2.value.ValueNumeric0d8483876bb2fdff
    org.h2.value.ValueSmallintb08c69d5b0149bd7
    org.h2.value.ValueStringBaseeb1bace27aaac6ab
    org.h2.value.ValueTimestampTimeZonee96caed7fa609eb6
    org.h2.value.ValueToObjectConverter2eb11fd432392fbc
    org.h2.value.ValueToObjectConverter25f48ffd2c93ddbd9
    org.h2.value.ValueVarchara2d834fe0bd70399
    org.h2.value.VersionedValueb8b9a78f680ab7c6
    org.hamcrest.BaseDescription21c6ba794ab87610
    org.hamcrest.BaseMatcher7faa14942a96e4b2
    org.hamcrest.CoreMatchers8465d9ef370dff51
    org.hamcrest.Description.NullDescription5a43dc37728d10be
    org.hamcrest.MatcherAssertc15b1369a67a24c4
    org.hamcrest.Matchers69121f2930d4e465
    org.hamcrest.StringDescriptione3b43832c79f8ba4
    org.hamcrest.TypeSafeDiagnosingMatcher1a081671af395978
    org.hamcrest.TypeSafeMatcher74c291abe57e8c0d
    org.hamcrest.core.Every9f906a4b5a0c1c80
    org.hamcrest.core.Isc0cec33b7e0687d7
    org.hamcrest.core.IsEqual7f239f8b7d653f00
    org.hamcrest.core.IsNot881c8bcc9837f289
    org.hamcrest.core.IsNulld5ac87febb5f457f
    org.hamcrest.core.StringContainsbedae5a2afe9c1ed
    org.hamcrest.core.SubstringMatcher8809d380c24f9943
    org.hamcrest.internal.ReflectiveTypeFinderaba3c47e262d4b21
    org.joda.time.Durationab035c4fd50348ec
    org.joda.time.base.AbstractDurationce6c9d491d10bac1
    org.joda.time.base.BaseDuration9b99e8fd56239c81
    org.joda.time.field.FieldUtilsba306cdd0c308127
    org.json.JSONbaec6cdb200e359d
    org.json.JSONArray6b86c0cea058a8d1
    org.json.JSONObjectab674655a5f57b72
    org.json.JSONObject.18c249464b0673518
    org.json.JSONTokenerfc4574aa57cb5d24
    org.junit.Asserteda6db924019425b
    org.junit.Assumea0bac2e5a81f9b21
    org.junit.AssumptionViolatedException9629287966a5e9bd
    org.junit.internal.AssumptionViolatedException1ca480a1e8698dd8
    org.junit.internal.Checks5f543b0bb87b92da
    org.junit.internal.ComparisonCriteriaeb4930662485358d
    org.junit.internal.ComparisonCriteria.1078c309755193425
    org.junit.internal.ExactComparisonCriteriab46e382b993e25ce
    org.junit.internal.MethodSortera26607ae067f7352
    org.junit.internal.MethodSorter.1d3997b4bdb7889c1
    org.junit.internal.MethodSorter.2c8e6351cbf098013
    org.junit.internal.Throwables4302b5e924e77a8f
    org.junit.internal.builders.AllDefaultPossibilitiesBuilder4f18a1d7932cb8ab
    org.junit.internal.builders.AnnotatedBuilder0faf353d180c9332
    org.junit.internal.builders.IgnoredBuildere152f333c53967a6
    org.junit.internal.builders.IgnoredClassRunner03bb45d9edb4af51
    org.junit.internal.builders.JUnit3Builder4a2cc8e608e1275e
    org.junit.internal.builders.JUnit4Builderf2e00a3e1fc23005
    org.junit.internal.builders.SuiteMethodBuilder1df136431e07e393
    org.junit.internal.requests.ClassRequest47dbc61675e5a92e
    org.junit.internal.requests.ClassRequest.CustomAllDefaultPossibilitiesBuilderea1c269d9656f543
    org.junit.internal.requests.ClassRequest.CustomSuiteMethodBuilder03d01020b1c503c7
    org.junit.internal.requests.MemoizingRequest1e70801476dbab8f
    org.junit.internal.runners.model.EachTestNotifier077481995383e000
    org.junit.internal.runners.model.ReflectiveCallabled591724635588bcb
    org.junit.internal.runners.rules.RuleMemberValidator95b5ee2068ec6875
    org.junit.internal.runners.rules.RuleMemberValidator.Builderf24845fa6fd065af
    org.junit.internal.runners.rules.RuleMemberValidator.DeclaringClassMustBePublic1de994463c748d89
    org.junit.internal.runners.rules.RuleMemberValidator.FieldMustBeARulee24e9f59de6fe5b7
    org.junit.internal.runners.rules.RuleMemberValidator.FieldMustBeATestRule690823bd2992f52e
    org.junit.internal.runners.rules.RuleMemberValidator.MemberMustBeNonStaticOrAlsoClassRule1e703fb3e7f4e533
    org.junit.internal.runners.rules.RuleMemberValidator.MemberMustBePublic806c174eb921b478
    org.junit.internal.runners.rules.RuleMemberValidator.MemberMustBeStaticac28a03dd36b2b5a
    org.junit.internal.runners.rules.RuleMemberValidator.MethodMustBeARule88ea4a2237de2b8b
    org.junit.internal.runners.rules.RuleMemberValidator.MethodMustBeATestRule9f4dd18a26005c18
    org.junit.internal.runners.statements.ExpectException943171ebab48b749
    org.junit.internal.runners.statements.InvokeMethod05a7aa636afa2c39
    org.junit.internal.runners.statements.RunAfters14a998d07920cd7b
    org.junit.internal.runners.statements.RunBeforesef86a61ca3ab20ba
    org.junit.rules.RuleChain85495008a7595363
    org.junit.rules.RunRules89f6dee1be8fdd02
    org.junit.runner.Description1d6f7ddbbf223f9a
    org.junit.runner.Request214d9ade1c7dc38d
    org.junit.runner.Resultecf6c1c04298ff7d
    org.junit.runner.Result.Listenercf649a4ffbe55db9
    org.junit.runner.Runnerf5abacc70e2e08a4
    org.junit.runner.notification.Failureb4a9d161bd8d5912
    org.junit.runner.notification.RunListener69d2c783b42f6720
    org.junit.runner.notification.RunNotifierf6313076e2224ebb
    org.junit.runner.notification.RunNotifier.1e31025c12b4dbdee
    org.junit.runner.notification.RunNotifier.24c7314c6d595dc3e
    org.junit.runner.notification.RunNotifier.3df2bada5cb3794f3
    org.junit.runner.notification.RunNotifier.4fbdd84204c215de7
    org.junit.runner.notification.RunNotifier.5f62dc396b601f8bd
    org.junit.runner.notification.RunNotifier.7cdc931baa9785e66
    org.junit.runner.notification.RunNotifier.8dc2744829f175748
    org.junit.runner.notification.RunNotifier.9c3c3d54b8ed47ee1
    org.junit.runner.notification.RunNotifier.SafeNotifier0b43c10299733bfb
    org.junit.runner.notification.SynchronizedRunListener2b59d5cb3b105225
    org.junit.runners.BlockJUnit4ClassRunner95752fb34ff12f3f
    org.junit.runners.BlockJUnit4ClassRunner.1d0f63145230a5f42
    org.junit.runners.BlockJUnit4ClassRunner.2f93eace695ddd30e
    org.junit.runners.BlockJUnit4ClassRunner.RuleCollector9c768e710e39c989
    org.junit.runners.JUnit46d26e2305347fe01
    org.junit.runners.ParentRunner335ee90b10f96ea1
    org.junit.runners.ParentRunner.1ecc6961e8bc209c4
    org.junit.runners.ParentRunner.2c5cb913a629ec4c8
    org.junit.runners.ParentRunner.320bad8188aebc0f2
    org.junit.runners.ParentRunner.480476dbdcb8d52cc
    org.junit.runners.ParentRunner.ClassRuleCollector26f7fb338afcd13b
    org.junit.runners.RuleContainerd44c3ba6dc65af53
    org.junit.runners.RuleContainer.157bbc73f6f47763b
    org.junit.runners.model.FrameworkField2fe27c284e7d39f4
    org.junit.runners.model.FrameworkMemberbfd059486f267475
    org.junit.runners.model.FrameworkMethodf293b82d5aa86323
    org.junit.runners.model.FrameworkMethod.18fd5e02769c0e0c2
    org.junit.runners.model.MultipleFailureException187a72c573c34bac
    org.junit.runners.model.RunnerBuilder585cad2d320dc86e
    org.junit.runners.model.Statement9a75aa5de27bf4d5
    org.junit.runners.model.TestClass7e71209792391ee8
    org.junit.runners.model.TestClass.FieldComparator1b96cd3d5c4aeb07
    org.junit.runners.model.TestClass.MethodComparator0369eb29eb04248a
    org.junit.validator.AnnotationValidatorFactorye1e5570798173ab9
    org.junit.validator.AnnotationsValidator6cbe8454c9a93bb8
    org.junit.validator.AnnotationsValidator.AnnotatableValidatord211a963f22be103
    org.junit.validator.AnnotationsValidator.ClassValidator1b463c4e6642e880
    org.junit.validator.AnnotationsValidator.FieldValidator64068b954dc56a31
    org.junit.validator.AnnotationsValidator.MethodValidatorf16b57f17c787036
    org.junit.validator.PublicClassValidator3bac248cf06b18e4
    org.mockito.Answers7bb49d321e73bbc5
    org.mockito.Mockito577272f0518bf2bf
    org.mockito.codegen.HttpURLConnection.MockitoMock.qqRKgXOy44f7c0a1ca14ea05
    org.mockito.codegen.HttpURLConnection.MockitoMock.qqRKgXOy.auxiliary.wNXtl1ls23bb2692a3c48b2a
    org.mockito.configuration.DefaultMockitoConfiguration7c1c365c15c2133e
    org.mockito.internal.MockitoCore8c1dee29fb0da68b
    org.mockito.internal.configuration.CaptorAnnotationProcessorb1d3667699da5bde
    org.mockito.internal.configuration.ClassPathLoader1837784d8946effa
    org.mockito.internal.configuration.DefaultDoNotMockEnforcerc193dbfbfd7e7112
    org.mockito.internal.configuration.GlobalConfiguration5d2c645125c6e76f
    org.mockito.internal.configuration.IndependentAnnotationEngine6712157121b4c009
    org.mockito.internal.configuration.InjectingAnnotationEngine093bcb2236e9e096
    org.mockito.internal.configuration.MockAnnotationProcessor63f2cd0aa6f4adfe
    org.mockito.internal.configuration.SpyAnnotationEngineb0201f8ea6674009
    org.mockito.internal.configuration.plugins.DefaultMockitoPluginsb56656ae000198c7
    org.mockito.internal.configuration.plugins.DefaultPluginSwitch973f142b836667e1
    org.mockito.internal.configuration.plugins.PluginFinderd946fdf7c3f2c58b
    org.mockito.internal.configuration.plugins.PluginInitializerfda3656b50f9d2f1
    org.mockito.internal.configuration.plugins.PluginLoadera0b8a7c6baea530e
    org.mockito.internal.configuration.plugins.PluginRegistryef9e70f0651edcfb
    org.mockito.internal.configuration.plugins.Pluginsff53f63a8240eb6e
    org.mockito.internal.creation.DelegatingMethod7ea1353e5c77b5f3
    org.mockito.internal.creation.MockSettingsImplef96156d4aa39063
    org.mockito.internal.creation.SuspendMethoddc8e823dfe533d87
    org.mockito.internal.creation.bytebuddy.ByteBuddyCrossClassLoaderSerializationSupport91ac516637b8c4ee
    org.mockito.internal.creation.bytebuddy.ByteBuddyMockMakere18344ca184c75a1
    org.mockito.internal.creation.bytebuddy.BytecodeGenerator896014d879c42ec9
    org.mockito.internal.creation.bytebuddy.MockFeatures161a6ae9389d4da3
    org.mockito.internal.creation.bytebuddy.MockMethodInterceptor0b02a477841f06a5
    org.mockito.internal.creation.bytebuddy.MockMethodInterceptor.DispatcherDefaultingToRealMethodeb121594c82e0f72
    org.mockito.internal.creation.bytebuddy.ModuleHandler77380dd282d3eb30
    org.mockito.internal.creation.bytebuddy.ModuleHandler.ModuleSystemFoundd8515816e294707d
    org.mockito.internal.creation.bytebuddy.ModuleHandler.NoModuleSystemFound48ae3962b292be8d
    org.mockito.internal.creation.bytebuddy.SubclassByteBuddyMockMaker11d36e9ecc8c0605
    org.mockito.internal.creation.bytebuddy.SubclassByteBuddyMockMaker.18361f13ee7b2c0cd
    org.mockito.internal.creation.bytebuddy.SubclassBytecodeGeneratorb13aa2a3c3f5de88
    org.mockito.internal.creation.bytebuddy.SubclassInjectionLoader47ea8dba5b15c796
    org.mockito.internal.creation.bytebuddy.SubclassInjectionLoader.WithReflection55a84d6cf8f318a1
    org.mockito.internal.creation.bytebuddy.TypeCachingBytecodeGenerator123a98feabc81a7a
    org.mockito.internal.creation.bytebuddy.TypeCachingBytecodeGenerator.MockitoMockKey8fb34c2e10b7db99
    org.mockito.internal.creation.bytebuddy.TypeSupport652949fe1e4bb215
    org.mockito.internal.creation.instance.DefaultInstantiatorProvider3900ee0969504a34
    org.mockito.internal.creation.instance.ObjenesisInstantiatore451a21eadbc4d30
    org.mockito.internal.creation.settings.CreationSettingsc4b00e979fa0a182
    org.mockito.internal.debugging.Java8LocationImpl9794ab1e8c402388
    org.mockito.internal.debugging.LocationFactory28d49edcf5091319
    org.mockito.internal.debugging.LocationFactory.Java8LocationFactoryfcd241e0d9477e2b
    org.mockito.internal.exceptions.stacktrace.ConditionalStackTraceFilterfa604b96ed91ae2e
    org.mockito.internal.exceptions.stacktrace.DefaultStackTraceCleaner370150513bd990b0
    org.mockito.internal.exceptions.stacktrace.DefaultStackTraceCleanerProvider475c82ec8ba01c75
    org.mockito.internal.exceptions.stacktrace.StackTraceFilter3df073dc72decbe3
    org.mockito.internal.handler.InvocationNotifierHandler7c138f78143ab433
    org.mockito.internal.handler.MockHandlerFactory236482acbbebaf4a
    org.mockito.internal.handler.MockHandlerImpl973b60d05d2d4a4d
    org.mockito.internal.handler.NullResultGuardian40a1d637e9eadd05
    org.mockito.internal.invocation.ArgumentsProcessord50039fd637b3496
    org.mockito.internal.invocation.DefaultInvocationFactory06ea8a896a1550ba
    org.mockito.internal.invocation.InterceptedInvocation40a1bce4be9e6523
    org.mockito.internal.invocation.InterceptedInvocation.11a1152b98b0c7d86
    org.mockito.internal.invocation.InvocationMatcher0f3f05080ade9bf3
    org.mockito.internal.invocation.InvocationMatcher.180b88eded9ee9335
    org.mockito.internal.invocation.MatcherApplicationStrategy60f4d78d262883d3
    org.mockito.internal.invocation.MatchersBinderb39b9426c9814ac7
    org.mockito.internal.invocation.RealMethod.FromBehavior3606745ce75bc7b7
    org.mockito.internal.invocation.RealMethod.FromCallable91b88c5e1e6b856f
    org.mockito.internal.invocation.RealMethod.FromCallable.1851ae10acd2d90b9
    org.mockito.internal.invocation.StubInfoImpl1314bab3c1422857
    org.mockito.internal.invocation.TypeSafeMatching0d588952c2946cca
    org.mockito.internal.invocation.mockref.MockWeakReferenceac456a2a5b693d6e
    org.mockito.internal.listeners.StubbingLookupNotifier6b94cdf6e74e7282
    org.mockito.internal.matchers.Equalitye1d16aba206ff315
    org.mockito.internal.matchers.Equalscf919842a27db421
    org.mockito.internal.progress.ArgumentMatcherStorageImpl83a3e5fcf460cd8d
    org.mockito.internal.progress.MockingProgressImpl92818897164b80b6
    org.mockito.internal.progress.MockingProgressImpl.1a1ad00aef40918d3
    org.mockito.internal.progress.SequenceNumberfd2449d941ed721b
    org.mockito.internal.progress.ThreadSafeMockingProgress5ef9d6f1a875dc18
    org.mockito.internal.progress.ThreadSafeMockingProgress.11c85bd989b9441aa
    org.mockito.internal.stubbing.BaseStubbing0fd68c747fb3e1ac
    org.mockito.internal.stubbing.ConsecutiveStubbing1b3fea0e4598e3dc
    org.mockito.internal.stubbing.DoAnswerStyleStubbingf2057cd0aee1a50b
    org.mockito.internal.stubbing.InvocationContainerImpl70d6f02b67d57b4f
    org.mockito.internal.stubbing.OngoingStubbingImpl646db189ef95b765
    org.mockito.internal.stubbing.StubbedInvocationMatcher738da3903cdefa65
    org.mockito.internal.stubbing.answers.AbstractThrowsException79cb6f21f189a6a5
    org.mockito.internal.stubbing.answers.CallsRealMethods16da2f316c946fec
    org.mockito.internal.stubbing.answers.DefaultAnswerValidatorde0c324c57207f3c
    org.mockito.internal.stubbing.answers.InvocationInfo558393abbeee5acd
    org.mockito.internal.stubbing.answers.Returnsb865c001022cfefe
    org.mockito.internal.stubbing.answers.ThrowsExceptionForClassType97c5030cfe9fdc05
    org.mockito.internal.stubbing.defaultanswers.GloballyConfiguredAnswerf308e3faf16f6212
    org.mockito.internal.stubbing.defaultanswers.ReturnsDeepStubs7a1b5ff44181d6b8
    org.mockito.internal.stubbing.defaultanswers.ReturnsEmptyValuesfb54ce54650adcb6
    org.mockito.internal.stubbing.defaultanswers.ReturnsMocksf923109370288432
    org.mockito.internal.stubbing.defaultanswers.ReturnsMoreEmptyValues4a4f9f45d874e56f
    org.mockito.internal.stubbing.defaultanswers.ReturnsSmartNulls56e4359834584989
    org.mockito.internal.stubbing.defaultanswers.TriesToReturnSelf2df789f77987f023
    org.mockito.internal.util.Checksc6a1d20be0e11d77
    org.mockito.internal.util.ConsoleMockitoLoggerb50468c7ba4abdba
    org.mockito.internal.util.KotlinInlineClassUtil0581c028953ad812
    org.mockito.internal.util.MockCreationValidatorb073c74d6aea57f3
    org.mockito.internal.util.MockNameImplc374206ea5426e18
    org.mockito.internal.util.MockUtild287b066371cb395
    org.mockito.internal.util.ObjectMethodsGuru2e0e0e3f520fd2eb
    org.mockito.internal.util.Primitives3126a7777504288b
    org.mockito.internal.util.StringUtilfc180f2e2cfb19c5
    org.mockito.internal.util.collections.Iterablesf2f271f84160edef
    org.mockito.internal.util.reflection.GenericMetadataSupport85227a69a82c938b
    org.mockito.internal.util.reflection.GenericMetadataSupport.FromClassGenericMetadataSupport356b7028b146ffda
    org.mockito.internal.util.reflection.GenericMetadataSupport.NotGenericReturnTypeSupportf614172becdb4957
    org.mockito.internal.util.reflection.GenericMetadataSupport.ParameterizedReturnTypede8799dae02553cd
    org.mockito.internal.util.reflection.ReflectionMemberAccessor5b659ecadce64e6d
    org.mockito.internal.verification.DefaultRegisteredInvocations2c81cbe8de7c014f
    org.mockito.mock.SerializableMode35d1981ec862bf72
    org.objenesis.ObjenesisBase0c1d2fd83029257f
    org.objenesis.ObjenesisStdf35c83a75caea811
    org.objenesis.instantiator.sun.SunReflectionFactoryHelperd17e7b3403696605
    org.objenesis.instantiator.sun.SunReflectionFactoryInstantiator6156947e7d7c507c
    org.objenesis.strategy.BaseInstantiatorStrategyb0aaa6460452f5ce
    org.objenesis.strategy.PlatformDescriptionc6456f671febfd7c
    org.objenesis.strategy.StdInstantiatorStrategyabae05ba56ea35a6
    org.owasp.dependencycheck.AnalysisTaske7c73a60a930646f
    org.owasp.dependencycheck.AnalysisTaskTest89eade1da5d9c624
    org.owasp.dependencycheck.AnalysisTaskTest.16d9643c2caf2a5dd
    org.owasp.dependencycheck.AnalysisTaskTest.2281a9187aae2eb37
    org.owasp.dependencycheck.AnalysisTaskTest.3f6f3c813b5a09988
    org.owasp.dependencycheck.AnalysisTaskTest.4703218ee9965b4f2
    org.owasp.dependencycheck.AnalysisTaskTest.5de5435e8df37bbb7
    org.owasp.dependencycheck.AnalysisTaskTest.613e032b376dc6ca1
    org.owasp.dependencycheck.BaseDBTestCase101fc405e6360a86
    org.owasp.dependencycheck.BaseTestbc884ee1d021a45f
    org.owasp.dependencycheck.Engine9eb4069cf91f3cee
    org.owasp.dependencycheck.Engine.Mode3f6a6fa06c5db5ef
    org.owasp.dependencycheck.EngineITc4971cf8c55135b2
    org.owasp.dependencycheck.EngineIT.160710c362970f7fc
    org.owasp.dependencycheck.EngineIT.2f7050c8b21daa3fb
    org.owasp.dependencycheck.EngineTeste8157382642cf37e
    org.owasp.dependencycheck.agent.DependencyCheckScanAgentde6949324a1aad84
    org.owasp.dependencycheck.agent.DependencyCheckScanAgentIT9a8ebda772823636
    org.owasp.dependencycheck.analyzer.AbstractAnalyzer53c2c707332e447f
    org.owasp.dependencycheck.analyzer.AbstractDependencyComparingAnalyzere5687426d9a0f66f
    org.owasp.dependencycheck.analyzer.AbstractFileTypeAnalyzercb75e41db9829ee7
    org.owasp.dependencycheck.analyzer.AbstractFileTypeAnalyzerTestf1ef218ba8d30bf1
    org.owasp.dependencycheck.analyzer.AbstractNpmAnalyzerf1f4584a14215949
    org.owasp.dependencycheck.analyzer.AbstractNpmAnalyzerIT9da620970c1a06b3
    org.owasp.dependencycheck.analyzer.AbstractSuppressionAnalyzerfac2a53fa568132a
    org.owasp.dependencycheck.analyzer.AbstractSuppressionAnalyzerTestf77fe09dfeb09037
    org.owasp.dependencycheck.analyzer.AbstractSuppressionAnalyzerTest.AbstractSuppressionAnalyzerImpl1f3aced8ac8ae300
    org.owasp.dependencycheck.analyzer.AnalysisPhase8a2dd7e79126521a
    org.owasp.dependencycheck.analyzer.AnalyzerServicec83777cdc46bc2d2
    org.owasp.dependencycheck.analyzer.AnalyzerServiceTestfcbff94e2034c6d4
    org.owasp.dependencycheck.analyzer.ArchiveAnalyzerc4afb05e99324933
    org.owasp.dependencycheck.analyzer.ArchiveAnalyzerITc787d05ebdc32d00
    org.owasp.dependencycheck.analyzer.ArchiveAnalyzerTest0736a383027ecc97
    org.owasp.dependencycheck.analyzer.ArtifactoryAnalyzeraba5274b7a2d3c9c
    org.owasp.dependencycheck.analyzer.AssemblyAnalyzerb4f040a2e12ea447
    org.owasp.dependencycheck.analyzer.AssemblyAnalyzerTestf3c7345efb99aa67
    org.owasp.dependencycheck.analyzer.AutoconfAnalyzera61c7303a707d079
    org.owasp.dependencycheck.analyzer.AutoconfAnalyzerTest348816efb6723e32
    org.owasp.dependencycheck.analyzer.CMakeAnalyzer466e5b6cfb32f8a0
    org.owasp.dependencycheck.analyzer.CMakeAnalyzerTestc0778b66e602cd85
    org.owasp.dependencycheck.analyzer.CPEAnalyzer8a5ab88772203ff1
    org.owasp.dependencycheck.analyzer.CPEAnalyzer.IdentifierConfidence68c0332006ac0f99
    org.owasp.dependencycheck.analyzer.CPEAnalyzer.IdentifierMatch92606f5613402d4c
    org.owasp.dependencycheck.analyzer.CPEAnalyzerIT3553cb036f73c538
    org.owasp.dependencycheck.analyzer.CPEAnalyzerTest8c18e0d491a6ab78
    org.owasp.dependencycheck.analyzer.CentralAnalyzer8510025c8aaa3199
    org.owasp.dependencycheck.analyzer.CentralAnalyzerTest0a6b96be8e6692e8
    org.owasp.dependencycheck.analyzer.CocoaPodsAnalyzer109d2f01d2ded1e1
    org.owasp.dependencycheck.analyzer.ComposerLockAnalyzer9d4ee64cf0474215
    org.owasp.dependencycheck.analyzer.ComposerLockAnalyzerTestfd03d9b1cd2bddca
    org.owasp.dependencycheck.analyzer.CpeSuppressionAnalyzer0e15da288e35d32d
    org.owasp.dependencycheck.analyzer.CpeSuppressionAnalyzerIT85afd58313114de6
    org.owasp.dependencycheck.analyzer.DartAnalyzeraa59897e89b30f0b
    org.owasp.dependencycheck.analyzer.DartAnalyzerTestd842ee79e2e7efe7
    org.owasp.dependencycheck.analyzer.DependencyBundlingAnalyzer07c8f954686b5590
    org.owasp.dependencycheck.analyzer.DependencyBundlingAnalyzerIT5ea9099e6f8ab2b7
    org.owasp.dependencycheck.analyzer.DependencyBundlingAnalyzerTest0634d8de940385ca
    org.owasp.dependencycheck.analyzer.DependencyBundlingAnalyzerTest.10e95ab05f314abda
    org.owasp.dependencycheck.analyzer.DependencyCheckPropertiesTest3cc6cce94e99cdb2
    org.owasp.dependencycheck.analyzer.DependencyMergingAnalyzer5b61b9ea1c73787a
    org.owasp.dependencycheck.analyzer.DependencyMergingAnalyzerTest83300e7eb1c8c9d8
    org.owasp.dependencycheck.analyzer.ElixirMixAuditAnalyzerdc7b13faacac2682
    org.owasp.dependencycheck.analyzer.ElixirMixAuditAnalyzerIT68d0cb66ba88a68c
    org.owasp.dependencycheck.analyzer.ElixirMixAuditAnalyzerTest35096b95334009c6
    org.owasp.dependencycheck.analyzer.FalsePositiveAnalyzer5d1e642680217c34
    org.owasp.dependencycheck.analyzer.FalsePositiveAnalyzerTestdc158d3b84af5f6a
    org.owasp.dependencycheck.analyzer.FileNameAnalyzer6bd5616bd35b083c
    org.owasp.dependencycheck.analyzer.FileNameAnalyzerTestad435f5c6fa334ec
    org.owasp.dependencycheck.analyzer.GolangDepAnalyzerfecafc9c62047e06
    org.owasp.dependencycheck.analyzer.GolangDepAnalyzerTest7610fd0ff91fb5bd
    org.owasp.dependencycheck.analyzer.GolangModAnalyzerb227db299327983e
    org.owasp.dependencycheck.analyzer.GolangModAnalyzerTest4d8f8069be13bbda
    org.owasp.dependencycheck.analyzer.HintAnalyzer06857ac00a5b69bc
    org.owasp.dependencycheck.analyzer.HintAnalyzerTest2d97b91707162a91
    org.owasp.dependencycheck.analyzer.JarAnalyzerd0852a5718eb3822
    org.owasp.dependencycheck.analyzer.JarAnalyzer.ClassNameInformationf7a6b8b47c825c6a
    org.owasp.dependencycheck.analyzer.JarAnalyzerTesta1b6366464bb2414
    org.owasp.dependencycheck.analyzer.KnownExploitedVulnerabilityAnalyzer3af076909f651f0b
    org.owasp.dependencycheck.analyzer.LibmanAnalyzerb71bb3bbd512db80
    org.owasp.dependencycheck.analyzer.LibmanAnalyzerTest34951e10720e5f91
    org.owasp.dependencycheck.analyzer.MSBuildProjectAnalyzer0c1951f7a7176b6a
    org.owasp.dependencycheck.analyzer.MSBuildProjectAnalyzerTest592d53c80fabf54d
    org.owasp.dependencycheck.analyzer.NexusAnalyzer0e8b9d66c36140bb
    org.owasp.dependencycheck.analyzer.NodeAuditAnalyzer9b08dc840a569526
    org.owasp.dependencycheck.analyzer.NodeAuditAnalyzerITe6d6c5907f91c673
    org.owasp.dependencycheck.analyzer.NodeAuditAnalyzerTest9aa8ae5d0edc06ab
    org.owasp.dependencycheck.analyzer.NodePackageAnalyzer4f9c2855819b2a43
    org.owasp.dependencycheck.analyzer.NodePackageAnalyzerTest69b93698261e0f8f
    org.owasp.dependencycheck.analyzer.NpmCPEAnalyzerc3b313265c0390a9
    org.owasp.dependencycheck.analyzer.NpmCPEAnalyzerITcbe11ea70f8cde77
    org.owasp.dependencycheck.analyzer.NpmCPEAnalyzerTestd87e9a1dda06d6ea
    org.owasp.dependencycheck.analyzer.NugetconfAnalyzerd7864bd059634c88
    org.owasp.dependencycheck.analyzer.NugetconfAnalyzerTeste482a9a037de6593
    org.owasp.dependencycheck.analyzer.NuspecAnalyzer51b5c3840fe8ede7
    org.owasp.dependencycheck.analyzer.NuspecAnalyzerTest210319361c4a5d31
    org.owasp.dependencycheck.analyzer.NvdCveAnalyzer462c94a163d9bd80
    org.owasp.dependencycheck.analyzer.OpenSSLAnalyzerc05ed6ced1a77cd1
    org.owasp.dependencycheck.analyzer.OpenSSLAnalyzerTest30c71ff552139069
    org.owasp.dependencycheck.analyzer.OssIndexAnalyzere0ec285a8210cefd
    org.owasp.dependencycheck.analyzer.OssIndexAnalyzerTest2a1af0aad42082e3
    org.owasp.dependencycheck.analyzer.OssIndexAnalyzerTest.OssIndexAnalyzerThrowing403892d5d4c934b0ec1
    org.owasp.dependencycheck.analyzer.OssIndexAnalyzerTest.OssIndexAnalyzerThrowing502a20177fab637423c
    org.owasp.dependencycheck.analyzer.OssIndexAnalyzerTest.OssIndexAnalyzerThrowingSocketTimeout534bf3221f124591
    org.owasp.dependencycheck.analyzer.OssIndexAnalyzerTest.OssIndexClient403a39fc4c80de3a4a1
    org.owasp.dependencycheck.analyzer.OssIndexAnalyzerTest.OssIndexClient5022736a33e1336fbd6
    org.owasp.dependencycheck.analyzer.OssIndexAnalyzerTest.OssIndexClientSocketTimeoutExceptioncf6847d04e7b1a4b
    org.owasp.dependencycheck.analyzer.OssIndexAnalyzerTest.SproutOssIndexAnalyzerc2ea0882d203cec4
    org.owasp.dependencycheck.analyzer.PEAnalyzerf1cf15bf017a345f
    org.owasp.dependencycheck.analyzer.PEAnalyzerTest6ae3e3eded8ff6fd
    org.owasp.dependencycheck.analyzer.PerlCpanfileAnalyzerf460b2c9a36956f5
    org.owasp.dependencycheck.analyzer.PerlCpanfileAnalyzerTesta84fed019278d828
    org.owasp.dependencycheck.analyzer.PinnedMavenInstallAnalyzerbabb05304288744c
    org.owasp.dependencycheck.analyzer.PinnedMavenInstallAnalyzer.DependencyTree3678a3638af6efe9
    org.owasp.dependencycheck.analyzer.PinnedMavenInstallAnalyzer.InstallFile9694784df554fb28
    org.owasp.dependencycheck.analyzer.PinnedMavenInstallAnalyzer.MavenDependency8b0b0e87333ee828
    org.owasp.dependencycheck.analyzer.PinnedMavenInstallAnalyzerTest7abb95220d771386
    org.owasp.dependencycheck.analyzer.PipAnalyzer4eb3e3df5fc1d9eb
    org.owasp.dependencycheck.analyzer.PipAnalyzerITe8e88c17fc0670db
    org.owasp.dependencycheck.analyzer.PipAnalyzerTest9ab6e6463aaa0488
    org.owasp.dependencycheck.analyzer.PipfileAnalyzer94f81965a1d6f8bb
    org.owasp.dependencycheck.analyzer.PipfileAnalyzerTestc4c5016cdd69ceef
    org.owasp.dependencycheck.analyzer.PipfilelockAnalyzer090000f0d80906ed
    org.owasp.dependencycheck.analyzer.PipfilelockAnalyzerTest1c403e9fd463f1ff
    org.owasp.dependencycheck.analyzer.PnpmAuditAnalyzer8a0332fc7129d211
    org.owasp.dependencycheck.analyzer.PnpmAuditAnalyzerTestcd2e6a11894cd087
    org.owasp.dependencycheck.analyzer.PoetryAnalyzerfd3b1fd402042898
    org.owasp.dependencycheck.analyzer.PoetryAnalyzerTestad043c5d11cc2008
    org.owasp.dependencycheck.analyzer.PythonDistributionAnalyzer48872d7099105b81
    org.owasp.dependencycheck.analyzer.PythonDistributionAnalyzerTest8f1ae407f6d3a618
    org.owasp.dependencycheck.analyzer.PythonPackageAnalyzer9e40fde1c8c573e3
    org.owasp.dependencycheck.analyzer.PythonPackageAnalyzerTestc840f2ec0c363bd8
    org.owasp.dependencycheck.analyzer.RetireJsAnalyzerbb886f09d58624f9
    org.owasp.dependencycheck.analyzer.RetireJsAnalyzerFiltersTest48028190f5701fe0
    org.owasp.dependencycheck.analyzer.RetireJsAnalyzerIT21f2592a160d0d17
    org.owasp.dependencycheck.analyzer.RubyBundleAuditAnalyzere2fc7cdb41f163c8
    org.owasp.dependencycheck.analyzer.RubyBundleAuditAnalyzerITb1b18b9e1aaf2e5a
    org.owasp.dependencycheck.analyzer.RubyBundlerAnalyzer5d486951fecfd610
    org.owasp.dependencycheck.analyzer.RubyBundlerAnalyzerTest5a244e8344f6c28b
    org.owasp.dependencycheck.analyzer.RubyGemspecAnalyzera1eb61175c0b726b
    org.owasp.dependencycheck.analyzer.RubyGemspecAnalyzerTest443cbc355a27ef49
    org.owasp.dependencycheck.analyzer.SwiftAnalyzersTest562802e5b85952cf
    org.owasp.dependencycheck.analyzer.SwiftPackageManagerAnalyzer2b236be3ad4379b4
    org.owasp.dependencycheck.analyzer.SwiftPackageResolvedAnalyzer602846b272882529
    org.owasp.dependencycheck.analyzer.UnusedSuppressionRuleAnalyzer96a130c36e2feb7c
    org.owasp.dependencycheck.analyzer.VersionFilterAnalyzerbccf328c51e5abce
    org.owasp.dependencycheck.analyzer.VersionFilterAnalyzerTest31817fcb855813d7
    org.owasp.dependencycheck.analyzer.VulnerabilitySuppressionAnalyzer120f6770a484b62e
    org.owasp.dependencycheck.analyzer.VulnerabilitySuppressionAnalyzerIT92c1286880650149
    org.owasp.dependencycheck.analyzer.YarnAuditAnalyzer29123c83238a50f8
    org.owasp.dependencycheck.analyzer.YarnAuditAnalyzerIT0dd3cf3d7ea93a75
    org.owasp.dependencycheck.analyzer.YarnAuditAnalyzerTest187f2d0fb715a3a6
    org.owasp.dependencycheck.analyzer.exception.AnalysisExceptionc597afbf1059b7ca
    org.owasp.dependencycheck.data.artifactory.ArtifactorySearch12ce05625f28ea64
    org.owasp.dependencycheck.data.artifactory.ArtifactorySearchTest9936af6b5a8785ea
    org.owasp.dependencycheck.data.artifactory.ChecksumsImplaa276b01edd6dc3b
    org.owasp.dependencycheck.data.artifactory.FileImplb86ae79b057f4912
    org.owasp.dependencycheck.data.artifactory.ItemImpl54e438a01b02ea72
    org.owasp.dependencycheck.data.cache.DataCache45c535388c562524
    org.owasp.dependencycheck.data.cache.DataCacheFactory1f8c9b237297367c
    org.owasp.dependencycheck.data.cache.DataCacheFactory.CacheType137a3e5cbb2df174
    org.owasp.dependencycheck.data.cache.DataCacheFactoryTest1266f1a8050bbfb1
    org.owasp.dependencycheck.data.central.CentralSearchda4b36ece402a9ea
    org.owasp.dependencycheck.data.central.CentralSearch.MockitoMock.IGR12c0B4811a154daafdfae
    org.owasp.dependencycheck.data.central.CentralSearch.MockitoMock.IGR12c0B.auxiliary.WIevhb0J2ce135e094d12ccd
    org.owasp.dependencycheck.data.central.CentralSearchTestfb153fa1f113005d
    org.owasp.dependencycheck.data.composer.ComposerDependencyb34305815c6d8712
    org.owasp.dependencycheck.data.composer.ComposerException851da4bd788b953e
    org.owasp.dependencycheck.data.composer.ComposerLockParser23bc8e3d7e48eca1
    org.owasp.dependencycheck.data.composer.ComposerLockParserTestbd18ec52adb113aa
    org.owasp.dependencycheck.data.cpe.AbstractMemoryIndex2ed8bf08d002c7f0
    org.owasp.dependencycheck.data.cpe.CpeMemoryIndex90c84bb62b80575d
    org.owasp.dependencycheck.data.cpe.CpeMemoryIndexTestb986cbfaade60a01
    org.owasp.dependencycheck.data.cpe.IndexEntry21d883b53737f9ed
    org.owasp.dependencycheck.data.cpe.IndexEntryTestfab4a4a89db42b96
    org.owasp.dependencycheck.data.cpe.NpmCpeMemoryIndexe19e64e36ca1c862
    org.owasp.dependencycheck.data.cwe.CweDB4b200943564bdb3c
    org.owasp.dependencycheck.data.cwe.CweDBTestadf844327e3ace66
    org.owasp.dependencycheck.data.elixir.MixAuditJsonParser3f4632831a7a99ed
    org.owasp.dependencycheck.data.elixir.MixAuditJsonParserTest98ae73d34cdb114a
    org.owasp.dependencycheck.data.elixir.MixAuditResult4a2053233b584de4
    org.owasp.dependencycheck.data.golang.GoModDependency957e5e8cab14dfce
    org.owasp.dependencycheck.data.golang.GoModJsonParser8a37afdcf773a099
    org.owasp.dependencycheck.data.golang.GoModJsonParserTestba3d02b4a32415a3
    org.owasp.dependencycheck.data.knownexploited.json.KnownExploitedVulnerabilitiesSchemad546a111ceca8d0e
    org.owasp.dependencycheck.data.knownexploited.json.Vulnerabilityb34347081c0c84bd
    org.owasp.dependencycheck.data.lucene.AbstractTokenizingFilteref2bdf555ac30e13
    org.owasp.dependencycheck.data.lucene.AlphaNumericFilterd338a5925b823b3a
    org.owasp.dependencycheck.data.lucene.AlphaNumericFilterTest4776825c707cb824
    org.owasp.dependencycheck.data.lucene.AlphaNumericFilterTest.15f8c6b4e3dc2b3b5
    org.owasp.dependencycheck.data.lucene.AlphaNumericFilterTest.2127e0a6243318ac5
    org.owasp.dependencycheck.data.lucene.FieldAnalyzerTesta97e3c86485e824a
    org.owasp.dependencycheck.data.lucene.LuceneUtils3f465d0437852575
    org.owasp.dependencycheck.data.lucene.LuceneUtilsTestab4e65dec975334f
    org.owasp.dependencycheck.data.lucene.SearchFieldAnalyzer8c548705eb3be048
    org.owasp.dependencycheck.data.lucene.SearchFieldAnalyzerTeste88f5d918ecb1058
    org.owasp.dependencycheck.data.lucene.TokenPairConcatenatingFilter66727c35667a1e7f
    org.owasp.dependencycheck.data.lucene.TokenPairConcatenatingFilterTest775406fbed75bb86
    org.owasp.dependencycheck.data.lucene.TokenPairConcatenatingFilterTest.10f5d106ed2594a8e
    org.owasp.dependencycheck.data.lucene.UrlTokenizingFilter195de16b342dfeb9
    org.owasp.dependencycheck.data.lucene.UrlTokenizingFilterTestaa33dd67e99d3f5f
    org.owasp.dependencycheck.data.lucene.UrlTokenizingFilterTest.11e66d2f0ce1900db
    org.owasp.dependencycheck.data.lucene.UrlTokenizingFilterTest.2a17a3531bcc84f68
    org.owasp.dependencycheck.data.nexus.MavenArtifact8181821aeb4d216d
    org.owasp.dependencycheck.data.nexus.MavenArtifactTest5547597e2168df60
    org.owasp.dependencycheck.data.nodeaudit.Advisory2164a59aadbf4fb6
    org.owasp.dependencycheck.data.nodeaudit.NodeAuditSearche7f6b585d3203b32
    org.owasp.dependencycheck.data.nodeaudit.NpmAuditParser33a770bfa46cb842
    org.owasp.dependencycheck.data.nodeaudit.NpmPayloadBuilder195df04fe9ed296a
    org.owasp.dependencycheck.data.nodeaudit.NpmPayloadBuilderTest90706efe7a46ca96
    org.owasp.dependencycheck.data.nuget.DirectoryBuildPropsParser1c2d3dd186d25cd2
    org.owasp.dependencycheck.data.nuget.DirectoryPackagesPropsParser2dc51aa4b9ff6ad5
    org.owasp.dependencycheck.data.nuget.NugetPackage9c9f119d22c5f7fa
    org.owasp.dependencycheck.data.nuget.NugetPackageReferencec5aa1088ddd6ee19
    org.owasp.dependencycheck.data.nuget.NuspecParseException7bf5335dd04ec40c
    org.owasp.dependencycheck.data.nuget.XPathMSBuildProjectParserdf3e338785e3c170
    org.owasp.dependencycheck.data.nuget.XPathNugetconfParser567d1ac9d7d08586
    org.owasp.dependencycheck.data.nuget.XPathNuspecParser3da13047c5bba7f2
    org.owasp.dependencycheck.data.nuget.XPathNuspecParserTestbed6ed2852f1c0c0
    org.owasp.dependencycheck.data.nvd.ecosystem.CveEcosystemMapper9bdc31c451b3a195
    org.owasp.dependencycheck.data.nvd.ecosystem.CveEcosystemMapperTest0bbcb623028c7118
    org.owasp.dependencycheck.data.nvd.ecosystem.DescriptionEcosystemMapper4b4fd8da48e1076a
    org.owasp.dependencycheck.data.nvd.ecosystem.DescriptionEcosystemMapperTest163df27452c5718b
    org.owasp.dependencycheck.data.nvd.ecosystem.DescriptionKeywordHint6e7e292d907035b1
    org.owasp.dependencycheck.data.nvd.ecosystem.Ecosystemf52dd17aa636a878
    org.owasp.dependencycheck.data.nvd.ecosystem.EcosystemHintNature6ecb7375a8182f28
    org.owasp.dependencycheck.data.nvd.ecosystem.FileExtensionHinteea097469cc99fb8
    org.owasp.dependencycheck.data.nvd.ecosystem.StringAhoCorasickDoubleArrayTrie7b86ffa8686f7317
    org.owasp.dependencycheck.data.nvd.ecosystem.UrlEcosystemMapperea6af3b5cb98e2dc
    org.owasp.dependencycheck.data.nvd.ecosystem.UrlEcosystemMapperTest1de927dde3f11d61
    org.owasp.dependencycheck.data.nvd.ecosystem.UrlHostHint05ec63c3d7dae0d3
    org.owasp.dependencycheck.data.nvd.ecosystem.UrlPathHintfa84ec515b0a7722
    org.owasp.dependencycheck.data.nvdcve.CveDBc840fdb7effcf59c
    org.owasp.dependencycheck.data.nvdcve.CveDB.PreparedStatementCveDb412e4dfd99bf4695
    org.owasp.dependencycheck.data.nvdcve.CveDBIT093c5d8479c065fb
    org.owasp.dependencycheck.data.nvdcve.CveItemOperatoreab73d1ca7076e35
    org.owasp.dependencycheck.data.nvdcve.DatabaseManagerc8bfc4255f1ef4d5
    org.owasp.dependencycheck.data.nvdcve.DatabaseManagerTestf217c5d65855261c
    org.owasp.dependencycheck.data.nvdcve.DatabaseProperties0e2c7fb8c0ff158f
    org.owasp.dependencycheck.data.nvdcve.DatabasePropertiesIT914b9b3a1eeb66f1
    org.owasp.dependencycheck.data.nvdcve.DriverLoadException1525230f476c2aed
    org.owasp.dependencycheck.data.nvdcve.DriverLoader6f00b4d9849d8d88
    org.owasp.dependencycheck.data.nvdcve.DriverLoaderTest528c094e56eee8c9
    org.owasp.dependencycheck.data.nvdcve.DriverShim100a9676ec7c4389
    org.owasp.dependencycheck.data.ossindex.ODCConnectionTransport90e282fdbad6b102
    org.owasp.dependencycheck.data.ossindex.OssindexClientFactory876e346ea8162c86
    org.owasp.dependencycheck.data.update.EngineVersionCheckbeeed550972293ac
    org.owasp.dependencycheck.data.update.EngineVersionCheckTest0b289731725ae723
    org.owasp.dependencycheck.data.update.EngineVersionCheckTest.17c799da57a36821d
    org.owasp.dependencycheck.data.update.HostedSuppressionsDataSource319b3bc05738182d
    org.owasp.dependencycheck.data.update.KnownExploitedDataSource7dce5512961efd56
    org.owasp.dependencycheck.data.update.NvdApiDataSource2e0bbb056ca801cc
    org.owasp.dependencycheck.data.update.RetireJSDataSourceec251c50cc74861e
    org.owasp.dependencycheck.data.update.UpdateService5591427be2b53e13
    org.owasp.dependencycheck.data.update.cisa.KnownExploitedVulnerabilityParser61e861793461ad61
    org.owasp.dependencycheck.data.update.cisa.KnownExploitedVulnerabilityParserTest2858a9f787034e2f
    org.owasp.dependencycheck.data.update.cpe.CpeEcosystemCache776eb215e56504e7
    org.owasp.dependencycheck.data.update.cpe.CpeEcosystemCacheTest86eb3dbd3fed00c6
    org.owasp.dependencycheck.data.update.cpe.CpePlusa4daec4d8fade7cd
    org.owasp.dependencycheck.data.update.exception.UpdateExceptionee58a45beed2232d
    org.owasp.dependencycheck.dependency.Confidence8b1646fd73165f3d
    org.owasp.dependencycheck.dependency.CweSet92d71b148062e632
    org.owasp.dependencycheck.dependency.CweSetTest47a5433fcdf138bd
    org.owasp.dependencycheck.dependency.Dependencyad6f1800ed8875c2
    org.owasp.dependencycheck.dependency.Dependency.MockitoMock.0SiZB7qj80b5f30eac81457e
    org.owasp.dependencycheck.dependency.Dependency.MockitoMock.0SiZB7qj.auxiliary.GsId0Pwa9b7799069f4459b7
    org.owasp.dependencycheck.dependency.DependencyTestd74d8f31778639af
    org.owasp.dependencycheck.dependency.Evidencea56eb960dbb41fa1
    org.owasp.dependencycheck.dependency.EvidenceCollection796f8ebade5a0ac6
    org.owasp.dependencycheck.dependency.EvidenceCollection.1c43d6c035fe1f0ab
    org.owasp.dependencycheck.dependency.EvidenceCollection.263ec251053ab3814
    org.owasp.dependencycheck.dependency.EvidenceCollection.339c4b6f5b69d425d
    org.owasp.dependencycheck.dependency.EvidenceCollection.486c481e087971d1f
    org.owasp.dependencycheck.dependency.EvidenceCollection.56d0ef220d6d3eb18
    org.owasp.dependencycheck.dependency.EvidenceTest9828883d9cc06aa0
    org.owasp.dependencycheck.dependency.EvidenceType80374dc893ee62b6
    org.owasp.dependencycheck.dependency.Referencea2e6d658cd4f904f
    org.owasp.dependencycheck.dependency.Vulnerability5547976019a46a50
    org.owasp.dependencycheck.dependency.Vulnerability.Source972bf446c0b0bb2a
    org.owasp.dependencycheck.dependency.VulnerabilityTest39f024a3b2b5f975
    org.owasp.dependencycheck.dependency.VulnerableSoftware8585e0e1fa3beeb8
    org.owasp.dependencycheck.dependency.VulnerableSoftwareBuildere0de1be074de33d1
    org.owasp.dependencycheck.dependency.VulnerableSoftwareTest29ea0c3e66140f04
    org.owasp.dependencycheck.dependency.naming.CpeIdentifierf5758c4da3e20472
    org.owasp.dependencycheck.dependency.naming.GenericIdentifier2720d1f73524f5f3
    org.owasp.dependencycheck.dependency.naming.PurlIdentifiereacb89219564694c
    org.owasp.dependencycheck.exception.ExceptionCollection42d79b8e2574a10f
    org.owasp.dependencycheck.exception.InitializationExceptionf942605a89a6d856
    org.owasp.dependencycheck.processing.GoModProcessore7ea720378ccef3e
    org.owasp.dependencycheck.processing.GrokAssemblyProcessor5b08cc9c89348774
    org.owasp.dependencycheck.reporting.EscapeToolcf686f5c98110b7f
    org.owasp.dependencycheck.reporting.EscapeToolTestaa58cf24d40145b5
    org.owasp.dependencycheck.reporting.ReportGeneratorb3e530fe266a825a
    org.owasp.dependencycheck.reporting.ReportGenerator.Formatc008dae7884b691a
    org.owasp.dependencycheck.reporting.ReportGeneratorITf803ee79bb723125
    org.owasp.dependencycheck.reporting.ReportTool6d98d89de82875d4
    org.owasp.dependencycheck.reporting.SarifRule0944fb4b45e06c49
    org.owasp.dependencycheck.resources.DependencyCheckBaseSuppressionTest3b752e016a53972a
    org.owasp.dependencycheck.utils.Checksumd3d032adcf9f83ac
    org.owasp.dependencycheck.utils.Checksum.FileChecksumsee01483ef72b41eb
    org.owasp.dependencycheck.utils.CvssUtilcf97a7fd82b7c986
    org.owasp.dependencycheck.utils.CvssUtilTestb5c9774a1bfa6dcd
    org.owasp.dependencycheck.utils.DBUtils5a736a1e9db30930
    org.owasp.dependencycheck.utils.DateUtil767aee70b6802f05
    org.owasp.dependencycheck.utils.DateUtilTestc623ab9d881e4adf
    org.owasp.dependencycheck.utils.DependencyVersionc76be697ccf1be3e
    org.owasp.dependencycheck.utils.DependencyVersionTeste64422fbf10f6a04
    org.owasp.dependencycheck.utils.DependencyVersionUtil6a41259161e9d641
    org.owasp.dependencycheck.utils.DependencyVersionUtilTest858a7aab86c493bd
    org.owasp.dependencycheck.utils.DownloadFailedException6443aeaaba25371c
    org.owasp.dependencycheck.utils.Downloader6bb25369b191e28e
    org.owasp.dependencycheck.utils.ExtractionExceptione58d90e53157b16b
    org.owasp.dependencycheck.utils.ExtractionUtil0e88fa19a5d5b6f8
    org.owasp.dependencycheck.utils.ExtractionUtilTest60d4cb6b7d8c7c21
    org.owasp.dependencycheck.utils.FileFilterBuilderb6f3bba13d18ff4a
    org.owasp.dependencycheck.utils.FileUtilsb4bc6fabbcb815d7
    org.owasp.dependencycheck.utils.Filterdf3734618639a9b3
    org.owasp.dependencycheck.utils.Filter.FilterIteratord1a81c541dfce734
    org.owasp.dependencycheck.utils.FilterTest60e0ed0d1a5f0b59
    org.owasp.dependencycheck.utils.FilterTest.14e9dca224e578528
    org.owasp.dependencycheck.utils.HttpResourceConnection3ec0169837be2310
    org.owasp.dependencycheck.utils.InterpolationUtilbf107010177e4d1e
    org.owasp.dependencycheck.utils.InterpolationUtil.PropertyLookup5b1e3b5a7f62328a
    org.owasp.dependencycheck.utils.InterpolationUtil.SyntaxStyle89f3ebbe8ef62093
    org.owasp.dependencycheck.utils.InterpolationUtilTestbafbe92801fbb93f
    org.owasp.dependencycheck.utils.JsonArrayFixingInputStreamf4287617daab86e6
    org.owasp.dependencycheck.utils.PEParser8042233ecf4fa4c8
    org.owasp.dependencycheck.utils.Pair7b0fe8cac5057419
    org.owasp.dependencycheck.utils.PyPACoreMetadataParser536068332d6d88a1
    org.owasp.dependencycheck.utils.PyPACoreMetadataParserTesta3225b0efd8e8ddc
    org.owasp.dependencycheck.utils.SSLSocketFactoryExcba4c39911275cd8
    org.owasp.dependencycheck.utils.SemverTest3a048716697e71dc
    org.owasp.dependencycheck.utils.Settings54ff44735c3537b2
    org.owasp.dependencycheck.utils.SeverityUtil2aa3a7803e3bc489
    org.owasp.dependencycheck.utils.SeverityUtil.171306fbb06678edb
    org.owasp.dependencycheck.utils.SeverityUtil.Severity9d4aeea771e02d24
    org.owasp.dependencycheck.utils.SeverityUtilTest01fc7587f86aeec1
    org.owasp.dependencycheck.utils.URLConnectionFactory20a3b96d5b95a4c9
    org.owasp.dependencycheck.utils.UrlStringUtils13ac88d7b902ba2e
    org.owasp.dependencycheck.utils.UrlStringUtilsTest8733316fc53d99ca
    org.owasp.dependencycheck.utils.Utils2388cf60ae13d515
    org.owasp.dependencycheck.utils.UtilsTestb1d5e41228ca0360
    org.owasp.dependencycheck.utils.WriteLock38fa2d9af95f448e
    org.owasp.dependencycheck.utils.WriteLockCleanupHookf4959b4938fb442b
    org.owasp.dependencycheck.utils.WriteLockShutdownHook53b3f5b037d6b82e
    org.owasp.dependencycheck.utils.WriteLockShutdownHookFactory7856e6c15668c9d5
    org.owasp.dependencycheck.utils.XmlUtils3db31a3238d69ec0
    org.owasp.dependencycheck.utils.processing.ProcessReader0afc367a946b9c57
    org.owasp.dependencycheck.utils.processing.ProcessReader.Gobbler61ba8ef7823a8474
    org.owasp.dependencycheck.utils.processing.Processor54d82509a803683c
    org.owasp.dependencycheck.utils.search.FileContentSearch7adade2cb225852a
    org.owasp.dependencycheck.xml.XmlEntity66e5eed82ef0963b
    org.owasp.dependencycheck.xml.XmlEntityTestad3a2648b1b6ca1d
    org.owasp.dependencycheck.xml.XmlInputStreameeef9b35cd9d2c10
    org.owasp.dependencycheck.xml.XmlInputStreamTest1e3317d21906b4d5
    org.owasp.dependencycheck.xml.assembly.AssemblyData40fcba4a7dc5fa6e
    org.owasp.dependencycheck.xml.assembly.GrokErrorHandler455b926a72c7a449
    org.owasp.dependencycheck.xml.assembly.GrokHandlerfe21aa0c14ae6b1e
    org.owasp.dependencycheck.xml.assembly.GrokHandlerTest69500e7dafc7c2da
    org.owasp.dependencycheck.xml.assembly.GrokParser0c137c352235f734
    org.owasp.dependencycheck.xml.assembly.GrokParserTest43ec79c92cf90ca4
    org.owasp.dependencycheck.xml.hints.EvidenceMatcherce8cbfbe4740ac69
    org.owasp.dependencycheck.xml.hints.EvidenceMatcherTestef6e32d537e6febc
    org.owasp.dependencycheck.xml.hints.HintErrorHandleraa3882d7c7c5cc67
    org.owasp.dependencycheck.xml.hints.HintHandlere93cf0a863214916
    org.owasp.dependencycheck.xml.hints.HintHandler.1a7e8cba20e8af505
    org.owasp.dependencycheck.xml.hints.HintHandler.ParentTypef24faabcce5f4c72
    org.owasp.dependencycheck.xml.hints.HintHandlerTest692a4bce51df6767
    org.owasp.dependencycheck.xml.hints.HintParseException15554ac25758454f
    org.owasp.dependencycheck.xml.hints.HintParserd88f1d17c3864870
    org.owasp.dependencycheck.xml.hints.HintParserTest1b749120f6ca688f
    org.owasp.dependencycheck.xml.hints.HintRule58dd9d52018d064f
    org.owasp.dependencycheck.xml.hints.VendorDuplicatingHintRulef590e0aa1fffc212
    org.owasp.dependencycheck.xml.pom.Developer464a73d3a131fa1a
    org.owasp.dependencycheck.xml.pom.License2922b99dd5b791bf
    org.owasp.dependencycheck.xml.pom.Model1a4e32bf68ae7b1c
    org.owasp.dependencycheck.xml.pom.ModelTestc238e17cad449115
    org.owasp.dependencycheck.xml.pom.PomHandler1dd6925cb0dd2e80
    org.owasp.dependencycheck.xml.pom.PomParseException98635555ff4d4aa7
    org.owasp.dependencycheck.xml.pom.PomParser5d76ef6cff2aa125
    org.owasp.dependencycheck.xml.pom.PomParserTest97173bd2433cf0c6
    org.owasp.dependencycheck.xml.pom.PomProjectInputStreamf1ac6922e08319a5
    org.owasp.dependencycheck.xml.pom.PomProjectInputStreamTest12ab6533f4288404
    org.owasp.dependencycheck.xml.pom.PomUtils2eb9b189fe53a4c9
    org.owasp.dependencycheck.xml.pom.PomUtilsTest8323b9c226fc33c3
    org.owasp.dependencycheck.xml.suppression.PropertyType88e0dda4979f444f
    org.owasp.dependencycheck.xml.suppression.PropertyTypeTest256a689dbd646730
    org.owasp.dependencycheck.xml.suppression.SuppressionErrorHandlerf0b45bf0579463da
    org.owasp.dependencycheck.xml.suppression.SuppressionHandler4ba9da2c9f4c384b
    org.owasp.dependencycheck.xml.suppression.SuppressionHandlerTest266e89dec984126c
    org.owasp.dependencycheck.xml.suppression.SuppressionParseException97a15067a82d77c3
    org.owasp.dependencycheck.xml.suppression.SuppressionParserd5b7ee2be33418e9
    org.owasp.dependencycheck.xml.suppression.SuppressionParser.ClassloaderResolver166296f9153760dd
    org.owasp.dependencycheck.xml.suppression.SuppressionParserTestccac19b8117bf923
    org.owasp.dependencycheck.xml.suppression.SuppressionRule1e5fc4cd38ec8b4d
    org.owasp.dependencycheck.xml.suppression.SuppressionRuleTestc7f9560bb3ca7af8
    org.semver4j.Rangec76bd6fb5c6624f0
    org.semver4j.Range.183e89d11501f6870
    org.semver4j.Range.RangeOperator183304b1af0c4752
    org.semver4j.RangesLista8c301fd698bd9b4
    org.semver4j.RangesListFactory64869c3535328dd6
    org.semver4j.RangesStringf76f2c89ffb441d9
    org.semver4j.Semver70db16a3793928ea
    org.semver4j.internal.Comparator7758e74b07ffb475
    org.semver4j.internal.StrictParser96e1da8b14489626
    org.semver4j.internal.StrictParser.Versionedbe7798d7758581
    org.semver4j.internal.Tokenizersaeb8629650cf81e5
    org.semver4j.internal.range.RangeProcessorPipeline09c9bb388b210875
    org.semver4j.internal.range.processor.CaretProcessor0b4be2b3380b2f10
    org.semver4j.internal.range.processor.GreaterThanOrEqualZeroProcessor494c5b8f938aab40
    org.semver4j.internal.range.processor.HyphenProcessor356a4851a0c62db0
    org.semver4j.internal.range.processor.IvyProcessorec6d55b28cdd1d11
    org.semver4j.internal.range.processor.RangesUtilse177929c6b1677f1
    org.semver4j.internal.range.processor.TildeProcessor475e9d9a26a212ea
    org.semver4j.internal.range.processor.XRangeProcessor59f94d8ce0512762
    org.slf4j.LoggerFactorya381b7ddf19bf47d
    org.slf4j.MDC4d31efbdc380017c
    org.slf4j.helpers.FormattingTuple46e388b1eb4cb5c1
    org.slf4j.helpers.MessageFormatter42e7db43bad15507
    org.slf4j.helpers.NOPLoggerFactory54f5632bfcb8d8d5
    org.slf4j.helpers.SubstituteLoggerFactorydc7efc0107a4a62d
    org.slf4j.helpers.Util857ff3acc0576435
    org.slf4j.impl.StaticLoggerBinder039b3c899e055991
    org.slf4j.impl.StaticMDCBinder649700d80abb641d
    org.sonatype.goodies.packageurl.MoreStringseb27ab287eb4da12
    org.sonatype.goodies.packageurl.PackageUrlba59cd89165925f5
    org.sonatype.goodies.packageurl.PackageUrlBuilderec5a37c5d8b7d8b1
    org.sonatype.goodies.packageurl.PackageUrlParser966ad3717efe4b6e
    org.sonatype.goodies.packageurl.PercentEncoding79b73d2088ba2b82
    org.sonatype.goodies.packageurl.RenderFlavor947e4e9573055a26
    org.sonatype.ossindex.service.api.componentreport.ComponentReport007095118ffb89d9
    org.sonatype.ossindex.service.api.componentreport.ComponentReportRequest73ae3750dffdc447
    org.sonatype.ossindex.service.api.cvss.Cvss3Severity84b517f36ff1f7ad
    org.sonatype.ossindex.service.client.OssindexClientConfiguration80726ff317afd7e0
    org.sonatype.ossindex.service.client.cache.DirectoryCache3bf8e452dad6c4ed
    org.sonatype.ossindex.service.client.cache.DirectoryCache.22429342e83a28fda
    org.sonatype.ossindex.service.client.cache.DirectoryCache.Configurationc55ab0a42e31cd91
    org.sonatype.ossindex.service.client.internal.OssindexClientImplbddac31c81071c23
    org.sonatype.ossindex.service.client.internal.OssindexClientImpl.17301951d52de3113
    org.sonatype.ossindex.service.client.marshal.GsonMarshaller68863d87c428b1a3
    org.sonatype.ossindex.service.client.marshal.GsonMarshaller.PackageUrlAdapter73a4e077a878c501
    org.sonatype.ossindex.service.client.transport.BasicAuthHelper320dad2d7314e44b
    org.sonatype.ossindex.service.client.transport.HttpUrlConnectionTransport991facb046fab196
    org.sonatype.ossindex.service.client.transport.Transport.TransportExceptionb66a493e23de6aed
    org.sonatype.ossindex.service.client.transport.UserAgentBuilder9d3fb196624e4211
    org.sonatype.ossindex.service.client.transport.UserAgentBuilder.Producte8adb958139cf605
    org.sonatype.ossindex.service.client.transport.UserAgentSupplier03764d421bd8e97f
    org.sonatype.ossindex.service.client.util.FileLocker3d6d14da708e076b
    org.sonatype.ossindex.service.client.util.OsTypeb30db1a529198478
    org.sonatype.ossindex.service.client.util.UserDataLocation1a312d7a51e71dc6
    org.tukaani.xz.ArrayCache3a2705094af3c27a
    org.tukaani.xz.BlockInputStreamcea1cc709adcd346
    org.tukaani.xz.CloseIgnoringInputStreama863ae6f67a3f73d
    org.tukaani.xz.CorruptedInputException68e09bed15125660
    org.tukaani.xz.CountingInputStreama05f9284acadb3a6
    org.tukaani.xz.LZMA2Coder8ddf1b127d382fc7
    org.tukaani.xz.LZMA2Decoder209c1a9726078bd0
    org.tukaani.xz.LZMA2InputStreame873b181ed732990
    org.tukaani.xz.RawCoder1a0a1f9d7621de71
    org.tukaani.xz.SingleXZInputStream3d45753fa4b2920d
    org.tukaani.xz.XZ3946689c4b3103ce
    org.tukaani.xz.XZIOExceptionbedc91a807f46346
    org.tukaani.xz.check.Checkd681ebce97021c9f
    org.tukaani.xz.check.SHA2563d1bbc8350e171bf
    org.tukaani.xz.common.DecoderUtil14162ce47eee68b7
    org.tukaani.xz.common.StreamFlags4d6d1770ec301bd7
    org.tukaani.xz.index.IndexBasecf5f3a13b6b40dd0
    org.tukaani.xz.index.IndexHashf8b2b31b1aafe0ec
    org.tukaani.xz.lz.LZDecoder03fae6821d7da094
    org.tukaani.xz.lzma.LZMACoderc4739da1b173bc69
    org.tukaani.xz.lzma.LZMACoder.LengthCoder072baeca0d12dd8b
    org.tukaani.xz.lzma.LZMACoder.LiteralCoder4eede9b4a5296f31
    org.tukaani.xz.lzma.LZMACoder.LiteralCoder.LiteralSubcoderea1d9740237871d1
    org.tukaani.xz.lzma.LZMADecoder11580525aeb25322
    org.tukaani.xz.lzma.LZMADecoder.LengthDecoder83286f526924c26d
    org.tukaani.xz.lzma.LZMADecoder.LiteralDecoderf48f900576a5b0f6
    org.tukaani.xz.lzma.LZMADecoder.LiteralDecoder.LiteralSubdecoder5bf0c8a55637b4ce
    org.tukaani.xz.lzma.State210ba97c94e56683
    org.tukaani.xz.rangecoder.RangeCoder8984356a5c2bc698
    org.tukaani.xz.rangecoder.RangeDecoder14e212fd7eec9505
    org.tukaani.xz.rangecoder.RangeDecoderFromBuffer9dc33cdc8357fbc0
    org.yaml.snakeyaml.DumperOptions.FlowStyle7ea3edc4f54be89c
    org.yaml.snakeyaml.DumperOptions.ScalarStyle7a319a4284186f2f
    org.yaml.snakeyaml.LoaderOptions84a262111bb47a06
    org.yaml.snakeyaml.comments.CommentType30cb86478661a12f
    org.yaml.snakeyaml.error.Mark5bc3c9bcc1841039
    org.yaml.snakeyaml.events.CollectionEndEvent85d805f2e4a55c08
    org.yaml.snakeyaml.events.CollectionStartEvent0231990b2e62aa32
    org.yaml.snakeyaml.events.DocumentStartEvent7f1b49bf95796e57
    org.yaml.snakeyaml.events.Event1e4e8e1ecffbccc7
    org.yaml.snakeyaml.events.Event.ID660b7e2db990b490
    org.yaml.snakeyaml.events.ImplicitTuple628a7e643cfc7a7b
    org.yaml.snakeyaml.events.MappingEndEvent7134da44bbf99c35
    org.yaml.snakeyaml.events.MappingStartEvent05f8e226564ac798
    org.yaml.snakeyaml.events.NodeEvent8ecfb5e7e3f77952
    org.yaml.snakeyaml.events.ScalarEvent117bfdf280bbb530
    org.yaml.snakeyaml.events.SequenceEndEvent6a68db127cec6d1a
    org.yaml.snakeyaml.events.SequenceStartEvent6ff99213ce77ab28
    org.yaml.snakeyaml.events.StreamStartEventf3468b4979ab0020
    org.yaml.snakeyaml.external.com.google.gdata.util.common.base.PercentEscaperea022b41b47fc5f5
    org.yaml.snakeyaml.external.com.google.gdata.util.common.base.UnicodeEscaperd8020d00257a6ce9
    org.yaml.snakeyaml.external.com.google.gdata.util.common.base.UnicodeEscaper.221e0ba18478a36c0
    org.yaml.snakeyaml.inspector.UnTrustedTagInspectorab2c84bb5b3c7253
    org.yaml.snakeyaml.nodes.NodeId87773f8b7ee7f4b1
    org.yaml.snakeyaml.nodes.Tagcd9051ef43ecba10
    org.yaml.snakeyaml.parser.ParserImpl0edc84d8eb6bcaa1
    org.yaml.snakeyaml.parser.ParserImpl.ParseBlockMappingFirstKeye518e21315418d3b
    org.yaml.snakeyaml.parser.ParserImpl.ParseBlockMappingKeyf63028db115a665d
    org.yaml.snakeyaml.parser.ParserImpl.ParseBlockMappingValue1c042e51dbc39a81
    org.yaml.snakeyaml.parser.ParserImpl.ParseBlockNodea1fc0244795f40ae
    org.yaml.snakeyaml.parser.ParserImpl.ParseBlockSequenceEntryKey3b3009d4961fdd55
    org.yaml.snakeyaml.parser.ParserImpl.ParseBlockSequenceEntryValued46c326810e6bcf0
    org.yaml.snakeyaml.parser.ParserImpl.ParseBlockSequenceFirstEntrybc301c9ea4a5e17b
    org.yaml.snakeyaml.parser.ParserImpl.ParseDocumentEnd9fb874de5b8e8d0f
    org.yaml.snakeyaml.parser.ParserImpl.ParseImplicitDocumentStarta8d083da8689f891
    org.yaml.snakeyaml.parser.ParserImpl.ParseStreamStart1a650a1b60f8448e
    org.yaml.snakeyaml.parser.VersionTagsTuple9ead52e54af6fc87
    org.yaml.snakeyaml.reader.StreamReadercbe1eb07c1e19750
    org.yaml.snakeyaml.resolver.Resolver5795ff14f5aade27
    org.yaml.snakeyaml.resolver.Resolver.1c852ec33cfb78ed7
    org.yaml.snakeyaml.resolver.ResolverTuple9bafaa5a94bb0eae
    org.yaml.snakeyaml.scanner.Constantc953d2a9dfe0d44d
    org.yaml.snakeyaml.scanner.ScannerImpl53df43e98f7c3217
    org.yaml.snakeyaml.scanner.SimpleKey04daba0a01220fe4
    org.yaml.snakeyaml.tokens.BlockEndTokenc9af1daeae586365
    org.yaml.snakeyaml.tokens.BlockEntryTokenf2806b5c53f6d53b
    org.yaml.snakeyaml.tokens.BlockMappingStartTokenbc003c7c05a1a87a
    org.yaml.snakeyaml.tokens.BlockSequenceStartToken9e1c5ac00b125734
    org.yaml.snakeyaml.tokens.CommentToken1f7f172330291e7a
    org.yaml.snakeyaml.tokens.KeyTokene0436b619dad88b8
    org.yaml.snakeyaml.tokens.ScalarTokena3dd6dceb0e01f07
    org.yaml.snakeyaml.tokens.StreamEndToken32c4c2cb185e55ae
    org.yaml.snakeyaml.tokens.StreamStartToken335f23b0a2e925a9
    org.yaml.snakeyaml.tokens.Token546abdb7bec97cc4
    org.yaml.snakeyaml.tokens.Token.IDfe926272c5ad9b19
    org.yaml.snakeyaml.tokens.ValueToken2ed7cb0fcd5f7185
    org.yaml.snakeyaml.util.ArrayStack62d36f3c502066f5
    org.yaml.snakeyaml.util.UriEncoderf42a08d2a399c34e
    sun.security.ec.ECDHKeyAgreement98786957379e8052
    sun.security.ec.ECDSASignaturea87c8a3b4c249cae
    sun.security.ec.ECDSASignature.Raw34fd4d4f3f7b07d0
    sun.security.ec.ECDSASignature.SHA19a8c8c1fccb702ae
    sun.security.ec.ECDSASignature.SHA2244ab113fda835de86
    sun.security.ec.ECDSASignature.SHA256b847f3aa86c638a1
    sun.security.ec.ECDSASignature.SHA3841f1f0bb690cec78f
    sun.security.ec.ECDSASignature.SHA512ca949e76b48c64db
    sun.security.ec.ECKeyFactory5ffb1bf65edd3e5b
    sun.security.ec.ECKeyPairGeneratord54779aa8847492b
    sun.security.ec.ECOperations8b042a6db0c7d250
    sun.security.ec.ECPrivateKeyImple88e88043bb769c8
    sun.security.ec.ECPublicKeyImpl579a0a9fbecbe2cb
    sun.security.ec.SunECed7aaa5d851afecd
    sun.security.ec.SunEC.12aaa42d831e10c34
    sun.security.ec.SunECEntries1fc66cad07ebf775
    sun.security.ec.point.AffinePoint4473cc59511e4f38
    sun.security.ec.point.ProjectivePoint42bfa254a41c4522
    sun.security.ec.point.ProjectivePoint.Immutablef385d4fcc17d6f05
    sun.security.ec.point.ProjectivePoint.Mutableb5e8bd959990211c
    us.springett.parsers.cpe.Cpe6dcbf890483207ec
    us.springett.parsers.cpe.CpeBuildera8a545e97ba6c683
    us.springett.parsers.cpe.util.Convertd44be2fdb506753e
    us.springett.parsers.cpe.util.Statusa1e82b1c21855dd4
    us.springett.parsers.cpe.util.Validate4c1a3e0799b4658a
    us.springett.parsers.cpe.values.LogicalValue77dbdb0651fff32c
    us.springett.parsers.cpe.values.Partc2b878523b4c15a0
    \ No newline at end of file +Sessions

    Sessions

    This coverage report is based on execution data from the following sessions:

    SessionStart TimeDump Time
    fv-az1110-746-78401682Dec 13, 2023 11:40:51 AMDec 13, 2023 11:41:33 AM
    fv-az1110-746-44d21739Dec 13, 2023 11:42:16 AMDec 13, 2023 11:44:58 AM

    Execution data for the following classes is considered in this report:

    ClassId
    ch.qos.logback.classic.Levele2155b45608f35d7
    ch.qos.logback.classic.Loggerf35d4d4ad6b0173a
    ch.qos.logback.classic.LoggerContextd057ce3cea631d6b
    ch.qos.logback.classic.PatternLayout6b4fcc6f23c89763
    ch.qos.logback.classic.encoder.PatternLayoutEncoderb5df0ef8a1a735ea
    ch.qos.logback.classic.joran.JoranConfigurator63bb214e0f720ae8
    ch.qos.logback.classic.joran.action.ConfigurationAction90d861250f52b75f
    ch.qos.logback.classic.joran.action.ConsolePluginAction2969e4b8b532cec5
    ch.qos.logback.classic.joran.action.ContextNameAction4ffd1a75c51a473f
    ch.qos.logback.classic.joran.action.EvaluatorActioncc2e7d3c2fc18087
    ch.qos.logback.classic.joran.action.InsertFromJNDIActionfce902dbb9dbd2a7
    ch.qos.logback.classic.joran.action.JMXConfiguratorActiona58b513df0924938
    ch.qos.logback.classic.joran.action.LevelAction8f89eefaf59271f1
    ch.qos.logback.classic.joran.action.LoggerAction8d55f78fdf86cda9
    ch.qos.logback.classic.joran.action.LoggerContextListenerAction835263a7d9309be9
    ch.qos.logback.classic.joran.action.ReceiverAction9e9bd00760b812f2
    ch.qos.logback.classic.joran.action.RootLoggerAction0528540059645c3d
    ch.qos.logback.classic.pattern.ClassicConverter78403f02659989af
    ch.qos.logback.classic.pattern.EnsureExceptionHandlingf9c97b8da786f083
    ch.qos.logback.classic.pattern.LevelConverter05b4415a3dbcaaf4
    ch.qos.logback.classic.pattern.LineSeparatorConverter2e2dc69c3bdc6cd3
    ch.qos.logback.classic.pattern.MessageConverteref2f64b51bca1aac
    ch.qos.logback.classic.pattern.ThrowableHandlingConverter266cc4ca75fcd39d
    ch.qos.logback.classic.pattern.ThrowableProxyConverter46dc88ad0c97e462
    ch.qos.logback.classic.selector.DefaultContextSelectorfd861e3242ccff2f
    ch.qos.logback.classic.sift.SiftAction9f73df3037d696a7
    ch.qos.logback.classic.spi.EventArgUtil88f3990bf293da69
    ch.qos.logback.classic.spi.LoggerContextVOecac106025bca4a3
    ch.qos.logback.classic.spi.LoggingEvent75c5fe4974050a6f
    ch.qos.logback.classic.spi.PlatformInfo0e826c07ba59ae45
    ch.qos.logback.classic.spi.StackTraceElementProxyada177236960344b
    ch.qos.logback.classic.spi.ThrowableProxya302aaf0d3a92fc1
    ch.qos.logback.classic.spi.ThrowableProxyUtil6e061d0582f771fe
    ch.qos.logback.classic.spi.TurboFilterListaa3cf39d0c0c651e
    ch.qos.logback.classic.util.ContextInitializerf560906e9553d69f
    ch.qos.logback.classic.util.ContextSelectorStaticBinder271bbf6fa66123b1
    ch.qos.logback.classic.util.DefaultNestedComponentRules840b992fa00c7e60
    ch.qos.logback.classic.util.EnvUtil39b5543082458460
    ch.qos.logback.classic.util.LogbackMDCAdaptera05682a253fd41d4
    ch.qos.logback.classic.util.LoggerNameUtilb8d88c97a0cadcfa
    ch.qos.logback.core.BasicStatusManagerf42ab87c1f66e222
    ch.qos.logback.core.ConsoleAppenderd101474cda5e45c9
    ch.qos.logback.core.ContextBase707ceedbd09855e6
    ch.qos.logback.core.CoreConstants09363a83cd5b4101
    ch.qos.logback.core.LayoutBasee6bfd3b1edc3ab01
    ch.qos.logback.core.OutputStreamAppender79e07918442741f3
    ch.qos.logback.core.UnsynchronizedAppenderBase0672be5753362c70
    ch.qos.logback.core.encoder.EncoderBasef2507a7276f26c10
    ch.qos.logback.core.encoder.LayoutWrappingEncoder6c80790d34287d6b
    ch.qos.logback.core.helpers.CyclicBuffer422c7b9f7318f10a
    ch.qos.logback.core.joran.GenericConfigurator3f448ac12ab6a263
    ch.qos.logback.core.joran.JoranConfiguratorBase38c4decb94b320f7
    ch.qos.logback.core.joran.action.AbstractEventEvaluatorActionbf3cf252a2822906
    ch.qos.logback.core.joran.action.Action7cf2d4f3569d0788
    ch.qos.logback.core.joran.action.AppenderAction22c3c549e13663a1
    ch.qos.logback.core.joran.action.AppenderRefAction3c0bd482c9925292
    ch.qos.logback.core.joran.action.ContextPropertyAction4d47e7c289aa172b
    ch.qos.logback.core.joran.action.ConversionRuleAction6ad21d1237f36c71
    ch.qos.logback.core.joran.action.DefinePropertyAction3d08042673a6e5dc
    ch.qos.logback.core.joran.action.IADataForBasicPropertycbe844e4f3903797
    ch.qos.logback.core.joran.action.IADataForComplexProperty9b210f34ec734f9e
    ch.qos.logback.core.joran.action.ImplicitAction86dae105afebc13c
    ch.qos.logback.core.joran.action.IncludeAction2775b098b6b111dc
    ch.qos.logback.core.joran.action.NOPAction69348e8c62d1a733
    ch.qos.logback.core.joran.action.NestedBasicPropertyIA89ed90b29bc14f36
    ch.qos.logback.core.joran.action.NestedBasicPropertyIA.108e44e1168d7ea7b
    ch.qos.logback.core.joran.action.NestedComplexPropertyIA178aace2d0448f6a
    ch.qos.logback.core.joran.action.NestedComplexPropertyIA.15160250e9b77af57
    ch.qos.logback.core.joran.action.NewRuleAction265aa9ab808da62d
    ch.qos.logback.core.joran.action.ParamActionad2376677140dcb4
    ch.qos.logback.core.joran.action.PropertyAction81b578f6564d00a1
    ch.qos.logback.core.joran.action.ShutdownHookActione67fa543b234ff0d
    ch.qos.logback.core.joran.action.StatusListenerAction4cf479b0b81398f3
    ch.qos.logback.core.joran.action.TimestampActiond7a48c3648a91ea8
    ch.qos.logback.core.joran.conditional.ElseActionfe56c4a40374cd79
    ch.qos.logback.core.joran.conditional.IfAction87c92d3efc3996c9
    ch.qos.logback.core.joran.conditional.ThenActiondd7886fdda1bb93e
    ch.qos.logback.core.joran.conditional.ThenOrElseActionBase9e00d4141028a50c
    ch.qos.logback.core.joran.event.BodyEvent0c8f2f07c6888bab
    ch.qos.logback.core.joran.event.EndEvent0c2e1da47ad508cc
    ch.qos.logback.core.joran.event.SaxEvent80662212b5cc3b53
    ch.qos.logback.core.joran.event.SaxEventRecorder639eb66c9ea90531
    ch.qos.logback.core.joran.event.StartEvent914de9498a78076d
    ch.qos.logback.core.joran.spi.CAI_WithLocatorSupportf96b1cd7be830663
    ch.qos.logback.core.joran.spi.ConfigurationWatchListfba78df767e05182
    ch.qos.logback.core.joran.spi.ConsoleTarget6e2cdd5051fbf329
    ch.qos.logback.core.joran.spi.ConsoleTarget.19612187e03729cd5
    ch.qos.logback.core.joran.spi.ConsoleTarget.2ea3332451607183e
    ch.qos.logback.core.joran.spi.DefaultNestedComponentRegistryf3ac4f0369a959d6
    ch.qos.logback.core.joran.spi.ElementPathab4711e5039d31b0
    ch.qos.logback.core.joran.spi.ElementSelector605584d4fe3a6b67
    ch.qos.logback.core.joran.spi.EventPlayer739ef0261c196bb2
    ch.qos.logback.core.joran.spi.HostClassAndPropertyDouble199aef84b04dd48c
    ch.qos.logback.core.joran.spi.InterpretationContextce4c00a894617c6e
    ch.qos.logback.core.joran.spi.Interpreter634fa7d2dde257a5
    ch.qos.logback.core.joran.spi.NoAutoStartUtil6fe8a98ba9c5ce85
    ch.qos.logback.core.joran.spi.SimpleRuleStore19c383749dc55e01
    ch.qos.logback.core.joran.util.ConfigurationWatchListUtila35db514967601cf
    ch.qos.logback.core.joran.util.PropertySetter8f7e7385541ef400
    ch.qos.logback.core.joran.util.StringToObjectConverter2e393f7832702c3f
    ch.qos.logback.core.joran.util.beans.BeanDescriptiona249e33828fc438a
    ch.qos.logback.core.joran.util.beans.BeanDescriptionCache9d679b6b2b24c9f7
    ch.qos.logback.core.joran.util.beans.BeanDescriptionFactory1abb714ec36ec08c
    ch.qos.logback.core.joran.util.beans.BeanUtil889c2d82913f56d3
    ch.qos.logback.core.net.ssl.SSLNestedComponentRegistryRulescdeda61b0c175e73
    ch.qos.logback.core.pattern.Converter925f6cb417029041
    ch.qos.logback.core.pattern.ConverterUtildd9b10877d49fdef
    ch.qos.logback.core.pattern.DynamicConverter66d903dd096314f6
    ch.qos.logback.core.pattern.FormattingConverterc3110b5495da3c0a
    ch.qos.logback.core.pattern.LiteralConverter65b2e319699170e6
    ch.qos.logback.core.pattern.PatternLayoutBasea804a6743796ed4f
    ch.qos.logback.core.pattern.PatternLayoutEncoderBase8869b320200d58ca
    ch.qos.logback.core.pattern.parser.Compiler1c6d6460ba38602b
    ch.qos.logback.core.pattern.parser.FormattingNodec1ea708a78deec04
    ch.qos.logback.core.pattern.parser.Node6c2db44212d84b68
    ch.qos.logback.core.pattern.parser.Parser7b1aef016f4f95f3
    ch.qos.logback.core.pattern.parser.SimpleKeywordNodef700f290325e600d
    ch.qos.logback.core.pattern.parser.Token4f7e433507e860ed
    ch.qos.logback.core.pattern.parser.TokenStreamb0bdcf4b6e0f87aa
    ch.qos.logback.core.pattern.parser.TokenStream.1fd95c0c735fd0ef7
    ch.qos.logback.core.pattern.parser.TokenStream.TokenizerState3467111fb3bf68e6
    ch.qos.logback.core.pattern.util.RegularEscapeUtil1cc07c8d9d362995
    ch.qos.logback.core.pattern.util.RestrictedEscapeUtil05ac894407a1822b
    ch.qos.logback.core.spi.AppenderAttachableImpl356e7661a1308dba
    ch.qos.logback.core.spi.ContextAwareBase507768fbb8be644f
    ch.qos.logback.core.spi.ContextAwareImple054ab71d51b27ec
    ch.qos.logback.core.spi.FilterAttachableImple0d2c4e50fd975d2
    ch.qos.logback.core.spi.FilterReply8ffb0681c411c96a
    ch.qos.logback.core.spi.LogbackLockb3b7af385a799776
    ch.qos.logback.core.status.InfoStatus1d3c0987bb0ffe10
    ch.qos.logback.core.status.NopStatusListener91f16a8aa6c07841
    ch.qos.logback.core.status.StatusBase7c1cffd1a9986020
    ch.qos.logback.core.status.StatusUtilb5fec2971e383d38
    ch.qos.logback.core.subst.Node173ef78e5278fe04
    ch.qos.logback.core.subst.Node.Typeb8a40f4b8fbe988c
    ch.qos.logback.core.subst.NodeToStringTransformer1e8620cc7b5415cb
    ch.qos.logback.core.subst.NodeToStringTransformer.15967309dea3614e0
    ch.qos.logback.core.subst.Parserc06549d7b1e1487d
    ch.qos.logback.core.subst.Parser.178a0480962b020ea
    ch.qos.logback.core.subst.Token3f38da4ca554aafd
    ch.qos.logback.core.subst.Token.Typed037d0aeea85e517
    ch.qos.logback.core.subst.Tokenizer6a388c818909b082
    ch.qos.logback.core.subst.Tokenizer.15446562f97e885f7
    ch.qos.logback.core.subst.Tokenizer.TokenizerStatea43d7665d3995d51
    ch.qos.logback.core.util.AggregationTypee82dcae26638e651
    ch.qos.logback.core.util.COWArrayListfd4fbd3c0c90c052
    ch.qos.logback.core.util.EnvUtiladc66c330ddaa6c4
    ch.qos.logback.core.util.Loader6a7f26fdd43cf12b
    ch.qos.logback.core.util.Loader.1d6e48f075e51e44b
    ch.qos.logback.core.util.OptionHelpered7183d6bad9d2a9
    ch.qos.logback.core.util.StatusListenerConfigHelperb3e50ff76e275069
    com.carrotsearch.randomizedtesting.AnnotatedMethodProvider870a55255b1b9874
    com.carrotsearch.randomizedtesting.AssertingRandombc6b942a30a356c5
    com.carrotsearch.randomizedtesting.ClassModel1c54b0b31c4809a8
    com.carrotsearch.randomizedtesting.ClassModel.1d51749768e05f02c
    com.carrotsearch.randomizedtesting.ClassModel.2b36aa748efbd92c5
    com.carrotsearch.randomizedtesting.ClassModel.3fef4fc8d2deeb5b7
    com.carrotsearch.randomizedtesting.ClassModel.46ecd1e7b73283918
    com.carrotsearch.randomizedtesting.ClassModel.ClassElement32641c3b612e2000
    com.carrotsearch.randomizedtesting.ClassModel.FieldModel12d4aa56244c04e1
    com.carrotsearch.randomizedtesting.ClassModel.MethodModelb5b4442a8318aed8
    com.carrotsearch.randomizedtesting.ClassModel.ModelBuildercddb924852bb6dde
    com.carrotsearch.randomizedtesting.ClassModel.Scopeaa426d5279db6a28
    com.carrotsearch.randomizedtesting.Classes0809fe74e4957d43
    com.carrotsearch.randomizedtesting.GroupEvaluator21e3b9902dc11570
    com.carrotsearch.randomizedtesting.JUnit4MethodProviderc4fbfb340b1f9b91
    com.carrotsearch.randomizedtesting.LifecycleScope76d2edaacf355a64
    com.carrotsearch.randomizedtesting.MixWithSuiteName4936da537ef90919
    com.carrotsearch.randomizedtesting.MurmurHash3dc1fe13d2e45fbde
    com.carrotsearch.randomizedtesting.RandomSupplier5059bd085d912ff0
    com.carrotsearch.randomizedtesting.RandomSupplier.1b488ed5f8eeb0508
    com.carrotsearch.randomizedtesting.RandomizedContext0871c6176ee46550
    com.carrotsearch.randomizedtesting.RandomizedContext.PerThreadResources38a54cd3c28af3f4
    com.carrotsearch.randomizedtesting.RandomizedRunnerf435c833bd7a1290
    com.carrotsearch.randomizedtesting.RandomizedRunner.1311a2c43c3a86804
    com.carrotsearch.randomizedtesting.RandomizedRunner.10677259c6d4acafb7
    com.carrotsearch.randomizedtesting.RandomizedRunner.1291cf8f6c00f05ce5
    com.carrotsearch.randomizedtesting.RandomizedRunner.1369525e145a25e424
    com.carrotsearch.randomizedtesting.RandomizedRunner.144c9cffcd64959f9c
    com.carrotsearch.randomizedtesting.RandomizedRunner.16fa4a640e168c2a28
    com.carrotsearch.randomizedtesting.RandomizedRunner.2897920ea6206924c
    com.carrotsearch.randomizedtesting.RandomizedRunner.3c6cf366dbe702633
    com.carrotsearch.randomizedtesting.RandomizedRunner.415c279082308fa7b
    com.carrotsearch.randomizedtesting.RandomizedRunner.4.1365d71ee75a3af6d
    com.carrotsearch.randomizedtesting.RandomizedRunner.53923722803acad97
    com.carrotsearch.randomizedtesting.RandomizedRunner.64bd50f959306c567
    com.carrotsearch.randomizedtesting.RandomizedRunner.7e672de2e37c6c02c
    com.carrotsearch.randomizedtesting.RandomizedRunner.8f8e56fa0f9722cb5
    com.carrotsearch.randomizedtesting.RandomizedRunner.9ac614c1ad6590c5a
    com.carrotsearch.randomizedtesting.RandomizedRunner.NewInstanceProviderbeb4d4f1b37f9d79
    com.carrotsearch.randomizedtesting.RandomizedRunner.QueueUncaughtExceptionsHandlerc2801a551ed8279d
    com.carrotsearch.randomizedtesting.RandomizedRunner.TestCandidateaa058e6fd4c69a2f
    com.carrotsearch.randomizedtesting.RandomizedRunner.TestMethodExecution86c82e21c3362a05
    com.carrotsearch.randomizedtesting.RandomizedTest6b786839b5bb4aa3
    com.carrotsearch.randomizedtesting.RandomizedTest.528b1e9f1a376a530
    com.carrotsearch.randomizedtesting.Randomnesse7bc07c7164b9a2a
    com.carrotsearch.randomizedtesting.RunnerContainera752f3533230abc9
    com.carrotsearch.randomizedtesting.RunnerThreadGroupa73ceb274c63742c
    com.carrotsearch.randomizedtesting.SeedUtilsc716edaa47db8c94
    com.carrotsearch.randomizedtesting.SysGlobals280c161ca05ac910
    com.carrotsearch.randomizedtesting.ThreadLeakControl1c065600921d1926
    com.carrotsearch.randomizedtesting.ThreadLeakControl.19c30a37c631c9313
    com.carrotsearch.randomizedtesting.ThreadLeakControl.2fabf7c3bb505955b
    com.carrotsearch.randomizedtesting.ThreadLeakControl.323242fe460bc7321
    com.carrotsearch.randomizedtesting.ThreadLeakControl.43ae46e0f281d83ff
    com.carrotsearch.randomizedtesting.ThreadLeakControl.5b4b6763fa9897f61
    com.carrotsearch.randomizedtesting.ThreadLeakControl.KnownSystemThread50fb2dd7cdd4d17d
    com.carrotsearch.randomizedtesting.ThreadLeakControl.StatementRunnerda62ca3606950f08
    com.carrotsearch.randomizedtesting.ThreadLeakControl.SubNotifier7d2d6668e37ea99a
    com.carrotsearch.randomizedtesting.ThreadLeakControl.ThisThreadFilter7ee5d47b77ffda43
    com.carrotsearch.randomizedtesting.ThreadLeakControl.TimeoutValueca1a398e8e8c1629
    com.carrotsearch.randomizedtesting.Threads5c3a4a81f877b976
    com.carrotsearch.randomizedtesting.Threads.1d43b35f243fce9b7
    com.carrotsearch.randomizedtesting.Threads.294a0843e825809f2
    com.carrotsearch.randomizedtesting.TraceFormatting571278bfe93b896a
    com.carrotsearch.randomizedtesting.Validationda264d9df734b20d
    com.carrotsearch.randomizedtesting.Validation.ClassValidationada1a16e086f93c8
    com.carrotsearch.randomizedtesting.Validation.MethodValidation8d01d0e25112daba
    com.carrotsearch.randomizedtesting.Xoroshiro128PlusRandom2af0cbffcf103734
    com.carrotsearch.randomizedtesting.annotations.TestCaseInstanceProvider.Typeee3523de62816c9a
    com.carrotsearch.randomizedtesting.annotations.ThreadLeakAction.Action63b2d43a3fb3b5b5
    com.carrotsearch.randomizedtesting.annotations.ThreadLeakGroup.Group3f9fa893bc3683d2
    com.carrotsearch.randomizedtesting.annotations.ThreadLeakScope.Scopec2e0da95bb4b3997
    com.carrotsearch.randomizedtesting.annotations.ThreadLeakZombies.Consequence4b7bee6e7799c0f1
    com.carrotsearch.randomizedtesting.generators.RandomNumbersc538db0b0172327e
    com.carrotsearch.randomizedtesting.generators.RandomPicksc6e97ea71382d909
    com.carrotsearch.randomizedtesting.rules.Constants9c04fe3fe96a37a2
    com.carrotsearch.randomizedtesting.rules.IdentityHashSet04aef2cf5c180289
    com.carrotsearch.randomizedtesting.rules.MurmurHash3c122cc0a4bccb7cd
    com.carrotsearch.randomizedtesting.rules.NoClassHooksShadowingRule4e833a72a0f0c4e1
    com.carrotsearch.randomizedtesting.rules.NoInstanceHooksOverridesRule2637ddb92e2d0374
    com.carrotsearch.randomizedtesting.rules.NoShadowingOrOverridesOnMethodsRuleca045faae41fdba6
    com.carrotsearch.randomizedtesting.rules.NoShadowingOrOverridesOnMethodsRule.14cd6fe7c25a0076b
    com.carrotsearch.randomizedtesting.rules.RamUsageEstimator40ab80815ba784de
    com.carrotsearch.randomizedtesting.rules.RamUsageEstimator.JvmFeatureabcefc1a12ff2556
    com.carrotsearch.randomizedtesting.rules.StatementAdapter0bdc9159f1c7e344
    com.carrotsearch.randomizedtesting.rules.StaticFieldsInvariantRule8e83573a8886d991
    com.carrotsearch.randomizedtesting.rules.StaticFieldsInvariantRule.15f2865f111e4b08f
    com.carrotsearch.randomizedtesting.rules.StaticFieldsInvariantRule.1.1248f73c6354cf733
    com.carrotsearch.randomizedtesting.rules.StaticFieldsInvariantRule.1.21f2e4f2c0045e7c1
    com.carrotsearch.randomizedtesting.rules.StaticFieldsInvariantRule.Entryb14bf3d1ad551875
    com.carrotsearch.randomizedtesting.rules.TestRuleAdapter1309f8aa68553621
    com.carrotsearch.randomizedtesting.rules.TestRuleAdapter.1f9368df6c549caef
    com.esotericsoftware.minlog.Logc05158d5e66d9c02
    com.esotericsoftware.minlog.Log.Logger349e3e9c35cef91b
    com.fasterxml.jackson.annotation.JsonAutoDetect.16be52ec71dcf28a2
    com.fasterxml.jackson.annotation.JsonAutoDetect.Visibilitye56bcd385626eead
    com.fasterxml.jackson.annotation.JsonFormat.Featuree632f8db525e6519
    com.fasterxml.jackson.annotation.JsonFormat.Features75fb2eb9717dc62a
    com.fasterxml.jackson.annotation.JsonFormat.Shapec19c22f9661f3b7d
    com.fasterxml.jackson.annotation.JsonFormat.Value0eb8231d09bfd09a
    com.fasterxml.jackson.annotation.JsonIgnoreProperties.Value4f0da3cf85f6ca76
    com.fasterxml.jackson.annotation.JsonInclude.Include30ab0a782ad08747
    com.fasterxml.jackson.annotation.JsonInclude.Valuea558d9f40414e748
    com.fasterxml.jackson.annotation.JsonIncludeProperties.Value7ed084480a07ee84
    com.fasterxml.jackson.annotation.JsonProperty.Accessb5322e85ff85e8b9
    com.fasterxml.jackson.annotation.JsonSetter.Value6ee26ce006658a00
    com.fasterxml.jackson.annotation.Nulls724f990ec72b618f
    com.fasterxml.jackson.annotation.PropertyAccessora506c0b4a9292088
    com.fasterxml.jackson.core.Base64Variant820db952b2ce1918
    com.fasterxml.jackson.core.Base64Variant.PaddingReadBehaviourdd0e63a614fe004b
    com.fasterxml.jackson.core.Base64Variantse646bbe091ae79c0
    com.fasterxml.jackson.core.ErrorReportConfiguration6ae7b9c14364f861
    com.fasterxml.jackson.core.JsonEncodingcb4ae57cec60e79d
    com.fasterxml.jackson.core.JsonFactory4b6dbe517dc74f05
    com.fasterxml.jackson.core.JsonFactory.Feature6053a66ef91d8599
    com.fasterxml.jackson.core.JsonGenerator8a53f1394a871e41
    com.fasterxml.jackson.core.JsonGenerator.Featuredca43627a1b1d378
    com.fasterxml.jackson.core.JsonParserbfa2b2aaf45dbdaf
    com.fasterxml.jackson.core.JsonParser.Feature7e095b73debaa45f
    com.fasterxml.jackson.core.JsonParser.NumberType88e7ccc17e76b9de
    com.fasterxml.jackson.core.JsonStreamContext369abe89770bcf3d
    com.fasterxml.jackson.core.JsonTokeneed63a6e4a8e9120
    com.fasterxml.jackson.core.ObjectCodec4de1a295d9dc31ca
    com.fasterxml.jackson.core.PrettyPrinterf27d5528a26794c9
    com.fasterxml.jackson.core.StreamReadCapabilitya4c561ff4de25114
    com.fasterxml.jackson.core.StreamReadConstraintsfef85c00a0df6225
    com.fasterxml.jackson.core.StreamReadFeature9a2e8953e3d6037c
    com.fasterxml.jackson.core.StreamWriteCapability20b236b266d25323
    com.fasterxml.jackson.core.StreamWriteConstraintsf2bb5b3756dacf82
    com.fasterxml.jackson.core.TokenStreamFactory41de330f27eca392
    com.fasterxml.jackson.core.TreeCodec18594f8a8dcec6a2
    com.fasterxml.jackson.core.Version9e2d74f157825603
    com.fasterxml.jackson.core.base.GeneratorBase769b434d47814ead
    com.fasterxml.jackson.core.base.ParserBase7ea5c57b85e68f85
    com.fasterxml.jackson.core.base.ParserMinimalBasedafc6c7b6eb27cb5
    com.fasterxml.jackson.core.io.CharTypes07a8747913d8e991
    com.fasterxml.jackson.core.io.ContentReferencec1bf9547a5b31574
    com.fasterxml.jackson.core.io.IOContext92f945a4db96d4d1
    com.fasterxml.jackson.core.io.JsonStringEncodercaf3b669acbbe223
    com.fasterxml.jackson.core.io.NumberInput6b34a37c1fb6a484
    com.fasterxml.jackson.core.io.NumberOutput9603d1200ce5afbc
    com.fasterxml.jackson.core.io.SegmentedStringWriteraf9b17af11ce151f
    com.fasterxml.jackson.core.io.SerializedStringde06c047872018ad
    com.fasterxml.jackson.core.json.ByteSourceJsonBootstrapper0ba003a54273d8f7
    com.fasterxml.jackson.core.json.JsonGeneratorImpl62f7e0732a7b3f16
    com.fasterxml.jackson.core.json.JsonReadContext7fe93ff4dfcd910a
    com.fasterxml.jackson.core.json.JsonWriteContext80adf9bb4918112e
    com.fasterxml.jackson.core.json.ReaderBasedJsonParser5a748aacc97cbeaf
    com.fasterxml.jackson.core.json.UTF8JsonGeneratorccf70777c87bc779
    com.fasterxml.jackson.core.json.UTF8StreamJsonParser9774ce4b622b6787
    com.fasterxml.jackson.core.json.WriterBasedJsonGenerator4c9c68d95ea16405
    com.fasterxml.jackson.core.sym.ByteQuadsCanonicalizer5054f4087e115bac
    com.fasterxml.jackson.core.sym.ByteQuadsCanonicalizer.TableInfoeb0211d6faa23d01
    com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer098437effe93aab8
    com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer.Bucket7c0255c4c5f898c2
    com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer.TableInfo7f8a1e78ae4259c6
    com.fasterxml.jackson.core.type.ResolvedType8a4589ad9960ed59
    com.fasterxml.jackson.core.util.BufferRecycler130f2ce298e329d8
    com.fasterxml.jackson.core.util.BufferRecyclers4e7bee8eece90b3a
    com.fasterxml.jackson.core.util.DefaultIndenter18913563e8366f39
    com.fasterxml.jackson.core.util.DefaultPrettyPrinterdffce786178e5ff1
    com.fasterxml.jackson.core.util.DefaultPrettyPrinter.FixedSpaceIndenter418687d575a4f083
    com.fasterxml.jackson.core.util.DefaultPrettyPrinter.NopIndenter110c0bf83e5c079c
    com.fasterxml.jackson.core.util.InternCacheb55c4c122f488f2e
    com.fasterxml.jackson.core.util.JacksonFeatureSet69b6b3d8af7f13b3
    com.fasterxml.jackson.core.util.JsonRecyclerPoolsbb15cd8e45e37fee
    com.fasterxml.jackson.core.util.JsonRecyclerPools.ThreadLocalPoolb47528b0197c08e2
    com.fasterxml.jackson.core.util.ReadConstrainedTextBuffer23fc9ce24061d845
    com.fasterxml.jackson.core.util.RecyclerPool.ThreadLocalPoolBase23bd83512f98e1cd
    com.fasterxml.jackson.core.util.Separatorsdb601d3f3bad91c2
    com.fasterxml.jackson.core.util.Separators.Spacing511422cc9db17520
    com.fasterxml.jackson.core.util.TextBuffere0024e1d666b4905
    com.fasterxml.jackson.core.util.VersionUtil665fa94b3d0b07a9
    com.fasterxml.jackson.databind.AnnotationIntrospector905eb800c47f61a4
    com.fasterxml.jackson.databind.AnnotationIntrospector.ReferenceProperty09f92466c78dd697
    com.fasterxml.jackson.databind.AnnotationIntrospector.ReferenceProperty.Typed90a083248c5b3dc
    com.fasterxml.jackson.databind.BeanDescriptionb72f4d814c7d9796
    com.fasterxml.jackson.databind.BeanProperty.Std1dc3c0a141338eba
    com.fasterxml.jackson.databind.DatabindContext190fc61056492212
    com.fasterxml.jackson.databind.DeserializationConfiga66abddaffd0eeda
    com.fasterxml.jackson.databind.DeserializationContexte42cf81978826049
    com.fasterxml.jackson.databind.DeserializationFeaturee8c5e101ec4650d4
    com.fasterxml.jackson.databind.JavaType4b4e8dfd897d7a79
    com.fasterxml.jackson.databind.JsonDeserializerf155d5de89ce5a60
    com.fasterxml.jackson.databind.JsonNode56cae57f74bf28ed
    com.fasterxml.jackson.databind.JsonSerializable.Based7667d73e9aa24c4
    com.fasterxml.jackson.databind.JsonSerializeradb9d1fae01b02c7
    com.fasterxml.jackson.databind.KeyDeserializer57c3ce9990767641
    com.fasterxml.jackson.databind.MapperFeatured7d85f4bfd3cff7a
    com.fasterxml.jackson.databind.MappingJsonFactory65cdd9294dfaf29a
    com.fasterxml.jackson.databind.Modulebb66b81d910dbd05
    com.fasterxml.jackson.databind.ObjectMapper1267d692f0f6e0ba
    com.fasterxml.jackson.databind.ObjectMapper.10b9220e9c1bc2c47
    com.fasterxml.jackson.databind.ObjectReader1d24d1af08075eb3
    com.fasterxml.jackson.databind.PropertyMetadata56620abf8cdd07c8
    com.fasterxml.jackson.databind.PropertyName217cf81be2326911
    com.fasterxml.jackson.databind.SerializationConfig40620b2ae2347380
    com.fasterxml.jackson.databind.SerializationFeature9609ec0ec1e8bc2a
    com.fasterxml.jackson.databind.SerializerProvider10f427a250ca2427
    com.fasterxml.jackson.databind.cfg.BaseSettings74949427e8604cd4
    com.fasterxml.jackson.databind.cfg.CoercionAction9e15561f16680f97
    com.fasterxml.jackson.databind.cfg.CoercionConfigffad61191adeb87e
    com.fasterxml.jackson.databind.cfg.CoercionConfigs8937a55c926c734f
    com.fasterxml.jackson.databind.cfg.CoercionConfigs.1931244b15cf2e1f1
    com.fasterxml.jackson.databind.cfg.CoercionInputShape90aad4e377b3dccd
    com.fasterxml.jackson.databind.cfg.ConfigOverridef1771a0d408303c8
    com.fasterxml.jackson.databind.cfg.ConfigOverride.Empty3372ed519d9bafb4
    com.fasterxml.jackson.databind.cfg.ConfigOverrides7943101710d9f910
    com.fasterxml.jackson.databind.cfg.ConstructorDetector9af1c9a41cb4b83d
    com.fasterxml.jackson.databind.cfg.ConstructorDetector.SingleArgConstructorb0c67222cebc30be
    com.fasterxml.jackson.databind.cfg.ContextAttributes216e6db5a97ae48a
    com.fasterxml.jackson.databind.cfg.ContextAttributes.Implede427cff276c0b8
    com.fasterxml.jackson.databind.cfg.DatatypeFeaturesf4893ef156575441
    com.fasterxml.jackson.databind.cfg.DatatypeFeatures.DefaultHolder81838084595fa0c8
    com.fasterxml.jackson.databind.cfg.DefaultCacheProvider6bbb2aa855b50726
    com.fasterxml.jackson.databind.cfg.DeserializerFactoryConfig7861ff22cec5640b
    com.fasterxml.jackson.databind.cfg.EnumFeature16e95ce7a3f1f1ee
    com.fasterxml.jackson.databind.cfg.JsonNodeFeature93b45511772e9fc3
    com.fasterxml.jackson.databind.cfg.MapperConfigc7b0b1bb3bc6f9f1
    com.fasterxml.jackson.databind.cfg.MapperConfigBase5bb7b8ef48c720d7
    com.fasterxml.jackson.databind.cfg.MutableCoercionConfig262e6b36c9ca989e
    com.fasterxml.jackson.databind.cfg.SerializerFactoryConfigd93f22d3258ee4c0
    com.fasterxml.jackson.databind.deser.BasicDeserializerFactory3944ee9b76fde7a2
    com.fasterxml.jackson.databind.deser.BasicDeserializerFactory.ContainerDefaultMappingsdf7805e17fdc7522
    com.fasterxml.jackson.databind.deser.BasicDeserializerFactory.CreatorCollectionStatef0dbb90499e14fa4
    com.fasterxml.jackson.databind.deser.BeanDeserializer51262781f5e28489
    com.fasterxml.jackson.databind.deser.BeanDeserializerBasedf7ad1189a3b508b
    com.fasterxml.jackson.databind.deser.BeanDeserializerBuilderd5bdf1bb9953f729
    com.fasterxml.jackson.databind.deser.BeanDeserializerFactory65809d9bdea9493b
    com.fasterxml.jackson.databind.deser.BeanDeserializerModifier184167b49d96ae56
    com.fasterxml.jackson.databind.deser.DefaultDeserializationContext5756779a22fd7d68
    com.fasterxml.jackson.databind.deser.DefaultDeserializationContext.Impl8057860fe47eb5da
    com.fasterxml.jackson.databind.deser.DeserializerCache7d85f058f583e5dd
    com.fasterxml.jackson.databind.deser.DeserializerFactory2ebdf24d93849f1a
    com.fasterxml.jackson.databind.deser.SettableAnyPropertyaad043facc07e3e1
    com.fasterxml.jackson.databind.deser.SettableAnyProperty.MethodAnyProperty9e6e2416f9612c30
    com.fasterxml.jackson.databind.deser.SettableBeanPropertye32815b47681953f
    com.fasterxml.jackson.databind.deser.SettableBeanProperty.Delegating9a42268c2af26ce4
    com.fasterxml.jackson.databind.deser.ValueInstantiator500a74eea26ebb5d
    com.fasterxml.jackson.databind.deser.ValueInstantiator.Base56fce65bc9fdb762
    com.fasterxml.jackson.databind.deser.impl.BeanPropertyMapabab716eded67ac2
    com.fasterxml.jackson.databind.deser.impl.CreatorCollector0f8b3def4682a020
    com.fasterxml.jackson.databind.deser.impl.FailingDeserializer4904d8577f214eb3
    com.fasterxml.jackson.databind.deser.impl.FieldProperty79a77498e066a15d
    com.fasterxml.jackson.databind.deser.impl.JDKValueInstantiators008ddf7a64eb2d4a
    com.fasterxml.jackson.databind.deser.impl.JDKValueInstantiators.ArrayListInstantiator187a1232f1bf2643
    com.fasterxml.jackson.databind.deser.impl.JDKValueInstantiators.LinkedHashMapInstantiator8e9a27c2b9ea0809
    com.fasterxml.jackson.databind.deser.impl.MethodPropertydf95398e08d528a0
    com.fasterxml.jackson.databind.deser.impl.NullsConstantProvider83cd716157aa0f9a
    com.fasterxml.jackson.databind.deser.std.BaseNodeDeserializer82dde7b6c751ad90
    com.fasterxml.jackson.databind.deser.std.BaseNodeDeserializer.ContainerStack47ba851b95cd1477
    com.fasterxml.jackson.databind.deser.std.CollectionDeserializer264403aa8c0a30f7
    com.fasterxml.jackson.databind.deser.std.ContainerDeserializerBase0f7cf99ff0b0c8a0
    com.fasterxml.jackson.databind.deser.std.DateDeserializers9e6826e9538c1d95
    com.fasterxml.jackson.databind.deser.std.DateDeserializers.DateBasedDeserializera724948d8fa77410
    com.fasterxml.jackson.databind.deser.std.DateDeserializers.DateDeserializer15a9d57b22e2ade2
    com.fasterxml.jackson.databind.deser.std.FromStringDeserializerb5093028e19eaf91
    com.fasterxml.jackson.databind.deser.std.JdkDeserializersa7ac27fec28e8de9
    com.fasterxml.jackson.databind.deser.std.JsonNodeDeserializer39345e6cbb5ce5e8
    com.fasterxml.jackson.databind.deser.std.MapDeserializerb32eea18a36cb24a
    com.fasterxml.jackson.databind.deser.std.NumberDeserializersaf4aa96d306dfbb7
    com.fasterxml.jackson.databind.deser.std.NumberDeserializers.BooleanDeserializer30e8686ef1609fb9
    com.fasterxml.jackson.databind.deser.std.NumberDeserializers.IntegerDeserializercb695275ccadb732
    com.fasterxml.jackson.databind.deser.std.NumberDeserializers.LongDeserializer003b30a97cae021a
    com.fasterxml.jackson.databind.deser.std.NumberDeserializers.NumberDeserializer24d7e253adbe49ba
    com.fasterxml.jackson.databind.deser.std.NumberDeserializers.PrimitiveOrWrapperDeserializer467caf19a87c057e
    com.fasterxml.jackson.databind.deser.std.StdDeserializer2122bf750d1b5b89
    com.fasterxml.jackson.databind.deser.std.StdKeyDeserializera4a518bbbaf161f0
    com.fasterxml.jackson.databind.deser.std.StdKeyDeserializer.StringKDf39c6c872cbaa313
    com.fasterxml.jackson.databind.deser.std.StdKeyDeserializers2ca4ab5d0f0b71dd
    com.fasterxml.jackson.databind.deser.std.StdScalarDeserializer25286f364997b846
    com.fasterxml.jackson.databind.deser.std.StdValueInstantiator34181f4c11253cc9
    com.fasterxml.jackson.databind.deser.std.StringArrayDeserializerdbeac8e57a8a807e
    com.fasterxml.jackson.databind.deser.std.StringDeserializer36ba9f92a53b7892
    com.fasterxml.jackson.databind.deser.std.UntypedObjectDeserializerd9dd77561d0b2427
    com.fasterxml.jackson.databind.deser.std.UntypedObjectDeserializerNRe1ad05bf432fcba5
    com.fasterxml.jackson.databind.ext.Java7Handlers31410c423d95a2d0
    com.fasterxml.jackson.databind.ext.Java7HandlersImpl423b0b9d126fb382
    com.fasterxml.jackson.databind.ext.Java7Support4b7557784caa415a
    com.fasterxml.jackson.databind.ext.Java7SupportImpl94a94fc44678f7e9
    com.fasterxml.jackson.databind.ext.OptionalHandlerFactorya873be98e8f52009
    com.fasterxml.jackson.databind.introspect.AccessorNamingStrategy3d3b7f563f5ca70a
    com.fasterxml.jackson.databind.introspect.AccessorNamingStrategy.Provider6026222786456f26
    com.fasterxml.jackson.databind.introspect.Annotated47d3d49f2b832d54
    com.fasterxml.jackson.databind.introspect.AnnotatedClass208d1216b93f97d9
    com.fasterxml.jackson.databind.introspect.AnnotatedClass.Creatorsecbba5a1c87c995f
    com.fasterxml.jackson.databind.introspect.AnnotatedClassResolver9c1435b88f5e9e91
    com.fasterxml.jackson.databind.introspect.AnnotatedConstructoreaf946db37898a44
    com.fasterxml.jackson.databind.introspect.AnnotatedCreatorCollectorf1dbd789d7b2161e
    com.fasterxml.jackson.databind.introspect.AnnotatedFielde6e45b21b9cdeda3
    com.fasterxml.jackson.databind.introspect.AnnotatedFieldCollectord6830919dea39e8f
    com.fasterxml.jackson.databind.introspect.AnnotatedFieldCollector.FieldBuilder571d9e7fb561d385
    com.fasterxml.jackson.databind.introspect.AnnotatedMember5879537c033bd580
    com.fasterxml.jackson.databind.introspect.AnnotatedMethodad2f0bf303d90ae0
    com.fasterxml.jackson.databind.introspect.AnnotatedMethodCollectore8e34bff5e47f125
    com.fasterxml.jackson.databind.introspect.AnnotatedMethodCollector.MethodBuilderb522d96f88a7ade4
    com.fasterxml.jackson.databind.introspect.AnnotatedMethodMapd69be24a07cecf16
    com.fasterxml.jackson.databind.introspect.AnnotatedWithParams54f7d4537c15cfdb
    com.fasterxml.jackson.databind.introspect.AnnotationCollectorc389709d2ffbb364
    com.fasterxml.jackson.databind.introspect.AnnotationCollector.EmptyCollectora87b6b2439611ec7
    com.fasterxml.jackson.databind.introspect.AnnotationCollector.NCollector9e3f6012728d8752
    com.fasterxml.jackson.databind.introspect.AnnotationCollector.NoAnnotations9173d7167a075d90
    com.fasterxml.jackson.databind.introspect.AnnotationCollector.OneCollector4d7ed4cd12d6011c
    com.fasterxml.jackson.databind.introspect.AnnotationCollector.TwoAnnotationscfd34e461249c2a8
    com.fasterxml.jackson.databind.introspect.AnnotationMap78aa63dcada1ee05
    com.fasterxml.jackson.databind.introspect.BasicBeanDescription4f0d484434fb6325
    com.fasterxml.jackson.databind.introspect.BasicClassIntrospectorfcecadfe75a5c2af
    com.fasterxml.jackson.databind.introspect.BeanPropertyDefinitiond3bbcf006607ecb0
    com.fasterxml.jackson.databind.introspect.ClassIntrospectorb20a1133edfcf6b5
    com.fasterxml.jackson.databind.introspect.CollectorBasefec0f38373f479ba
    com.fasterxml.jackson.databind.introspect.ConcreteBeanPropertyBasefa5bde6be1d392b1
    com.fasterxml.jackson.databind.introspect.DefaultAccessorNamingStrategyefc1568392fc0098
    com.fasterxml.jackson.databind.introspect.DefaultAccessorNamingStrategy.Provider9679bb882d2d354f
    com.fasterxml.jackson.databind.introspect.JacksonAnnotationIntrospector9d54114155341c05
    com.fasterxml.jackson.databind.introspect.MemberKey0e604899c13122c4
    com.fasterxml.jackson.databind.introspect.POJOPropertiesCollector1821e69f144ab189
    com.fasterxml.jackson.databind.introspect.POJOPropertyBuilder87b50c8168df5d0b
    com.fasterxml.jackson.databind.introspect.POJOPropertyBuilder.1925ffe3a324d008c
    com.fasterxml.jackson.databind.introspect.POJOPropertyBuilder.2f9f5816009560a85
    com.fasterxml.jackson.databind.introspect.POJOPropertyBuilder.4ccfa1b83e27ecd92
    com.fasterxml.jackson.databind.introspect.POJOPropertyBuilder.58bc5c843a115ba34
    com.fasterxml.jackson.databind.introspect.POJOPropertyBuilder.6a2d5a4cee9bda8de
    com.fasterxml.jackson.databind.introspect.POJOPropertyBuilder.Linkedef62b5db9e7546d6
    com.fasterxml.jackson.databind.introspect.SimpleMixInResolver6a0721d817cbf413
    com.fasterxml.jackson.databind.introspect.TypeResolutionContext.Basic09190ef225acb240
    com.fasterxml.jackson.databind.introspect.VisibilityChecker.Std86f77996bd544f4e
    com.fasterxml.jackson.databind.jsontype.PolymorphicTypeValidatorff1c7cc76de984ce
    com.fasterxml.jackson.databind.jsontype.PolymorphicTypeValidator.Baseea9ae0e64ce11069
    com.fasterxml.jackson.databind.jsontype.SubtypeResolverb2ed8bc0e5fe669c
    com.fasterxml.jackson.databind.jsontype.impl.LaissezFaireSubTypeValidatord02dab29b87ed521
    com.fasterxml.jackson.databind.jsontype.impl.StdSubtypeResolver342823e6800eb76b
    com.fasterxml.jackson.databind.jsontype.impl.SubTypeValidatora7ad2f19c2210a88
    com.fasterxml.jackson.databind.node.ArrayNodeeddaf67053a53e40
    com.fasterxml.jackson.databind.node.BaseJsonNodebfd90fff281f00ca
    com.fasterxml.jackson.databind.node.BooleanNodecebb2fcdf8e3b29f
    com.fasterxml.jackson.databind.node.ContainerNode3e656b4335d16878
    com.fasterxml.jackson.databind.node.JsonNodeFactoryb407554ab061d84d
    com.fasterxml.jackson.databind.node.JsonNodeTypea26f1eeaaa06bdd6
    com.fasterxml.jackson.databind.node.NullNodeb1e6b4cd83f34f0f
    com.fasterxml.jackson.databind.node.ObjectNode74aad756ca3a7d79
    com.fasterxml.jackson.databind.node.TextNode24a44d604f63089e
    com.fasterxml.jackson.databind.node.ValueNode836490b62c1c13d7
    com.fasterxml.jackson.databind.ser.BasicSerializerFactoryda909c46cb0d91a4
    com.fasterxml.jackson.databind.ser.BeanSerializerFactory16faed09cf6c52b8
    com.fasterxml.jackson.databind.ser.BeanSerializerModifier67661ad652d96db0
    com.fasterxml.jackson.databind.ser.ContainerSerializer67b35562bf415143
    com.fasterxml.jackson.databind.ser.DefaultSerializerProvider7081bda43dcfcb52
    com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.Implbb7a481d8d11e37e
    com.fasterxml.jackson.databind.ser.SerializerCache05a580ec11f5621f
    com.fasterxml.jackson.databind.ser.SerializerFactorya96ec5a87f2a9dec
    com.fasterxml.jackson.databind.ser.impl.FailingSerializer96696f091a076f00
    com.fasterxml.jackson.databind.ser.impl.ReadOnlyClassToSerializerMapf7673b78d4dbb21a
    com.fasterxml.jackson.databind.ser.impl.StringArraySerializere460ddec25a8c614
    com.fasterxml.jackson.databind.ser.impl.UnknownSerializer0f0b100c24ae521b
    com.fasterxml.jackson.databind.ser.std.ArraySerializerBasec8c6410977eb572f
    com.fasterxml.jackson.databind.ser.std.BooleanSerializera5e7ba6f955baf41
    com.fasterxml.jackson.databind.ser.std.CalendarSerializerda6df272674c3c19
    com.fasterxml.jackson.databind.ser.std.DateSerializerdcf355b20d60965d
    com.fasterxml.jackson.databind.ser.std.DateTimeSerializerBasefb1c17ba4f02cbe0
    com.fasterxml.jackson.databind.ser.std.NullSerializer55885eb24739c250
    com.fasterxml.jackson.databind.ser.std.NumberSerializer2b09bf235752694e
    com.fasterxml.jackson.databind.ser.std.NumberSerializersdfe8936a5bca95d8
    com.fasterxml.jackson.databind.ser.std.NumberSerializers.Base243c88192bb86ee4
    com.fasterxml.jackson.databind.ser.std.NumberSerializers.DoubleSerializer5b65fb8c8ea04f02
    com.fasterxml.jackson.databind.ser.std.NumberSerializers.FloatSerializer0849cda863777be8
    com.fasterxml.jackson.databind.ser.std.NumberSerializers.IntLikeSerializer37f949791419da14
    com.fasterxml.jackson.databind.ser.std.NumberSerializers.IntegerSerializer8572ad7f464034dd
    com.fasterxml.jackson.databind.ser.std.NumberSerializers.LongSerializer1bcc67c140cfbe03
    com.fasterxml.jackson.databind.ser.std.NumberSerializers.ShortSerializera678b068eca9e8b6
    com.fasterxml.jackson.databind.ser.std.StdJdkSerializersb1d950d41858d3ba
    com.fasterxml.jackson.databind.ser.std.StdScalarSerializer294ce690d4fde5d1
    com.fasterxml.jackson.databind.ser.std.StdSerializer2eb989e3aa9ebf8b
    com.fasterxml.jackson.databind.ser.std.StringSerializerb6342c9e6a90d477
    com.fasterxml.jackson.databind.ser.std.ToEmptyObjectSerializerdcbbfaf250568a42
    com.fasterxml.jackson.databind.ser.std.ToStringSerializerb965af9d2adb22d7
    com.fasterxml.jackson.databind.ser.std.ToStringSerializerBase4df4671bce83caa1
    com.fasterxml.jackson.databind.ser.std.UUIDSerializer9825ed90a3a1ea38
    com.fasterxml.jackson.databind.type.ArrayTypeada34943c659785c
    com.fasterxml.jackson.databind.type.ClassStackb4e39752aaaff8ce
    com.fasterxml.jackson.databind.type.CollectionLikeTypefdca9c74891003b6
    com.fasterxml.jackson.databind.type.CollectionType754ccfd8e93b2fdd
    com.fasterxml.jackson.databind.type.LogicalTypee0e08cb4c4d717b1
    com.fasterxml.jackson.databind.type.MapLikeType84a6b76ead78268b
    com.fasterxml.jackson.databind.type.MapTypee4c0bbd455f37026
    com.fasterxml.jackson.databind.type.SimpleType9bf726d4e15bb139
    com.fasterxml.jackson.databind.type.TypeBase84e347a8123ba86e
    com.fasterxml.jackson.databind.type.TypeBindings69af78e44b169d2b
    com.fasterxml.jackson.databind.type.TypeBindings.AsKey3cf63795dd54b8b7
    com.fasterxml.jackson.databind.type.TypeBindings.TypeParamStashc0b0ab8001879ee4
    com.fasterxml.jackson.databind.type.TypeFactory3596cbf80365f39f
    com.fasterxml.jackson.databind.type.TypeParser539ac466374b5334
    com.fasterxml.jackson.databind.util.AccessPattern44bf82acd8a3fffc
    com.fasterxml.jackson.databind.util.ArrayBuildersc14a06ce657aa67b
    com.fasterxml.jackson.databind.util.ArrayIteratore4c9e4d38ac21c90
    com.fasterxml.jackson.databind.util.BeanUtilaca352d66ffbab01
    com.fasterxml.jackson.databind.util.ClassUtil7a2a6f716f5500a1
    com.fasterxml.jackson.databind.util.ClassUtil.Ctor1fd4710f90ff53de
    com.fasterxml.jackson.databind.util.IgnorePropertiesUtil81001725c2203f99
    com.fasterxml.jackson.databind.util.LRUMapc487e14750ddd25e
    com.fasterxml.jackson.databind.util.LinkedNode73ca05873e25cb2e
    com.fasterxml.jackson.databind.util.NativeImageUtilb8f4495279426166
    com.fasterxml.jackson.databind.util.ObjectBuffer14fbae37b93a957b
    com.fasterxml.jackson.databind.util.RootNameLookupadd4d1fb1a084862
    com.fasterxml.jackson.databind.util.StdDateFormatc6d4539431425f11
    com.fasterxml.jackson.databind.util.TypeKey32162ed128b7bbbd
    com.fasterxml.jackson.databind.util.internal.LinkedDeque9bfc4fbb2b0b1196
    com.fasterxml.jackson.databind.util.internal.PrivateMaxEntriesMap3f0ff22fe5779861
    com.fasterxml.jackson.databind.util.internal.PrivateMaxEntriesMap.AddTask866aec97a77c2650
    com.fasterxml.jackson.databind.util.internal.PrivateMaxEntriesMap.Builderdcc244062522bdc6
    com.fasterxml.jackson.databind.util.internal.PrivateMaxEntriesMap.DrainStatusa1e26b7a083af651
    com.fasterxml.jackson.databind.util.internal.PrivateMaxEntriesMap.DrainStatus.12de09d3a3bfcdca6
    com.fasterxml.jackson.databind.util.internal.PrivateMaxEntriesMap.DrainStatus.22928516020b2e91a
    com.fasterxml.jackson.databind.util.internal.PrivateMaxEntriesMap.DrainStatus.326e6a18539bc3d80
    com.fasterxml.jackson.databind.util.internal.PrivateMaxEntriesMap.EntryIterator86fc40b47b6d46b6
    com.fasterxml.jackson.databind.util.internal.PrivateMaxEntriesMap.EntrySet69a473f3bfd1c6f1
    com.fasterxml.jackson.databind.util.internal.PrivateMaxEntriesMap.Node2dc3669c077d2e56
    com.fasterxml.jackson.databind.util.internal.PrivateMaxEntriesMap.WeightedValuec5874d009c2eaa54
    com.fasterxml.jackson.dataformat.yaml.UTF8Readerd9ab1e2ee45a21fd
    com.fasterxml.jackson.dataformat.yaml.YAMLFactory4efdb92f8a3604f4
    com.fasterxml.jackson.dataformat.yaml.YAMLGenerator.Feature3997ab216dffff80
    com.fasterxml.jackson.dataformat.yaml.YAMLParser6940099f147dfcce
    com.fasterxml.jackson.dataformat.yaml.YAMLParser.Featureb97e3913845b5cf5
    com.fasterxml.jackson.dataformat.yaml.util.StringQuotingChecker5f323d61ac73bf31
    com.fasterxml.jackson.dataformat.yaml.util.StringQuotingChecker.Default6a8ea0e261b261f8
    com.fasterxml.jackson.module.afterburner.AfterburnerModule199d238f356edc15
    com.fasterxml.jackson.module.afterburner.PackageVersionfbb919d8d00a45fe
    com.fasterxml.jackson.module.afterburner.asm.AnnotationWriter26e3f2a9d5189a44
    com.fasterxml.jackson.module.afterburner.asm.Attribute2efab23372ecfa18
    com.fasterxml.jackson.module.afterburner.asm.ByteVector468fd5dee16f6f94
    com.fasterxml.jackson.module.afterburner.asm.ClassVisitor388846e4960febe3
    com.fasterxml.jackson.module.afterburner.asm.ClassWriter7a3ec1cd43411b75
    com.fasterxml.jackson.module.afterburner.asm.Edgef5aa419176534f91
    com.fasterxml.jackson.module.afterburner.asm.Handler2b61e7f54f039d20
    com.fasterxml.jackson.module.afterburner.asm.Label90eefbf66285b8b1
    com.fasterxml.jackson.module.afterburner.asm.MethodVisitor7f2af2bb098c6f8e
    com.fasterxml.jackson.module.afterburner.asm.MethodWriteree2650d838332d42
    com.fasterxml.jackson.module.afterburner.asm.Symbolcefaf3084e73060d
    com.fasterxml.jackson.module.afterburner.asm.SymbolTable6cf9d3ecd897faab
    com.fasterxml.jackson.module.afterburner.asm.SymbolTable.Entry993e8bf5b40e2a91
    com.fasterxml.jackson.module.afterburner.asm.Typefe8b4208cc440f98
    com.fasterxml.jackson.module.afterburner.deser.BeanPropertyMutator09cd3d9e6eec535b
    com.fasterxml.jackson.module.afterburner.deser.CreatorOptimizer0d78c5502066de2c
    com.fasterxml.jackson.module.afterburner.deser.DeserializerModifier186576b3d88ebe97
    com.fasterxml.jackson.module.afterburner.deser.OptimizedSettableBeanPropertyb0c47b39c874bdb4
    com.fasterxml.jackson.module.afterburner.deser.OptimizedValueInstantiator8e6517b1726f0473
    com.fasterxml.jackson.module.afterburner.deser.PropertyMutatorCollector1e09436de9cc8c21
    com.fasterxml.jackson.module.afterburner.deser.SettableObjectMethodProperty155fd5d16e22fb45
    com.fasterxml.jackson.module.afterburner.deser.SettableStringMethodProperty4457db5f3a904ed7
    com.fasterxml.jackson.module.afterburner.deser.SuperSonicBeanDeserializer50615d83c69a1adc
    com.fasterxml.jackson.module.afterburner.deser.SuperSonicDeserializerBuilderbbe0324c14e17af7
    com.fasterxml.jackson.module.afterburner.ser.SerializerModifier744fe03e232889f5
    com.fasterxml.jackson.module.afterburner.util.ClassName8e6fab406db350e7
    com.fasterxml.jackson.module.afterburner.util.DynamicPropertyAccessorBase8391a4ac810e01cf
    com.fasterxml.jackson.module.afterburner.util.MyClassLoaderb2d336f342ed1563
    com.github.packageurl.PackageURLc010d37d9eb81e63
    com.github.packageurl.PackageURLBuilder6e21230bb11d0b1b
    com.google.common.base.Absentde1298f27b4c0693
    com.google.common.base.AbstractIteratord3c5d8c6ad30f701
    com.google.common.base.AbstractIterator.137bd022d95007827
    com.google.common.base.AbstractIterator.State5c56bd34c8972d4a
    com.google.common.base.CharMatcher0bcd1962498d67ba
    com.google.common.base.CharMatcher.FastMatcheraa197b1215c57922
    com.google.common.base.CharMatcher.Is85a5a52367686a88
    com.google.common.base.CharMatcher.NamedFastMatcher1e00ea1226db6ddb
    com.google.common.base.CharMatcher.None94d35101bfaf99d7
    com.google.common.base.Charsetsb599c8a556d9d5a8
    com.google.common.base.Joiner4f5db87c2677ce13
    com.google.common.base.MoreObjects2565f99d2ba4b7cf
    com.google.common.base.NullnessCasts290a1618a5ccec9b
    com.google.common.base.Objects80ef57c5924c3f99
    com.google.common.base.Optionala4c1dc586be5462d
    com.google.common.base.Platforma8753559da3e0a37
    com.google.common.base.Platform.JdkPatternCompiler4259946d36f73bee
    com.google.common.base.Preconditionsa5fabd1b8022b288
    com.google.common.base.Splitterd6c6a68453118cca
    com.google.common.base.Splitter.1d8d2c3ca70a09053
    com.google.common.base.Splitter.1.17083f874903fe1d7
    com.google.common.base.Splitter.55d1c083eae2ee290
    com.google.common.base.Splitter.MapSplitter815a0b456d527d84
    com.google.common.base.Splitter.SplittingIteratorcb39f1152c0e9779
    com.google.common.base.Stopwatchb1150a266f12bc53
    com.google.common.base.Stringsbea92ea6583d7b26
    com.google.common.base.Tickera137bcbc3022c785
    com.google.common.base.Ticker.1ffda8a6855f4a7b2
    com.google.common.collect.ImmutableCollection626210369d72ba7f
    com.google.common.collect.ImmutableList7e362db835e33620
    com.google.common.collect.Iterators7f7c5bd7ae559e91
    com.google.common.collect.Iterators.924c265b2fbd77921
    com.google.common.collect.Listsc2633c96ba6cb82e
    com.google.common.collect.ObjectArrays69a3fcec40250c5f
    com.google.common.collect.SingletonImmutableList725730889990e3a6
    com.google.common.collect.UnmodifiableIterator4c89154b495fc329
    com.google.common.escape.Escaperd247467cf41c5f8c
    com.google.common.escape.UnicodeEscapera8216beb030b3e8b
    com.google.common.hash.AbstractByteHasher43ccab786ba752ee
    com.google.common.hash.AbstractHashFunctione7cdd4395c15bca3
    com.google.common.hash.AbstractHasher59ceb1e4e187815d
    com.google.common.hash.HashCodeed297fa3843fbc28
    com.google.common.hash.HashCode.BytesHashCoded8d66bc065c6f203
    com.google.common.hash.Hashingfa2a7673255116be
    com.google.common.hash.Hashing.Sha1Holder57a354416797d9a9
    com.google.common.hash.Java8Compatibility6f24ea57c51ed729
    com.google.common.hash.MessageDigestHashFunction6238f335a3476b82
    com.google.common.hash.MessageDigestHashFunction.MessageDigestHasher7d8b65680644a50b
    com.google.common.io.ByteSource68686fa428221aec
    com.google.common.io.ByteSource.AsCharSource181f8e24cb6711f8
    com.google.common.io.ByteStreams54fcce135598266c
    com.google.common.io.ByteStreams.12b43e9d0abf526aa
    com.google.common.io.CharSourcebc0c0f9fc3e87ec6
    com.google.common.io.CharStreamsa4ac0d1fb66d2450
    com.google.common.io.Closerf172748005764c91
    com.google.common.io.Closer.SuppressingSuppressore6d89820611fa8e8
    com.google.common.io.CountingInputStreamae5d955fd3e02a6b
    com.google.common.io.Resourcesf568e92af131e150
    com.google.common.io.Resources.UrlByteSource3abc3d7530912c7f
    com.google.common.math.IntMathe5dfbae9828a34c5
    com.google.common.net.PercentEscaper03193048d6f0d2c5
    com.google.common.primitives.Intsc5ac9c1a28bb42ab
    com.google.common.reflect.TypeCapture537798a44eb9d727
    com.google.common.reflect.TypeToken688b4af49d28e643
    com.google.gson.FieldNamingPolicya9ccb88e12628bab
    com.google.gson.FieldNamingPolicy.174e60530f9dfd5a6
    com.google.gson.FieldNamingPolicy.2cca6591a7aa10fd3
    com.google.gson.FieldNamingPolicy.3a2f613527e2eaacb
    com.google.gson.FieldNamingPolicy.4139ef2624c75bbd3
    com.google.gson.FieldNamingPolicy.56355fc1f4b132f3e
    com.google.gson.FieldNamingPolicy.6d2839c0903e98a16
    com.google.gson.FieldNamingPolicy.7b15574aea5c36ec6
    com.google.gson.Gson9168cd903aae42f9
    com.google.gson.Gson.1c5e2e5dca8dd7866
    com.google.gson.Gson.216403a6a348bf5ce
    com.google.gson.Gson.489af96dd826fb2a8
    com.google.gson.Gson.57197f614ed9d59b8
    com.google.gson.Gson.FutureTypeAdaptera4a4659f7abd22c4
    com.google.gson.GsonBuilder9fc656420c7554bc
    com.google.gson.JsonElement291e91aec4faff2c
    com.google.gson.JsonPrimitived174e7126f45f7bd
    com.google.gson.LongSerializationPolicy0383e8018575dd2d
    com.google.gson.LongSerializationPolicy.1cff239f5198750ee
    com.google.gson.LongSerializationPolicy.2f8175a77e442ec4a
    com.google.gson.ToNumberPolicy6b3f5eb48341c0f7
    com.google.gson.ToNumberPolicy.13e28bcbd9e18f906
    com.google.gson.ToNumberPolicy.29ed1f6c68a8f7a31
    com.google.gson.ToNumberPolicy.378745d4a07673284
    com.google.gson.ToNumberPolicy.44f0bc632663193b9
    com.google.gson.TypeAdapter747644c650689faf
    com.google.gson.TypeAdapter.1c6c289b4bd4187f1
    com.google.gson.internal..Gson.Preconditions2ad574710e4bd8e8
    com.google.gson.internal..Gson.Types0a992fa162ddfec7
    com.google.gson.internal..Gson.Types.ParameterizedTypeImpl13e67e1502e68402
    com.google.gson.internal.ConstructorConstructor4604d9d4dbd14c3e
    com.google.gson.internal.ConstructorConstructor.4242b5990ddcc9896
    com.google.gson.internal.ConstructorConstructor.96d16b437a1aadb36
    com.google.gson.internal.Excluder9e16a75d38817706
    com.google.gson.internal.JsonReaderInternalAccessa64aa20bd74e6d9e
    com.google.gson.internal.Primitivesce797cf2bd15cce7
    com.google.gson.internal.Streamsadda68f4d0312fb9
    com.google.gson.internal.bind.ArrayTypeAdapterebce4a78f6b30b13
    com.google.gson.internal.bind.ArrayTypeAdapter.13c5f19f1af83884f
    com.google.gson.internal.bind.CollectionTypeAdapterFactoryc89f9bd47ce9b7e4
    com.google.gson.internal.bind.CollectionTypeAdapterFactory.Adapter5b304b7c5b05b2c8
    com.google.gson.internal.bind.DateTypeAdaptera918f4b3cc484a9e
    com.google.gson.internal.bind.DateTypeAdapter.11e1e04a31853ce1a
    com.google.gson.internal.bind.DefaultDateTypeAdapter.DateType67600e175a04fa9c
    com.google.gson.internal.bind.DefaultDateTypeAdapter.DateType.195e6b44340ce7477
    com.google.gson.internal.bind.JsonAdapterAnnotationTypeAdapterFactoryf754ec6a28319d24
    com.google.gson.internal.bind.MapTypeAdapterFactory2bfca7fe4e11de02
    com.google.gson.internal.bind.NumberTypeAdapter2c1c4b5a515ff5cc
    com.google.gson.internal.bind.NumberTypeAdapter.1d669ec06e8eb62d8
    com.google.gson.internal.bind.ObjectTypeAdaptera67e2c1a77fe9b1f
    com.google.gson.internal.bind.ObjectTypeAdapter.10a877dd0db982bc4
    com.google.gson.internal.bind.ReflectiveTypeAdapterFactory2c3e1166fdd10498
    com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.135840f861ded8c9d
    com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.Adapter06b5bf10c2fd2e33
    com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.BoundField4a9a63a52b21996f
    com.google.gson.internal.bind.TreeTypeAdapter55e5de6125bdb4af
    com.google.gson.internal.bind.TreeTypeAdapter.GsonContextImplf8b98fea70d55222
    com.google.gson.internal.bind.TreeTypeAdapter.SingleTypeFactorya5b8e2bfa2d00164
    com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapperf6e42ebf3100825e
    com.google.gson.internal.bind.TypeAdapterse87d94b30b5ca06d
    com.google.gson.internal.bind.TypeAdapters.1f3a08ce801e7e166
    com.google.gson.internal.bind.TypeAdapters.10324fe998dd174cb8
    com.google.gson.internal.bind.TypeAdapters.118f64dd900dd5a878
    com.google.gson.internal.bind.TypeAdapters.126573c8fd79b9a346
    com.google.gson.internal.bind.TypeAdapters.13a28915fb6a45886c
    com.google.gson.internal.bind.TypeAdapters.143ac468d495830a9c
    com.google.gson.internal.bind.TypeAdapters.156c7c1df28c9ed2cb
    com.google.gson.internal.bind.TypeAdapters.1683a302c4cf99d019
    com.google.gson.internal.bind.TypeAdapters.176fbdd7f772ab7b04
    com.google.gson.internal.bind.TypeAdapters.188f008280626b9a30
    com.google.gson.internal.bind.TypeAdapters.194d879aedaa8d7e02
    com.google.gson.internal.bind.TypeAdapters.24a7a8852a34fa31f
    com.google.gson.internal.bind.TypeAdapters.20b01fba078a84d79c
    com.google.gson.internal.bind.TypeAdapters.2184c2ec0830eeafab
    com.google.gson.internal.bind.TypeAdapters.22a9e744a24ba07bc4
    com.google.gson.internal.bind.TypeAdapters.23b1dddfadd864df22
    com.google.gson.internal.bind.TypeAdapters.24dfa61efb73771bbf
    com.google.gson.internal.bind.TypeAdapters.2564bf17af3af78980
    com.google.gson.internal.bind.TypeAdapters.2628da15be09d13d5f
    com.google.gson.internal.bind.TypeAdapters.27cb5007828ff50e28
    com.google.gson.internal.bind.TypeAdapters.28a45569ee9930457e
    com.google.gson.internal.bind.TypeAdapters.29eb3b09d82067f483
    com.google.gson.internal.bind.TypeAdapters.38d545ecafd8a8df5
    com.google.gson.internal.bind.TypeAdapters.319536a9b7f1c3d09d
    com.google.gson.internal.bind.TypeAdapters.328dd9202bcacd4315
    com.google.gson.internal.bind.TypeAdapters.337e97d467239e5f1e
    com.google.gson.internal.bind.TypeAdapters.3443e209386fcb4f0e
    com.google.gson.internal.bind.TypeAdapters.35f9f197d0a4dbbbb9
    com.google.gson.internal.bind.TypeAdapters.48868f90de082bf2b
    com.google.gson.internal.bind.TypeAdapters.57240432c98aaa286
    com.google.gson.internal.bind.TypeAdapters.63a4cfe0747ca9789
    com.google.gson.internal.bind.TypeAdapters.77219eb05f82d8a49
    com.google.gson.internal.bind.TypeAdapters.8e0f2944db3d0fb53
    com.google.gson.internal.bind.TypeAdapters.9fe01915226959bf4
    com.google.gson.internal.reflect.ReflectionHelper44fad9d8bd1320c8
    com.google.gson.internal.sql.SqlDateTypeAdapter759c80a351806a6a
    com.google.gson.internal.sql.SqlDateTypeAdapter.15e8177dacb42fdcc
    com.google.gson.internal.sql.SqlTimeTypeAdapterc03cfadd1131b29a
    com.google.gson.internal.sql.SqlTimeTypeAdapter.138f494c57c386f02
    com.google.gson.internal.sql.SqlTimestampTypeAdapter685ac2966df2335f
    com.google.gson.internal.sql.SqlTimestampTypeAdapter.138e74c1f432005c2
    com.google.gson.internal.sql.SqlTypesSupport24f8c951b0c966e1
    com.google.gson.internal.sql.SqlTypesSupport.185ef3fff6448d68a
    com.google.gson.internal.sql.SqlTypesSupport.20c921201327ae0f7
    com.google.gson.reflect.TypeToken2aa6775adf4a2815
    com.google.gson.stream.JsonReader760ec45a181a831f
    com.google.gson.stream.JsonReader.1819e4318eb6656bd
    com.google.gson.stream.JsonToken991a7375285784a1
    com.google.gson.stream.JsonWriter5f56466c75be28bc
    com.h3xstream.retirejs.repo.JsLibrary5d11b317102303f5
    com.h3xstream.retirejs.repo.JsLibraryResult814bb4d45dfe1e0b
    com.h3xstream.retirejs.repo.JsVulnerabilityf4bb1cfa90e6e469
    com.h3xstream.retirejs.repo.ScannerFacade01c9c1db2838e35a
    com.h3xstream.retirejs.repo.VulnerabilitiesRepositoryb739f5ef8899977b
    com.h3xstream.retirejs.repo.VulnerabilitiesRepositoryLoader010000276d5c65ec
    com.h3xstream.retirejs.util.CompareVersionUtil0c88223651256c2d
    com.h3xstream.retirejs.util.HashUtil1304965382179e56
    com.h3xstream.retirejs.util.RegexUtil916e0c9c88baca5b
    com.hankcs.algorithm.AhoCorasickDoubleArrayTriecef76a3b8583c0d8
    com.hankcs.algorithm.AhoCorasickDoubleArrayTrie.Buildere116cc2ef4f3bf95
    com.hankcs.algorithm.AhoCorasickDoubleArrayTrie.Hitb4d44553d9d45bc2
    com.hankcs.algorithm.State8219f5343445a01f
    com.moandjiezana.toml.ArrayValueReaderbbf4c403f7c9afe9
    com.moandjiezana.toml.BooleanValueReaderWriter7efc1effa9effd42
    com.moandjiezana.toml.Containera0e636e8beb0033f
    com.moandjiezana.toml.Container.Table85570c6c8ff5b239
    com.moandjiezana.toml.Container.TableArray55d83ce0a83ba94f
    com.moandjiezana.toml.Contextcece0d91c425523b
    com.moandjiezana.toml.DateValueReaderWriter412c83a733ce79aa
    com.moandjiezana.toml.DateValueReaderWriter.DateConverterJdk6b63f8bc63f50137f
    com.moandjiezana.toml.Identifier23510c825f717050
    com.moandjiezana.toml.Identifier.Typebdaf5cf0f5bf5952
    com.moandjiezana.toml.IdentifierConverterc55da9d2f668ee3f
    com.moandjiezana.toml.InlineTableValueReader745f289e18ddbb46
    com.moandjiezana.toml.Keys7f7591dd9cf18f27
    com.moandjiezana.toml.Keys.Keyb37f915828092172
    com.moandjiezana.toml.LiteralStringValueReaderfa4133d47d5338ac
    com.moandjiezana.toml.MultilineLiteralStringValueReader3cae71f02a06642a
    com.moandjiezana.toml.MultilineStringValueReader427eabb026f69f0c
    com.moandjiezana.toml.NumberValueReaderWriter8bb586d62577a3b6
    com.moandjiezana.toml.Results5f9fd677fdc6fa8b
    com.moandjiezana.toml.Results.Errors79f250efa77a951c
    com.moandjiezana.toml.StringValueReaderWriter2b8d354b0fee8bd4
    com.moandjiezana.toml.Tomlf5996531c63d19d1
    com.moandjiezana.toml.TomlParserf2f3f62989f16012
    com.moandjiezana.toml.ValueReaders6d37181fd4f18d91
    com.mysql.jdbc.AbandonedConnectionCleanupThread707891d5a502a442
    com.mysql.jdbc.Driver309d083fba52450b
    com.mysql.jdbc.Messages811188856766f3be
    com.mysql.jdbc.NonRegisteringDriver4076c54424c48bb9
    com.mysql.jdbc.StringUtilsff1d78cab6077f38
    com.mysql.jdbc.Util020cd4d561559a49
    com.sun.crypto.provider.AESCipher9379cbb969dccdab
    com.sun.crypto.provider.AESCipher.Generaldd25667a734d67f2
    com.sun.crypto.provider.AESConstantsff56ec558b5f24b2
    com.sun.crypto.provider.AESCrypt8f74d327e3757900
    com.sun.crypto.provider.CipherCorea719a438faf0a701
    com.sun.crypto.provider.CounterModefab22112699963b8
    com.sun.crypto.provider.DHParameters16f962dbaa27c76a
    com.sun.crypto.provider.ElectronicCodeBook55bee70106027943
    com.sun.crypto.provider.FeedbackCipherfe3b493a4f1f3358
    com.sun.crypto.provider.GCTR363ef00c8e464985
    com.sun.crypto.provider.GHASHe2e4c8ed73293545
    com.sun.crypto.provider.GaloisCounterModed5653e4b1d135ece
    com.sun.crypto.provider.HmacCored10e0726d0a7a75b
    com.sun.crypto.provider.HmacCore.HmacSHA256e51d50e772714011
    com.sun.crypto.provider.PKCS5Padding2f576a81eac7847f
    com.sun.crypto.provider.Preconditionsfd7e7c3ada235a9b
    com.sun.crypto.provider.Preconditions.168fa2261aa6363f8
    com.sun.crypto.provider.RangeUtil83f9533ae557ea46
    com.sun.crypto.provider.SunJCE33c998c6ba77d73e
    com.sun.crypto.provider.SymmetricCipher67e05752931ac6b4
    com.sun.crypto.provider.TlsKeyMaterialGenerator9a670d07119f980e
    com.sun.crypto.provider.TlsMasterSecretGeneratorb5bb91b132a7e1ed
    com.sun.crypto.provider.TlsMasterSecretGenerator.TlsMasterSecretKey47a2de5eed80bb69
    com.sun.crypto.provider.TlsPrfGenerator7f3cc07aa4e0ef26
    com.sun.crypto.provider.TlsPrfGenerator.V12854f82e423bf885a
    io.github.jeremylong.jcs3.slf4j.Slf4jAdapter6faeb93da707d61c
    io.github.jeremylong.jcs3.slf4j.Slf4jLogFactoryf96607e602f6e2af
    io.github.jeremylong.openvulnerability.client.nvd.Configf3beb84a109d4b1d
    io.github.jeremylong.openvulnerability.client.nvd.Config.Operator59d33ed4ecb93d1a
    io.github.jeremylong.openvulnerability.client.nvd.CpeMatch054f2076c10d37d5
    io.github.jeremylong.openvulnerability.client.nvd.CveItem44167ef95eadee21
    io.github.jeremylong.openvulnerability.client.nvd.CvssV2c598dccdeb0796d4
    io.github.jeremylong.openvulnerability.client.nvd.CvssV2.Typec8a5f42e14588744
    io.github.jeremylong.openvulnerability.client.nvd.CvssV2Data46cf1489bdb16e2c
    io.github.jeremylong.openvulnerability.client.nvd.CvssV2Data.AccessComplexityType4b727756fd7afc8f
    io.github.jeremylong.openvulnerability.client.nvd.CvssV2Data.AccessVectorType9be7812343637a98
    io.github.jeremylong.openvulnerability.client.nvd.CvssV2Data.AuthenticationTypef9e66c082b7d5b7f
    io.github.jeremylong.openvulnerability.client.nvd.CvssV2Data.CiaRequirementType566749ba23873cba
    io.github.jeremylong.openvulnerability.client.nvd.CvssV2Data.CiaType6825e093146ac4fd
    io.github.jeremylong.openvulnerability.client.nvd.CvssV2Data.CollateralDamagePotentialType3dab85e8b792465a
    io.github.jeremylong.openvulnerability.client.nvd.CvssV2Data.ExploitabilityType5637500b96aaf9d6
    io.github.jeremylong.openvulnerability.client.nvd.CvssV2Data.RemediationLevelType83b36fc335cf1aec
    io.github.jeremylong.openvulnerability.client.nvd.CvssV2Data.ReportConfidenceTypec278a7d2aa3f6861
    io.github.jeremylong.openvulnerability.client.nvd.CvssV2Data.TargetDistributionTypee10489652bb0f924
    io.github.jeremylong.openvulnerability.client.nvd.CvssV2Data.Version29d3f3d317564b7c
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3bed953eb3208b3b5
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3.Type4ffc8b69f1ebf953
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3Data5b1476d2f8696d14
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3Data.AttackComplexityType0c7b7fa26bb8364e
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3Data.AttackVectorTypef9692d23fc4d0814
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3Data.CiaRequirementTypee25b27974539d0e2
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3Data.CiaType65b3e0a08371ce41
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3Data.ConfidenceTypefe24e867fbd6445d
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3Data.ExploitCodeMaturityTyped0c528d24ff9be40
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3Data.ModifiedAttackComplexityTypeb9c63569c8d42c4f
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3Data.ModifiedAttackVectorTypee055d6e53e32180d
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3Data.ModifiedCiaTypedafe385378718922
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3Data.ModifiedPrivilegesRequiredType8e153d53da7dbccb
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3Data.ModifiedScopeTypeeac977b8fdb58555
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3Data.ModifiedUserInteractionTyped0242304dffe7c2c
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3Data.PrivilegesRequiredTypec6b3e30c55fedb48
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3Data.RemediationLevelType5bfb96dfad679414
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3Data.ScopeTyped521a47d32508edc
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3Data.SeverityType7dba5f64a6708bdf
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3Data.UserInteractionTypee65ee421331e824b
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3Data.Versiondb94623c16eb505c
    io.github.jeremylong.openvulnerability.client.nvd.DefCveItem9ad305442ad670bb
    io.github.jeremylong.openvulnerability.client.nvd.LangString2adbe707e58eb9bf
    io.github.jeremylong.openvulnerability.client.nvd.Node0f06cf05a91a1603
    io.github.jeremylong.openvulnerability.client.nvd.Node.Operatorff1e145b9c081100
    io.github.jeremylong.openvulnerability.client.nvd.Reference32347bbabaad713b
    javax.json.EmptyArrayf63598214cdf4813
    javax.json.EmptyObjectaae67fb779fa6a51
    javax.json.Json6ffaf75211f5d863
    javax.json.JsonException17f885a50fda253b
    javax.json.JsonValue089ae0dae533de78
    javax.json.JsonValue.ValueType8eff2e7ad0d72a52
    javax.json.JsonValueImpl6019370326b8ea85
    javax.json.spi.JsonProvider888f378958cffe6e
    javax.json.stream.JsonParser.Event00828f9746dd1366
    javax.json.stream.JsonParsingException8e505ab497f27e80
    junit.framework.Assert3d2ac0fd1eb0a202
    junit.framework.TestCase8660e4c9fdffa3b0
    mockit.Expectationsa5ca24af9ea1e29d
    mockit.Invocationa96336e1f386171f
    mockit.Invocationsae30bbe6d3cbdc5a
    mockit.MockUpe8171f437ed496ae
    mockit.Verificationse43cd41e9eda23f5
    mockit.asm.AnnotatedReadercd282e0a5a53baea
    mockit.asm.BaseWriter582f5e60cf7a7aa4
    mockit.asm.SignatureWriterdf63ed411efbf4b6
    mockit.asm.annotations.AnnotationReader1a8efb95d77d1cc4
    mockit.asm.annotations.AnnotationVisitor028e56514beb3239
    mockit.asm.classes.BootstrapMethodsWriter070fb6d0941f3fc5
    mockit.asm.classes.ClassInfo373729acd80f0ac2
    mockit.asm.classes.ClassReader35b19ee242b52e68
    mockit.asm.classes.ClassVisitorecc8c148efb1fb05
    mockit.asm.classes.ClassWriter138f6d9fdc880f33
    mockit.asm.classes.ConstantPoolCopyinge69830abde6594e3
    mockit.asm.classes.InnerClassesWriter161eb63681ff89cf
    mockit.asm.classes.InterfaceWriter50ed3e595493fede
    mockit.asm.classes.SourceFileWritere8fc300748dc0805
    mockit.asm.classes.WrappingClassVisitor05ea9f6f99307be6
    mockit.asm.constantPool.AttributeWriter14f301dde0efc458
    mockit.asm.constantPool.BootstrapMethodItemd90beed7427f6b89
    mockit.asm.constantPool.ClassMemberItemaa126e5329780a07
    mockit.asm.constantPool.ConstantPoolGeneration0fa17a48409c3309
    mockit.asm.constantPool.DoubleItem34f414546b36c4df
    mockit.asm.constantPool.DynamicItem3cea8c55017846c0
    mockit.asm.constantPool.FloatItembd61b107266c3b95
    mockit.asm.constantPool.IntItemd97e2f1dc717a13e
    mockit.asm.constantPool.IntValueItem98e99f11b2caca0e
    mockit.asm.constantPool.Itemd068fa4ff3fcee61
    mockit.asm.constantPool.LongItem6b22c746ea1433c1
    mockit.asm.constantPool.LongValueItem2ccc0f1c20cad69e
    mockit.asm.constantPool.MergedTypeTableItem0d0b1da6270fd88c
    mockit.asm.constantPool.MethodHandleItem39bcee524a8a7b98
    mockit.asm.constantPool.NameAndTypeItemb7bb836a0ec0d51d
    mockit.asm.constantPool.NormalTypeTableItem0f252ab8f9880312
    mockit.asm.constantPool.StringItem88ca5a93ae8a30e1
    mockit.asm.constantPool.TypeOrMemberItemdab75af23a47e2b1
    mockit.asm.constantPool.TypeTableItemd8a8ef64ff3ac452
    mockit.asm.constantPool.UninitializedTypeTableItem370461ef51a65392
    mockit.asm.controlFlow.CFGAnalysisa06e124c809928c9
    mockit.asm.controlFlow.Edge5d83111f9538c66f
    mockit.asm.controlFlow.Frame386d35773c19369a
    mockit.asm.controlFlow.Label5bca527bd719557c
    mockit.asm.controlFlow.StackMapTableWriter7bcdf022caa20775
    mockit.asm.exceptionHandling.ExceptionHandlerdd9e712d320f6d7e
    mockit.asm.exceptionHandling.ExceptionHandling286f458f00be3947
    mockit.asm.fields.FieldReader053ae610f8947b76
    mockit.asm.fields.FieldVisitor6c321d4980a2d7f3
    mockit.asm.jvmConstants.Access642ded812da66040
    mockit.asm.jvmConstants.JVMInstructiondeeb476cf4f7665b
    mockit.asm.metadata.ClassMetadataReader86fe7615054981b5
    mockit.asm.metadata.ClassMetadataReader.AnnotationInfobc09c40a0f38e185
    mockit.asm.metadata.ClassMetadataReader.Attribute6d901176eb06252c
    mockit.asm.metadata.ClassMetadataReader.ConstantPoolTag83ba5ffd57f73b11
    mockit.asm.metadata.ClassMetadataReader.MemberInfodd16bea0c59df08f
    mockit.asm.metadata.ClassMetadataReader.MethodInfo3e1c9829877de254
    mockit.asm.metadata.ObjectWithAttributese089abe59f8ade12
    mockit.asm.methods.ExceptionsWritere5e41e85406ed2b8
    mockit.asm.methods.LineNumberTableWriter7fa755996e63e0b5
    mockit.asm.methods.LocalVariableTableWriter0ff2250f9d363442
    mockit.asm.methods.MethodReader0d46bdb10e1cb567
    mockit.asm.methods.MethodVisitor6aafdb0e0bd9f04d
    mockit.asm.methods.MethodWriterc77ca17c110fc381
    mockit.asm.methods.WrappingMethodVisitorfe2114a373ed09e3
    mockit.asm.types.ArrayType3897ad248dad3058
    mockit.asm.types.JavaType6a617aca55015b96
    mockit.asm.types.MethodTypec9e3c18945da5ef2
    mockit.asm.types.ObjectType439dacb2d6b69467
    mockit.asm.types.PrimitiveType9907457aea9de70c
    mockit.asm.types.ReferenceTypec3a32354b2fe0c85
    mockit.asm.util.ByteVectoradf5209dcdaf01d5
    mockit.asm.util.BytecodeReaderad4c2af17a40d4d0
    mockit.asm.util.MethodHandle92e6865d03832eba
    mockit.coverage.CodeCoverage57c4b93cf9705048
    mockit.coverage.Configuration0f191cfcb58e3996
    mockit.coverage.testRedundancy.TestCoveragee7294c8646aeb601
    mockit.integration.TestRunnerDecorator10c6d4d07e4bb526
    mockit.integration.junit4.FakeFrameworkMethod202fa832304031cd
    mockit.integration.junit4.FakeRunNotifierf2d8e332a2590c60
    mockit.integration.junit4.JUnit4TestRunnerDecoratorc2eadb5bf6beaf6c
    mockit.internal.BaseClassModifiere801aefb4d7fd037
    mockit.internal.BaseClassModifier.1cd1242b388012ca6
    mockit.internal.BaseClassModifier.DynamicConstructorModifier9c3819f88596d6ec
    mockit.internal.BaseClassModifier.DynamicModifierc5d17ff8720815cc
    mockit.internal.BaseInvocationf7de466f17f4adbb
    mockit.internal.ClassFile41b638065ae166a7
    mockit.internal.ClassLoadingBridgee658793228cc4a49
    mockit.internal.classGeneration.ImplementationClass2135f7addfcebcd6
    mockit.internal.classGeneration.ImplementationClass.1536a2c72142555ed
    mockit.internal.classGeneration.MockedTypeInfo68a825b302f3eb59
    mockit.internal.expectations.ActiveInvocations69ad4a6200b38312
    mockit.internal.expectations.BaseVerificationPhase87e4ee5c3619f378
    mockit.internal.expectations.EquivalentInstances362587d82a6eaac5
    mockit.internal.expectations.ExecutionMode4a3f56de3f6793be
    mockit.internal.expectations.ExecutionMode.1a900ac53a8700d67
    mockit.internal.expectations.ExecutionMode.27dd0941ca37ec639
    mockit.internal.expectations.ExecutionMode.362b90756f9778f56
    mockit.internal.expectations.Expectation95467daa361db635
    mockit.internal.expectations.FailureStatebf61b469fc5afbad
    mockit.internal.expectations.InstanceBasedMatching9458cbdaa0fbebaa
    mockit.internal.expectations.MockingFilters72d1d75a8e0bced9
    mockit.internal.expectations.PartiallyMockedInstancescc8eaf5beac6af68
    mockit.internal.expectations.Phase4b7b646b1461d185
    mockit.internal.expectations.PhasedExecutionState311475019f0a3618
    mockit.internal.expectations.RecordAndReplayExecutionf879ec0212b83007
    mockit.internal.expectations.RecordPhase72f84a97a45b27c2
    mockit.internal.expectations.ReplayPhaseeff6e0c32e152072
    mockit.internal.expectations.TestOnlyPhase486d5bcf2172a309
    mockit.internal.expectations.UnorderedVerificationPhasee55f216a7f32651e
    mockit.internal.expectations.VerifiedExpectationa46e58acfeca6ffe
    mockit.internal.expectations.argumentMatching.ArgumentMismatch7e4d4f0743fce2e7
    mockit.internal.expectations.argumentMatching.EqualityMatcher654944fb0b4dbb74
    mockit.internal.expectations.invocation.ArgumentValuesAndMatchersbf66f1397afb818b
    mockit.internal.expectations.invocation.ArgumentValuesAndMatchersWithoutVarargs20905e089eb2e724
    mockit.internal.expectations.invocation.ExpectationError45b9b9e0ad095651
    mockit.internal.expectations.invocation.ExpectedInvocation352bd6ec8fd0e356
    mockit.internal.expectations.invocation.InvocationArgumentse50fe83108136f8d
    mockit.internal.expectations.invocation.InvocationConstraints89c26f66c460c3cc
    mockit.internal.expectations.invocation.InvocationResult795227bac41bb536
    mockit.internal.expectations.invocation.InvocationResult.ReturnValueResult83eebd54ffa005f4
    mockit.internal.expectations.invocation.InvocationResult.ThrowableResult84c355650d9268a6
    mockit.internal.expectations.invocation.InvocationResults50ebacc33f832e61
    mockit.internal.expectations.invocation.MissingInvocation9b35598e71537a84
    mockit.internal.expectations.invocation.ReturnTypeConversion8212210241aee895
    mockit.internal.expectations.mocking.BaseTypeRedefinition1be9edc56c8472a3
    mockit.internal.expectations.mocking.BaseTypeRedefinition.1254cbcef8f1456a4
    mockit.internal.expectations.mocking.BaseTypeRedefinition.MockedClass6093d4a41ef633da
    mockit.internal.expectations.mocking.CascadingTypeRedefinitionfcd631b5e20cae4d
    mockit.internal.expectations.mocking.FieldTypeRedefinition643d5cb7fe95f721
    mockit.internal.expectations.mocking.FieldTypeRedefinitionsc4cb3bcb5359dd6a
    mockit.internal.expectations.mocking.InstanceFactory6d483d25245f1011
    mockit.internal.expectations.mocking.InstanceFactory.ClassInstanceFactory6f68864233d9feee
    mockit.internal.expectations.mocking.InstanceFactory.InterfaceInstanceFactory56ed7f3600525438
    mockit.internal.expectations.mocking.InterfaceImplementationGenerator9f43fe3ed12f2864
    mockit.internal.expectations.mocking.MockedBridge331090874886c8c7
    mockit.internal.expectations.mocking.MockedClassModifier335bd2da36742989
    mockit.internal.expectations.mocking.MockedTypeb261d998676dfb65
    mockit.internal.expectations.mocking.PartialMocking8ab7478a89c15271
    mockit.internal.expectations.mocking.TypeRedefinition09c82ffd7d201892
    mockit.internal.expectations.mocking.TypeRedefinitions055dc33e135fb36a
    mockit.internal.expectations.state.CascadingTypesb9acfb27aa4a8790
    mockit.internal.expectations.state.ExecutingTestacf34225777d2f3b
    mockit.internal.expectations.state.ExecutingTest.13b09910b1e29a191
    mockit.internal.expectations.state.MockedTypeCascade7557b5d1187de6dd
    mockit.internal.expectations.transformation.ArgumentCapturing3d314ed0e738b141
    mockit.internal.expectations.transformation.ArgumentMatchingea14fda886ae32fa
    mockit.internal.expectations.transformation.ExpectationsTransformereaac4e9336d5ca40
    mockit.internal.expectations.transformation.ExpectationsTransformer.10494472efdd78888
    mockit.internal.expectations.transformation.InvocationBlockModifier80a4e8399ed7199b
    mockit.internal.faking.FakeBridgeda78f19ce898d263
    mockit.internal.faking.FakeClassSetupe4606a4618ad323c
    mockit.internal.faking.FakeClasses3cd46eb6591366cb
    mockit.internal.faking.FakeClasses.SavePointfecc58d760c6ed06
    mockit.internal.faking.FakeInvocatione3e355bfb78d2072
    mockit.internal.faking.FakeMethodBridge2fd5b959860f5d53
    mockit.internal.faking.FakeMethodCollectoraa97db550361bc87
    mockit.internal.faking.FakeMethods471e51097727667e
    mockit.internal.faking.FakeMethods.FakeMethodb5d99f462770e149
    mockit.internal.faking.FakeState01259986b514ed46
    mockit.internal.faking.FakeStatese760ab91481812c0
    mockit.internal.faking.FakedClassModifier28fa1e02ea9dd34f
    mockit.internal.injection.InjectionPoint872aa5b219261f64
    mockit.internal.injection.InjectionPoint.KindOfInjectionPoint041b00ce689e65c0
    mockit.internal.injection.InjectionProvider1076f7e808be8615
    mockit.internal.injection.InjectionProviders62b38f89bfedb6c7
    mockit.internal.injection.InjectionState6e9537644e97642f
    mockit.internal.injection.Injector4ff47fa912f63618
    mockit.internal.injection.InterfaceResolutionc5428bf18cac5f85
    mockit.internal.injection.InterfaceResolution.130a49c92c2d8b04f
    mockit.internal.injection.LifecycleMethodsed1a5aaae6cf42e3
    mockit.internal.injection.TestedClassd76cf885566451d1
    mockit.internal.injection.TestedClassInstantiationsbfc9ebb0ae421152
    mockit.internal.injection.TestedField9aacd38abc210052
    mockit.internal.injection.TestedObjectbdd0e59488a17cbb
    mockit.internal.injection.TestedObjectCreation48c6d6a50501e864
    mockit.internal.injection.constructor.ConstructorInjection960b7bb54a98707e
    mockit.internal.injection.constructor.ConstructorSearch7ff788771021cb2c
    mockit.internal.injection.constructor.ConstructorSearch.13853d0031525a038
    mockit.internal.injection.field.FieldInjection0337d293a6ebe59a
    mockit.internal.reflection.ConstructorReflection9b22876825249d28
    mockit.internal.reflection.FieldReflection9bc5ffc5070fbac5
    mockit.internal.reflection.GenericTypeReflectiona556abe88b104f52
    mockit.internal.reflection.MethodReflection1dbef6dbfa2e952c
    mockit.internal.reflection.ParameterReflectionbcce5f023dd0cd1c
    mockit.internal.reflection.RealMethodOrConstructorf1472d7088adbb08
    mockit.internal.startup.ClassLoadingBridgeFields29d0d6d7f507fa33
    mockit.internal.startup.ClassLoadingBridgeFields.FieldAdditionTransformer682a4d5236ea1c37
    mockit.internal.startup.ClassLoadingBridgeFields.FieldAdditionTransformer.12e9fd2fdf39cd8c3
    mockit.internal.startup.JMockitInitialization1f5ea374ed1901b8
    mockit.internal.startup.Startup177b14c50aa68246
    mockit.internal.state.CachedClassfiles231a21c71ced4214
    mockit.internal.state.MockFixture394c3264450f978b
    mockit.internal.state.ParameterNames9f70a2910daf7cd7
    mockit.internal.state.SavePointda4c7e434f406431
    mockit.internal.state.TestRun6409fd3c8b761b63
    mockit.internal.state.TestRun.17d6ccf983062f278
    mockit.internal.util.AutoBoxingc40175661b1ad22a
    mockit.internal.util.ClassLoad5bd538d4254708e6
    mockit.internal.util.ClassNaming53e8188d1e80d2e0
    mockit.internal.util.DefaultValuesef05257af12a99c9
    mockit.internal.util.DefaultValues.162f4d730e55d8be8
    mockit.internal.util.DefaultValues.2621af0a0fceb45db
    mockit.internal.util.DefaultValues.31d048754f5398a62
    mockit.internal.util.GeneratedClassesd6753b83268ef779
    mockit.internal.util.MethodFormatter40721403a6cb120d
    mockit.internal.util.ObjectMethods35068f8b60236186
    mockit.internal.util.ParameterNameExtractor23af23efb21b6d24
    mockit.internal.util.StackTraceff09e8982b37f81c
    mockit.internal.util.TypeConversione064dff353fc3c14
    mockit.internal.util.TypeDescriptor24a81b29cb32532c
    mockit.internal.util.Utilitiesd7b5e7b685099df9
    net.bytebuddy.ByteBuddyd4e5f2084d659ff9
    net.bytebuddy.ClassFileVersion907fca1b89111e0a
    net.bytebuddy.ClassFileVersion.VersionLocator.Resolvedc8b4f3ffa3a708cf
    net.bytebuddy.ClassFileVersion.VersionLocator.Resolver575662f2862fb481
    net.bytebuddy.NamingStrategy.AbstractBase77e9d686c976f6e6
    net.bytebuddy.NamingStrategy.Suffixing65bfa03c85847dc9
    net.bytebuddy.NamingStrategy.Suffixing.BaseNameResolver.ForUnnamedType1fb9c5c929a4a173
    net.bytebuddy.NamingStrategy.SuffixingRandomcdbdedcf0cea0a02
    net.bytebuddy.TypeCached02df3631a17fa08
    net.bytebuddy.TypeCache.LookupKeyb75da15a4577d948
    net.bytebuddy.TypeCache.SimpleKey99731a44c3f39c30
    net.bytebuddy.TypeCache.Sort3f135d4f310abf3c
    net.bytebuddy.TypeCache.Sort.13be4336e35a8cbfd
    net.bytebuddy.TypeCache.Sort.25a2bb9e71930a24a
    net.bytebuddy.TypeCache.Sort.35792db85826ac4ba
    net.bytebuddy.TypeCache.StorageKeyda984e48de27d4a8
    net.bytebuddy.TypeCache.WithInlineExpunction5c74d69cd94d649e
    net.bytebuddy.asm.AsmVisitorWrapper.NoOpa613c160b15bbc65
    net.bytebuddy.description.ByteCodeElement.Token.TokenList1070489264457774
    net.bytebuddy.description.ModifierReviewable.AbstractBase0b625f401d945e23
    net.bytebuddy.description.NamedElement.WithDescriptor69f25e85d31086f5
    net.bytebuddy.description.TypeVariableSource.AbstractBaseb8003891860323ce
    net.bytebuddy.description.annotation.AnnotationDescription7e080fcc4ab41eb1
    net.bytebuddy.description.annotation.AnnotationDescription.AbstractBase55a8b2f7b58a15aa
    net.bytebuddy.description.annotation.AnnotationDescription.ForLoadedAnnotationa2b247526c4d26ca
    net.bytebuddy.description.annotation.AnnotationList.AbstractBasec3dca45e359b717d
    net.bytebuddy.description.annotation.AnnotationList.Empty10e1e01ec4afb6b0
    net.bytebuddy.description.annotation.AnnotationList.Explicitb96636e855735fc3
    net.bytebuddy.description.annotation.AnnotationList.ForLoadedAnnotationsa6be8b00fa72ab7a
    net.bytebuddy.description.annotation.AnnotationSource.Empty034fcbd435657d97
    net.bytebuddy.description.annotation.AnnotationValuee46e60f3e4357d8a
    net.bytebuddy.description.annotation.AnnotationValue.AbstractBase6b46c288929d794a
    net.bytebuddy.description.annotation.AnnotationValue.ForConstant650f7b88da7502df
    net.bytebuddy.description.annotation.AnnotationValue.ForConstant.PropertyDelegate.ForNonArrayType8683233734d98d81
    net.bytebuddy.description.annotation.AnnotationValue.ForConstant.PropertyDelegate.ForNonArrayType.1ecf694f5c718a013
    net.bytebuddy.description.annotation.AnnotationValue.ForConstant.PropertyDelegate.ForNonArrayType.2113fe247f14fdcdd
    net.bytebuddy.description.annotation.AnnotationValue.ForConstant.PropertyDelegate.ForNonArrayType.3ad40ce4c8d647d57
    net.bytebuddy.description.annotation.AnnotationValue.ForConstant.PropertyDelegate.ForNonArrayType.4649136274570c878
    net.bytebuddy.description.annotation.AnnotationValue.ForConstant.PropertyDelegate.ForNonArrayType.525519a3723562b18
    net.bytebuddy.description.annotation.AnnotationValue.ForConstant.PropertyDelegate.ForNonArrayType.6d0a4ee1eb78e8925
    net.bytebuddy.description.annotation.AnnotationValue.ForConstant.PropertyDelegate.ForNonArrayType.75cc6d38c7688ce9e
    net.bytebuddy.description.annotation.AnnotationValue.ForConstant.PropertyDelegate.ForNonArrayType.8542fa217a5fe4c51
    net.bytebuddy.description.annotation.AnnotationValue.ForConstant.PropertyDelegate.ForNonArrayType.99adc51229ebb26c9
    net.bytebuddy.description.annotation.AnnotationValue.ForEnumerationDescription451401174e8ca82f
    net.bytebuddy.description.annotation.AnnotationValue.ForEnumerationDescription.Loadedfda0610025cc12ff
    net.bytebuddy.description.annotation.AnnotationValue.ForTypeDescription256f9475d7baab5e
    net.bytebuddy.description.annotation.AnnotationValue.Loaded.AbstractBase1a834bbf25c86ab4
    net.bytebuddy.description.enumeration.EnumerationDescription.AbstractBase36efae2fe3237ba9
    net.bytebuddy.description.enumeration.EnumerationDescription.ForLoadedEnumeration5b47cbeca30adac0
    net.bytebuddy.description.field.FieldDescription68bfcf27b64f643e
    net.bytebuddy.description.field.FieldDescription.AbstractBase8e18b7d4e1ceddcb
    net.bytebuddy.description.field.FieldDescription.InDefinedShape.AbstractBasee1174a0c69da5a57
    net.bytebuddy.description.field.FieldDescription.Latentf267c31e54d89fa1
    net.bytebuddy.description.field.FieldDescription.SignatureToken3fabeebea84ce146
    net.bytebuddy.description.field.FieldDescription.Token3f20efc75bd15e42
    net.bytebuddy.description.field.FieldList.AbstractBase78739d279005d8a4
    net.bytebuddy.description.field.FieldList.Explicit323b76a02a64f9a7
    net.bytebuddy.description.field.FieldList.ForTokensea98dba6ef4eb758
    net.bytebuddy.description.method.MethodDescriptioncb9472a3dd295bbd
    net.bytebuddy.description.method.MethodDescription.AbstractBasedeaeb62afc98ead8
    net.bytebuddy.description.method.MethodDescription.ForLoadedConstructorf8e1111441309268
    net.bytebuddy.description.method.MethodDescription.ForLoadedMethodd9fe344c56539dc6
    net.bytebuddy.description.method.MethodDescription.InDefinedShape.AbstractBase673ca3d2d56a4b0a
    net.bytebuddy.description.method.MethodDescription.InDefinedShape.AbstractBase.ForLoadedExecutabledb01999a48adc399
    net.bytebuddy.description.method.MethodDescription.Latent20e100c8a3802774
    net.bytebuddy.description.method.MethodDescription.Latent.TypeInitializerd5f8ea2d4fb9f2a7
    net.bytebuddy.description.method.MethodDescription.SignatureToken5888f2557f6a88e0
    net.bytebuddy.description.method.MethodDescription.Tokena89fdbfb13002946
    net.bytebuddy.description.method.MethodDescription.TypeSubstituting8dc21d2e259d2c0f
    net.bytebuddy.description.method.MethodDescription.TypeTokenf7f14b8ac76ebd98
    net.bytebuddy.description.method.MethodList.AbstractBaseb054427f9b6a48f1
    net.bytebuddy.description.method.MethodList.Explicitb03ab4c21a93dfd0
    net.bytebuddy.description.method.MethodList.ForLoadedMethods38bd1bf17eb05676
    net.bytebuddy.description.method.MethodList.ForTokens40aa960dc7616ac5
    net.bytebuddy.description.method.MethodList.TypeSubstitutingf1f510557a04392e
    net.bytebuddy.description.method.ParameterDescription.AbstractBase173e1a83772e6071
    net.bytebuddy.description.method.ParameterDescription.ForLoadedParameter8dd9bfdcb695c00c
    net.bytebuddy.description.method.ParameterDescription.ForLoadedParameter.OfConstructora18e1a81fc7465d0
    net.bytebuddy.description.method.ParameterDescription.ForLoadedParameter.OfMethod811597af8855d53c
    net.bytebuddy.description.method.ParameterDescription.InDefinedShape.AbstractBase717f5d8d90c005f1
    net.bytebuddy.description.method.ParameterDescription.Latent1aa2e08f2ad0d5c2
    net.bytebuddy.description.method.ParameterDescription.Token36549650fa40d54b
    net.bytebuddy.description.method.ParameterDescription.Token.TypeList1890975119bdb094
    net.bytebuddy.description.method.ParameterDescription.TypeSubstituting6cc95e3ea064743d
    net.bytebuddy.description.method.ParameterList.AbstractBase6fe6f7a3a2c191ea
    net.bytebuddy.description.method.ParameterList.Empty8f4a45d2f54ed28b
    net.bytebuddy.description.method.ParameterList.Explicit.ForTypes75d84e0b4fcd99a9
    net.bytebuddy.description.method.ParameterList.ForLoadedExecutable1456c072c3be7105
    net.bytebuddy.description.method.ParameterList.ForLoadedExecutable.OfConstructor6d7eaa8911075319
    net.bytebuddy.description.method.ParameterList.ForLoadedExecutable.OfMethodf0835708e2d15fb4
    net.bytebuddy.description.method.ParameterList.ForTokensb77d0ee711552f0c
    net.bytebuddy.description.method.ParameterList.TypeSubstituting293f1f350b97c439
    net.bytebuddy.description.modifier.FieldManifestation61ed9ad5f460d425
    net.bytebuddy.description.modifier.ModifierContributor.Resolver4c37457cc5fe415c
    net.bytebuddy.description.modifier.Ownership03978521bbedeaac
    net.bytebuddy.description.modifier.SynchronizationState1ee1e76d573ad75b
    net.bytebuddy.description.modifier.SyntheticState0ea0b3d14a159257
    net.bytebuddy.description.modifier.TypeManifestation823497b74af56cf0
    net.bytebuddy.description.modifier.Visibilityeddec8671a9488f2
    net.bytebuddy.description.modifier.Visibility.1d7e383ada6123e01
    net.bytebuddy.description.type.PackageDescription.AbstractBasefbc5f3918eb9463b
    net.bytebuddy.description.type.PackageDescription.ForLoadedPackage647cf445f49b7cf5
    net.bytebuddy.description.type.PackageDescription.Simple0cb49b8e5cdceb1d
    net.bytebuddy.description.type.RecordComponentList.AbstractBasefa2d664156de0c87
    net.bytebuddy.description.type.RecordComponentList.ForTokensb72447d1fcbe18bd
    net.bytebuddy.description.type.TypeDefinition.Sorte252ac8a021f4082
    net.bytebuddy.description.type.TypeDefinition.SuperClassIteratordcc41092c6176f54
    net.bytebuddy.description.type.TypeDescription36fd0fa20ad52135
    net.bytebuddy.description.type.TypeDescription.AbstractBase258559cdb4b6404f
    net.bytebuddy.description.type.TypeDescription.AbstractBase.OfSimpleTypec72c2e5e6e03df99
    net.bytebuddy.description.type.TypeDescription.ArrayProjectiona900e473d864b2b5
    net.bytebuddy.description.type.TypeDescription.ForLoadedType8fa35f44ace50391
    net.bytebuddy.description.type.TypeDescription.Generic5601518ac3dba89e
    net.bytebuddy.description.type.TypeDescription.Generic.AbstractBase3e49593313e4528f
    net.bytebuddy.description.type.TypeDescription.Generic.AnnotationReader.Delegatorb0fc4c110c19aecd
    net.bytebuddy.description.type.TypeDescription.Generic.AnnotationReader.Delegator.Chainedce5936070db33961
    net.bytebuddy.description.type.TypeDescription.Generic.AnnotationReader.Delegator.ForLoadedExecutableExceptionType83ae335cad65ee98
    net.bytebuddy.description.type.TypeDescription.Generic.AnnotationReader.Delegator.ForLoadedExecutableParameterType3db4d13b1a55ffe8
    net.bytebuddy.description.type.TypeDescription.Generic.AnnotationReader.Delegator.ForLoadedInterface25bcc5acc7d6039e
    net.bytebuddy.description.type.TypeDescription.Generic.AnnotationReader.Delegator.ForLoadedMethodReturnType68fd86a349490e9d
    net.bytebuddy.description.type.TypeDescription.Generic.AnnotationReader.Delegator.ForLoadedSuperClass64cbe4cf03033a19
    net.bytebuddy.description.type.TypeDescription.Generic.AnnotationReader.Delegator.Simple58348630fb7f5660
    net.bytebuddy.description.type.TypeDescription.Generic.AnnotationReader.ForComponentType0f95408415168381
    net.bytebuddy.description.type.TypeDescription.Generic.AnnotationReader.ForTypeArgumentc4c5a6817a5b11ba
    net.bytebuddy.description.type.TypeDescription.Generic.AnnotationReader.NoOp7d262d1efdc1a658
    net.bytebuddy.description.type.TypeDescription.Generic.LazyProjection0ee749354388952f
    net.bytebuddy.description.type.TypeDescription.Generic.LazyProjection.ForLoadedReturnType09e831a0a48649e7
    net.bytebuddy.description.type.TypeDescription.Generic.LazyProjection.ForLoadedSuperClass4097c89a98a6a8c7
    net.bytebuddy.description.type.TypeDescription.Generic.LazyProjection.OfConstructorParameter268259d971f079da
    net.bytebuddy.description.type.TypeDescription.Generic.LazyProjection.OfMethodParametercc35cbb5a12db70b
    net.bytebuddy.description.type.TypeDescription.Generic.LazyProjection.WithEagerNavigationba4ed13a2c16fa27
    net.bytebuddy.description.type.TypeDescription.Generic.LazyProjection.WithEagerNavigation.OfAnnotatedElement5bccd0ca3c6cf39e
    net.bytebuddy.description.type.TypeDescription.Generic.LazyProjection.WithLazyNavigation5734f0b82230f143
    net.bytebuddy.description.type.TypeDescription.Generic.LazyProjection.WithLazyNavigation.OfAnnotatedElement2203d6c2cc2e43d7
    net.bytebuddy.description.type.TypeDescription.Generic.LazyProjection.WithResolvedErasure5656afa8f8c7fa04
    net.bytebuddy.description.type.TypeDescription.Generic.LazyProxy837c46ba31dd9215
    net.bytebuddy.description.type.TypeDescription.Generic.OfGenericArrayd13b176c2d3dc84b
    net.bytebuddy.description.type.TypeDescription.Generic.OfGenericArray.Latent5d23c8971e97c94c
    net.bytebuddy.description.type.TypeDescription.Generic.OfNonGenericTypeffefd02f303394e6
    net.bytebuddy.description.type.TypeDescription.Generic.OfNonGenericType.ForErasured952d613f637b449
    net.bytebuddy.description.type.TypeDescription.Generic.OfNonGenericType.ForLoadedTypef00423b3668c6a6d
    net.bytebuddy.description.type.TypeDescription.Generic.OfParameterizedType91d595189a038777
    net.bytebuddy.description.type.TypeDescription.Generic.OfParameterizedType.ForGenerifiedErasure4fa1e7c89c00c97f
    net.bytebuddy.description.type.TypeDescription.Generic.OfParameterizedType.ForLoadedType68b564e96aa7b7f7
    net.bytebuddy.description.type.TypeDescription.Generic.OfParameterizedType.ForLoadedType.ParameterArgumentTypeList186a3e289af3008c
    net.bytebuddy.description.type.TypeDescription.Generic.OfParameterizedType.Latent0563e8e02d018d81
    net.bytebuddy.description.type.TypeDescription.Generic.Visitor.ForRawType2730ba635b3e4dae
    net.bytebuddy.description.type.TypeDescription.Generic.Visitor.ForSignatureVisitor7c9ee6e3c386d02f
    net.bytebuddy.description.type.TypeDescription.Generic.Visitor.ForSignatureVisitor.OfTypeArgumentd8e6035b10ed1222
    net.bytebuddy.description.type.TypeDescription.Generic.Visitor.Reducing6646869e65b4683e
    net.bytebuddy.description.type.TypeDescription.Generic.Visitor.Reifyingf695f950ef96d452
    net.bytebuddy.description.type.TypeDescription.Generic.Visitor.Reifying.13887b35198c64c3f
    net.bytebuddy.description.type.TypeDescription.Generic.Visitor.Reifying.2dda2c47b308dfe77
    net.bytebuddy.description.type.TypeDescription.Generic.Visitor.Substitutor65dc96c548e3e991
    net.bytebuddy.description.type.TypeDescription.Generic.Visitor.Substitutor.ForAttachmentda6e736f271084bb
    net.bytebuddy.description.type.TypeDescription.Generic.Visitor.Substitutor.ForDetachment84581ab83cefe0ba
    net.bytebuddy.description.type.TypeDescription.Generic.Visitor.Substitutor.WithoutTypeSubstitution17ef049604f02334
    net.bytebuddy.description.type.TypeDescription.LazyProxy12b49bec0a736b32
    net.bytebuddy.description.type.TypeListda60a7cfb717d0a8
    net.bytebuddy.description.type.TypeList.AbstractBase4700315364477234
    net.bytebuddy.description.type.TypeList.Empty59d00ad7b53c811a
    net.bytebuddy.description.type.TypeList.Explicit81495dfc3a359dfe
    net.bytebuddy.description.type.TypeList.ForLoadedTypes4356a7471aec6f20
    net.bytebuddy.description.type.TypeList.Generic.AbstractBase5376e1d2298a6512
    net.bytebuddy.description.type.TypeList.Generic.Emptydf9431d33e66dbb4
    net.bytebuddy.description.type.TypeList.Generic.Explicit1ab8c93e54ee2ac6
    net.bytebuddy.description.type.TypeList.Generic.ForDetachedTypes1b6544725fdb45a6
    net.bytebuddy.description.type.TypeList.Generic.ForDetachedTypes.OfTypeVariables05b85732c40f12b7
    net.bytebuddy.description.type.TypeList.Generic.ForDetachedTypes.WithResolvedErasure3ae7efc80de7c3db
    net.bytebuddy.description.type.TypeList.Generic.ForLoadedTypesc603bfa8790b860c
    net.bytebuddy.description.type.TypeList.Generic.ForLoadedTypes.OfTypeVariablesd713fc161a8b3c83
    net.bytebuddy.description.type.TypeList.Generic.OfConstructorExceptionTypes41a985dd07ed867c
    net.bytebuddy.description.type.TypeList.Generic.OfConstructorExceptionTypes.TypeProjectiona9a42d16f46764ff
    net.bytebuddy.description.type.TypeList.Generic.OfLoadedInterfaceTypes99d4f3faf0ed1337
    net.bytebuddy.description.type.TypeList.Generic.OfLoadedInterfaceTypes.TypeProjection7f6f3c7654719119
    net.bytebuddy.description.type.TypeList.Generic.OfMethodExceptionTypes74966b175ac75ab9
    net.bytebuddy.description.type.TypeList.Generic.OfMethodExceptionTypes.TypeProjection2d651d381fd3d0a8
    net.bytebuddy.dynamic.DynamicType.Builder.AbstractBase531a2e961b13325b
    net.bytebuddy.dynamic.DynamicType.Builder.AbstractBase.Adapter5f4faab3b408ec94
    net.bytebuddy.dynamic.DynamicType.Builder.AbstractBase.Adapter.FieldDefinitionAdapterfd8d7a11be3c9ede
    net.bytebuddy.dynamic.DynamicType.Builder.AbstractBase.Adapter.MethodDefinitionAdaptere75374fa15e452ff
    net.bytebuddy.dynamic.DynamicType.Builder.AbstractBase.Adapter.MethodDefinitionAdapter.AnnotationAdapterbaf66768a8ba7010
    net.bytebuddy.dynamic.DynamicType.Builder.AbstractBase.Adapter.MethodDefinitionAdapter.SimpleParameterAnnotationAdapter24c4f03b22480ac9
    net.bytebuddy.dynamic.DynamicType.Builder.AbstractBase.Adapter.MethodMatchAdapter5914cb1a77b4c084
    net.bytebuddy.dynamic.DynamicType.Builder.AbstractBase.Adapter.MethodMatchAdapter.AnnotationAdapter8becc0d3a2f579f7
    net.bytebuddy.dynamic.DynamicType.Builder.AbstractBase.Adapter.OptionalMethodMatchAdapter1e5cba284e697ff2
    net.bytebuddy.dynamic.DynamicType.Builder.AbstractBase.Delegatorcd65d88864fb9551
    net.bytebuddy.dynamic.DynamicType.Builder.AbstractBase.UsingTypeWriter2c521e681717b547
    net.bytebuddy.dynamic.DynamicType.Builder.FieldDefinition.Optional.AbstractBaseae345146b4ff4937
    net.bytebuddy.dynamic.DynamicType.Builder.FieldDefinition.Optional.Valuable.AbstractBasebbf864ab6ae58db5
    net.bytebuddy.dynamic.DynamicType.Builder.FieldDefinition.Optional.Valuable.AbstractBase.Adapterc094da12c027af78
    net.bytebuddy.dynamic.DynamicType.Builder.MethodDefinition.AbstractBase9c472892ce0a50bb
    net.bytebuddy.dynamic.DynamicType.Builder.MethodDefinition.AbstractBase.Adapterd3915da6e1e1de4c
    net.bytebuddy.dynamic.DynamicType.Builder.MethodDefinition.ExceptionDefinition.AbstractBase5d66e82b417f9b46
    net.bytebuddy.dynamic.DynamicType.Builder.MethodDefinition.ImplementationDefinition.AbstractBasee0513b10037138a8
    net.bytebuddy.dynamic.DynamicType.Builder.MethodDefinition.ParameterDefinition.AbstractBasece292c22036f8154
    net.bytebuddy.dynamic.DynamicType.Builder.MethodDefinition.ParameterDefinition.Initial.AbstractBase75703fad010e1cc6
    net.bytebuddy.dynamic.DynamicType.Builder.MethodDefinition.ParameterDefinition.Simple.AbstractBase0a7a2334f6a9b15d
    net.bytebuddy.dynamic.DynamicType.Builder.MethodDefinition.ParameterDefinition.Simple.Annotatable.AbstractBasec67240824c7cd31a
    net.bytebuddy.dynamic.DynamicType.Builder.MethodDefinition.ParameterDefinition.Simple.Annotatable.AbstractBase.Adapterf1f199a3d7662651
    net.bytebuddy.dynamic.DynamicType.Builder.MethodDefinition.ReceiverTypeDefinition.AbstractBasea20cd2a086e77441
    net.bytebuddy.dynamic.DynamicType.Builder.MethodDefinition.TypeVariableDefinition.AbstractBaseb010816c4e7b6513
    net.bytebuddy.dynamic.DynamicType.Defaultca6748217ece3884
    net.bytebuddy.dynamic.DynamicType.Default.Loadede63ea06339154cad
    net.bytebuddy.dynamic.DynamicType.Default.Unloaded876286f205b44199
    net.bytebuddy.dynamic.TargetType26c139b5f2f58862
    net.bytebuddy.dynamic.Transformer.Compounda5a52522b43091ef
    net.bytebuddy.dynamic.Transformer.ForMethod22ab387d59f6c970
    net.bytebuddy.dynamic.Transformer.ForMethod.MethodModifierTransformer829c18ff395159ba
    net.bytebuddy.dynamic.Transformer.ForMethod.TransformedMethod083bfd5734c4504d
    net.bytebuddy.dynamic.Transformer.ForMethod.TransformedMethod.AttachmentVisitor43014c50e1310fbf
    net.bytebuddy.dynamic.Transformer.ForMethod.TransformedMethod.TransformedParameter84642c4a6f0d1bdc
    net.bytebuddy.dynamic.Transformer.ForMethod.TransformedMethod.TransformedParameterList54d561afbee57f99
    net.bytebuddy.dynamic.Transformer.NoOp49cd89a2b3b975a3
    net.bytebuddy.dynamic.TypeResolutionStrategy.Passived5784ee7fb36ce53
    net.bytebuddy.dynamic.VisibilityBridgeStrategy.Defaultae8d9f7fd85c6aad
    net.bytebuddy.dynamic.VisibilityBridgeStrategy.Default.163c0d42260c7599e
    net.bytebuddy.dynamic.VisibilityBridgeStrategy.Default.2a8389e9d32c4ecd7
    net.bytebuddy.dynamic.VisibilityBridgeStrategy.Default.330f7afc5a8be245c
    net.bytebuddy.dynamic.loading.ByteArrayClassLoader.PersistenceHandler811732d1db761cc5
    net.bytebuddy.dynamic.loading.ByteArrayClassLoader.PersistenceHandler.1c9ee72578a4d55a4
    net.bytebuddy.dynamic.loading.ByteArrayClassLoader.PersistenceHandler.2f7eb2a49ccc0c5d4
    net.bytebuddy.dynamic.loading.ClassInjector.AbstractBase331215a38873f162
    net.bytebuddy.dynamic.loading.ClassInjector.UsingReflection9b4c6d016e86d89d
    net.bytebuddy.dynamic.loading.ClassInjector.UsingReflection.Dispatcher.CreationActione95efd9bc7c2fbec
    net.bytebuddy.dynamic.loading.ClassInjector.UsingReflection.Dispatcher.Direct2a61312aae25f447
    net.bytebuddy.dynamic.loading.ClassInjector.UsingReflection.Dispatcher.Direct.ForJava7CapableVm5b1e1d52a58d44e8
    net.bytebuddy.dynamic.loading.ClassLoadingStrategy17fb081ccc92f99c
    net.bytebuddy.dynamic.loading.ClassLoadingStrategy.Default7390ec8634515594
    net.bytebuddy.dynamic.loading.ClassLoadingStrategy.Default.InjectionDispatcher759cb7a298fc98b7
    net.bytebuddy.dynamic.loading.ClassLoadingStrategy.Default.WrappingDispatcher88c49bdd78533ba6
    net.bytebuddy.dynamic.loading.MultipleParentClassLoader.Builderc6fb9f2d63f216f9
    net.bytebuddy.dynamic.loading.PackageDefinitionStrategy.Definition.Undefined1b8dafe51f80088c
    net.bytebuddy.dynamic.loading.PackageDefinitionStrategy.NoOp31480ec85144aa31
    net.bytebuddy.dynamic.loading.PackageDefinitionStrategy.Triviald0ed587787d4d89f
    net.bytebuddy.dynamic.scaffold.ClassWriterStrategy.Defaultf0774d4bbe85a809
    net.bytebuddy.dynamic.scaffold.ClassWriterStrategy.Default.109a3c2cfe88a5ae4
    net.bytebuddy.dynamic.scaffold.ClassWriterStrategy.Default.276afb59bd5abdd5f
    net.bytebuddy.dynamic.scaffold.ClassWriterStrategy.FrameComputingClassWriter52e278e8d81b4dc4
    net.bytebuddy.dynamic.scaffold.FieldLocator.AbstractBasedb8c5004661a0bd8
    net.bytebuddy.dynamic.scaffold.FieldLocator.ForClassHierarchy0e8431af1152b965
    net.bytebuddy.dynamic.scaffold.FieldLocator.ForClassHierarchy.Factoryd97235dbbc3871e9
    net.bytebuddy.dynamic.scaffold.FieldLocator.Resolution.Simple7e3dca01a01498d1
    net.bytebuddy.dynamic.scaffold.FieldRegistry.Defaultcc5265630d0906f2
    net.bytebuddy.dynamic.scaffold.FieldRegistry.Default.Compiled00933225bc77b175
    net.bytebuddy.dynamic.scaffold.FieldRegistry.Default.Compiled.Entry0ec1361a69a955fd
    net.bytebuddy.dynamic.scaffold.FieldRegistry.Default.Entrya7413622fd851aa9
    net.bytebuddy.dynamic.scaffold.InstrumentedType.Default83177f7ca587cf30
    net.bytebuddy.dynamic.scaffold.InstrumentedType.Factory.Defaultcd900ae01efd903f
    net.bytebuddy.dynamic.scaffold.InstrumentedType.Factory.Default.1a7ce85bb2f37ff77
    net.bytebuddy.dynamic.scaffold.InstrumentedType.Factory.Default.2ad157a47dace4f55
    net.bytebuddy.dynamic.scaffold.MethodGraph.Compilerfc88be698cc4a50f
    net.bytebuddy.dynamic.scaffold.MethodGraph.Compiler.AbstractBasead55505e167100d9
    net.bytebuddy.dynamic.scaffold.MethodGraph.Compiler.Defaulta37bac0e0eceb0c9
    net.bytebuddy.dynamic.scaffold.MethodGraph.Compiler.Default.Harmonizer.ForJavaMethod4b92bfc82ab49b25
    net.bytebuddy.dynamic.scaffold.MethodGraph.Compiler.Default.Harmonizer.ForJavaMethod.Tokene2da236960e0a189
    net.bytebuddy.dynamic.scaffold.MethodGraph.Compiler.Default.Key421619c0f44567f3
    net.bytebuddy.dynamic.scaffold.MethodGraph.Compiler.Default.Key.Detached82540bbf94c15922
    net.bytebuddy.dynamic.scaffold.MethodGraph.Compiler.Default.Key.Harmonized5d9ad1d55d82a355
    net.bytebuddy.dynamic.scaffold.MethodGraph.Compiler.Default.Key.Storef948e4de58324a0f
    net.bytebuddy.dynamic.scaffold.MethodGraph.Compiler.Default.Key.Store.Entry.Initial1fc852958287c36a
    net.bytebuddy.dynamic.scaffold.MethodGraph.Compiler.Default.Key.Store.Entry.Resolved6672a261c5f5dd2e
    net.bytebuddy.dynamic.scaffold.MethodGraph.Compiler.Default.Key.Store.Entry.Resolved.Node0f0b18948cce4159
    net.bytebuddy.dynamic.scaffold.MethodGraph.Compiler.Default.Key.Store.Graphf50e2614e64a132c
    net.bytebuddy.dynamic.scaffold.MethodGraph.Compiler.Default.Merger.Directional0ba0f74ab7d66be7
    net.bytebuddy.dynamic.scaffold.MethodGraph.Linked.Delegation7341085250d5f338
    net.bytebuddy.dynamic.scaffold.MethodGraph.Node.Simplef9767f80e7124acc
    net.bytebuddy.dynamic.scaffold.MethodGraph.Node.Sort8e20af4bf9dad8a0
    net.bytebuddy.dynamic.scaffold.MethodGraph.Node.Unresolvedc42332646fb3e771
    net.bytebuddy.dynamic.scaffold.MethodGraph.NodeList3f435ec381113f00
    net.bytebuddy.dynamic.scaffold.MethodGraph.Simple9a1f1f9d25ac44be
    net.bytebuddy.dynamic.scaffold.MethodRegistry.Default35ae92274e85ac88
    net.bytebuddy.dynamic.scaffold.MethodRegistry.Default.Compileddd840dc4ea29fc06
    net.bytebuddy.dynamic.scaffold.MethodRegistry.Default.Compiled.Entry827864e42dc177c2
    net.bytebuddy.dynamic.scaffold.MethodRegistry.Default.Entry66b9b2c39c4a08ee
    net.bytebuddy.dynamic.scaffold.MethodRegistry.Default.Prepared3c270a20a21353d7
    net.bytebuddy.dynamic.scaffold.MethodRegistry.Default.Prepared.Entrye96586202cb119f0
    net.bytebuddy.dynamic.scaffold.MethodRegistry.Handler.ForImplementationea77701fcbc47e2c
    net.bytebuddy.dynamic.scaffold.MethodRegistry.Handler.ForImplementation.Compiled7b000ab44a4af2cc
    net.bytebuddy.dynamic.scaffold.RecordComponentRegistry.Defaulteec49897d441dcbe
    net.bytebuddy.dynamic.scaffold.RecordComponentRegistry.Default.Compiled1d64a300c478cbd4
    net.bytebuddy.dynamic.scaffold.TypeInitializer.Drain.Defaulta3bc2736d5ad95f5
    net.bytebuddy.dynamic.scaffold.TypeInitializer.Noned062b02ed3f4d342
    net.bytebuddy.dynamic.scaffold.TypeInitializer.Simple3429322f4d42e2d4
    net.bytebuddy.dynamic.scaffold.TypeValidationb9ab70dc0d5e3c60
    net.bytebuddy.dynamic.scaffold.TypeWriter.Defaultc13cf997e386f3cc
    net.bytebuddy.dynamic.scaffold.TypeWriter.Default.ClassDumpAction.Dispatcher.Disabledd4f0d2e7fbcab045
    net.bytebuddy.dynamic.scaffold.TypeWriter.Default.ForCreationfc9ad618be46b3c0
    net.bytebuddy.dynamic.scaffold.TypeWriter.Default.UnresolvedType3f5380fd3549f07e
    net.bytebuddy.dynamic.scaffold.TypeWriter.Default.ValidatingClassVisitor0449b85d73902e5f
    net.bytebuddy.dynamic.scaffold.TypeWriter.FieldPool.Record.ForExplicitFielda03e0587988aae1f
    net.bytebuddy.dynamic.scaffold.TypeWriter.MethodPool.Record.AccessBridgeWrapper9527fd76169900c9
    net.bytebuddy.dynamic.scaffold.TypeWriter.MethodPool.Record.ForDefinedMethode3fde8a86929682d
    net.bytebuddy.dynamic.scaffold.TypeWriter.MethodPool.Record.ForDefinedMethod.WithBody963047d43410ba83
    net.bytebuddy.dynamic.scaffold.TypeWriter.MethodPool.Record.ForNonImplementedMethod28a00d78fb553a8c
    net.bytebuddy.dynamic.scaffold.TypeWriter.MethodPool.Record.Sort928d954d831a88bc
    net.bytebuddy.dynamic.scaffold.subclass.ConstructorStrategy.Default0d114e09a2faac83
    net.bytebuddy.dynamic.scaffold.subclass.ConstructorStrategy.Default.116fc5c99e02d7f9f
    net.bytebuddy.dynamic.scaffold.subclass.ConstructorStrategy.Default.2dd199479878d5739
    net.bytebuddy.dynamic.scaffold.subclass.ConstructorStrategy.Default.3792ea5ce51475037
    net.bytebuddy.dynamic.scaffold.subclass.ConstructorStrategy.Default.498fceb895a262b45
    net.bytebuddy.dynamic.scaffold.subclass.ConstructorStrategy.Default.5f0898605f9020c16
    net.bytebuddy.dynamic.scaffold.subclass.SubclassDynamicTypeBuilder16995528b814abfb
    net.bytebuddy.dynamic.scaffold.subclass.SubclassDynamicTypeBuilder.InstrumentableMatcherc2850d79fc87446b
    net.bytebuddy.dynamic.scaffold.subclass.SubclassImplementationTarget17f509a8b52b39f3
    net.bytebuddy.dynamic.scaffold.subclass.SubclassImplementationTarget.Factoryf6c0a700d93e9d10
    net.bytebuddy.dynamic.scaffold.subclass.SubclassImplementationTarget.OriginTypeResolver282c73cc811d5b71
    net.bytebuddy.dynamic.scaffold.subclass.SubclassImplementationTarget.OriginTypeResolver.12eb773d398b87160
    net.bytebuddy.dynamic.scaffold.subclass.SubclassImplementationTarget.OriginTypeResolver.2903a99da03746eb8
    net.bytebuddy.implementation.FieldAccessor0174e94238af9d2f
    net.bytebuddy.implementation.FieldAccessor.FieldLocation.Relativee3f1a92ea73df3a5
    net.bytebuddy.implementation.FieldAccessor.FieldLocation.Relative.Preparedc55029896988613b
    net.bytebuddy.implementation.FieldAccessor.FieldNameExtractor.ForBeanProperty751b847060c7cd95
    net.bytebuddy.implementation.FieldAccessor.ForImplicitProperty623c50de803e8dff
    net.bytebuddy.implementation.FieldAccessor.ForImplicitProperty.Appenderdb2e4aeceee38d5f
    net.bytebuddy.implementation.Implementation.Context.Defaultd63040bc175192ee
    net.bytebuddy.implementation.Implementation.Context.Default.AbstractPropertyAccessorMethod4a69ecc69149f327
    net.bytebuddy.implementation.Implementation.Context.Default.AccessorMethod147ddbd116dc5018
    net.bytebuddy.implementation.Implementation.Context.Default.AccessorMethodDelegation4ecb89b1b8e43487
    net.bytebuddy.implementation.Implementation.Context.Default.CacheValueField091aa1cc83b89353
    net.bytebuddy.implementation.Implementation.Context.Default.DelegationRecord7772d9b1460b4444
    net.bytebuddy.implementation.Implementation.Context.Default.Factory329a9c16f45fea72
    net.bytebuddy.implementation.Implementation.Context.Default.FieldCacheEntry93ea3c3584aedbb3
    net.bytebuddy.implementation.Implementation.Context.ExtractableView.AbstractBasea2bce3211300b141
    net.bytebuddy.implementation.Implementation.Context.FrameGeneration85cfd05a0313231d
    net.bytebuddy.implementation.Implementation.Context.FrameGeneration.11a7229cc1aa2fe64
    net.bytebuddy.implementation.Implementation.Context.FrameGeneration.24c4edc4b4128953d
    net.bytebuddy.implementation.Implementation.Context.FrameGeneration.30086e69e9329bfd5
    net.bytebuddy.implementation.Implementation.SpecialMethodInvocation.AbstractBase99ac1d4463895d3f
    net.bytebuddy.implementation.Implementation.SpecialMethodInvocation.Illegalfe05bdf1b81d2463
    net.bytebuddy.implementation.Implementation.SpecialMethodInvocation.Simple7916d516ba029853
    net.bytebuddy.implementation.Implementation.Target.AbstractBase891cf9f2a321fafd
    net.bytebuddy.implementation.Implementation.Target.AbstractBase.DefaultMethodInvocation29b19b204be139f3
    net.bytebuddy.implementation.Implementation.Target.AbstractBase.DefaultMethodInvocation.13ba9a760aa49a971
    net.bytebuddy.implementation.Implementation.Target.AbstractBase.DefaultMethodInvocation.28279f38afb254f72
    net.bytebuddy.implementation.LoadedTypeInitializer.NoOp1af8ca0d9b7adbe8
    net.bytebuddy.implementation.MethodAccessorFactory.AccessTypea8b1b417256441f1
    net.bytebuddy.implementation.MethodDelegationec9af1244cdb0f2c
    net.bytebuddy.implementation.MethodDelegation.Appender578e9e4be578040b
    net.bytebuddy.implementation.MethodDelegation.ImplementationDelegate.Compiled.ForStaticCall78b3eb01c3540dcc
    net.bytebuddy.implementation.MethodDelegation.ImplementationDelegate.ForStaticMethodf19452fcc061d904
    net.bytebuddy.implementation.MethodDelegation.WithCustomPropertiesc804a366d1128499
    net.bytebuddy.implementation.SuperMethodCall48a9709638c71f00
    net.bytebuddy.implementation.SuperMethodCall.Appender1278488d60ed8e86
    net.bytebuddy.implementation.SuperMethodCall.Appender.TerminationHandler35d2e0ef6d7f630d
    net.bytebuddy.implementation.SuperMethodCall.Appender.TerminationHandler.105664af3a3b6738b
    net.bytebuddy.implementation.SuperMethodCall.Appender.TerminationHandler.2be670f96c6d93831
    net.bytebuddy.implementation.attribute.AnnotationAppender.Default7787cf7f483d6685
    net.bytebuddy.implementation.attribute.AnnotationAppender.ForTypeAnnotations040d5aab72de4582
    net.bytebuddy.implementation.attribute.AnnotationAppender.Target.OnField52ad3ce83f52621f
    net.bytebuddy.implementation.attribute.AnnotationAppender.Target.OnMethodb2534f024a4880dd
    net.bytebuddy.implementation.attribute.AnnotationAppender.Target.OnMethodParameterc9f39d80b694c092
    net.bytebuddy.implementation.attribute.AnnotationAppender.Target.OnTypedb8f4f1dbbcf3c3e
    net.bytebuddy.implementation.attribute.AnnotationRetention6dca59a58d56874f
    net.bytebuddy.implementation.attribute.AnnotationValueFilter.Default190882f8828de18a
    net.bytebuddy.implementation.attribute.AnnotationValueFilter.Default.1593737e47cc84848
    net.bytebuddy.implementation.attribute.AnnotationValueFilter.Default.2a61861baa0bc96ee
    net.bytebuddy.implementation.attribute.FieldAttributeAppender.ForInstrumentedFieldca19f51ae14fb7b4
    net.bytebuddy.implementation.attribute.MethodAttributeAppender.Compound87d24d92007e506e
    net.bytebuddy.implementation.attribute.MethodAttributeAppender.Factory.Compound85113e9ca3ae38c3
    net.bytebuddy.implementation.attribute.MethodAttributeAppender.ForInstrumentedMethod4e40a53e08d4cbbb
    net.bytebuddy.implementation.attribute.MethodAttributeAppender.ForInstrumentedMethod.1a3b87b1a75d290fd
    net.bytebuddy.implementation.attribute.MethodAttributeAppender.ForInstrumentedMethod.210e734a991eea3bf
    net.bytebuddy.implementation.attribute.MethodAttributeAppender.NoOpaa6841038c96aed0
    net.bytebuddy.implementation.attribute.TypeAttributeAppender.ForInstrumentedType537a1dac83c99ae9
    net.bytebuddy.implementation.auxiliary.AuxiliaryType577555a7861b5701
    net.bytebuddy.implementation.auxiliary.AuxiliaryType.NamingStrategy.SuffixingRandom9ff4d19573d987f3
    net.bytebuddy.implementation.auxiliary.MethodCallProxye4ad67673bba91b3
    net.bytebuddy.implementation.auxiliary.MethodCallProxy.AssignableSignatureCalle32307e618f933aa
    net.bytebuddy.implementation.auxiliary.MethodCallProxy.ConstructorCallb40129a97ef170e6
    net.bytebuddy.implementation.auxiliary.MethodCallProxy.ConstructorCall.Appender6a4a35552c21bf78
    net.bytebuddy.implementation.auxiliary.MethodCallProxy.MethodCalld2f0f120376a3b4f
    net.bytebuddy.implementation.auxiliary.MethodCallProxy.MethodCall.Appenderdf4a3b2e219da333
    net.bytebuddy.implementation.auxiliary.MethodCallProxy.PrecomputedMethodGraph7fb29fbd9d22e04c
    net.bytebuddy.implementation.bind.ArgumentTypeResolver74973272be85ce17
    net.bytebuddy.implementation.bind.ArgumentTypeResolver.ParameterIndexTokena8052b758f0a0361
    net.bytebuddy.implementation.bind.DeclaringTypeResolverd1000b5d5bf7bd79
    net.bytebuddy.implementation.bind.MethodDelegationBinder.154de841f73ee4eae
    net.bytebuddy.implementation.bind.MethodDelegationBinder.AmbiguityResolver7d40b5a2d5d69397
    net.bytebuddy.implementation.bind.MethodDelegationBinder.AmbiguityResolver.Compoundeab4a548d2693cd2
    net.bytebuddy.implementation.bind.MethodDelegationBinder.AmbiguityResolver.Resolutione8ca39d95b4ade42
    net.bytebuddy.implementation.bind.MethodDelegationBinder.BindingResolver.Defaulted3f9e212bdf4696
    net.bytebuddy.implementation.bind.MethodDelegationBinder.MethodBinding.Builderffaacecf2e1956bd
    net.bytebuddy.implementation.bind.MethodDelegationBinder.MethodBinding.Builder.Buildfbe15ed2c0b7c26f
    net.bytebuddy.implementation.bind.MethodDelegationBinder.MethodBinding.Illegalca301be97fe35cde
    net.bytebuddy.implementation.bind.MethodDelegationBinder.MethodInvoker.Simpledafea2ba3b2f164b
    net.bytebuddy.implementation.bind.MethodDelegationBinder.ParameterBinding.Anonymous30b0f734840f8b2c
    net.bytebuddy.implementation.bind.MethodDelegationBinder.ParameterBinding.Illegal470dc52d77c3898e
    net.bytebuddy.implementation.bind.MethodDelegationBinder.ParameterBinding.Uniquec60c100f523804e4
    net.bytebuddy.implementation.bind.MethodDelegationBinder.Processor1dd9238ba412581f
    net.bytebuddy.implementation.bind.MethodDelegationBinder.TerminationHandler.Default946265fda2ca27e8
    net.bytebuddy.implementation.bind.MethodDelegationBinder.TerminationHandler.Default.1db109132d7373fda
    net.bytebuddy.implementation.bind.MethodDelegationBinder.TerminationHandler.Default.2cb3895b610bd15d5
    net.bytebuddy.implementation.bind.MethodNameEqualityResolver65a8d1431b34fdcd
    net.bytebuddy.implementation.bind.ParameterLengthResolver58a025cd0f10dff1
    net.bytebuddy.implementation.bind.annotation.AllArguments.Assignmentbfcd0244baa95f1b
    net.bytebuddy.implementation.bind.annotation.AllArguments.Binderb7e6501b9bd85e65
    net.bytebuddy.implementation.bind.annotation.Argument.Binder9d613cfc7a8f0cd6
    net.bytebuddy.implementation.bind.annotation.Argument.BindingMechanicad9a5463673957e4
    net.bytebuddy.implementation.bind.annotation.Argument.BindingMechanic.15750463a9b2658fe
    net.bytebuddy.implementation.bind.annotation.Argument.BindingMechanic.2653fe2b1bb93cce4
    net.bytebuddy.implementation.bind.annotation.BindingPriority.Resolver2fd170c18c979895
    net.bytebuddy.implementation.bind.annotation.Default.Binderfdd8dd2baa86d3db
    net.bytebuddy.implementation.bind.annotation.DefaultCall.Binderd7e4b58cec267a0e
    net.bytebuddy.implementation.bind.annotation.DefaultMethod.Binder03d209c7b50b3b07
    net.bytebuddy.implementation.bind.annotation.Empty.Binder6af2e8e3cdad25b3
    net.bytebuddy.implementation.bind.annotation.FieldValue.Binderffe1f66fdf57240f
    net.bytebuddy.implementation.bind.annotation.FieldValue.Binder.Delegateb16d4f0b5def41e9
    net.bytebuddy.implementation.bind.annotation.IgnoreForBinding.Verifierf6eaa0a37f2ce769
    net.bytebuddy.implementation.bind.annotation.Origin.Binder58bfe04015269f97
    net.bytebuddy.implementation.bind.annotation.RuntimeType.Verifier79ef98193cf36f83
    net.bytebuddy.implementation.bind.annotation.StubValue.Binder90a2fb5cbb2fc45c
    net.bytebuddy.implementation.bind.annotation.Super.Binder159db3adf8f80917
    net.bytebuddy.implementation.bind.annotation.SuperCall.Binderd504027b57aeebbe
    net.bytebuddy.implementation.bind.annotation.SuperMethod.Binder787b81ea7c3cf9d1
    net.bytebuddy.implementation.bind.annotation.TargetMethodAnnotationDrivenBindera9644f0a487b56f8
    net.bytebuddy.implementation.bind.annotation.TargetMethodAnnotationDrivenBinder.DelegationProcessor08e777de45b651f6
    net.bytebuddy.implementation.bind.annotation.TargetMethodAnnotationDrivenBinder.DelegationProcessor.Handler.Boundfe4b74c6469cb373
    net.bytebuddy.implementation.bind.annotation.TargetMethodAnnotationDrivenBinder.DelegationProcessor.Handler.Unbound53b08d554175038c
    net.bytebuddy.implementation.bind.annotation.TargetMethodAnnotationDrivenBinder.ParameterBinder6f273cd5a9428c36
    net.bytebuddy.implementation.bind.annotation.TargetMethodAnnotationDrivenBinder.ParameterBinder.ForFieldBinding49c4acf91fc87123
    net.bytebuddy.implementation.bind.annotation.TargetMethodAnnotationDrivenBinder.Recordf5597b43768b5a7b
    net.bytebuddy.implementation.bind.annotation.This.Binderb3e837fb5b95fa04
    net.bytebuddy.implementation.bytecode.ByteCodeAppender.Compound0f6ce72d7ea48338
    net.bytebuddy.implementation.bytecode.ByteCodeAppender.Simple3d7cd79d87926f75
    net.bytebuddy.implementation.bytecode.ByteCodeAppender.Size897030ac0b46252c
    net.bytebuddy.implementation.bytecode.Duplication87726ed8bb6e39de
    net.bytebuddy.implementation.bytecode.Duplication.16cbf4aae44bb9c6a
    net.bytebuddy.implementation.bytecode.Duplication.2204abf23cbf37c68
    net.bytebuddy.implementation.bytecode.Duplication.30631976e078609bd
    net.bytebuddy.implementation.bytecode.Removal6d539a300caa5092
    net.bytebuddy.implementation.bytecode.Removal.1ab763f3b743f79a5
    net.bytebuddy.implementation.bytecode.Removal.2fd766afb93ac2a09
    net.bytebuddy.implementation.bytecode.StackManipulation.AbstractBase31ac4a0904ac3e09
    net.bytebuddy.implementation.bytecode.StackManipulation.Compound96939a22aac4c91b
    net.bytebuddy.implementation.bytecode.StackManipulation.Illegald75e2eb0d394f6c3
    net.bytebuddy.implementation.bytecode.StackManipulation.Sizee69b15cd3e8d4461
    net.bytebuddy.implementation.bytecode.StackManipulation.Trivial56f2787cdbce4d40
    net.bytebuddy.implementation.bytecode.StackSize80f94e8effa2f7bb
    net.bytebuddy.implementation.bytecode.TypeCreation4865d2e454028bc1
    net.bytebuddy.implementation.bytecode.assign.Assigner7e67d52e9390b000
    net.bytebuddy.implementation.bytecode.assign.Assigner.Typingb09adf7fa17d04b8
    net.bytebuddy.implementation.bytecode.assign.TypeCasting1a445bd188e2931d
    net.bytebuddy.implementation.bytecode.assign.primitive.PrimitiveBoxingDelegatedac9a66a711d1bdb
    net.bytebuddy.implementation.bytecode.assign.primitive.PrimitiveBoxingDelegate.BoxingStackManipulation96e0379915a5a251
    net.bytebuddy.implementation.bytecode.assign.primitive.PrimitiveTypeAwareAssignerc888a19b998b7769
    net.bytebuddy.implementation.bytecode.assign.primitive.PrimitiveUnboxingDelegate14e47d44e5cebb1d
    net.bytebuddy.implementation.bytecode.assign.primitive.PrimitiveUnboxingDelegate.ImplicitlyTypedUnboxingResponsibleadf7d49661fe0566
    net.bytebuddy.implementation.bytecode.assign.primitive.PrimitiveWideningDelegate1008755d8fe45330
    net.bytebuddy.implementation.bytecode.assign.primitive.PrimitiveWideningDelegate.WideningStackManipulation796408ff7247d988
    net.bytebuddy.implementation.bytecode.assign.primitive.VoidAwareAssigner3df36760b29d387a
    net.bytebuddy.implementation.bytecode.assign.reference.GenericTypeAwareAssigner3623cb487284bb53
    net.bytebuddy.implementation.bytecode.assign.reference.ReferenceTypeAwareAssigner59b5f6f8641c87f2
    net.bytebuddy.implementation.bytecode.collection.ArrayFactoryf2dcfb1430649b3e
    net.bytebuddy.implementation.bytecode.collection.ArrayFactory.ArrayCreator7ff584cc516e3f40
    net.bytebuddy.implementation.bytecode.collection.ArrayFactory.ArrayCreator.ForReferenceType2ffee25860dde2e1
    net.bytebuddy.implementation.bytecode.collection.ArrayFactory.ArrayStackManipulation2420354f9fdfb502
    net.bytebuddy.implementation.bytecode.constant.ClassConstant8c2c8e360f844ad5
    net.bytebuddy.implementation.bytecode.constant.ClassConstant.ForReferenceTypea779a54b4d7fcd6c
    net.bytebuddy.implementation.bytecode.constant.DefaultValue56544d5987e5a6d8
    net.bytebuddy.implementation.bytecode.constant.DoubleConstant829c95b7b67e95cf
    net.bytebuddy.implementation.bytecode.constant.FloatConstantbdee038754940fff
    net.bytebuddy.implementation.bytecode.constant.IntegerConstant58a28f871a6a0499
    net.bytebuddy.implementation.bytecode.constant.LongConstant113f925135fa3020
    net.bytebuddy.implementation.bytecode.constant.MethodConstant4af2674773bedc86
    net.bytebuddy.implementation.bytecode.constant.MethodConstant.CachedMethod927dce16203d5f6c
    net.bytebuddy.implementation.bytecode.constant.MethodConstant.ForMethod5c66dba4a8bfbcea
    net.bytebuddy.implementation.bytecode.constant.NullConstant9cf4bfc5c52a2517
    net.bytebuddy.implementation.bytecode.constant.TextConstant76b9599de59f2aeb
    net.bytebuddy.implementation.bytecode.member.FieldAccesse098860a4703e90a
    net.bytebuddy.implementation.bytecode.member.FieldAccess.AccessDispatcher20c90535a547e3cd
    net.bytebuddy.implementation.bytecode.member.FieldAccess.AccessDispatcher.AbstractFieldInstruction75724b7b6b2e4a66
    net.bytebuddy.implementation.bytecode.member.FieldAccess.AccessDispatcher.FieldGetInstructionadcac7724ac0272c
    net.bytebuddy.implementation.bytecode.member.FieldAccess.AccessDispatcher.FieldPutInstructionaeaedb775e139b65
    net.bytebuddy.implementation.bytecode.member.MethodInvocationccdb8e0f61d03f72
    net.bytebuddy.implementation.bytecode.member.MethodInvocation.Invocation7edd2eb29addcb20
    net.bytebuddy.implementation.bytecode.member.MethodReturn3cbfd6833fda70dd
    net.bytebuddy.implementation.bytecode.member.MethodVariableAccess7ec211e72c6c3719
    net.bytebuddy.implementation.bytecode.member.MethodVariableAccess.MethodLoading0b690307be533e18
    net.bytebuddy.implementation.bytecode.member.MethodVariableAccess.MethodLoading.TypeCastingHandler.NoOp3f3d0d86b569e241
    net.bytebuddy.implementation.bytecode.member.MethodVariableAccess.OffsetLoading4794627822a950ec
    net.bytebuddy.jar.asm.AnnotationWriter0932d72e909ca807
    net.bytebuddy.jar.asm.Attribute706e3dca943537f4
    net.bytebuddy.jar.asm.ByteVector202001c737179f70
    net.bytebuddy.jar.asm.ClassVisitor98826fd4e883df65
    net.bytebuddy.jar.asm.ClassWriterc9c9db052671c945
    net.bytebuddy.jar.asm.FieldVisitor21cf79e64cb95598
    net.bytebuddy.jar.asm.FieldWriter3c4ebfcb2bc7032e
    net.bytebuddy.jar.asm.Handler763c7a3b0dc4fc7e
    net.bytebuddy.jar.asm.MethodVisitor3a3fa5cb8e06f5c0
    net.bytebuddy.jar.asm.MethodWriter76fc9326535687d1
    net.bytebuddy.jar.asm.Symbolf44d88efeab63dac
    net.bytebuddy.jar.asm.SymbolTable00001f478e852135
    net.bytebuddy.jar.asm.SymbolTable.Entry904cbca1953e75e2
    net.bytebuddy.jar.asm.Type45a01df29df18510
    net.bytebuddy.jar.asm.TypeReference7c2c246da0bafedc
    net.bytebuddy.jar.asm.signature.SignatureVisitorb9cc80f05fd1a1b5
    net.bytebuddy.jar.asm.signature.SignatureWriter4b49360620cb7f6c
    net.bytebuddy.matcher.AnnotationTypeMatcher4c083a293a95675e
    net.bytebuddy.matcher.BooleanMatcherfc276a6c128e2875
    net.bytebuddy.matcher.CollectionErasureMatcher76b5d2cc623cc312
    net.bytebuddy.matcher.CollectionItemMatcher640386844f0e29b8
    net.bytebuddy.matcher.CollectionOneToOneMatcher670278e525ff9bfc
    net.bytebuddy.matcher.CollectionSizeMatcher8f59b8be9ab4a58b
    net.bytebuddy.matcher.DeclaringAnnotationMatcher72a4630003105f69
    net.bytebuddy.matcher.DeclaringTypeMatcher76e282c5482618bb
    net.bytebuddy.matcher.ElementMatcher.Junction.AbstractBased129e1a5bbea50cb
    net.bytebuddy.matcher.ElementMatcher.Junction.Conjunction6586c7d2abf8bf59
    net.bytebuddy.matcher.ElementMatcher.Junction.Disjunction78eb86ff19c5e913
    net.bytebuddy.matcher.ElementMatcher.Junction.ForNonNullValues40b97e222b442c20
    net.bytebuddy.matcher.ElementMatchers4ccc5ccec6e01297
    net.bytebuddy.matcher.EqualityMatcher7ddcccca3867f2c6
    net.bytebuddy.matcher.ErasureMatcher327b39df894c794a
    net.bytebuddy.matcher.FilterableList.AbstractBaseacc833b482b3e913
    net.bytebuddy.matcher.FilterableList.Empty994e694dc878695f
    net.bytebuddy.matcher.LatentMatcher.Disjunctioncf547e86976c153f
    net.bytebuddy.matcher.LatentMatcher.ForFieldToken08b4951ce99afdff
    net.bytebuddy.matcher.LatentMatcher.ForFieldToken.ResolvedMatcher7a313b55df92d5ce
    net.bytebuddy.matcher.LatentMatcher.ForMethodTokenacf53d7e0ad9c66c
    net.bytebuddy.matcher.LatentMatcher.ForMethodToken.ResolvedMatchera1b47b682cdd16e5
    net.bytebuddy.matcher.LatentMatcher.Resolved838bf93f64347719
    net.bytebuddy.matcher.MethodParameterTypeMatcherd565dce3bed4679b
    net.bytebuddy.matcher.MethodParameterTypesMatcher4f9a1c61c2ca1d30
    net.bytebuddy.matcher.MethodParametersMatcher754bf9d07553d1f9
    net.bytebuddy.matcher.MethodReturnTypeMatcher1b6fa22a35a706bc
    net.bytebuddy.matcher.MethodSortMatcherd9a4a7f8ba8d705a
    net.bytebuddy.matcher.MethodSortMatcher.Sortdf4da3ccf1c43fb2
    net.bytebuddy.matcher.MethodSortMatcher.Sort.19f8edcf420246fae
    net.bytebuddy.matcher.MethodSortMatcher.Sort.25b30e294f2304972
    net.bytebuddy.matcher.MethodSortMatcher.Sort.39c8b9e468a9ba4ee
    net.bytebuddy.matcher.MethodSortMatcher.Sort.44c3709005a13f932
    net.bytebuddy.matcher.MethodSortMatcher.Sort.593400b67a6230353
    net.bytebuddy.matcher.ModifierMatcherc0d2e66fbd31c083
    net.bytebuddy.matcher.ModifierMatcher.Mode09bd88f8f539be92
    net.bytebuddy.matcher.NameMatcherb901fc4b35799fa4
    net.bytebuddy.matcher.NegatingMatchera7d93978e9d78d7e
    net.bytebuddy.matcher.SignatureTokenMatcher60c758b99c3d9148
    net.bytebuddy.matcher.StringMatcher236df1d1d60ab580
    net.bytebuddy.matcher.StringMatcher.Mode78a8ab1a5e998326
    net.bytebuddy.matcher.StringMatcher.Mode.1197cd818fecbf0dc
    net.bytebuddy.matcher.StringMatcher.Mode.2130a12e752b093e0
    net.bytebuddy.matcher.StringMatcher.Mode.337e1825b2b41bae8
    net.bytebuddy.matcher.StringMatcher.Mode.434a59e75ad57ee16
    net.bytebuddy.matcher.StringMatcher.Mode.56b18de0e0195fcc7
    net.bytebuddy.matcher.StringMatcher.Mode.6bdaf5299d13e3bfe
    net.bytebuddy.matcher.StringMatcher.Mode.7f608050eb76b29c9
    net.bytebuddy.matcher.StringMatcher.Mode.87a1f43a330aa49e3
    net.bytebuddy.matcher.StringMatcher.Mode.9d97cfe0669542624
    net.bytebuddy.matcher.SuperTypeMatcher5f65e9ccb1649334
    net.bytebuddy.matcher.TypeSortMatcherbea3cd319f7a9ab6
    net.bytebuddy.matcher.VisibilityMatcher6f0d2c70b6ce50e1
    net.bytebuddy.pool.TypePool.AbstractBase03ef41c73bcdac6f
    net.bytebuddy.pool.TypePool.AbstractBase.Hierarchical1ef4bf1634aa9314
    net.bytebuddy.pool.TypePool.CacheProvider.Simpled45eb8340ca21b2b
    net.bytebuddy.pool.TypePool.ClassLoadingf60fbd5bc692f3c0
    net.bytebuddy.pool.TypePool.Empty8c0a9ed2a729f1ac
    net.bytebuddy.utility.CompoundListb8b501baeee21c20
    net.bytebuddy.utility.ConstructorComparatorc7333b6b982e8e09
    net.bytebuddy.utility.GraalImageCode99c2d8870a99ec8c
    net.bytebuddy.utility.Invoker.Dispatcherba1a34ac612fb532
    net.bytebuddy.utility.JavaModule5223602c7c397de6
    net.bytebuddy.utility.MethodComparator4e5549fe1a1bb16a
    net.bytebuddy.utility.RandomString475c5a28b2a65671
    net.bytebuddy.utility.dispatcher.JavaDispatcher787d0fb443c33196
    net.bytebuddy.utility.dispatcher.JavaDispatcher.Dispatcher.ForDefaultValue4ebad402feea5e1f
    net.bytebuddy.utility.dispatcher.JavaDispatcher.Dispatcher.ForDefaultValue.OfNonPrimitiveArray8e244cbf0b1c2c9a
    net.bytebuddy.utility.dispatcher.JavaDispatcher.Dispatcher.ForInstanceCheck348c5ed1a0ea72ea
    net.bytebuddy.utility.dispatcher.JavaDispatcher.Dispatcher.ForNonStaticMethodbf4d2158c4101736
    net.bytebuddy.utility.dispatcher.JavaDispatcher.Dispatcher.ForStaticMethod2cbd19f9947661fd
    net.bytebuddy.utility.dispatcher.JavaDispatcher.Dispatcher.ForUnresolvedMethodac45606a4649482c
    net.bytebuddy.utility.dispatcher.JavaDispatcher.DynamicClassLoaderfa40b0b626be1aa7
    net.bytebuddy.utility.dispatcher.JavaDispatcher.DynamicClassLoader.Resolver.CreationAction8ca4ae6007eb9fd7
    net.bytebuddy.utility.dispatcher.JavaDispatcher.DynamicClassLoader.Resolver.NoOpfe6a9eb917ca36a6
    net.bytebuddy.utility.dispatcher.JavaDispatcher.InvokerCreationAction8b81db7b9bb021a1
    net.bytebuddy.utility.dispatcher.JavaDispatcher.ProxiedInvocationHandlera4eb032d57e965fc
    net.bytebuddy.utility.privilege.GetMethodAction74124300a1be96ce
    net.bytebuddy.utility.privilege.GetSystemPropertyAction3dcb9c5481b99d57
    org.apache.commons.collections.map.AbstractHashedMap0ffd2ece819fe2bb
    org.apache.commons.collections.map.AbstractHashedMap.HashEntry06168f711b5d9f03
    org.apache.commons.collections.map.AbstractReferenceMap24c5cfa48d1b3dc0
    org.apache.commons.collections.map.AbstractReferenceMap.ReferenceEntry527d4048e51dfc8b
    org.apache.commons.collections.map.AbstractReferenceMap.SoftRef87effea5a7f83649
    org.apache.commons.collections.map.ReferenceMapde0ddfb544d7f809
    org.apache.commons.collections4.multimap.AbstractMultiValuedMap74e3472ae9ced4f9
    org.apache.commons.collections4.multimap.AbstractMultiValuedMap.ValuesIteratore541e0c1fad3e081
    org.apache.commons.collections4.multimap.AbstractMultiValuedMap.WrappedCollection8f2df7667d859a91
    org.apache.commons.collections4.multimap.AbstractSetValuedMap2d23267a2d9e2673
    org.apache.commons.collections4.multimap.AbstractSetValuedMap.WrappedSet55e5b430388b3f86
    org.apache.commons.collections4.multimap.HashSetValuedHashMap1dc89da27c29a73f
    org.apache.commons.compress.archivers.ArchiveInputStreamc115bef2761e394f
    org.apache.commons.compress.archivers.cpio.CpioArchiveEntry2e400c2326020825
    org.apache.commons.compress.archivers.cpio.CpioArchiveInputStream3146da92adf2f2a2
    org.apache.commons.compress.archivers.cpio.CpioUtil2a29a218d315e43f
    org.apache.commons.compress.archivers.tar.TarArchiveEntryb467d16501158136
    org.apache.commons.compress.archivers.tar.TarArchiveInputStreameb8579968090b108
    org.apache.commons.compress.archivers.tar.TarArchiveStructSparse2fe4fed009a20663
    org.apache.commons.compress.archivers.tar.TarUtilsb29e9558b2e1a6d3
    org.apache.commons.compress.archivers.tar.TarUtils.103e1b6a179e4ce57
    org.apache.commons.compress.archivers.zip.AbstractUnicodeExtraFieldcba2954d6d36fe3e
    org.apache.commons.compress.archivers.zip.AsiExtraFielded94b5f3c716bc82
    org.apache.commons.compress.archivers.zip.ExtraFieldUtils667ed5c686b943ef
    org.apache.commons.compress.archivers.zip.ExtraFieldUtils.UnparseableExtraFielde45344e1ce555986
    org.apache.commons.compress.archivers.zip.GeneralPurposeBit3043e50e6ced5d15
    org.apache.commons.compress.archivers.zip.JarMarkerde6615380a4c5219
    org.apache.commons.compress.archivers.zip.NioZipEncoding532af7963d2a21e8
    org.apache.commons.compress.archivers.zip.PKWareExtraHeader65351b789372b76c
    org.apache.commons.compress.archivers.zip.ResourceAlignmentExtraFieldd055d83d27a6ab30
    org.apache.commons.compress.archivers.zip.UnicodeCommentExtraField486f289b5479389f
    org.apache.commons.compress.archivers.zip.UnicodePathExtraField8054310609047dfb
    org.apache.commons.compress.archivers.zip.X000A_NTFSb32b6c415562689f
    org.apache.commons.compress.archivers.zip.X0014_X509Certificatesc20ea476bbfbe7ae
    org.apache.commons.compress.archivers.zip.X0015_CertificateIdForFile19960cf974782496
    org.apache.commons.compress.archivers.zip.X0016_CertificateIdForCentralDirectoryabadbbfd33f97f4a
    org.apache.commons.compress.archivers.zip.X0017_StrongEncryptionHeader8973de3b18f3a927
    org.apache.commons.compress.archivers.zip.X0019_EncryptionRecipientCertificateList02f17fb8a6fe0c8f
    org.apache.commons.compress.archivers.zip.X5455_ExtendedTimestamp72b5ec16aa891bc1
    org.apache.commons.compress.archivers.zip.X7875_NewUnix1b48ac29575b0161
    org.apache.commons.compress.archivers.zip.Zip64ExtendedInformationExtraFieldda22a7433c08f490
    org.apache.commons.compress.archivers.zip.ZipArchiveEntryf3d0d71dab635056
    org.apache.commons.compress.archivers.zip.ZipArchiveEntry.CommentSourcecaf89110a406d0d8
    org.apache.commons.compress.archivers.zip.ZipArchiveEntry.ExtraFieldParsingModebbc8cf51ebd510e0
    org.apache.commons.compress.archivers.zip.ZipArchiveEntry.ExtraFieldParsingMode.105771997127ba1f9
    org.apache.commons.compress.archivers.zip.ZipArchiveEntry.ExtraFieldParsingMode.203cee63ff1d0c93a
    org.apache.commons.compress.archivers.zip.ZipArchiveEntry.NameSourcea480c170444891c2
    org.apache.commons.compress.archivers.zip.ZipArchiveInputStream775850c7b31326d3
    org.apache.commons.compress.archivers.zip.ZipArchiveInputStream.CurrentEntrya7b1695af4265ca6
    org.apache.commons.compress.archivers.zip.ZipArchiveOutputStreamdabd8252cf28c372
    org.apache.commons.compress.archivers.zip.ZipEightByteInteger488c5dd67f3f8c9b
    org.apache.commons.compress.archivers.zip.ZipEncodingHelper39dd72feba574f55
    org.apache.commons.compress.archivers.zip.ZipLongb1d233daff0f37ce
    org.apache.commons.compress.archivers.zip.ZipMethod65a8448945d63fcb
    org.apache.commons.compress.archivers.zip.ZipShorte09d88966fbb3172
    org.apache.commons.compress.archivers.zip.ZipUtil14616bc9d28d38a3
    org.apache.commons.compress.compressors.CompressorInputStreama062fcbd75482f3a
    org.apache.commons.compress.compressors.FileNameUtild387002df2853150
    org.apache.commons.compress.compressors.bzip2.BZip2CompressorInputStream4c9a442712979a6e
    org.apache.commons.compress.compressors.bzip2.BZip2CompressorInputStream.Data162c064e8b29a5cf
    org.apache.commons.compress.compressors.bzip2.BZip2Utils5b347e283cbd5476
    org.apache.commons.compress.compressors.bzip2.CRCd1bb96e431da72f6
    org.apache.commons.compress.compressors.gzip.GzipCompressorInputStreamdcf21888c4a9e67a
    org.apache.commons.compress.compressors.gzip.GzipParameters5ac3652865cc3de1
    org.apache.commons.compress.compressors.gzip.GzipUtils6bba3cd93eb48c8f
    org.apache.commons.compress.compressors.xz.XZCompressorInputStream2204d85f22615837
    org.apache.commons.compress.utils.ArchiveUtils9bb09b154497d197
    org.apache.commons.compress.utils.BitInputStream0ac925b599ee5a7d
    org.apache.commons.compress.utils.ByteUtils4855e8772120e2eb
    org.apache.commons.compress.utils.Charsets3619492983aaf2b8
    org.apache.commons.compress.utils.CountingInputStream56020bde5ae237ed
    org.apache.commons.compress.utils.ExactMathad7e162aea889311
    org.apache.commons.compress.utils.IOUtils1bbef919f9fe90cf
    org.apache.commons.compress.utils.TimeUtilseebacb2d0aacfebc
    org.apache.commons.dbcp2.AbandonedTraceca6d746e5eecfa26
    org.apache.commons.dbcp2.BasicDataSource8f01e6e1f3426242
    org.apache.commons.dbcp2.ConnectionFactoryFactory5ee86737323f033e
    org.apache.commons.dbcp2.DataSourceMXBeanaef3515de3dd4cd7
    org.apache.commons.dbcp2.DelegatingConnection4ce1222f6c8b1f43
    org.apache.commons.dbcp2.DelegatingPreparedStatement2577746074f2a300
    org.apache.commons.dbcp2.DelegatingResultSet3e7d628a34a233d5
    org.apache.commons.dbcp2.DelegatingStatement3eececad9c1f49a4
    org.apache.commons.dbcp2.DriverConnectionFactory587516231985bd76
    org.apache.commons.dbcp2.DriverFactory2e2b684de502c2b5
    org.apache.commons.dbcp2.ObjectNameWrapper60e6f7ddb2d7e6c9
    org.apache.commons.dbcp2.PoolableConnectionbaf5bf7087e41b95
    org.apache.commons.dbcp2.PoolableConnectionFactoryb8db125bd27adcfb
    org.apache.commons.dbcp2.PoolingDataSource4006b0952a9497bf
    org.apache.commons.dbcp2.PoolingDataSource.PoolGuardConnectionWrapper231a4e4e28d22d6c
    org.apache.commons.dbcp2.SwallowedExceptionLogger169d551a035fbaac
    org.apache.commons.dbcp2.Utilsee3a6af61d9672d1
    org.apache.commons.io.ByteOrderMark72bc2458d6ae539e
    org.apache.commons.io.Charsets8ae1973f359dec29
    org.apache.commons.io.FileSystem01b6ca84e51e84c9
    org.apache.commons.io.FileUtilsb05a09ee270979e9
    org.apache.commons.io.FilenameUtils3144089e135875ac
    org.apache.commons.io.IOCaseeb2adab60f66048e
    org.apache.commons.io.IOUtils6ee4556e7885ab91
    org.apache.commons.io.StandardLineSeparator40b593b9edc3531e
    org.apache.commons.io.build.AbstractOriginSupplierb96822d8a43fddbd
    org.apache.commons.io.build.AbstractStreamBuilder57c8b0ea90b8d3a8
    org.apache.commons.io.build.AbstractSupplier21e479bcc7c6d9d4
    org.apache.commons.io.file.Counters3347b40442150325
    org.apache.commons.io.file.Counters.AbstractPathCountersf029129367b66185
    org.apache.commons.io.file.Counters.LongCounter8a0e15c3b7aab6f0
    org.apache.commons.io.file.Counters.LongPathCounters4d05a3ec2389a891
    org.apache.commons.io.file.CountingPathVisitor1a0297f6692d68b7
    org.apache.commons.io.file.DeletingPathVisitor380d01f344f0b03a
    org.apache.commons.io.file.PathUtilsc186f18e4d52fa5b
    org.apache.commons.io.file.SimplePathVisitor42930704cb1f97c1
    org.apache.commons.io.file.StandardDeleteOption670e1c1e2863e0b5
    org.apache.commons.io.filefilter.AbstractFileFilter92dd8bb7f7b80944
    org.apache.commons.io.filefilter.IOFileFilter4896a5eee1f88d05
    org.apache.commons.io.filefilter.NameFileFilterc5f07e722b3a2343
    org.apache.commons.io.filefilter.OrFileFilter6742278773fc9137
    org.apache.commons.io.filefilter.SuffixFileFilterd8b318786a82151d
    org.apache.commons.io.filefilter.SymbolicLinkFileFilterd7784b41fab5d1af
    org.apache.commons.io.filefilter.TrueFileFilterfabf6490458c9b57
    org.apache.commons.io.function.IOConsumer7aab5cab2aee4ea3
    org.apache.commons.io.input.BOMInputStream6b5d217ef3da5d6c
    org.apache.commons.io.input.BOMInputStream.Builderefe9786c70781fac
    org.apache.commons.io.input.ProxyInputStream76d45bc21d35b3af
    org.apache.commons.io.output.AbstractByteArrayOutputStream4d87285f56eadbde
    org.apache.commons.io.output.StringBuilderWriter56db39b128a95142
    org.apache.commons.io.output.ThresholdingOutputStream6ee432e618670fc2
    org.apache.commons.io.output.UnsynchronizedByteArrayOutputStream9536e30200253d9c
    org.apache.commons.io.output.UnsynchronizedByteArrayOutputStream.Builder13c61069da7ce3e3
    org.apache.commons.jcs3.JCS8f519401d676cf6b
    org.apache.commons.jcs3.access.AbstractCacheAccesse81ba2880f7423d5
    org.apache.commons.jcs3.access.CacheAccess60fee977c9a4f6ef
    org.apache.commons.jcs3.admin.JCSAdminBean335bac09272c6ddd
    org.apache.commons.jcs3.auxiliary.AbstractAuxiliaryCachec3b435f52c91e41d
    org.apache.commons.jcs3.auxiliary.AbstractAuxiliaryCacheAttributesc42716886bb512ba
    org.apache.commons.jcs3.auxiliary.AbstractAuxiliaryCacheEventLogginga78f5b7138667460
    org.apache.commons.jcs3.auxiliary.AbstractAuxiliaryCacheFactory79d59581986a1bdd
    org.apache.commons.jcs3.auxiliary.AuxiliaryCacheConfigurator4f03af1ec3db3c06
    org.apache.commons.jcs3.auxiliary.AuxiliaryCacheFactory0321a405678228d2
    org.apache.commons.jcs3.auxiliary.disk.AbstractDiskCache67671715de055295
    org.apache.commons.jcs3.auxiliary.disk.AbstractDiskCache.MyCacheListenerc9cbc2ab7af25ca4
    org.apache.commons.jcs3.auxiliary.disk.AbstractDiskCacheAttributesedebc5b24fc7e7ec
    org.apache.commons.jcs3.auxiliary.disk.PurgatoryElement50e2ad1c5b33a115
    org.apache.commons.jcs3.auxiliary.disk.behavior.IDiskCacheAttributes.DiskLimitType9c89d487ae2639b0
    org.apache.commons.jcs3.auxiliary.disk.indexed.IndexedDisk3159cf09ae265a44
    org.apache.commons.jcs3.auxiliary.disk.indexed.IndexedDiskCachedb85afec6bd28591
    org.apache.commons.jcs3.auxiliary.disk.indexed.IndexedDiskCache.LRUMapCountLimited3e0dcede1f60ced6
    org.apache.commons.jcs3.auxiliary.disk.indexed.IndexedDiskCache.PositionComparator6a375a20224a6491
    org.apache.commons.jcs3.auxiliary.disk.indexed.IndexedDiskCacheAttributes3e721f210f5f73d7
    org.apache.commons.jcs3.auxiliary.disk.indexed.IndexedDiskCacheFactoryf3d2fd9bfe5fcbcc
    org.apache.commons.jcs3.auxiliary.disk.indexed.IndexedDiskElementDescriptorc64cf22ddcdde674
    org.apache.commons.jcs3.engine.AbstractCacheEventQueue1dd87bdda01b32c9
    org.apache.commons.jcs3.engine.AbstractCacheEventQueue.AbstractCacheEventd5fc252ba26d0d9a
    org.apache.commons.jcs3.engine.AbstractCacheEventQueue.PutEvent63bc60c6adf68697
    org.apache.commons.jcs3.engine.CacheElementce9f4204eb5624b3
    org.apache.commons.jcs3.engine.CacheEventQueueFactoryd47896e66d68cd29
    org.apache.commons.jcs3.engine.CacheInfodc3fc0a57a91cc16
    org.apache.commons.jcs3.engine.CacheStatus9e643f244bdbedd6
    org.apache.commons.jcs3.engine.CompositeCacheAttributesdc56debe6e362ccc
    org.apache.commons.jcs3.engine.ElementAttributesc298365f45057415
    org.apache.commons.jcs3.engine.PooledCacheEventQueue1f5b5ca7363a76c5
    org.apache.commons.jcs3.engine.behavior.ICacheEventQueue.QueueTyped36e1adea94244a8
    org.apache.commons.jcs3.engine.behavior.ICacheType.CacheTypee15e922fbbc521a9
    org.apache.commons.jcs3.engine.behavior.ICompositeCacheAttributes.DiskUsagePattern065fe6118e459fb8
    org.apache.commons.jcs3.engine.behavior.IElementSerializer4e17fbd8ff5fa2eb
    org.apache.commons.jcs3.engine.behavior.IElementSerializer.153d5ac924a980857
    org.apache.commons.jcs3.engine.control.CompositeCache2f4c41ef1df85706
    org.apache.commons.jcs3.engine.control.CompositeCache.1bcfb6eb171ef07c2
    org.apache.commons.jcs3.engine.control.CompositeCacheConfiguratorda10a9e1882f0a7e
    org.apache.commons.jcs3.engine.control.CompositeCacheManager7a43e45c9078f783
    org.apache.commons.jcs3.engine.control.event.ElementEventQueuecb2c41edee90aabe
    org.apache.commons.jcs3.engine.control.event.behavior.ElementEventTypec503e0f2d9636028
    org.apache.commons.jcs3.engine.logging.CacheEvente10345bb4afea3ce
    org.apache.commons.jcs3.engine.match.KeyMatcherPatternImpl06d95d21fd7250d0
    org.apache.commons.jcs3.engine.memory.AbstractDoubleLinkedListMemoryCachee3eb93db1ef1802e
    org.apache.commons.jcs3.engine.memory.AbstractMemoryCachebf41e6296592d86a
    org.apache.commons.jcs3.engine.memory.lru.LRUMemoryCachea13109c445649a8d
    org.apache.commons.jcs3.engine.memory.util.MemoryElementDescriptor627c224c61171c8b
    org.apache.commons.jcs3.io.ObjectInputStreamClassLoaderAwarea4e2b94537e2694a
    org.apache.commons.jcs3.io.ObjectInputStreamClassLoaderAware.BlacklistClassResolvereee678bf9eb6a5a8
    org.apache.commons.jcs3.log.JulLogFactorya8b084a513d8f2ac
    org.apache.commons.jcs3.log.LogManager0cd6d34c5624f85e
    org.apache.commons.jcs3.log.LogManager.LogFactoryHolder99d60610207d179b
    org.apache.commons.jcs3.utils.config.OptionConverterb6be9d611cb399e3
    org.apache.commons.jcs3.utils.config.PropertySetter9ce8929e58315d98
    org.apache.commons.jcs3.utils.serialization.StandardSerializerc3182262f045cc00
    org.apache.commons.jcs3.utils.struct.AbstractLRUMap8710b38b6376d281
    org.apache.commons.jcs3.utils.struct.DoubleLinkedList96b73a167e3dd555
    org.apache.commons.jcs3.utils.struct.DoubleLinkedListNode6eb04c0be1b15100
    org.apache.commons.jcs3.utils.struct.LRUElementDescriptor822178194cda5407
    org.apache.commons.jcs3.utils.struct.LRUMap134ebdccaf71b63a
    org.apache.commons.jcs3.utils.threadpool.DaemonThreadFactory90fe18bad604a2e0
    org.apache.commons.jcs3.utils.threadpool.PoolConfiguratione30c6c5b19e2121a
    org.apache.commons.jcs3.utils.threadpool.PoolConfiguration.WhenBlockedPolicyebdbc72499040e4a
    org.apache.commons.jcs3.utils.threadpool.ThreadPoolManagerce4c901d54ed755c
    org.apache.commons.jcs3.utils.threadpool.ThreadPoolManager.101b790dc167d2bc8
    org.apache.commons.jcs3.utils.threadpool.ThreadPoolManager.ThreadPoolManagerHolder6d5c097ee63ac3ce
    org.apache.commons.jcs3.utils.timing.ElapsedTimeredfda6ab2faf0ae5
    org.apache.commons.lang3.ArrayUtils55cd090cc4afae67
    org.apache.commons.lang3.CharSequenceUtils34f2613940096184
    org.apache.commons.lang3.JavaVersion8179bcf6dcfb4712
    org.apache.commons.lang3.LocaleUtilsf5235055ef756a48
    org.apache.commons.lang3.ObjectUtils1c157e9ecfc781f4
    org.apache.commons.lang3.ObjectUtils.Nullbc56db2ba4a397f4
    org.apache.commons.lang3.Range7a388bd8ca7c6565
    org.apache.commons.lang3.Range.ComparableComparator31209bc50fe79100
    org.apache.commons.lang3.StringUtilsb53e9ceb7cab46c1
    org.apache.commons.lang3.SystemProperties1e5e41ac6dcfcac3
    org.apache.commons.lang3.SystemUtils73450f121593e2da
    org.apache.commons.lang3.Validate1641aabfdb381324
    org.apache.commons.lang3.builder.CompareToBuilder0535d4fc6cf3c03f
    org.apache.commons.lang3.builder.EqualsBuilderaa8ad870ff53852c
    org.apache.commons.lang3.builder.HashCodeBuilder2143ccbdbc7e1ea5
    org.apache.commons.lang3.function.Suppliersbbeaffba7b14417d
    org.apache.commons.lang3.math.NumberUtilse9e145d766a6dd75
    org.apache.commons.lang3.mutable.MutableInt69453bf70a893014
    org.apache.commons.lang3.reflect.TypeUtilsdf817998efe361cb
    org.apache.commons.lang3.reflect.TypeUtils.WildcardTypeBuilder5936e9c8d409a438
    org.apache.commons.lang3.reflect.TypeUtils.WildcardTypeImpl5c07c9d0130a96a3
    org.apache.commons.lang3.stream.LangCollectors3ea5549a7ed3c3d7
    org.apache.commons.lang3.stream.LangCollectors.SimpleCollector91fc89bcf302c34b
    org.apache.commons.lang3.stream.Streams954246a3678faf93
    org.apache.commons.lang3.time.DateFormatUtils73ecf93d869b884e
    org.apache.commons.lang3.time.FastDateFormat71485ed44a8946ff
    org.apache.commons.lang3.time.FastDateFormat.1a23732be9811ff8d
    org.apache.commons.lang3.time.FastDateParser6f00d674cd9c2cd7
    org.apache.commons.lang3.time.FastDateParser.18470bf4a6ade3a2c
    org.apache.commons.lang3.time.FastDateParser.264496bd42904c5b5
    org.apache.commons.lang3.time.FastDateParser.324ed8b705930b7de
    org.apache.commons.lang3.time.FastDateParser.447f4a79b21494e5b
    org.apache.commons.lang3.time.FastDateParser.5afafb76217600d65
    org.apache.commons.lang3.time.FastDateParser.CaseInsensitiveTextStrategy546fb2ff9af08cbc
    org.apache.commons.lang3.time.FastDateParser.CopyQuotedStrategy46f1e4716b2bc7d7
    org.apache.commons.lang3.time.FastDateParser.ISO8601TimeZoneStrategy87ad40c3ab68646d
    org.apache.commons.lang3.time.FastDateParser.NumberStrategy99ec5db56a11534b
    org.apache.commons.lang3.time.FastDateParser.PatternStrategyfbafb84dcaa32114
    org.apache.commons.lang3.time.FastDateParser.Strategybc65b5458c1c2360
    org.apache.commons.lang3.time.FastDateParser.StrategyAndWidth76b3891c1cf1eec3
    org.apache.commons.lang3.time.FastDateParser.StrategyParserfde7d41810132d14
    org.apache.commons.lang3.time.FastDateParser.TimeZoneStrategy21977fd3a714776f
    org.apache.commons.lang3.time.FastDateParser.TimeZoneStrategy.TzInfo21cbe6369ba4a7a1
    org.apache.commons.lang3.time.FastDatePrinter31b6e12e2525649e
    org.apache.commons.lang3.time.FastDatePrinter.CharacterLiteral54e10b340dc5d7af
    org.apache.commons.lang3.time.FastDatePrinter.Iso8601_Rule99fb37b87350c025
    org.apache.commons.lang3.time.FastDatePrinter.PaddedNumberFieldba779363617e2f22
    org.apache.commons.lang3.time.FastDatePrinter.StringLiteralcb2254da41d8e280
    org.apache.commons.lang3.time.FastDatePrinter.TextField6a28ec6758972617
    org.apache.commons.lang3.time.FastDatePrinter.TimeZoneNumberRuleae20827d84c6bf34
    org.apache.commons.lang3.time.FastDatePrinter.TwoDigitMonthField51a478c858b62580
    org.apache.commons.lang3.time.FastDatePrinter.TwoDigitNumberField10acfac0db57c7ab
    org.apache.commons.lang3.time.FastTimeZone36b1802d502a2ca3
    org.apache.commons.lang3.time.FormatCacheb9ec8b6073a5ea5a
    org.apache.commons.lang3.time.FormatCache.ArrayKeyfbf37aa076d95bb3
    org.apache.commons.lang3.time.GmtTimeZone840c84d76f301aa2
    org.apache.commons.lang3.time.TimeZones55ec357ece7b3828
    org.apache.commons.lang3.tuple.ImmutablePairea1fdd387104f342
    org.apache.commons.lang3.tuple.Pair24fcf8d25a997dff
    org.apache.commons.logging.LogFactory5c9b6286a0ecaeeb
    org.apache.commons.logging.LogFactory.135cd3441e691f91d
    org.apache.commons.logging.LogFactory.2f1244e6e80ab4e4c
    org.apache.commons.logging.LogFactory.308e35df1f60483aa
    org.apache.commons.logging.LogFactory.4fb4611c54b1bc610
    org.apache.commons.logging.LogFactory.6367c055e3172a33e
    org.apache.commons.logging.impl.SLF4JLocationAwareLogb4a93815004fec58
    org.apache.commons.logging.impl.SLF4JLogFactoryd78e8c8092c84bef
    org.apache.commons.logging.impl.WeakHashtablebda06549392c232d
    org.apache.commons.logging.impl.WeakHashtable.Referenced7e6bd0a967376754
    org.apache.commons.logging.impl.WeakHashtable.WeakKey3c62431e0d7eba54
    org.apache.commons.pool2.BaseObjecta9dd39289abe1d31
    org.apache.commons.pool2.DestroyMode5d1105fc83d83c0d
    org.apache.commons.pool2.ObjectPoolccb6589e8f774501
    org.apache.commons.pool2.PooledObject726d4666486bb8f9
    org.apache.commons.pool2.PooledObjectStatefb0e5d346be6cd55
    org.apache.commons.pool2.impl.BaseGenericObjectPool070a5acff5535437
    org.apache.commons.pool2.impl.BaseGenericObjectPool.IdentityWrapper434e773f29c6ef0b
    org.apache.commons.pool2.impl.BaseGenericObjectPool.StatsStore514c54abe01e16c7
    org.apache.commons.pool2.impl.BaseObjectPoolConfig9bee83eab719802c
    org.apache.commons.pool2.impl.DefaultEvictionPolicy56c4bc556e98d1be
    org.apache.commons.pool2.impl.DefaultPooledObjectddc5b9974a86b680
    org.apache.commons.pool2.impl.GenericObjectPoolfe1a47c0c894e580
    org.apache.commons.pool2.impl.GenericObjectPoolConfig2215008ece83d1da
    org.apache.commons.pool2.impl.InterruptibleReentrantLockef01e1d3943b5184
    org.apache.commons.pool2.impl.LinkedBlockingDequebb1a4d70c6b14c3f
    org.apache.commons.pool2.impl.LinkedBlockingDeque.Node78ac878c7ddd5998
    org.apache.commons.pool2.impl.NoOpCallStacke7f11c61124edc8b
    org.apache.commons.pool2.impl.PoolImplUtils65b544d8439b4d9e
    org.apache.commons.text.StringEscapeUtils5bc5b74e30d7e8bf
    org.apache.commons.text.StringEscapeUtils.XsiUnescaper5a061ee95766f1d3
    org.apache.commons.text.StringSubstitutor3074045dbff7aefd
    org.apache.commons.text.StringSubstitutor.Resultd1377d718b9a4b29
    org.apache.commons.text.TextStringBuilder53129701a3631326
    org.apache.commons.text.WordUtilsf85094830885a3dc
    org.apache.commons.text.matcher.AbstractStringMatcher5f2d66c0bac903d1
    org.apache.commons.text.matcher.AbstractStringMatcher.CharArrayMatcherbc3ea03e56f01c0e
    org.apache.commons.text.matcher.AbstractStringMatcher.CharMatcherb83862079330a0a0
    org.apache.commons.text.matcher.AbstractStringMatcher.CharSetMatcherdef2ef72cf33ffd3
    org.apache.commons.text.matcher.AbstractStringMatcher.NoneMatcher63ccdfd44061b0b4
    org.apache.commons.text.matcher.AbstractStringMatcher.TrimMatcher6399c16c90b1dc79
    org.apache.commons.text.matcher.StringMatcherFactory3355efa06769e538
    org.apache.commons.text.translate.AggregateTranslator9e2a5e3e1c4ed249
    org.apache.commons.text.translate.CharSequenceTranslator84c8f5343c402da6
    org.apache.commons.text.translate.CodePointTranslatorea9fcdc7e5c87a70
    org.apache.commons.text.translate.CsvTranslators77360b05d66a2c8b
    org.apache.commons.text.translate.CsvTranslators.CsvEscaperbe76c35fab7f3dc3
    org.apache.commons.text.translate.CsvTranslators.CsvUnescaper09ac0d4ea60a4c5a
    org.apache.commons.text.translate.EntityArrayseff4bd7528ae958b
    org.apache.commons.text.translate.JavaUnicodeEscaperba174f1a55a33368
    org.apache.commons.text.translate.LookupTranslatorb47bcb49ef353b91
    org.apache.commons.text.translate.NumericEntityEscaperfed36f3c6d451e6b
    org.apache.commons.text.translate.NumericEntityUnescapercca6054255a84ade
    org.apache.commons.text.translate.NumericEntityUnescaper.OPTIONcd3ec6bfbd85a55d
    org.apache.commons.text.translate.OctalUnescaperc72a48b363be373d
    org.apache.commons.text.translate.SinglePassTranslator49d6016a555b6c1a
    org.apache.commons.text.translate.UnicodeEscaper9dad545c5206284f
    org.apache.commons.text.translate.UnicodeUnescapere15b1cf1266b58bf
    org.apache.commons.text.translate.UnicodeUnpairedSurrogateRemover678cce4230e90a18
    org.apache.commons.validator.routines.DomainValidatorb2da0af333fe19ff
    org.apache.commons.validator.routines.DomainValidator.LazyHolder8c756f1f7c74bd6f
    org.apache.commons.validator.routines.RegexValidator7ade8d16f86ddde3
    org.apache.commons.validator.routines.UrlValidator2c5aad0b1affb732
    org.apache.lucene.analysis.Analyzerb3fbc3d4c894fea4
    org.apache.lucene.analysis.Analyzer.12588c4a52a03d489
    org.apache.lucene.analysis.Analyzer.2b11ec0b046fb0739
    org.apache.lucene.analysis.Analyzer.ReuseStrategy373c30afd7c4e7e0
    org.apache.lucene.analysis.Analyzer.StringTokenStreamc9699998ffb50853
    org.apache.lucene.analysis.Analyzer.TokenStreamComponents07ec7e6a7685910d
    org.apache.lucene.analysis.AnalyzerWrapperfea68ba019e933f5
    org.apache.lucene.analysis.BaseTokenStreamTestCaseace694db6bea2383
    org.apache.lucene.analysis.BaseTokenStreamTestCase.AnalysisThread7be8ec27f38b789d
    org.apache.lucene.analysis.BaseTokenStreamTestCase.CheckClearAttributesAttributeImpl72e4cbc59ecc279e
    org.apache.lucene.analysis.CachingTokenFilter7948742bc70cfc8a
    org.apache.lucene.analysis.CharArrayMap5b74a1ab488fac15
    org.apache.lucene.analysis.CharArrayMap.EmptyCharArrayMap6ce1b3c28f6c4a11
    org.apache.lucene.analysis.CharArrayMap.EntryIteratora87ee307a838f240
    org.apache.lucene.analysis.CharArrayMap.EntrySet2025bc28ce5f11cc
    org.apache.lucene.analysis.CharArrayMap.MapEntry73ae6df3a549c4af
    org.apache.lucene.analysis.CharArrayMap.UnmodifiableCharArrayMap8bab8a3a7f9cd4a6
    org.apache.lucene.analysis.CharArraySet111b4a78749d9f46
    org.apache.lucene.analysis.CharFilter5f7a5aa2dec26987
    org.apache.lucene.analysis.CharacterUtilsb8ca5cbf25fdfeed
    org.apache.lucene.analysis.CharacterUtils.CharacterBuffer18d395cdbdb60911
    org.apache.lucene.analysis.DelegatingAnalyzerWrapper9c301ae9d9f5cd8a
    org.apache.lucene.analysis.DelegatingAnalyzerWrapper.DelegatingReuseStrategy76fa58dd625c2849
    org.apache.lucene.analysis.FilteringTokenFilterf403409105fbb533
    org.apache.lucene.analysis.LowerCaseFilterbcfd3a6a56a4fadf
    org.apache.lucene.analysis.MockCharFilter8898750f908492b1
    org.apache.lucene.analysis.MockReaderWrappera1c3a41e7858cc79
    org.apache.lucene.analysis.MockTokenizer61c1b54edbae7422
    org.apache.lucene.analysis.MockTokenizer.Statece6d7875e604b6ed
    org.apache.lucene.analysis.ReusableStringReaderc9f6ec8eb7023f1c
    org.apache.lucene.analysis.StopFilter4230021c4e77a6d7
    org.apache.lucene.analysis.StopwordAnalyzerBase1a57272d581aa22f
    org.apache.lucene.analysis.TokenFilter9e43d230548551cf
    org.apache.lucene.analysis.TokenStream184dbe299c64e6c6
    org.apache.lucene.analysis.Tokenizer7379ed627ab2912a
    org.apache.lucene.analysis.Tokenizer.1bc547a7b9c0cc19f
    org.apache.lucene.analysis.core.KeywordAnalyzer698cf9e1f8021717
    org.apache.lucene.analysis.core.KeywordTokenizer4dbacb3e403ad85a
    org.apache.lucene.analysis.core.LowerCaseFilterba2c1b7980c14a72
    org.apache.lucene.analysis.core.StopFilter8641c6193f901c17
    org.apache.lucene.analysis.core.WhitespaceTokenizer115580a151439e88
    org.apache.lucene.analysis.en.EnglishAnalyzercc688ebf7db7d878
    org.apache.lucene.analysis.miscellaneous.PerFieldAnalyzerWrapperdad7892fd718e4df
    org.apache.lucene.analysis.miscellaneous.WordDelimiterGraphFilterbc9fe7a967fdcfa0
    org.apache.lucene.analysis.miscellaneous.WordDelimiterGraphFilter.PositionSorter2cd32a2ee34c7dce
    org.apache.lucene.analysis.miscellaneous.WordDelimiterGraphFilter.WordDelimiterConcatenation460ee77062ef67d3
    org.apache.lucene.analysis.miscellaneous.WordDelimiterIterator28629af5aededfc5
    org.apache.lucene.analysis.standard.StandardAnalyzer6e8c8f0d82e95083
    org.apache.lucene.analysis.tokenattributes.CharTermAttributeImpl6f123fa71f95b8a2
    org.apache.lucene.analysis.tokenattributes.KeywordAttributeImpl1407e968afc08f38
    org.apache.lucene.analysis.tokenattributes.OffsetAttributeImpl3cfe5975aa49a4c8
    org.apache.lucene.analysis.tokenattributes.PackedTokenAttributeImplc920cac0bdae9098
    org.apache.lucene.analysis.tokenattributes.PositionIncrementAttributeImpl7bed07b8187adaf6
    org.apache.lucene.analysis.util.CharTokenizer6ca65685e9be18b0
    org.apache.lucene.codecs.BlockTermStateae9ca3d409bef070
    org.apache.lucene.codecs.Codec7d385f022790e396
    org.apache.lucene.codecs.Codec.Holder954feab31b29306c
    org.apache.lucene.codecs.CodecUtil157ab3df291cad53
    org.apache.lucene.codecs.CompetitiveImpactAccumulator3313639ea91339f0
    org.apache.lucene.codecs.CompetitiveImpactAccumulator.1cbf4c621aff70903
    org.apache.lucene.codecs.CompoundDirectory105adc33fae31203
    org.apache.lucene.codecs.CompoundFormatb6f7adfa57db14e8
    org.apache.lucene.codecs.DocValuesFormat59fc29b0272a381d
    org.apache.lucene.codecs.FieldInfosFormatbbc25871d2052537
    org.apache.lucene.codecs.FieldsConsumer8ac90826db599118
    org.apache.lucene.codecs.FieldsProducer5414d54969b0a428
    org.apache.lucene.codecs.FilterCodeca9fdfb4c360c86b6
    org.apache.lucene.codecs.LiveDocsFormat37ab5fda48936c8e
    org.apache.lucene.codecs.MultiLevelSkipListReader154c0dde48784630
    org.apache.lucene.codecs.MultiLevelSkipListWriter271c1c2a90febec5
    org.apache.lucene.codecs.NormsConsumer618d2d433b8c409a
    org.apache.lucene.codecs.NormsFormat666a4c99b55172f0
    org.apache.lucene.codecs.NormsProducer9ca3613d0a1f0cf7
    org.apache.lucene.codecs.PointsFormat893fa9d6f57ed303
    org.apache.lucene.codecs.PointsFormat.1b7e29ffebcefbee5
    org.apache.lucene.codecs.PostingsFormat5c5d51d1200cda53
    org.apache.lucene.codecs.PostingsFormat.Holdercd21b5e5af08083b
    org.apache.lucene.codecs.PostingsReaderBase69fbc8d7a772c1ba
    org.apache.lucene.codecs.PostingsWriterBase70833c5afb411658
    org.apache.lucene.codecs.PushPostingsWriterBase09459ba2fcc66071
    org.apache.lucene.codecs.SegmentInfoFormat186f50b8ba40fe34
    org.apache.lucene.codecs.StoredFieldsFormatf0635529da3f816b
    org.apache.lucene.codecs.StoredFieldsReader44377ce9cabec7b7
    org.apache.lucene.codecs.StoredFieldsWriter18287965dde32b41
    org.apache.lucene.codecs.TermVectorsFormatabae86cbdd868241
    org.apache.lucene.codecs.asserting.AssertingCodec181ff1f5f0c04bb3
    org.apache.lucene.codecs.asserting.AssertingCodec.158c1336bd2481840
    org.apache.lucene.codecs.asserting.AssertingCodec.2efd47e8bc6c5a37e
    org.apache.lucene.codecs.asserting.AssertingDocValuesFormat166b210b883232d9
    org.apache.lucene.codecs.asserting.AssertingLiveDocsFormat3d7b3d8ee59fadd9
    org.apache.lucene.codecs.asserting.AssertingNormsFormat77b17e1410835cea
    org.apache.lucene.codecs.asserting.AssertingPointsFormat79c71415bbc0e918
    org.apache.lucene.codecs.asserting.AssertingPostingsFormatdab4c601fbb38db2
    org.apache.lucene.codecs.asserting.AssertingStoredFieldsFormat977fa1ba133bcbd2
    org.apache.lucene.codecs.asserting.AssertingTermVectorsFormate45fb7fe712c01cd
    org.apache.lucene.codecs.blockterms.LuceneFixedGapad7ee00eda7c1911
    org.apache.lucene.codecs.blockterms.LuceneVarGapDocFreqInterval6aa0d27664bdfe71
    org.apache.lucene.codecs.blockterms.LuceneVarGapFixedInterval44c7e5e1eea47620
    org.apache.lucene.codecs.blocktree.BlockTreeTermsReader4a5eb3e67f7fa9f7
    org.apache.lucene.codecs.blocktree.BlockTreeTermsWriterb036adb9f5245c23
    org.apache.lucene.codecs.blocktree.BlockTreeTermsWriter.PendingBlockc6f4f170bf8bd277
    org.apache.lucene.codecs.blocktree.BlockTreeTermsWriter.PendingEntryf940bc41257f9ec1
    org.apache.lucene.codecs.blocktree.BlockTreeTermsWriter.PendingTerm6e393f062014fa45
    org.apache.lucene.codecs.blocktree.BlockTreeTermsWriter.StatsWriteradd454e2523a11b5
    org.apache.lucene.codecs.blocktree.BlockTreeTermsWriter.TermsWriter0fc215d15cf4d2ff
    org.apache.lucene.codecs.blocktree.CompressionAlgorithmcd5f2e1bcb83ac78
    org.apache.lucene.codecs.blocktree.CompressionAlgorithm.1b89067b1068100c6
    org.apache.lucene.codecs.blocktree.CompressionAlgorithm.25d39130de56dffa9
    org.apache.lucene.codecs.blocktree.CompressionAlgorithm.373218b346be9521d
    org.apache.lucene.codecs.blocktree.FieldReader9ffc10d155e4863b
    org.apache.lucene.codecs.blocktree.SegmentTermsEnumce57a3db048cb9ef
    org.apache.lucene.codecs.blocktree.SegmentTermsEnumFramedcfdb1defbeb4bf6
    org.apache.lucene.codecs.blocktreeords.BlockTreeOrdsPostingsFormat0c4dde2e22fec944
    org.apache.lucene.codecs.bloom.BloomFilterFactory0aab4bea863d894e
    org.apache.lucene.codecs.bloom.BloomFilteringPostingsFormat2c68798b039c5b69
    org.apache.lucene.codecs.bloom.DefaultBloomFilterFactory951036c345a39cad
    org.apache.lucene.codecs.bloom.TestBloomFilteredLucenePostingse99f655c99c9bbbe
    org.apache.lucene.codecs.bloom.TestBloomFilteredLucenePostings.LowMemoryBloomFactory3b6278de7f1cc2b2
    org.apache.lucene.codecs.cheapbastard.CheapBastardCodec7208b1d08807944d
    org.apache.lucene.codecs.compressing.CompressingCodec9dc27bbfc6d275fe
    org.apache.lucene.codecs.compressing.CompressingStoredFieldsFormat896fa678ffe81c92
    org.apache.lucene.codecs.compressing.CompressingStoredFieldsReaderfed51f9077208bb6
    org.apache.lucene.codecs.compressing.CompressingStoredFieldsReader.17bddfb5935f04284
    org.apache.lucene.codecs.compressing.CompressingStoredFieldsReader.BlockStated3812bfab13be812
    org.apache.lucene.codecs.compressing.CompressingStoredFieldsReader.SerializedDocument4cc23a5abef95aaf
    org.apache.lucene.codecs.compressing.CompressingStoredFieldsWriter2dad7ad136db8d57
    org.apache.lucene.codecs.compressing.CompressingTermVectorsFormat873c98aa0b112460
    org.apache.lucene.codecs.compressing.CompressionMode40a206f9a035f885
    org.apache.lucene.codecs.compressing.CompressionMode.15222ebc3d273a019
    org.apache.lucene.codecs.compressing.CompressionMode.2f6685a7e7bb3771a
    org.apache.lucene.codecs.compressing.CompressionMode.3196e0c9c4cbfa662
    org.apache.lucene.codecs.compressing.CompressionMode.477d32d5ef9354e6e
    org.apache.lucene.codecs.compressing.Compressorb0dd429aca65b80e
    org.apache.lucene.codecs.compressing.Decompressor5a441b8b2ca96e65
    org.apache.lucene.codecs.compressing.DeflateWithPresetCompressingCodec560f1be9247c7517
    org.apache.lucene.codecs.compressing.FastCompressingCodec5af07743da5b129c
    org.apache.lucene.codecs.compressing.FastDecompressionCompressingCodece2954e660e381e03
    org.apache.lucene.codecs.compressing.FieldsIndexe7d850a894e41f41
    org.apache.lucene.codecs.compressing.FieldsIndexReaderefa174465074bfbd
    org.apache.lucene.codecs.compressing.FieldsIndexWriter10a973070f4bf7a4
    org.apache.lucene.codecs.compressing.HighCompressionCompressingCodecad8c4af4f2d6eb68
    org.apache.lucene.codecs.compressing.LZ4WithPresetCompressingCodece033e91451f0398f
    org.apache.lucene.codecs.compressing.dummy.DummyCompressingCodec18f1474017678b6b
    org.apache.lucene.codecs.compressing.dummy.DummyCompressingCodec.1c1eeb7d1cac79018
    org.apache.lucene.codecs.compressing.dummy.DummyCompressingCodec.2e6380fab1dddb383
    org.apache.lucene.codecs.compressing.dummy.DummyCompressingCodec.3b492163ee1f96914
    org.apache.lucene.codecs.idversion.IDVersionPostingsFormatc2da72d126aba544
    org.apache.lucene.codecs.lucene50.Lucene50CompoundFormat385a35dbd700d7bd
    org.apache.lucene.codecs.lucene50.Lucene50CompoundReaderf79625b845ff1a72
    org.apache.lucene.codecs.lucene50.Lucene50CompoundReader.FileEntryca388693c592b376
    org.apache.lucene.codecs.lucene50.Lucene50LiveDocsFormatdad069b09c8ebe30
    org.apache.lucene.codecs.lucene50.Lucene50TermVectorsFormate177ce04f8f4313d
    org.apache.lucene.codecs.lucene60.Lucene60FieldInfosFormatbea4d612bda522b3
    org.apache.lucene.codecs.lucene60.Lucene60FieldInfosFormat.1a5faf788eebfcf53
    org.apache.lucene.codecs.lucene80.Lucene80DocValuesFormat18b32b386e539057
    org.apache.lucene.codecs.lucene80.Lucene80DocValuesFormat.Mode86ca2b1c37fd2c44
    org.apache.lucene.codecs.lucene80.Lucene80NormsConsumer19b27d401c1468aa
    org.apache.lucene.codecs.lucene80.Lucene80NormsFormat1e44bf93a20abf13
    org.apache.lucene.codecs.lucene80.Lucene80NormsProducer2d431e4bdf3291b8
    org.apache.lucene.codecs.lucene80.Lucene80NormsProducer.24b5363267f651c95
    org.apache.lucene.codecs.lucene80.Lucene80NormsProducer.37d7991b10f9fe420
    org.apache.lucene.codecs.lucene80.Lucene80NormsProducer.DenseNormsIteratorce4201e8cb7d61f3
    org.apache.lucene.codecs.lucene80.Lucene80NormsProducer.NormsEntryb676b20f594fdb12
    org.apache.lucene.codecs.lucene84.ForDeltaUtilbfe1bbad9d2e544b
    org.apache.lucene.codecs.lucene84.ForUtilde15f512bc648fc1
    org.apache.lucene.codecs.lucene84.Lucene84PostingsFormatbf59ad8fdebd5d74
    org.apache.lucene.codecs.lucene84.Lucene84PostingsFormat.IntBlockTermStatef10b9e05ba79b752
    org.apache.lucene.codecs.lucene84.Lucene84PostingsReader429c11d1836706b4
    org.apache.lucene.codecs.lucene84.Lucene84PostingsReader.BlockDocsEnum757838073fe69387
    org.apache.lucene.codecs.lucene84.Lucene84PostingsReader.BlockImpactsDocsEnum195ba8c2070ddaf5
    org.apache.lucene.codecs.lucene84.Lucene84PostingsWriter2cab59acfc3bb8a5
    org.apache.lucene.codecs.lucene84.Lucene84ScoreSkipReaderc1a818e91bb523bd
    org.apache.lucene.codecs.lucene84.Lucene84ScoreSkipReader.13d1e1fee9c8ae8f2
    org.apache.lucene.codecs.lucene84.Lucene84ScoreSkipReader.MutableImpactList5439f55d0eafe5f6
    org.apache.lucene.codecs.lucene84.Lucene84SkipReader1f7fa252de511870
    org.apache.lucene.codecs.lucene84.Lucene84SkipWriter76f5bd9c5e6e9e31
    org.apache.lucene.codecs.lucene84.PForUtile08db33b54b22cfd
    org.apache.lucene.codecs.lucene86.Lucene86PointsFormatf64406f00a5abe31
    org.apache.lucene.codecs.lucene86.Lucene86SegmentInfoFormat586cf6377df4154e
    org.apache.lucene.codecs.lucene87.DeflateWithPresetDictCompressionModeeef2871dedd17ce4
    org.apache.lucene.codecs.lucene87.LZ4WithPresetDictCompressionModed862ddb8f965ccb4
    org.apache.lucene.codecs.lucene87.LZ4WithPresetDictCompressionMode.LZ4WithPresetDictCompressore6d7dc198735025e
    org.apache.lucene.codecs.lucene87.LZ4WithPresetDictCompressionMode.LZ4WithPresetDictDecompressorcdef0ff6ed46a9fd
    org.apache.lucene.codecs.lucene87.Lucene87Codec9911310a45d92bb3
    org.apache.lucene.codecs.lucene87.Lucene87Codec.128723482ca6440d7
    org.apache.lucene.codecs.lucene87.Lucene87Codec.206911be072d66b12
    org.apache.lucene.codecs.lucene87.Lucene87Codec.Mode0cdb8b76874bda63
    org.apache.lucene.codecs.lucene87.Lucene87StoredFieldsFormat95ec1a8a217a9696
    org.apache.lucene.codecs.lucene87.Lucene87StoredFieldsFormat.1df56e677e7cde89d
    org.apache.lucene.codecs.lucene87.Lucene87StoredFieldsFormat.Mode54f5b49dea8b8336
    org.apache.lucene.codecs.memory.DirectDocValuesFormat599b4732017f8e1a
    org.apache.lucene.codecs.memory.DirectPostingsFormat4dd12af36b0a3791
    org.apache.lucene.codecs.memory.FSTPostingsFormat0488c9d3ef0e445f
    org.apache.lucene.codecs.mockrandom.MockRandomPostingsFormatb296437d6c7fac1c
    org.apache.lucene.codecs.mockrandom.MockRandomPostingsFormat.1a9cb0e2f6482337e
    org.apache.lucene.codecs.perfield.PerFieldDocValuesFormat999be7b49946c809
    org.apache.lucene.codecs.perfield.PerFieldPostingsFormatf4cf062fe4480103
    org.apache.lucene.codecs.perfield.PerFieldPostingsFormat.FieldsGroupa9f65c90021ba143
    org.apache.lucene.codecs.perfield.PerFieldPostingsFormat.FieldsGroup.Buildercf3e5a1c6f5d87c6
    org.apache.lucene.codecs.perfield.PerFieldPostingsFormat.FieldsReader23133a0a2e3e3d10
    org.apache.lucene.codecs.perfield.PerFieldPostingsFormat.FieldsWriter39e6a18f2c347e15
    org.apache.lucene.codecs.perfield.PerFieldPostingsFormat.FieldsWriter.1d45ea394ce4e87d2
    org.apache.lucene.codecs.ramonly.RAMOnlyPostingsFormatb60101c6580c5465
    org.apache.lucene.codecs.simpletext.SimpleTextCodec2c373cb80e8d36bb
    org.apache.lucene.codecs.simpletext.SimpleTextCompoundFormat8f06368999e2d677
    org.apache.lucene.codecs.simpletext.SimpleTextDocValuesFormatf204a428ec29d7f8
    org.apache.lucene.codecs.simpletext.SimpleTextFieldInfosFormat81e806cb10082466
    org.apache.lucene.codecs.simpletext.SimpleTextLiveDocsFormat7c38ab199ac51918
    org.apache.lucene.codecs.simpletext.SimpleTextNormsFormatc15c111c36138a2f
    org.apache.lucene.codecs.simpletext.SimpleTextPointsFormatc8a30d6e5464cb0b
    org.apache.lucene.codecs.simpletext.SimpleTextPostingsFormatecad7a507eb6cf4b
    org.apache.lucene.codecs.simpletext.SimpleTextSegmentInfoFormat6b46afa313fcbff0
    org.apache.lucene.codecs.simpletext.SimpleTextStoredFieldsFormatfd3858ab1bfa364c
    org.apache.lucene.codecs.simpletext.SimpleTextTermVectorsFormat9637b123540cf5bc
    org.apache.lucene.codecs.uniformsplit.UniformSplitPostingsFormat7cc8bd22aa9c73fd
    org.apache.lucene.codecs.uniformsplit.UniformSplitRot13PostingsFormat3caedc240adc5d40
    org.apache.lucene.codecs.uniformsplit.UniformSplitTermsWriterc0bfc0ffbc7e5592
    org.apache.lucene.codecs.uniformsplit.sharedterms.STUniformSplitPostingsFormat9669ad899ca00076
    org.apache.lucene.codecs.uniformsplit.sharedterms.STUniformSplitRot13PostingsFormat92abb9f820ad0db8
    org.apache.lucene.document.Documente1b4f587d42b8bee
    org.apache.lucene.document.DocumentStoredFieldVisitor66c1e4b20aa4d347
    org.apache.lucene.document.Field7f482656d4ca1583
    org.apache.lucene.document.Field.Store313c54f0ca666857
    org.apache.lucene.document.FieldTypeb7c621c07031e9cf
    org.apache.lucene.document.StoredFieldc2d3990da920bf93
    org.apache.lucene.document.TextField3884cff56ab2e8d5
    org.apache.lucene.index.BaseCompositeReaderd97e90ccc7f968ed
    org.apache.lucene.index.BaseTermsEnum98f6b1ecedb5374e
    org.apache.lucene.index.BufferedUpdates87ddb653a8568589
    org.apache.lucene.index.BufferedUpdatesStream826f0e27162b764b
    org.apache.lucene.index.BufferedUpdatesStream.FinishedSegments16a71e5037793419
    org.apache.lucene.index.ByteSliceReader013997c1da8668b7
    org.apache.lucene.index.CodecReader664ad067a4634f30
    org.apache.lucene.index.CompositeReader1ac667c88af4f805
    org.apache.lucene.index.CompositeReaderContext7e031115b0dba787
    org.apache.lucene.index.CompositeReaderContext.Builder071e9447b79df71a
    org.apache.lucene.index.ConcurrentMergeScheduler7192a79827ef3c6d
    org.apache.lucene.index.DefaultIndexingChaind2d4569721a2c208
    org.apache.lucene.index.DefaultIndexingChain.IntBlockAllocatorf8ba5af8ae2348f4
    org.apache.lucene.index.DefaultIndexingChain.PerFieldcce61152033abf01
    org.apache.lucene.index.DirectoryReader872b9ecc9a6593a5
    org.apache.lucene.index.DocConsumere1f0c74a0a5799b0
    org.apache.lucene.index.DocValuesIterator18191cf4f05d1e35
    org.apache.lucene.index.DocValuesType7e1ae71ed4ea7003
    org.apache.lucene.index.DocsWithFieldSet8d19e1081ed95385
    org.apache.lucene.index.DocumentsWriter7cc357393fcb7704
    org.apache.lucene.index.DocumentsWriterDeleteQueue13f9cf08d569e3e2
    org.apache.lucene.index.DocumentsWriterDeleteQueue.DeleteSlicef1270dfe524b0475
    org.apache.lucene.index.DocumentsWriterDeleteQueue.Nodee35b7bfe790524e5
    org.apache.lucene.index.DocumentsWriterFlushControlf0c2fa30940cc6eb
    org.apache.lucene.index.DocumentsWriterFlushQueue2c7673b354c8e663
    org.apache.lucene.index.DocumentsWriterFlushQueue.FlushTicket89df1c2221a6fcc6
    org.apache.lucene.index.DocumentsWriterPerThread04669483a6b45471
    org.apache.lucene.index.DocumentsWriterPerThread.12e2a89a263831e28
    org.apache.lucene.index.DocumentsWriterPerThread.FlushedSegment0b6ff5c256c820c9
    org.apache.lucene.index.DocumentsWriterPerThread.IndexingChaina80ec889dc78a499
    org.apache.lucene.index.DocumentsWriterPerThreadPoolebeda4d160ec6dcd
    org.apache.lucene.index.DocumentsWriterStallControl58d97a046f2a5e61
    org.apache.lucene.index.FieldInfo5d3240edb51a9c8e
    org.apache.lucene.index.FieldInfos0cd129ec82608462
    org.apache.lucene.index.FieldInfos.Builder172eff8db3205492
    org.apache.lucene.index.FieldInfos.FieldNumbers32bc1472e7a4ffd6
    org.apache.lucene.index.FieldInvertState9d275e86858587ac
    org.apache.lucene.index.Fieldseef2020978da652b
    org.apache.lucene.index.FilterLeafReader.FilterFieldsfa901dce56bcbd4a
    org.apache.lucene.index.FlushByRamOrCountsPolicy88d230f4879c8846
    org.apache.lucene.index.FlushPolicyf82b82ae268a26e6
    org.apache.lucene.index.FreqProxFieldse7a3eefa6739fbaf
    org.apache.lucene.index.FreqProxFields.FreqProxDocsEnum9b5450dfccaeb430
    org.apache.lucene.index.FreqProxFields.FreqProxPostingsEnum5c3b159340af0f19
    org.apache.lucene.index.FreqProxFields.FreqProxTermsdedfdef25735032c
    org.apache.lucene.index.FreqProxFields.FreqProxTermsEnum3601506a252c0835
    org.apache.lucene.index.FreqProxTermsWriterdd9e5dfaa06e7132
    org.apache.lucene.index.FreqProxTermsWriterPerField1e6792a1afdb8706
    org.apache.lucene.index.FreqProxTermsWriterPerField.FreqProxPostingsArraya2d8410c7d62b204
    org.apache.lucene.index.Impact882e84c41ed12353
    org.apache.lucene.index.Impacts86133783ef6f8339
    org.apache.lucene.index.ImpactsEnum952b956e16147b18
    org.apache.lucene.index.IndexCommit2c603d2695fc5325
    org.apache.lucene.index.IndexDeletionPolicy74de12c334f0ff0b
    org.apache.lucene.index.IndexFileDeleter864842f2ab2489df
    org.apache.lucene.index.IndexFileDeleter.CommitPointb03c283521652ed6
    org.apache.lucene.index.IndexFileDeleter.RefCount9d0a0ab0f621189a
    org.apache.lucene.index.IndexFileNames5a0676f33d0dd869
    org.apache.lucene.index.IndexOptions3f91d827d790b03c
    org.apache.lucene.index.IndexReader7350521cd77caecb
    org.apache.lucene.index.IndexReader.CacheKeyb51d6a55a323e37e
    org.apache.lucene.index.IndexReaderContext04e32f4b9c330127
    org.apache.lucene.index.IndexWritere0325aeb804ee9cd
    org.apache.lucene.index.IndexWriter.11648142e65802354
    org.apache.lucene.index.IndexWriter.4f13f02d787c63977
    org.apache.lucene.index.IndexWriter.EventQueue036f9bbdb7eaba28
    org.apache.lucene.index.IndexWriter.IndexWriterMergeSourcecf8a98cb877c1183
    org.apache.lucene.index.IndexWriter.Merges2e1fc51eb330086c
    org.apache.lucene.index.IndexWriterConfigd701914f0d6658b6
    org.apache.lucene.index.IndexWriterConfig.OpenMode7cb49344ea5c6351
    org.apache.lucene.index.IndexWriterMaxDocsChanger1bc2995118468740
    org.apache.lucene.index.KeepOnlyLastCommitDeletionPolicy9f22fe8c738d9952
    org.apache.lucene.index.LeafMetaDatabbff7ff01b4134e0
    org.apache.lucene.index.LeafReaderfa1ce8df2ae26a6e
    org.apache.lucene.index.LeafReaderContextfc6c719b81d116df
    org.apache.lucene.index.LiveIndexWriterConfiga2067f8ef3677fdc
    org.apache.lucene.index.MergePolicye4754a4a63055e7b
    org.apache.lucene.index.MergeScheduler647d19e97498fe90
    org.apache.lucene.index.MergeTrigger8b1aa8130dc2b264
    org.apache.lucene.index.NormValuesWriter46f5e71221ca6e02
    org.apache.lucene.index.NormValuesWriter.1c0864a9951fac185
    org.apache.lucene.index.NormValuesWriter.BufferedNormse8da754887bba3a5
    org.apache.lucene.index.NumericDocValuesa2de2240a1d105fa
    org.apache.lucene.index.OrdTermState43005a4850ff3eee
    org.apache.lucene.index.ParallelPostingsArray9e8709952ddc86a9
    org.apache.lucene.index.PostingsEnum13ee3bbe2a9a135b
    org.apache.lucene.index.RandomCodec9d5216583e3f9c53
    org.apache.lucene.index.ReaderPool196c2a1e4e1cb021
    org.apache.lucene.index.ReaderUtil4a74f8dbf0455564
    org.apache.lucene.index.SegmentCommitInfo361389f17f161615
    org.apache.lucene.index.SegmentCoreReaders329963e565bed71e
    org.apache.lucene.index.SegmentCoreReaders.14c22a3a7e7a3464b
    org.apache.lucene.index.SegmentCoreReaders.2f94d04d48a8e6732
    org.apache.lucene.index.SegmentCoreReaders.30dcca50ca892de5e
    org.apache.lucene.index.SegmentDocValues8c267f5425938996
    org.apache.lucene.index.SegmentInfod59792dbd411f918
    org.apache.lucene.index.SegmentInfos8e0cfc1c34a793bc
    org.apache.lucene.index.SegmentInfos.FindSegmentsFile57064a938b60a18c
    org.apache.lucene.index.SegmentReadStatef7f57f7389b9e4aa
    org.apache.lucene.index.SegmentReader63c8cf9560aa58ed
    org.apache.lucene.index.SegmentReader.1007c5e078ca5b49c
    org.apache.lucene.index.SegmentReader.2f1871b747f8ea7f6
    org.apache.lucene.index.SegmentWriteState3df2c751683e36f5
    org.apache.lucene.index.SlowImpactsEnum1474c9337a65b539
    org.apache.lucene.index.SlowImpactsEnum.1d5bb02ac6cfb08ba
    org.apache.lucene.index.StandardDirectoryReader3fc892a97e1fcf74
    org.apache.lucene.index.StandardDirectoryReader.170ecfd4176b47247
    org.apache.lucene.index.StandardDirectoryReader.3ca361c5e2d8fe939
    org.apache.lucene.index.StoredFieldVisitorc234cad09dc1c771
    org.apache.lucene.index.StoredFieldVisitor.Status9cb9d093a6117d87
    org.apache.lucene.index.StoredFieldsConsumer3e50d154a538cc4a
    org.apache.lucene.index.Term998f0369ca56ca77
    org.apache.lucene.index.TermStated94a8fc5aa8fb053
    org.apache.lucene.index.TermStates51833d55b04ca4cd
    org.apache.lucene.index.TermStates.1ec6a01c059b307f9
    org.apache.lucene.index.TermVectorsConsumer5da357250a0de7f2
    org.apache.lucene.index.TermVectorsConsumerPerField1208c70ca8670152
    org.apache.lucene.index.TermVectorsConsumerPerField.TermVectorsPostingsArrayc0105255a2cecf00
    org.apache.lucene.index.Terms7ca39f3bdd238e2b
    org.apache.lucene.index.TermsEnumdfe1f9b0994d664f
    org.apache.lucene.index.TermsEnum.1249f31e05c710308
    org.apache.lucene.index.TermsEnum.SeekStatus8b3a7bcd9e7da648
    org.apache.lucene.index.TermsHashc630c8de6506aac1
    org.apache.lucene.index.TermsHashPerField1b7a39be6c997509
    org.apache.lucene.index.TermsHashPerField.PostingsBytesStartArray5e5e00daabc62112
    org.apache.lucene.index.TieredMergePolicyc430a128b00f05d4
    org.apache.lucene.index.TieredMergePolicy.MERGE_TYPEee4ce8703565589c
    org.apache.lucene.index.TieredMergePolicy.SegmentSizeAndDocs13066978ebee0cf5
    org.apache.lucene.mockfile.DisableFsyncFS778b5ca3f6e81dca
    org.apache.lucene.mockfile.ExtrasFS17704d535444cb25
    org.apache.lucene.mockfile.FilterFileSystem965f8314db3795da
    org.apache.lucene.mockfile.FilterFileSystemProvidera401520e9ad85d23
    org.apache.lucene.mockfile.FilterPath953520f3f3374564
    org.apache.lucene.mockfile.HandleLimitFSb4d21e02aa5d2136
    org.apache.lucene.mockfile.HandleTrackingFS1e433c363f6801fa
    org.apache.lucene.mockfile.LeakFS1d9341a2aedfe396
    org.apache.lucene.mockfile.ShuffleFS17d1a875f1721633
    org.apache.lucene.queryparser.classic.FastCharStream921f61bd34d336b7
    org.apache.lucene.queryparser.classic.QueryParser58a639d223811485
    org.apache.lucene.queryparser.classic.QueryParser.JJCallsb4aa6347602075fe
    org.apache.lucene.queryparser.classic.QueryParser.LookaheadSuccess1e68eb728086b64d
    org.apache.lucene.queryparser.classic.QueryParser.Operatorc369979182f4a099
    org.apache.lucene.queryparser.classic.QueryParserBasec083122d7fdf3d7d
    org.apache.lucene.queryparser.classic.QueryParserTokenManager98e97e8b3adc403b
    org.apache.lucene.queryparser.classic.Tokend87570aef642ebc9
    org.apache.lucene.search.BlockMaxConjunctionScorer061e44a27a9e97e7
    org.apache.lucene.search.BlockMaxConjunctionScorer.174c433408ff6b3bd
    org.apache.lucene.search.BlockMaxConjunctionScorer.23ea95fe22eaa4f92
    org.apache.lucene.search.Boolean2ScorerSupplierc583418a25057486
    org.apache.lucene.search.BooleanClause5517b155135643c4
    org.apache.lucene.search.BooleanClause.Occur734a3ee59f624d3a
    org.apache.lucene.search.BooleanClause.Occur.1844152c852706967
    org.apache.lucene.search.BooleanClause.Occur.2314312e6be9e3919
    org.apache.lucene.search.BooleanClause.Occur.382ed509b5f202c18
    org.apache.lucene.search.BooleanClause.Occur.4daeb1927527fbfcf
    org.apache.lucene.search.BooleanQuery96c1ac631fbd6b0e
    org.apache.lucene.search.BooleanQuery.Builder7e6d4552da2ff245
    org.apache.lucene.search.BooleanWeight174f45125f19caf2
    org.apache.lucene.search.BooleanWeight.WeightedBooleanClause166652adc0fe198e
    org.apache.lucene.search.BoostAttributeImplf093b8b530992fa9
    org.apache.lucene.search.BoostQuery83694dbca36799f8
    org.apache.lucene.search.BulkScorer0cdfc6b4ad3daf0c
    org.apache.lucene.search.CollectionStatistics5ec48820d8f08861
    org.apache.lucene.search.DisiPriorityQueuecd6e7ceb6bb4a75c
    org.apache.lucene.search.DisiWrapperc464918fcb4dc917
    org.apache.lucene.search.DocIdSet5365aa0bacf9a6e7
    org.apache.lucene.search.DocIdSet.131119c239a3307e0
    org.apache.lucene.search.DocIdSetIteratorb2f8b47fe6931904
    org.apache.lucene.search.DocIdSetIterator.26831e1d78fb78367
    org.apache.lucene.search.Explanationf9b8483b4a27fc0e
    org.apache.lucene.search.HitQueue1b55fd31915c139a
    org.apache.lucene.search.HitsThresholdCheckercbcf7b80177ffd7d
    org.apache.lucene.search.HitsThresholdChecker.LocalHitsThresholdChecker0af70e4877c39078
    org.apache.lucene.search.ImpactsDISI13342a2866448a60
    org.apache.lucene.search.IndexSearcher73336568d9558b83
    org.apache.lucene.search.IndexSearcher.28a80822a11869ba3
    org.apache.lucene.search.LRUQueryCachef119ed15eba21643
    org.apache.lucene.search.LRUQueryCache.MinSegmentSizePredicatee8546c497dd5c047
    org.apache.lucene.search.LeafCollector610577ef49520501
    org.apache.lucene.search.LeafSimScorerdae74001f09e0d4b
    org.apache.lucene.search.MaxScoreCacheb0fab390a2eeb1ff
    org.apache.lucene.search.MaxScoreSumPropagator5a91caaf7298e99b
    org.apache.lucene.search.MaxScoreSumPropagator.15ee8239fddd1a671
    org.apache.lucene.search.MultiTermQuery2b75d54f87e0a440
    org.apache.lucene.search.MultiTermQuery.16c9d933f8b8f27ac
    org.apache.lucene.search.MultiTermQuery.RewriteMethoddccbda72605e36e9
    org.apache.lucene.search.Multiset19d136ff7551a790
    org.apache.lucene.search.Multiset.13b110197a7d930cc
    org.apache.lucene.search.PhraseQuery52f7e7a1fb7014c5
    org.apache.lucene.search.PhraseQuery.1471a12eafe62877f
    org.apache.lucene.search.PhraseQuery.Builder13ad717b7ed54825
    org.apache.lucene.search.PhraseWeighta3d8e03071d0b1b9
    org.apache.lucene.search.PhraseWeight.15f7be556b85d06bd
    org.apache.lucene.search.Queryc165f884ce594f28
    org.apache.lucene.search.Scorablece3faa2bf0d13526
    org.apache.lucene.search.ScoreDoc7bfc4d6df3c15e4f
    org.apache.lucene.search.ScoreMode5083adba207caf07
    org.apache.lucene.search.Scorera2e3c4802bca7246
    org.apache.lucene.search.ScorerSupplier50ccb984640f5a29
    org.apache.lucene.search.ScorerUtil4858996195e514c9
    org.apache.lucene.search.ScorerUtil.10d12a67987763dd8
    org.apache.lucene.search.ScoringRewrite53dda8cd115a1b80
    org.apache.lucene.search.ScoringRewrite.1726bc5187a7d9169
    org.apache.lucene.search.ScoringRewrite.2c8ed0d3ea02d9ba7
    org.apache.lucene.search.TermCollectingRewrite3c6917b7de289c31
    org.apache.lucene.search.TermQuery32c14fb4749e12de
    org.apache.lucene.search.TermQuery.TermWeight8232b1155cdcaa35
    org.apache.lucene.search.TermScorerc300e5abbc794b3b
    org.apache.lucene.search.TermStatistics2889bba2906e16a2
    org.apache.lucene.search.TopDocs012373f68cd76882
    org.apache.lucene.search.TopDocs.ScoreMergeSortQueue0d229ef686a287eb
    org.apache.lucene.search.TopDocs.ShardRef645ec85cd874e13e
    org.apache.lucene.search.TopDocsCollectord619b8b8e24362ae
    org.apache.lucene.search.TopScoreDocCollectorf0f271377b503622
    org.apache.lucene.search.TopScoreDocCollector.ScorerLeafCollector0916b64fdd6310f8
    org.apache.lucene.search.TopScoreDocCollector.SimpleTopScoreDocCollectore89ce7447d46c23d
    org.apache.lucene.search.TopScoreDocCollector.SimpleTopScoreDocCollector.1b7fd297ad7b8e993
    org.apache.lucene.search.TotalHitsc054cc870c4bc713
    org.apache.lucene.search.TotalHits.Relationcd9e19742f0a5fea
    org.apache.lucene.search.TwoPhaseIteratorf59ed4e6ee883076
    org.apache.lucene.search.TwoPhaseIterator.TwoPhaseIteratorAsDocIdSetIteratorbde4888d90c9b71d
    org.apache.lucene.search.UsageTrackingQueryCachingPolicyb8f47b0b4f586c84
    org.apache.lucene.search.WANDScorer9b455d37735417e4
    org.apache.lucene.search.WANDScorer.1677f7eae4aa6e58d
    org.apache.lucene.search.WANDScorer.27f071d191fb7cb28
    org.apache.lucene.search.Weightf9b0b832cbdab9cc
    org.apache.lucene.search.Weight.19ae964d7e7004115
    org.apache.lucene.search.Weight.DefaultBulkScorer3367fcb4d4550921
    org.apache.lucene.search.similarities.AfterEffect0793310e5338e24d
    org.apache.lucene.search.similarities.AfterEffectB1597f7ea5c3e93c4
    org.apache.lucene.search.similarities.AfterEffectL6a90c41c7608b070
    org.apache.lucene.search.similarities.AssertingSimilarity17923a752141c3fb
    org.apache.lucene.search.similarities.Axiomaticef27c653cf1c0fd0
    org.apache.lucene.search.similarities.AxiomaticF1EXPb1ce2688bf1afcd2
    org.apache.lucene.search.similarities.AxiomaticF1LOGdd72f238e902de40
    org.apache.lucene.search.similarities.AxiomaticF2EXP50859081cdcc957e
    org.apache.lucene.search.similarities.AxiomaticF2LOG3119cf2421ccde70
    org.apache.lucene.search.similarities.BM25Similarityd69466947ed0f51c
    org.apache.lucene.search.similarities.BM25Similarity.BM25Scorera177d5b0724f1baa
    org.apache.lucene.search.similarities.BasicModel780a9c4f431c3423
    org.apache.lucene.search.similarities.BasicModelG727f4fc93f8d45a8
    org.apache.lucene.search.similarities.BasicModelIFfde4206a7191383c
    org.apache.lucene.search.similarities.BasicModelIn0b31267ef2c33910
    org.apache.lucene.search.similarities.BasicModelIneb50d1f8dc028c177
    org.apache.lucene.search.similarities.BooleanSimilaritybffc1d0892e790d0
    org.apache.lucene.search.similarities.ClassicSimilaritya18f5807ed7f74fc
    org.apache.lucene.search.similarities.DFISimilaritya019dd753e0fc14f
    org.apache.lucene.search.similarities.DFRSimilarity222f32ad49ae18c2
    org.apache.lucene.search.similarities.Distributiond963842a327df5e3
    org.apache.lucene.search.similarities.DistributionLLf4b829c4663cd965
    org.apache.lucene.search.similarities.DistributionSPL4155480c702646cf
    org.apache.lucene.search.similarities.IBSimilarityfc432ec9dcdbb38f
    org.apache.lucene.search.similarities.Independenceef6cacba7ae36174
    org.apache.lucene.search.similarities.IndependenceChiSquarede73589feda3da344
    org.apache.lucene.search.similarities.IndependenceSaturated277005223298f824
    org.apache.lucene.search.similarities.IndependenceStandardized6ab832e92c5e5755
    org.apache.lucene.search.similarities.LMDirichletSimilarity7b525c4b1faa015f
    org.apache.lucene.search.similarities.LMJelinekMercerSimilarityaa1f679a43e25d18
    org.apache.lucene.search.similarities.LMSimilarityf4dbaeeb31b90276
    org.apache.lucene.search.similarities.LMSimilarity.DefaultCollectionModeld5d93d640a49ce3e
    org.apache.lucene.search.similarities.Lambdab69b0f2ff098a199
    org.apache.lucene.search.similarities.LambdaDFea62637e5995c14d
    org.apache.lucene.search.similarities.LambdaTTF476e543bdb354b57
    org.apache.lucene.search.similarities.Normalization2dc7a705bd29f0ee
    org.apache.lucene.search.similarities.NormalizationH15aea0da5071f3040
    org.apache.lucene.search.similarities.NormalizationH261878bf139fb446b
    org.apache.lucene.search.similarities.NormalizationH3c6c58e128d8f0f8d
    org.apache.lucene.search.similarities.NormalizationZ8a3a7285900022a9
    org.apache.lucene.search.similarities.PerFieldSimilarityWrapper42586b5507e510df
    org.apache.lucene.search.similarities.RandomSimilarity423403d812d6a061
    org.apache.lucene.search.similarities.Similaritya3b6d2798ce43d71
    org.apache.lucene.search.similarities.Similarity.SimScorer67d544ce9feeb21a
    org.apache.lucene.search.similarities.SimilarityBase202345704c162a53
    org.apache.lucene.search.similarities.TFIDFSimilaritydf5bd1768147d674
    org.apache.lucene.store.BaseDirectory6900d05994ed44b3
    org.apache.lucene.store.BufferedChecksumb94ebe893a9d3711
    org.apache.lucene.store.BufferedChecksumIndexInput173e2b9c65b07cb6
    org.apache.lucene.store.ByteArrayDataInput78632b2460b70e07
    org.apache.lucene.store.ByteArrayDataOutput7e14c81e582b7d2c
    org.apache.lucene.store.ByteBufferGuard259b97c11bbdc71b
    org.apache.lucene.store.ByteBufferIndexInput4167f4c1126b89a3
    org.apache.lucene.store.ByteBufferIndexInput.SingleBufferImpl2a840aec159d9c7d
    org.apache.lucene.store.ByteBuffersDataOutput15456a13d6afd12c
    org.apache.lucene.store.ByteBuffersDataOutput.ByteBufferRecyclerfe108a40cf58b7b1
    org.apache.lucene.store.ChecksumIndexInput76f48af3f68865dd
    org.apache.lucene.store.DataInput5aa170af6f1e947b
    org.apache.lucene.store.DataOutput492e17024cc912e6
    org.apache.lucene.store.Directory7704110da65f03e8
    org.apache.lucene.store.FSDirectory0e228e59762da3b0
    org.apache.lucene.store.FSDirectory.FSIndexOutputd2beb768917b54a0
    org.apache.lucene.store.FSDirectory.FSIndexOutput.1ec3754510e19ee3f
    org.apache.lucene.store.FSLockFactory742892e30a14e87a
    org.apache.lucene.store.FilterDirectoryb2c8389cd77c4d55
    org.apache.lucene.store.FlushInfof9d01f0e9bbb7c7c
    org.apache.lucene.store.IOContext5f42cca474854a9d
    org.apache.lucene.store.IOContext.Context921bb55758e6d8ff
    org.apache.lucene.store.IndexInput06ce5eb19b42b06b
    org.apache.lucene.store.IndexOutput6f483ded93cfafd7
    org.apache.lucene.store.Lock432af1bf641692dc
    org.apache.lucene.store.LockFactoryece396b0fec91411
    org.apache.lucene.store.LockValidatingDirectoryWrapper560f0d73f379987c
    org.apache.lucene.store.MMapDirectorya9942ea0e3192b38
    org.apache.lucene.store.MockDirectoryWrapper.Throttling9084de50297cd07a
    org.apache.lucene.store.NativeFSLockFactory1cd03d5dd607e96c
    org.apache.lucene.store.NativeFSLockFactory.NativeFSLockc3307e40ef2e24c7
    org.apache.lucene.store.OutputStreamIndexOutput90073bdd6eaf9312
    org.apache.lucene.store.RAMFilea543facba1c62f7f
    org.apache.lucene.store.RAMOutputStreama4d3d0444d01318d
    org.apache.lucene.store.TrackingDirectoryWrapper8f84be302b2ff933
    org.apache.lucene.util.AbstractBeforeAfterRule2855be1c9a045f99
    org.apache.lucene.util.AbstractBeforeAfterRule.18f7e77f230c1050d
    org.apache.lucene.util.Accountable9caec5fbf170e939
    org.apache.lucene.util.ArrayUtil5954c5d90665398b
    org.apache.lucene.util.AttributeFactoryb1bf0e54e4016761
    org.apache.lucene.util.AttributeFactory.157348402ad295daa
    org.apache.lucene.util.AttributeFactory.DefaultAttributeFactory400586c34d95eefd
    org.apache.lucene.util.AttributeFactory.DefaultAttributeFactory.1e37cb5b075d39222
    org.apache.lucene.util.AttributeFactory.StaticImplementationAttributeFactory7835b4eaf27ad5e5
    org.apache.lucene.util.AttributeImpld2e818115d53c6c8
    org.apache.lucene.util.AttributeSource9ed2301ac94454b9
    org.apache.lucene.util.AttributeSource.2627a422f8bda783c
    org.apache.lucene.util.AttributeSource.Stateee682f69cc19d165
    org.apache.lucene.util.BitSet5a574c88f9713d83
    org.apache.lucene.util.BitUtilfb8b4d3d71d70037
    org.apache.lucene.util.ByteBlockPoolc1f7c99648018d91
    org.apache.lucene.util.ByteBlockPool.Allocatore4273ccf741d8276
    org.apache.lucene.util.ByteBlockPool.DirectTrackingAllocator9bf47627846516db
    org.apache.lucene.util.BytesRef5dc0661c38a5f442
    org.apache.lucene.util.BytesRefBuilder6b39f0d53b571bfe
    org.apache.lucene.util.BytesRefHash86e748e8ab5fa687
    org.apache.lucene.util.BytesRefHash.1e19faf8fa62ab4f4
    org.apache.lucene.util.BytesRefHash.BytesStartArray06370cc4bd47788d
    org.apache.lucene.util.CloseableThreadLocalc837a4897f406f88
    org.apache.lucene.util.CollectionUtild405772039814236
    org.apache.lucene.util.CollectionUtil.ListIntroSorter272e33df47ff8a28
    org.apache.lucene.util.Constants71711c9ebda826d2
    org.apache.lucene.util.Counterdd1fe6fe36dc8723
    org.apache.lucene.util.Counter.AtomicCounter702c4b53893ac12e
    org.apache.lucene.util.Counter.SerialCounter577da4101cbc325f
    org.apache.lucene.util.FailureMarker0f7bc1056ce8b9cf
    org.apache.lucene.util.FixedBitSet92d1cd1d5e4309b2
    org.apache.lucene.util.FrequencyTrackingRingBufferf4e55c7fd66a81d5
    org.apache.lucene.util.FrequencyTrackingRingBuffer.IntBag5de9feffb74916c0
    org.apache.lucene.util.FutureArrayseead70d27728315f
    org.apache.lucene.util.FutureObjectsbb12722ddc092a6a
    org.apache.lucene.util.IOUtilsf9815136f890b195
    org.apache.lucene.util.InPlaceMergeSortera72a3702a3f4d8f1
    org.apache.lucene.util.InfoStream5c1d197ea5ba7a73
    org.apache.lucene.util.InfoStream.NoOutputd0750f16f6d2766e
    org.apache.lucene.util.IntBlockPool73804d638cfb8a37
    org.apache.lucene.util.IntBlockPool.Allocator024ee289b8aaee46
    org.apache.lucene.util.IntroSorter08519c1f1ba4a7de
    org.apache.lucene.util.IntsReff9b7dc817ff99274
    org.apache.lucene.util.IntsRefBuilderb5175ed4b449f9b7
    org.apache.lucene.util.LongValues7d8aee853134ae83
    org.apache.lucene.util.LongValues.1f9fa8f9d563676c5
    org.apache.lucene.util.LongValues.216b39160a62d65d4
    org.apache.lucene.util.LongsRefab3dbc979e310089
    org.apache.lucene.util.LuceneJUnit3MethodProvider8c94daef58a50e00
    org.apache.lucene.util.LuceneTestCasea2a4f3a1c4f17145
    org.apache.lucene.util.LuceneTestCase.18c812025ef208e5a
    org.apache.lucene.util.LuceneTestCase.2452293b78e28a121
    org.apache.lucene.util.LuceneTestCase.3aae74f4a1e18ff8b
    org.apache.lucene.util.LuceneTestCase.LiveIWCFlushMode76187b1204474dfb
    org.apache.lucene.util.MSBRadixSorter9adaa4c4786de287
    org.apache.lucene.util.MathUtil6446df2aeb4ba1d0
    org.apache.lucene.util.NamedSPILoaderbd69495c1a655c32
    org.apache.lucene.util.NullInfoStream9d72e8d10eb5b3ed
    org.apache.lucene.util.PriorityQueue86214d87630b6122
    org.apache.lucene.util.PriorityQueue.160a8e49cec5e67af
    org.apache.lucene.util.QueryBuilderf8cdd17d51e120bf
    org.apache.lucene.util.QueryBuilder.TermAndBoost7379a586bc344983
    org.apache.lucene.util.QuickPatchThreadsFilter004147cc3cd3feb6
    org.apache.lucene.util.RamUsageEstimator90dd0e4b91d1e1b1
    org.apache.lucene.util.RamUsageEstimator.170b7c06b4a2ba803
    org.apache.lucene.util.RunListenerPrintReproduceInfodf3fd8cda9ce9415
    org.apache.lucene.util.SPIClassIterator77e3e7ca7aea78ee
    org.apache.lucene.util.SetOnce1f43b17a7dfc86e4
    org.apache.lucene.util.SetOnce.Wrapperfbdf6ca0565e5886
    org.apache.lucene.util.SmallFloat4b4c055a7d5e7c3d
    org.apache.lucene.util.Sorter91a27f89e094d240
    org.apache.lucene.util.StringHelper548b4986a5429a71
    org.apache.lucene.util.StringMSBRadixSorter09fc2a082184e6e8
    org.apache.lucene.util.StringMSBRadixSorter.12864f721fdd69ffd
    org.apache.lucene.util.TestRuleAssertionsRequired175421bab63648e6
    org.apache.lucene.util.TestRuleAssertionsRequired.136cb2ddfe6db60e4
    org.apache.lucene.util.TestRuleDelegate7624c315aaee46c0
    org.apache.lucene.util.TestRuleIgnoreAfterMaxFailures5754de45f2314938
    org.apache.lucene.util.TestRuleIgnoreAfterMaxFailures.15b02d3b2869a618b
    org.apache.lucene.util.TestRuleIgnoreTestSuites209cf27dad2fdbe5
    org.apache.lucene.util.TestRuleIgnoreTestSuites.17c8e739169310bed
    org.apache.lucene.util.TestRuleLimitSysouts6622c9452fe6964b
    org.apache.lucene.util.TestRuleLimitSysouts.DelegateStream005e2894ccfa3946
    org.apache.lucene.util.TestRuleMarkFailureacc71bb7ea6285c4
    org.apache.lucene.util.TestRuleMarkFailure.1fc795a24ce78cca5
    org.apache.lucene.util.TestRuleRestoreSystemProperties83fde525dbbbdd56
    org.apache.lucene.util.TestRuleSetupAndRestoreClassEnv5b6d8be63781d25e
    org.apache.lucene.util.TestRuleSetupAndRestoreInstanceEnv2a570899c512f47c
    org.apache.lucene.util.TestRuleSetupTeardownChained7a4fa8e000e6a599
    org.apache.lucene.util.TestRuleSetupTeardownChained.1b2d36311e662437a
    org.apache.lucene.util.TestRuleStoreClassNamec6401d6db3dd21f2
    org.apache.lucene.util.TestRuleStoreClassName.19643bacff88cea32
    org.apache.lucene.util.TestRuleTemporaryFilesCleanup517b5a9a4ec6ff11
    org.apache.lucene.util.TestRuleThreadAndTestNameba95247677bce2d6
    org.apache.lucene.util.TestRuleThreadAndTestName.1670f15be03e49347
    org.apache.lucene.util.TestUtil431c272583b0fad9
    org.apache.lucene.util.UnicodeUtilaa9656ee8c7acf93
    org.apache.lucene.util.Versiond5dc79d50f2c2d1d
    org.apache.lucene.util.automaton.Automata0edb8f8989f856ed
    org.apache.lucene.util.automaton.Automaton134911b5b3a54df9
    org.apache.lucene.util.automaton.Automaton.15fb150bc69ea7a93
    org.apache.lucene.util.automaton.Automaton.266309bd680d91f24
    org.apache.lucene.util.automaton.Automaton.Builder6c38698f8903f64b
    org.apache.lucene.util.automaton.Automaton.Builder.17d710f6c024b7a17
    org.apache.lucene.util.automaton.CharacterRunAutomatond2632a6cefbb4858
    org.apache.lucene.util.automaton.MinimizationOperationsc654de880611cdb1
    org.apache.lucene.util.automaton.MinimizationOperations.IntPairfa80e4acffb787d8
    org.apache.lucene.util.automaton.MinimizationOperations.StateListadfb9567974550e1
    org.apache.lucene.util.automaton.MinimizationOperations.StateListNode216e146dfcd23713
    org.apache.lucene.util.automaton.Operations291e237735ef00d5
    org.apache.lucene.util.automaton.RegExpceb95f8ecf31c7a4
    org.apache.lucene.util.automaton.RegExp.1d9726bc2132e90b7
    org.apache.lucene.util.automaton.RegExp.Kind1d6b5e94e744d3a0
    org.apache.lucene.util.automaton.RunAutomatonf2b29047ee0b5c84
    org.apache.lucene.util.automaton.StatePair3f8d879446d01641
    org.apache.lucene.util.automaton.Transition35afb5dbb70c7d8b
    org.apache.lucene.util.compress.LZ474e78555e9692654
    org.apache.lucene.util.compress.LZ4.FastCompressionHashTable455953436870f53c
    org.apache.lucene.util.compress.LZ4.HashTablea875bb203fc16df5
    org.apache.lucene.util.compress.LZ4.HighCompressionHashTablefe6aeae6ddf42ee2
    org.apache.lucene.util.compress.LowercaseAsciiCompressionf447544a6d96e316
    org.apache.lucene.util.fst.BitTableUtilae7a3159aea08377
    org.apache.lucene.util.fst.Builder100b4b21b6b35e4f
    org.apache.lucene.util.fst.Builder.Arc03d7ea3d6f291b24
    org.apache.lucene.util.fst.Builder.CompiledNode611103c7aadde65d
    org.apache.lucene.util.fst.Builder.FixedLengthArcsBufferdc3feeb45753c9cf
    org.apache.lucene.util.fst.Builder.UnCompiledNode008d6d1bfef92929
    org.apache.lucene.util.fst.ByteSequenceOutputs143ca7cb1094029b
    org.apache.lucene.util.fst.BytesRefFSTEnum8c5ff799d80df73e
    org.apache.lucene.util.fst.BytesRefFSTEnum.InputOutputfdff5845aec3a017
    org.apache.lucene.util.fst.BytesStore862a096cc44582bf
    org.apache.lucene.util.fst.BytesStore.265e27783d1fb59c4
    org.apache.lucene.util.fst.FST22daed3fbd13fe0f
    org.apache.lucene.util.fst.FST.Arc87a6bbce0deea5dc
    org.apache.lucene.util.fst.FST.Arc.BitTablecd08373a793c76e2
    org.apache.lucene.util.fst.FST.BytesReader9774f9c52f512c2f
    org.apache.lucene.util.fst.FST.INPUT_TYPE4cca0a4d7eb0fc65
    org.apache.lucene.util.fst.FSTEnumb20a467cecfe037b
    org.apache.lucene.util.fst.NodeHashe5fbe5551fd06a18
    org.apache.lucene.util.fst.OffHeapFSTStorec45fc9986debb081
    org.apache.lucene.util.fst.Outputs01b4adaf56ba7d3f
    org.apache.lucene.util.fst.ReverseBytesReader13eb20434ceaa349
    org.apache.lucene.util.fst.ReverseRandomAccessReader8ca4cafc0fd06de6
    org.apache.lucene.util.fst.Utile497ee1ca74a697c
    org.apache.lucene.util.packed.AbstractPagedMutablec34fc67babfbb425
    org.apache.lucene.util.packed.BulkOperatione703484622617102
    org.apache.lucene.util.packed.BulkOperation.18ed6abb8f3648cf6
    org.apache.lucene.util.packed.BulkOperationPacked829a236b3c71b9c5
    org.apache.lucene.util.packed.BulkOperationPacked14bd02140efa827ba
    org.apache.lucene.util.packed.BulkOperationPacked107871df76ca8b0a6d
    org.apache.lucene.util.packed.BulkOperationPacked1131012a043511a3c2
    org.apache.lucene.util.packed.BulkOperationPacked128c9d61a1c0c22fe2
    org.apache.lucene.util.packed.BulkOperationPacked137c3f7554b1c18d1d
    org.apache.lucene.util.packed.BulkOperationPacked1421e5b4c1bd2627b3
    org.apache.lucene.util.packed.BulkOperationPacked1589157585ca7e8aaf
    org.apache.lucene.util.packed.BulkOperationPacked16bd7857d6862d8611
    org.apache.lucene.util.packed.BulkOperationPacked17ee9c6581a4299e15
    org.apache.lucene.util.packed.BulkOperationPacked18559a5bb48c2c0381
    org.apache.lucene.util.packed.BulkOperationPacked19ce141b930277706f
    org.apache.lucene.util.packed.BulkOperationPacked2af735fb9c7872456
    org.apache.lucene.util.packed.BulkOperationPacked20ec750496cb2b69fc
    org.apache.lucene.util.packed.BulkOperationPacked21fd5faea41a357d0e
    org.apache.lucene.util.packed.BulkOperationPacked22b8b2caf3fa40412b
    org.apache.lucene.util.packed.BulkOperationPacked23d3700bb7e9bbb9e7
    org.apache.lucene.util.packed.BulkOperationPacked2497d220c44b683800
    org.apache.lucene.util.packed.BulkOperationPacked31318d5978b9e3782
    org.apache.lucene.util.packed.BulkOperationPacked470c3af2facc8f326
    org.apache.lucene.util.packed.BulkOperationPacked5d206eeee69238498
    org.apache.lucene.util.packed.BulkOperationPacked62dc5d4490742e4f9
    org.apache.lucene.util.packed.BulkOperationPacked7cf065f84c953d1aa
    org.apache.lucene.util.packed.BulkOperationPacked8f743f629bc8f2eec
    org.apache.lucene.util.packed.BulkOperationPacked920af58a528f116a1
    org.apache.lucene.util.packed.BulkOperationPackedSingleBlocked80270f7be26e06
    org.apache.lucene.util.packed.DeltaPackedLongValuesfd3575cd4a686f7b
    org.apache.lucene.util.packed.DeltaPackedLongValues.Builder058b56d9e425c2ec
    org.apache.lucene.util.packed.Direct16f6d3316502557024
    org.apache.lucene.util.packed.Direct81681d7da6313a8e2
    org.apache.lucene.util.packed.DirectMonotonicReader4ca3c68dd3a989a8
    org.apache.lucene.util.packed.DirectMonotonicReader.1ac026cbf03289925
    org.apache.lucene.util.packed.DirectMonotonicReader.Metabd8400ac2b5a5d97
    org.apache.lucene.util.packed.DirectMonotonicWriterab3c850c35c1869b
    org.apache.lucene.util.packed.DirectReader150a3f82db014cc5
    org.apache.lucene.util.packed.DirectReader.DirectPackedReader12763b65d68011c1c4
    org.apache.lucene.util.packed.DirectReader.DirectPackedReader168eb1a1c0c719b770
    org.apache.lucene.util.packed.DirectWriterdffc834e0d38a3e9
    org.apache.lucene.util.packed.GrowableWriter5e5c4629c1cacb32
    org.apache.lucene.util.packed.Packed64caccd5762229d5a5
    org.apache.lucene.util.packed.Packed64SingleBlock3ee3158eebfb2583
    org.apache.lucene.util.packed.Packed64SingleBlock.Packed64SingleBlock1085ec0be75690db7d
    org.apache.lucene.util.packed.Packed64SingleBlock.Packed64SingleBlock125137e3efb8081112
    org.apache.lucene.util.packed.Packed64SingleBlock.Packed64SingleBlock234223fddff5b09fa
    org.apache.lucene.util.packed.Packed64SingleBlock.Packed64SingleBlock4344d44155104d71f
    org.apache.lucene.util.packed.PackedInts5fce3648bb81aba7
    org.apache.lucene.util.packed.PackedInts.1b5e362f7e4f2669f
    org.apache.lucene.util.packed.PackedInts.Formatf66df8d6fa1eb0bf
    org.apache.lucene.util.packed.PackedInts.Format.13b829c5020510e1e
    org.apache.lucene.util.packed.PackedInts.Format.284c5dbb1792af026
    org.apache.lucene.util.packed.PackedInts.FormatAndBits94bd3ad750fed485
    org.apache.lucene.util.packed.PackedInts.Mutable4220eb680213cd52
    org.apache.lucene.util.packed.PackedInts.MutableImpl07f6a90e6a6b8629
    org.apache.lucene.util.packed.PackedInts.NullReaderb8f64fedb09a3dfe
    org.apache.lucene.util.packed.PackedInts.Readerada558745edc141a
    org.apache.lucene.util.packed.PackedInts.ReaderIteratorImpld0ab15244e49ac29
    org.apache.lucene.util.packed.PackedInts.Writera09c912336957fca
    org.apache.lucene.util.packed.PackedLongValuesfcf07dff85fee5e0
    org.apache.lucene.util.packed.PackedLongValues.Builder57417b5ca6cc2f7f
    org.apache.lucene.util.packed.PackedLongValues.Iterator4d30c7ca81efb991
    org.apache.lucene.util.packed.PackedReaderIterator9150185835a6e045
    org.apache.lucene.util.packed.PackedWriterf401186d92e3dfd7
    org.apache.lucene.util.packed.PagedGrowableWriterbf064fd5aabfaffd
    org.apache.maven.plugin.surefire.log.api.NullConsoleLogger9e19e8c6ec7e2af1
    org.apache.maven.surefire.api.booter.BaseProviderFactory3859e78bd81eea39
    org.apache.maven.surefire.api.booter.BiPropertyd22c13c56d5b4593
    org.apache.maven.surefire.api.booter.Command3cd54166633f8826
    org.apache.maven.surefire.api.booter.Constantsdecb9de81c53dc77
    org.apache.maven.surefire.api.booter.DumpErrorSingleton0fb68b22eecee565
    org.apache.maven.surefire.api.booter.ForkedProcessEventTypefb813c97649a2cb4
    org.apache.maven.surefire.api.booter.ForkingReporterFactory43a09ed486105416
    org.apache.maven.surefire.api.booter.ForkingRunListener72fc487c27ef5b8d
    org.apache.maven.surefire.api.booter.MasterProcessCommand4638438d1f9cb2b7
    org.apache.maven.surefire.api.booter.Shutdown22c5299ca66a441d
    org.apache.maven.surefire.api.cli.CommandLineOption4a638448af60a346
    org.apache.maven.surefire.api.filter.NonAbstractClassFilterf9349f28027f7865
    org.apache.maven.surefire.api.provider.AbstractProvidera003e0bc84287c70
    org.apache.maven.surefire.api.report.ConsoleOutputCapture810c9018ba7d1ecc
    org.apache.maven.surefire.api.report.ConsoleOutputCapture.ForwardingPrintStream2c7c3dde8b37b8d9
    org.apache.maven.surefire.api.report.ConsoleOutputCapture.NullOutputStream5731848fa72c76c9
    org.apache.maven.surefire.api.report.ReporterConfigurationa4d0f02ee0a3ce3b
    org.apache.maven.surefire.api.report.RunMode99815bd2f7cf25b8
    org.apache.maven.surefire.api.report.SimpleReportEntrybe57bd60074f466f
    org.apache.maven.surefire.api.report.TestOutputReportEntryb7f0e6ae6773a3e5
    org.apache.maven.surefire.api.stream.AbstractStreamDecoderc51329e6fe95e03f
    org.apache.maven.surefire.api.stream.AbstractStreamDecoder.BufferedStream0e036d9195140045
    org.apache.maven.surefire.api.stream.AbstractStreamDecoder.Memento50fa22818cea4206
    org.apache.maven.surefire.api.stream.AbstractStreamDecoder.Segmentec7b2e9f3dc519b5
    org.apache.maven.surefire.api.stream.AbstractStreamDecoder.StreamReadStatusb28e22fff7af7760
    org.apache.maven.surefire.api.stream.AbstractStreamEncoder5b9d2cab05438b39
    org.apache.maven.surefire.api.stream.SegmentTypea352bcb443bb6539
    org.apache.maven.surefire.api.suite.RunResult14b135b9dcad68f4
    org.apache.maven.surefire.api.testset.DirectoryScannerParameters011c1405154cf543
    org.apache.maven.surefire.api.testset.IncludedExcludedPatternse9dcd696bf90972f
    org.apache.maven.surefire.api.testset.ResolvedTest89f52bebbeb73147
    org.apache.maven.surefire.api.testset.ResolvedTest.ClassMatcherc5f953b9f15d7ab4
    org.apache.maven.surefire.api.testset.ResolvedTest.MethodMatcher7b60e64bb228414b
    org.apache.maven.surefire.api.testset.ResolvedTest.Type2a3fe66966797e51
    org.apache.maven.surefire.api.testset.RunOrderParameters54e3b7abf0f0a29a
    org.apache.maven.surefire.api.testset.TestArtifactInfo534706d1cf843371
    org.apache.maven.surefire.api.testset.TestListResolverdf95312288764ee2
    org.apache.maven.surefire.api.testset.TestRequestc693581994b610fb
    org.apache.maven.surefire.api.util.CloseableIterator1bb59460a90e1562
    org.apache.maven.surefire.api.util.DefaultRunOrderCalculator2be55f855ffc9c23
    org.apache.maven.surefire.api.util.DefaultScanResult3abe973f1a2038a4
    org.apache.maven.surefire.api.util.ReflectionUtils463b61419dafb4bc
    org.apache.maven.surefire.api.util.RunOrdera5c43ed7ff239d28
    org.apache.maven.surefire.api.util.TestsToRun1a59fa62362c2dd4
    org.apache.maven.surefire.api.util.TestsToRun.ClassesIterator3054f1187d144893
    org.apache.maven.surefire.api.util.internal.AbstractNoninterruptibleReadableChannelb76efd5ee4f6a78a
    org.apache.maven.surefire.api.util.internal.AbstractNoninterruptibleWritableChannel7b40a9206100f626
    org.apache.maven.surefire.api.util.internal.Channelsa28ebb2dc3d003c6
    org.apache.maven.surefire.api.util.internal.Channels.31911457c5208109a
    org.apache.maven.surefire.api.util.internal.Channels.461df49d28956b732
    org.apache.maven.surefire.api.util.internal.ClassMethod831eee1f29d6b004
    org.apache.maven.surefire.api.util.internal.DaemonThreadFactory4065ee5e2ad99385
    org.apache.maven.surefire.api.util.internal.DaemonThreadFactory.NamedThreadFactory0dc63f2f250c8f58
    org.apache.maven.surefire.api.util.internal.DumpFileUtils260268350116ea1a
    org.apache.maven.surefire.api.util.internal.ImmutableMapc8d76b0bb433e1e6
    org.apache.maven.surefire.api.util.internal.ImmutableMap.Node61855d8450e86cb5
    org.apache.maven.surefire.api.util.internal.ObjectUtilsd0584b88701e9b97
    org.apache.maven.surefire.api.util.internal.TestClassMethodNameUtilsa01f540094a55e8c
    org.apache.maven.surefire.booter.AbstractPathConfiguration2ad3d057ec281500
    org.apache.maven.surefire.booter.BooterDeserializera2a1a3132d868a74
    org.apache.maven.surefire.booter.ClassLoaderConfiguration5bafac5e09ac0782
    org.apache.maven.surefire.booter.Classpath81f738f937cf4b38
    org.apache.maven.surefire.booter.ClasspathConfigurationb651758fedc3de2d
    org.apache.maven.surefire.booter.CommandReader440cf8805d3444be
    org.apache.maven.surefire.booter.CommandReader.16e995a711f46e676
    org.apache.maven.surefire.booter.CommandReader.CommandRunnable7f7bfee61ebca85e
    org.apache.maven.surefire.booter.ForkedBooterff24aeec916b680b
    org.apache.maven.surefire.booter.ForkedBooter.173179ebb6b41b643
    org.apache.maven.surefire.booter.ForkedBooter.3c51baabea2b75554
    org.apache.maven.surefire.booter.ForkedBooter.468ca1df4a9ada348
    org.apache.maven.surefire.booter.ForkedBooter.608fe853c879dd1a6
    org.apache.maven.surefire.booter.ForkedBooter.78cca77fe0fd3c98d
    org.apache.maven.surefire.booter.ForkedBooter.8779c6068c1dac1db
    org.apache.maven.surefire.booter.ForkedBooter.PingScheduler6e83f53202050979
    org.apache.maven.surefire.booter.ForkedNodeArge055a24d27c554f3
    org.apache.maven.surefire.booter.PpidChecker921ca312a6f63114
    org.apache.maven.surefire.booter.ProcessCheckerType9c8497621409bb1e
    org.apache.maven.surefire.booter.PropertiesWrapperc4362cb430c125af
    org.apache.maven.surefire.booter.ProviderConfiguration84eb716577efc3a7
    org.apache.maven.surefire.booter.StartupConfigurationf457135a627728a6
    org.apache.maven.surefire.booter.SystemPropertyManager0446c7c116836016
    org.apache.maven.surefire.booter.TypeEncodedValue1b039936542eee72
    org.apache.maven.surefire.booter.spi.AbstractMasterProcessChannelProcessorFactoryc30b5b062f066468
    org.apache.maven.surefire.booter.spi.AbstractMasterProcessChannelProcessorFactory.1644e111f23817fd3
    org.apache.maven.surefire.booter.spi.AbstractMasterProcessChannelProcessorFactory.247b08c480603fa8a
    org.apache.maven.surefire.booter.spi.CommandChannelDecoder65f2965c86411193
    org.apache.maven.surefire.booter.spi.EventChannelEncoder114071f00780f71e
    org.apache.maven.surefire.booter.spi.EventChannelEncoder.StackTracee7231bc2c7014c40
    org.apache.maven.surefire.booter.spi.LegacyMasterProcessChannelProcessorFactoryb54085754461a0d1
    org.apache.maven.surefire.booter.spi.SurefireMasterProcessChannelProcessorFactory132a213649249d64
    org.apache.maven.surefire.booter.stream.CommandDecoder0d40efcc428f82e2
    org.apache.maven.surefire.booter.stream.CommandDecoder.19d88d04fa41adab4
    org.apache.maven.surefire.booter.stream.EventEncoder4bdbe84daf58c435
    org.apache.maven.surefire.common.junit3.JUnit3TestCheckerbbad74a9945614a4
    org.apache.maven.surefire.common.junit4.JUnit4ProviderUtilfa2afc137d4ba7b3
    org.apache.maven.surefire.common.junit4.JUnit4Reflector23b83cd8942b7f95
    org.apache.maven.surefire.common.junit4.JUnit4RunListenerd8d5e5130dcf4b9b
    org.apache.maven.surefire.common.junit4.JUnit4RunListenerFactoryccfd1352f097d7b8
    org.apache.maven.surefire.common.junit4.JUnit4TestCheckerf6cf831ca6699119
    org.apache.maven.surefire.common.junit4.JUnitTestFailureListener03f07d8828d7aca4
    org.apache.maven.surefire.common.junit4.Notifiera943b086c230616e
    org.apache.maven.surefire.junit4.JUnit4Provider5d773610b092faec
    org.apache.maven.surefire.junit4.JUnit4Provider.1e7b4bc1546ba10b9
    org.apache.maven.surefire.report.ClassMethodIndexer8b31a053539323b7
    org.apache.maven.surefire.shared.lang3.JavaVersion4e21c3be19560aac
    org.apache.maven.surefire.shared.lang3.SystemUtilse5eafc9ce14dcbec
    org.apache.maven.surefire.shared.lang3.math.NumberUtils11e46630af73f131
    org.apache.maven.surefire.shared.utils.StringUtilsabd8480c7152bf46
    org.apache.maven.surefire.shared.utils.cli.ShutdownHookUtils011b23cd829ec86c
    org.apache.velocity.Templatec72326f66c085d1e
    org.apache.velocity.VelocityContext8ed590292b87a588
    org.apache.velocity.app.VelocityEngine9c939265034e0ab2
    org.apache.velocity.app.event.EventCartridgeded346c7951f1697
    org.apache.velocity.app.event.EventHandlerUtil5ac88b357fcf707c
    org.apache.velocity.context.AbstractContext7c2c19e800108a7b
    org.apache.velocity.context.InternalContextAdapterImpl7718d6c7d6f01429
    org.apache.velocity.context.InternalContextBase10fb0c7430dc4018
    org.apache.velocity.runtime.ParserConfigurationbcd56b6221db3c90
    org.apache.velocity.runtime.ParserPoolImpl2a25b051a66adee1
    org.apache.velocity.runtime.RuntimeConstants.SpaceGobbling1008e6924d8f311e
    org.apache.velocity.runtime.RuntimeInstancef8e2f14c6655a562
    org.apache.velocity.runtime.VelocimacroFactory1e9ea54492c3b0d1
    org.apache.velocity.runtime.VelocimacroManager01dfc0b62e0d84ab
    org.apache.velocity.runtime.VelocimacroManager.MacroEntry26d330eaf2fd31ac
    org.apache.velocity.runtime.directive.Block0dc2ea33bfdf1c8e
    org.apache.velocity.runtime.directive.Break9c4c04e7b7293d93
    org.apache.velocity.runtime.directive.Define2da211af6dc4adf2
    org.apache.velocity.runtime.directive.Directive114c6db128f09cfd
    org.apache.velocity.runtime.directive.Evaluatef1de1a698437317b
    org.apache.velocity.runtime.directive.Foreach795e04f024e903bd
    org.apache.velocity.runtime.directive.ForeachScoped638aec353b474e0
    org.apache.velocity.runtime.directive.Include38dbf0ece5fd3ed8
    org.apache.velocity.runtime.directive.InputBase7ab262413b0572f5
    org.apache.velocity.runtime.directive.Macro44425fcba4519651
    org.apache.velocity.runtime.directive.Macro.MacroArga252d6a716c1fbfc
    org.apache.velocity.runtime.directive.Parse73cd754f962b4f40
    org.apache.velocity.runtime.directive.RuntimeMacro11282b3ae9496214
    org.apache.velocity.runtime.directive.Scopedd64d33559d0c3b4
    org.apache.velocity.runtime.directive.Stop4a8d463f36f9ba3a
    org.apache.velocity.runtime.directive.Stop.146208084d16b60f9
    org.apache.velocity.runtime.directive.StopCommand13468231892e1528
    org.apache.velocity.runtime.directive.VelocimacroProxy42117ecd94da7939
    org.apache.velocity.runtime.parser.LogContext8bd2ab8c45781ea3
    org.apache.velocity.runtime.parser.LogContext.17793b8711118b163
    org.apache.velocity.runtime.parser.Parsere4801b5bb37f6031
    org.apache.velocity.runtime.parser.StandardParser8eaabc4fd8395c5d
    org.apache.velocity.runtime.parser.StandardParser.JJCalls1cd79adce175f30b
    org.apache.velocity.runtime.parser.StandardParser.LookaheadSuccess217f6689d0bd148c
    org.apache.velocity.runtime.parser.StandardParserTokenManagerb513a058a5d25bce
    org.apache.velocity.runtime.parser.StandardParserTokenManager.ParserStatee58c59d922a2d1c0
    org.apache.velocity.runtime.parser.Token035daceb00979634
    org.apache.velocity.runtime.parser.VelocityCharStream0fdd7275e5a6d511
    org.apache.velocity.runtime.parser.node.ASTAddNodef7a360fd0ceeb41f
    org.apache.velocity.runtime.parser.node.ASTAndNodecd14b0b2bfc9c2ef
    org.apache.velocity.runtime.parser.node.ASTBinaryOperator8c2ae99e76bfc2d2
    org.apache.velocity.runtime.parser.node.ASTBlock7426c59d7df1a96a
    org.apache.velocity.runtime.parser.node.ASTCommentb6f6e96d43d8ba8f
    org.apache.velocity.runtime.parser.node.ASTComparisonNode7352bd9088770a83
    org.apache.velocity.runtime.parser.node.ASTDirectivebdd000d27e79daab
    org.apache.velocity.runtime.parser.node.ASTEQNodea05682a5af313370
    org.apache.velocity.runtime.parser.node.ASTElseIfStatementcd01606457a3b636
    org.apache.velocity.runtime.parser.node.ASTElseStatement10b9ce434f126173
    org.apache.velocity.runtime.parser.node.ASTExpressione191b0102927df45
    org.apache.velocity.runtime.parser.node.ASTFalsec15949d123a4de12
    org.apache.velocity.runtime.parser.node.ASTGENodedf404befde820934
    org.apache.velocity.runtime.parser.node.ASTGTNode429c741b43e4423e
    org.apache.velocity.runtime.parser.node.ASTIdentifier681e842674a46467
    org.apache.velocity.runtime.parser.node.ASTIfStatement39cb3d2cbbef8dff
    org.apache.velocity.runtime.parser.node.ASTIndex47f90751ba64c89a
    org.apache.velocity.runtime.parser.node.ASTIntegerLiterale5e50c14ab3e4acc
    org.apache.velocity.runtime.parser.node.ASTLTNode23c5285841d49ed9
    org.apache.velocity.runtime.parser.node.ASTLogicalOperatorfa236397c36b4771
    org.apache.velocity.runtime.parser.node.ASTMathNode22d06eed949108ef
    org.apache.velocity.runtime.parser.node.ASTMethodcc1d6a841b9eec04
    org.apache.velocity.runtime.parser.node.ASTMethod.MethodCacheKeyaf9e51370239a9c4
    org.apache.velocity.runtime.parser.node.ASTMulNode4b3194324ef888d5
    org.apache.velocity.runtime.parser.node.ASTNENode7b01e9808eb0a0ab
    org.apache.velocity.runtime.parser.node.ASTNotNodea51f40cc97c36424
    org.apache.velocity.runtime.parser.node.ASTOrNoded0e443267103c4b8
    org.apache.velocity.runtime.parser.node.ASTReferencec9c9373aa8849276
    org.apache.velocity.runtime.parser.node.ASTSetDirective55fd0a5c9cb9c430
    org.apache.velocity.runtime.parser.node.ASTStringLiteral2f67a986ad5a26f3
    org.apache.velocity.runtime.parser.node.ASTSubtractNode7fc819bc7243ce75
    org.apache.velocity.runtime.parser.node.ASTText389346874b271430
    org.apache.velocity.runtime.parser.node.ASTTextblocke99e39fdf682a6db
    org.apache.velocity.runtime.parser.node.ASTTrued1f94f133f80edab
    org.apache.velocity.runtime.parser.node.ASTWord66d75ec7205a4907
    org.apache.velocity.runtime.parser.node.ASTprocessde4ee2191c1ff63c
    org.apache.velocity.runtime.parser.node.AbstractExecutora0e3576d80f60b4f
    org.apache.velocity.runtime.parser.node.BooleanPropertyExecutorfd4eb69c74029461
    org.apache.velocity.runtime.parser.node.GetExecutor2a235ba3f58955fd
    org.apache.velocity.runtime.parser.node.JJTStandardParserState47563f73993d088b
    org.apache.velocity.runtime.parser.node.MapGetExecutor7461d24a11538750
    org.apache.velocity.runtime.parser.node.MathUtils36743f4dc547ee5e
    org.apache.velocity.runtime.parser.node.NodeUtils3c8679658a17f207
    org.apache.velocity.runtime.parser.node.PropertyExecutor94d607bd85fcb1de
    org.apache.velocity.runtime.parser.node.SimpleNode9462478b614a02dd
    org.apache.velocity.runtime.resource.Resourcee1da0d5e9e84f4f3
    org.apache.velocity.runtime.resource.ResourceCacheImpl7ec381111390acb1
    org.apache.velocity.runtime.resource.ResourceCacheImpl.LRUMap25cb4289e6f518c8
    org.apache.velocity.runtime.resource.ResourceManagerImpla50249c3c61edcd2
    org.apache.velocity.runtime.resource.loader.FileResourceLoader61d50ebf2ba17760
    org.apache.velocity.runtime.resource.loader.ResourceLoader8fe06021f04e44d1
    org.apache.velocity.runtime.resource.loader.ResourceLoaderFactory184d14a10476fd52
    org.apache.velocity.shaded.commons.io.FilenameUtilsd4f97baf766e1dee
    org.apache.velocity.util.ArrayIterator61b1e41a87bed05f
    org.apache.velocity.util.ArrayListWrapper47449ccd52296ca6
    org.apache.velocity.util.ClassUtils0740c02f55974cb5
    org.apache.velocity.util.DeprecationAwareExtProperties27d5b5c05e6a6fec
    org.apache.velocity.util.DuckTypee50af2bb413f166d
    org.apache.velocity.util.DuckType.Typesbae2a6708b77175a
    org.apache.velocity.util.ExtPropertiesea3b60c6666140fe
    org.apache.velocity.util.ExtProperties.PropertiesReaderb618a7014140c253
    org.apache.velocity.util.SimplePool4fae8cabf20b16fc
    org.apache.velocity.util.StringBuilderWriterf611775ab19f47c9
    org.apache.velocity.util.introspection.ClassFieldMap08c07ae2515b1084
    org.apache.velocity.util.introspection.ClassMape8aa0059d0c24712
    org.apache.velocity.util.introspection.ClassMap.MethodCachee879a333bfa71058
    org.apache.velocity.util.introspection.Info7b0899deac2cfcb4
    org.apache.velocity.util.introspection.IntrospectionCacheDatada4e3622ea8bd189
    org.apache.velocity.util.introspection.IntrospectionUtils5600b482789873c7
    org.apache.velocity.util.introspection.Introspectorea0eb025828bb25b
    org.apache.velocity.util.introspection.IntrospectorBasea9523d1d3d9ec81c
    org.apache.velocity.util.introspection.IntrospectorCachecf24bd3e12cff77b
    org.apache.velocity.util.introspection.MethodMap5bc43b57e0eb708b
    org.apache.velocity.util.introspection.MethodMap.Matche9df9a21d7dc07e3
    org.apache.velocity.util.introspection.TypeConversionHandlerImpl2739aba645c510f3
    org.apache.velocity.util.introspection.UberspectImpl9ff3662a2a574180
    org.apache.velocity.util.introspection.UberspectImpl.VelGetterImpl600761c1eb266a6b
    org.apache.velocity.util.introspection.UberspectImpl.VelMethodImpla1520f1ed8867aa3
    org.apache.xalan.processor.TransformerFactoryImpl9d59b9e783463c86
    org.apache.xalan.templates.ElemTemplateElementbdc0d82e7bbe3fba
    org.apache.xalan.templates.FuncKey4c0844f6d3be77cd
    org.apache.xalan.templates.OutputPropertiesd0b5c8e6a517a42d
    org.apache.xalan.transformer.SerializerSwitcherc5d2ebc66301c7fe
    org.apache.xalan.transformer.TransformerIdentityImplbd718a311deaaf2e
    org.apache.xerces.dom.AttrImpl8fa57ecca74d93f3
    org.apache.xerces.dom.AttributeMap1208eeb0c317f9a8
    org.apache.xerces.dom.CDATASectionImpl05a5b2f009639745
    org.apache.xerces.dom.CharacterDataImplaf2999f6c6f16022
    org.apache.xerces.dom.CharacterDataImpl.1aa2ea0f84e15cb5f
    org.apache.xerces.dom.ChildNode96886165e748c549
    org.apache.xerces.dom.CommentImpl0ab89ebb6273ee01
    org.apache.xerces.dom.CoreDocumentImpl60c2944144ade810
    org.apache.xerces.dom.DeepNodeListImpl97224578c95f53e6
    org.apache.xerces.dom.DeferredAttrImpl2b2773eac8785578
    org.apache.xerces.dom.DeferredCDATASectionImpl1c3ea81e5adf3f6a
    org.apache.xerces.dom.DeferredCommentImplaee9cd9d760a7002
    org.apache.xerces.dom.DeferredDocumentImpl917630d7d92d0c23
    org.apache.xerces.dom.DeferredDocumentImpl.RefCount1f46996e59514962
    org.apache.xerces.dom.DeferredElementImpla115073999e131fb
    org.apache.xerces.dom.DeferredTextImple2f70192a64423a9
    org.apache.xerces.dom.DocumentImpl9256b8d63c9b4fd9
    org.apache.xerces.dom.ElementImpl6009adb9702e0645
    org.apache.xerces.dom.NamedNodeMapImpl8392ffc7dd5b584f
    org.apache.xerces.dom.NodeImpl2ac2c6a0250ff742
    org.apache.xerces.dom.NodeListCache5faef04ef70c9f17
    org.apache.xerces.dom.ParentNode8659644b2b20243d
    org.apache.xerces.dom.TextImplbdd0838dd03f01d7
    org.apache.xerces.impl.Constantsa815025e8bfc3641
    org.apache.xerces.impl.Constants.ArrayEnumeration929d153955f16a18
    org.apache.xerces.impl.XMLDTDScannerImpl0ceab68caeabb5bd
    org.apache.xerces.impl.XMLDocumentFragmentScannerImplf66c1f59a35db5db
    org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.ElementStack5092662a55f68b1b
    org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.FragmentContentDispatcher04b727a93d455ba8
    org.apache.xerces.impl.XMLDocumentScannerImple2587fb3df27d4d6
    org.apache.xerces.impl.XMLDocumentScannerImpl.ContentDispatcher5e8688b4476f7d87
    org.apache.xerces.impl.XMLDocumentScannerImpl.DTDDispatcherd13e3319cc526f87
    org.apache.xerces.impl.XMLDocumentScannerImpl.PrologDispatchercff47bf5e00b3bff
    org.apache.xerces.impl.XMLDocumentScannerImpl.TrailingMiscDispatcherc7b214b2d8148ad0
    org.apache.xerces.impl.XMLDocumentScannerImpl.XMLDeclDispatcher905c73ea8ebd3fb8
    org.apache.xerces.impl.XMLEntityManager04ceab06248a216d
    org.apache.xerces.impl.XMLEntityManager.1bb865e7bc2c442b3
    org.apache.xerces.impl.XMLEntityManager.ByteBufferPoola322defbaf63fdc0
    org.apache.xerces.impl.XMLEntityManager.CharacterBuffer12c5b42b58b47a94
    org.apache.xerces.impl.XMLEntityManager.CharacterBufferPoolc9afee8a27afdf8b
    org.apache.xerces.impl.XMLEntityManager.Entity8d6dc89d3fc555e5
    org.apache.xerces.impl.XMLEntityManager.ExternalEntityf046126d300561e8
    org.apache.xerces.impl.XMLEntityManager.RewindableInputStreamafbaf76d3ae9b52f
    org.apache.xerces.impl.XMLEntityManager.ScannedEntityf5d34eec17a4135f
    org.apache.xerces.impl.XMLEntityScanner572c4107b145304c
    org.apache.xerces.impl.XMLErrorReporter673d484209ae93aa
    org.apache.xerces.impl.XMLNSDocumentScannerImpl8df41de3eb0a672d
    org.apache.xerces.impl.XMLNSDocumentScannerImpl.NSContentDispatcher02d084bd31e3aa1c
    org.apache.xerces.impl.XMLScannerab68e9ffdb6e9317
    org.apache.xerces.impl.XMLVersionDetectord216aca10004226c
    org.apache.xerces.impl.dtd.DTDGrammarBucket2224eacf45284f31
    org.apache.xerces.impl.dtd.XMLAttributeDecl46e4635b06cbf39a
    org.apache.xerces.impl.dtd.XMLDTDDescriptionb489ecda2f5a9495
    org.apache.xerces.impl.dtd.XMLDTDProcessor6f796a8354ef015a
    org.apache.xerces.impl.dtd.XMLDTDValidator5422057428ffcce9
    org.apache.xerces.impl.dtd.XMLElementDeclbabada4539fdcc2e
    org.apache.xerces.impl.dtd.XMLEntityDecl21e05a3c0abdeb50
    org.apache.xerces.impl.dtd.XMLNSDTDValidator5a8a64e1b504f6bd
    org.apache.xerces.impl.dtd.XMLSimpleTypeb28eaccdd7ac5d6c
    org.apache.xerces.impl.dtd.models.CMNodef6da5a5607c6c01e
    org.apache.xerces.impl.dtd.models.CMStateSet308d6336a8bc1c13
    org.apache.xerces.impl.dv.DTDDVFactoryfc6fb45244255384
    org.apache.xerces.impl.dv.DatatypeException428d8ad3a40baf3b
    org.apache.xerces.impl.dv.InvalidDatatypeValueExceptionee155db07f127066
    org.apache.xerces.impl.dv.ObjectFactorye93007a33555ed64
    org.apache.xerces.impl.dv.SchemaDVFactory4a038c3952e1e579
    org.apache.xerces.impl.dv.SecuritySupport22a702e42b664254
    org.apache.xerces.impl.dv.SecuritySupport.18f9e4b3ee6a9c52d
    org.apache.xerces.impl.dv.SecuritySupport.237f6696e184a00a5
    org.apache.xerces.impl.dv.ValidatedInfoc44d3051e1fefb6c
    org.apache.xerces.impl.dv.XSFacets5aa66d897b011514
    org.apache.xerces.impl.dv.dtd.DTDDVFactoryImpl01eb5a84c29496a2
    org.apache.xerces.impl.dv.dtd.ENTITYDatatypeValidator5e69f788c026a00f
    org.apache.xerces.impl.dv.dtd.IDDatatypeValidatorcb7a5922e7cd926a
    org.apache.xerces.impl.dv.dtd.IDREFDatatypeValidator6bd828a544290567
    org.apache.xerces.impl.dv.dtd.ListDatatypeValidator8413e1de4a58a9ff
    org.apache.xerces.impl.dv.dtd.NMTOKENDatatypeValidatorb215e61cfcb76a64
    org.apache.xerces.impl.dv.dtd.NOTATIONDatatypeValidatorb693001e6fffd70e
    org.apache.xerces.impl.dv.dtd.StringDatatypeValidator63695ebcff73b37f
    org.apache.xerces.impl.dv.xs.AbstractDateTimeDV5f3febfa6eb976a0
    org.apache.xerces.impl.dv.xs.AbstractDateTimeDV.DateTimeDatadf715622dc507fe3
    org.apache.xerces.impl.dv.xs.AnyAtomicDV8a5fa4bfb5393d0e
    org.apache.xerces.impl.dv.xs.AnySimpleDV352f2d7297f5c41d
    org.apache.xerces.impl.dv.xs.AnyURIDV8088a752bffcd597
    org.apache.xerces.impl.dv.xs.Base64BinaryDV20f79ae5ebece689
    org.apache.xerces.impl.dv.xs.BooleanDV420b615d770b86a2
    org.apache.xerces.impl.dv.xs.DateDV22fc3944a1ff7978
    org.apache.xerces.impl.dv.xs.DateTimeDV2588180850f84029
    org.apache.xerces.impl.dv.xs.DayDVf30fde8776d762d5
    org.apache.xerces.impl.dv.xs.DayTimeDurationDVe9b4f735e73b78b4
    org.apache.xerces.impl.dv.xs.DecimalDV1b49f9c408dc0b07
    org.apache.xerces.impl.dv.xs.DecimalDV.XDecimal6f14bab21566a7f0
    org.apache.xerces.impl.dv.xs.DoubleDV1ef7a8e20f892b6b
    org.apache.xerces.impl.dv.xs.DurationDVe8f22016768df7b5
    org.apache.xerces.impl.dv.xs.EntityDV572a999d58ba4680
    org.apache.xerces.impl.dv.xs.FloatDV08466aad79f1dc66
    org.apache.xerces.impl.dv.xs.HexBinaryDVe69a1e3394c42fde
    org.apache.xerces.impl.dv.xs.IDDV0b10cba6ea60faa2
    org.apache.xerces.impl.dv.xs.IDREFDVdd769d61639c89b2
    org.apache.xerces.impl.dv.xs.IntegerDVea1fb7382a775e87
    org.apache.xerces.impl.dv.xs.ListDVde65ecc17b19dcf5
    org.apache.xerces.impl.dv.xs.ListDV.ListDataba770277eafdf1f0
    org.apache.xerces.impl.dv.xs.MonthDV1fe4874f34f7e58b
    org.apache.xerces.impl.dv.xs.MonthDayDVab5e8a42b0168ba2
    org.apache.xerces.impl.dv.xs.PrecisionDecimalDVb5e073805904298c
    org.apache.xerces.impl.dv.xs.QNameDV1a680d98c3731fd4
    org.apache.xerces.impl.dv.xs.QNameDV.XQNameca97240eadd29e0f
    org.apache.xerces.impl.dv.xs.SchemaDVFactoryImplc0c1843c58cb400f
    org.apache.xerces.impl.dv.xs.StringDV37d47e43f3ec7ff9
    org.apache.xerces.impl.dv.xs.TimeDV50e43a72299557dd
    org.apache.xerces.impl.dv.xs.TypeValidator1d0e4eacb7d6ab03
    org.apache.xerces.impl.dv.xs.UnionDV9058bb084a4eeba9
    org.apache.xerces.impl.dv.xs.XSSimpleTypeDecl4411b005db0bd3cf
    org.apache.xerces.impl.dv.xs.XSSimpleTypeDecl.1f5fdca02b939b766
    org.apache.xerces.impl.dv.xs.XSSimpleTypeDecl.2f426ca8f1929b766
    org.apache.xerces.impl.dv.xs.XSSimpleTypeDecl.ValidationContextImplc9ff1917dd6b12b1
    org.apache.xerces.impl.dv.xs.YearDVc1ff862afb2f801d
    org.apache.xerces.impl.dv.xs.YearMonthDV9916e7c405e4bf27
    org.apache.xerces.impl.dv.xs.YearMonthDurationDVe79e97ace62d8b36
    org.apache.xerces.impl.io.UTF8Readerda0249de90cda2bf
    org.apache.xerces.impl.msg.XMLMessageFormatter9308971d48383433
    org.apache.xerces.impl.validation.ConfigurableValidationState563f65915c21b757
    org.apache.xerces.impl.validation.ValidationManager80820e1751c94dd9
    org.apache.xerces.impl.validation.ValidationState4accdcc5718c1b8f
    org.apache.xerces.impl.xpath.regex.Opc441fc7c6c72bac3
    org.apache.xerces.impl.xpath.regex.Op.CharOp8912c0141e0d9d6d
    org.apache.xerces.impl.xpath.regex.Op.ChildOpc1d4616a46079678
    org.apache.xerces.impl.xpath.regex.Op.ModifierOpb3809398b9938708
    org.apache.xerces.impl.xpath.regex.Op.RangeOp68cf9886bd1005b9
    org.apache.xerces.impl.xpath.regex.Op.StringOpda35aa8732cb642f
    org.apache.xerces.impl.xpath.regex.Op.UnionOp015297eecb7ac5b6
    org.apache.xerces.impl.xpath.regex.ParserForXMLSchema4c1450596c70a904
    org.apache.xerces.impl.xpath.regex.REUtil1d5257ffecc278e8
    org.apache.xerces.impl.xpath.regex.RangeToken64026b6a899d8d48
    org.apache.xerces.impl.xpath.regex.RegexParsere9ce4cc1b271254f
    org.apache.xerces.impl.xpath.regex.RegularExpression65c4497499172454
    org.apache.xerces.impl.xpath.regex.RegularExpression.Context3cfadb61b5bbc546
    org.apache.xerces.impl.xpath.regex.Tokenafd8dff82405215d
    org.apache.xerces.impl.xpath.regex.Token.CharToken5baab981167317a2
    org.apache.xerces.impl.xpath.regex.Token.ClosureToken0345678fe7d8c39c
    org.apache.xerces.impl.xpath.regex.Token.ConcatTokenddfe295c93836640
    org.apache.xerces.impl.xpath.regex.Token.ParenToken3ce1a9f224a174cf
    org.apache.xerces.impl.xpath.regex.Token.StringToken49e1eb5e1dd579e9
    org.apache.xerces.impl.xpath.regex.Token.UnionToken45f190a395af898b
    org.apache.xerces.impl.xs.AttributePSVImplb10abedead38ffb4
    org.apache.xerces.impl.xs.ElementPSVImpl201848dcd7e4fbe9
    org.apache.xerces.impl.xs.SchemaGrammar8bd91959e77c5ba3
    org.apache.xerces.impl.xs.SchemaGrammar.BuiltinAttrDecl2deebbcce02d9bed
    org.apache.xerces.impl.xs.SchemaGrammar.BuiltinSchemaGrammar51deefa7dfd71a4b
    org.apache.xerces.impl.xs.SchemaGrammar.Schema4Annotations7714a2ef652a9bb2
    org.apache.xerces.impl.xs.SchemaGrammar.XSAnyTyped28d66d2d5fde167
    org.apache.xerces.impl.xs.SchemaNamespaceSupport7ef5e08c82008021
    org.apache.xerces.impl.xs.SchemaSymbols76323b24153de642
    org.apache.xerces.impl.xs.SubstitutionGroupHandler0f79fe05178c9186
    org.apache.xerces.impl.xs.SubstitutionGroupHandler.OneSubGroupaded0d357c6e4e5d
    org.apache.xerces.impl.xs.XMLSchemaLoaderc08b44af156bdf87
    org.apache.xerces.impl.xs.XMLSchemaLoader.LocationArray1aa7990648d00736
    org.apache.xerces.impl.xs.XMLSchemaValidator45ac14e2531edabe
    org.apache.xerces.impl.xs.XMLSchemaValidator.LocalIDKeye5cc362c23cf6c42
    org.apache.xerces.impl.xs.XMLSchemaValidator.ValueStoreCache56b1ef3a8ac2aac6
    org.apache.xerces.impl.xs.XMLSchemaValidator.XPathMatcherStack94be5ed1b4b31fb3
    org.apache.xerces.impl.xs.XMLSchemaValidator.XSIErrorReporterce31d2cd1d4c823d
    org.apache.xerces.impl.xs.XSAnnotationImpl33a312f5885d89f4
    org.apache.xerces.impl.xs.XSAttributeDecl2bc80f7ce83ed28b
    org.apache.xerces.impl.xs.XSAttributeGroupDeclc65e143f06724f6b
    org.apache.xerces.impl.xs.XSAttributeUseImpl3b93d56086e922b2
    org.apache.xerces.impl.xs.XSComplexTypeDecl29f142878763c3bc
    org.apache.xerces.impl.xs.XSConstraints75cc39a826f69a99
    org.apache.xerces.impl.xs.XSDDescription4d790791e38aa067
    org.apache.xerces.impl.xs.XSDeclarationPool6eb0d761d2bf125b
    org.apache.xerces.impl.xs.XSElementDecl0c947515279343cf
    org.apache.xerces.impl.xs.XSGrammarBucketd7018ff8113afa03
    org.apache.xerces.impl.xs.XSMessageFormattere7d0071876ec5157
    org.apache.xerces.impl.xs.XSModelGroupImpl551c86388d1ac19e
    org.apache.xerces.impl.xs.XSParticleDecl444de9cb1f6f7367
    org.apache.xerces.impl.xs.XSWildcardDecl736b68fd1f56b0ef
    org.apache.xerces.impl.xs.models.CMBuilderabfdab44fe020875
    org.apache.xerces.impl.xs.models.CMNodeFactoryc30474da1d8b9174
    org.apache.xerces.impl.xs.models.XSAllCM3d3bc7a115d0b9cb
    org.apache.xerces.impl.xs.models.XSCMBinOp3e0191c7688d4964
    org.apache.xerces.impl.xs.models.XSCMLeafc38c2ae91fd4d2b1
    org.apache.xerces.impl.xs.models.XSCMUniOp043736ce272df8a9
    org.apache.xerces.impl.xs.models.XSDFACM1e0e93f28ff7e284
    org.apache.xerces.impl.xs.models.XSEmptyCM5b312fdec64b4b04
    org.apache.xerces.impl.xs.opti.AttrImpl9ca0dd929e63b963
    org.apache.xerces.impl.xs.opti.DefaultDocumentbf0a70ed567f7e83
    org.apache.xerces.impl.xs.opti.DefaultElementd3ce5283611cd297
    org.apache.xerces.impl.xs.opti.DefaultNodeb73b1d188f702dca
    org.apache.xerces.impl.xs.opti.DefaultXMLDocumentHandler7c0d590c13b7d051
    org.apache.xerces.impl.xs.opti.ElementImpl15ea8df13958472a
    org.apache.xerces.impl.xs.opti.NamedNodeMapImpl3d99c390aec8685e
    org.apache.xerces.impl.xs.opti.NodeImplff906a0b83465279
    org.apache.xerces.impl.xs.opti.SchemaDOM055b1ac0f9555e6a
    org.apache.xerces.impl.xs.opti.SchemaDOMParsera5ee2b3131fd253a
    org.apache.xerces.impl.xs.opti.SchemaDOMParser.BooleanStack55549a2a7cc6bad0
    org.apache.xerces.impl.xs.opti.SchemaParsingConfiga86452d91007b592
    org.apache.xerces.impl.xs.traversers.Container589a0071a808f5cf
    org.apache.xerces.impl.xs.traversers.LargeContainer3533da4ed3a0965c
    org.apache.xerces.impl.xs.traversers.OneAttr54e4d08c461c59c4
    org.apache.xerces.impl.xs.traversers.SmallContainer3b7c8ecf4aae92a4
    org.apache.xerces.impl.xs.traversers.XSAttributeChecker04de3dfdeccd403f
    org.apache.xerces.impl.xs.traversers.XSDAbstractIDConstraintTraverser7c13dcca600668e3
    org.apache.xerces.impl.xs.traversers.XSDAbstractParticleTraversercd0add85690bb16e
    org.apache.xerces.impl.xs.traversers.XSDAbstractParticleTraverser.ParticleArray27273cd1f7eca5ed
    org.apache.xerces.impl.xs.traversers.XSDAbstractTraverser86e9859fc2adf1dc
    org.apache.xerces.impl.xs.traversers.XSDAbstractTraverser.FacetInfo45c68f2fb8a65023
    org.apache.xerces.impl.xs.traversers.XSDAttributeGroupTraverser080596b552c27641
    org.apache.xerces.impl.xs.traversers.XSDAttributeTraversere59a538ff94ba6c2
    org.apache.xerces.impl.xs.traversers.XSDComplexTypeTraverser276a1e9f95b48960
    org.apache.xerces.impl.xs.traversers.XSDElementTraverser9d8df3a1d5808fd9
    org.apache.xerces.impl.xs.traversers.XSDGroupTraverserbd8fc5e77016b225
    org.apache.xerces.impl.xs.traversers.XSDHandler4cead45455d699e0
    org.apache.xerces.impl.xs.traversers.XSDHandler.XSDKeye1d29357b4686063
    org.apache.xerces.impl.xs.traversers.XSDKeyrefTraverserf5f0a5d9946e2139
    org.apache.xerces.impl.xs.traversers.XSDNotationTraverseraa841eaf2b4011bb
    org.apache.xerces.impl.xs.traversers.XSDSimpleTypeTraverserc831ab34e408845b
    org.apache.xerces.impl.xs.traversers.XSDUniqueOrKeyTraverser29fb55ace2c949f6
    org.apache.xerces.impl.xs.traversers.XSDWildcardTraverserbe52354c600d17f1
    org.apache.xerces.impl.xs.traversers.XSDocumentInfo2ff4e0280dc29ce9
    org.apache.xerces.impl.xs.util.ShortListImpl545a1c2fd37b9695
    org.apache.xerces.impl.xs.util.ShortListImpl.15b21213f456355a3
    org.apache.xerces.impl.xs.util.SimpleLocator776a2eda0d719d9e
    org.apache.xerces.impl.xs.util.XInt6f1f3dd3cd7f2540
    org.apache.xerces.impl.xs.util.XIntPoold036dae4ceab3cb6
    org.apache.xerces.impl.xs.util.XSObjectListImplbd2cac9b384af381
    org.apache.xerces.impl.xs.util.XSObjectListImpl.1c7514e1d5c9bfcff
    org.apache.xerces.jaxp.DefaultValidationErrorHandler6c25c10d5065f1d4
    org.apache.xerces.jaxp.DocumentBuilderFactoryImpl11c71bb2d1f5deff
    org.apache.xerces.jaxp.DocumentBuilderImple1ef4e8efe9641a5
    org.apache.xerces.jaxp.SAXParserFactoryImpld547c9ded9586081
    org.apache.xerces.jaxp.SAXParserImpl754fc92a88ab9ee5
    org.apache.xerces.jaxp.SAXParserImpl.JAXPSAXParserb425c9f2722eeb09
    org.apache.xerces.jaxp.datatype.DatatypeFactoryImplc8c4c770ca9d119c
    org.apache.xerces.jaxp.datatype.XMLGregorianCalendarImpl37687e0056eb5d32
    org.apache.xerces.jaxp.datatype.XMLGregorianCalendarImpl.Parsera6aae0fd25a17474
    org.apache.xerces.jaxp.validation.AbstractXMLSchema4a4c9115493abd86
    org.apache.xerces.jaxp.validation.DraconianErrorHandler3a8360d611be3e5a
    org.apache.xerces.jaxp.validation.SimpleXMLSchemada5989cad0a520ce
    org.apache.xerces.jaxp.validation.StreamValidatorHelper1b87033e0a985fe1
    org.apache.xerces.jaxp.validation.ValidatorImpl6060b0e85c2de98b
    org.apache.xerces.jaxp.validation.XMLSchemaFactory40567158bdd53887
    org.apache.xerces.jaxp.validation.XMLSchemaFactory.XMLGrammarPoolImplExtension2c7efb503ea844ac
    org.apache.xerces.jaxp.validation.XMLSchemaFactory.XMLGrammarPoolWrapperda856dc49b5e43af
    org.apache.xerces.jaxp.validation.XMLSchemaValidatorComponentManager72c5d710728a0c2d
    org.apache.xerces.parsers.AbstractDOMParser549e5a53091b2b70
    org.apache.xerces.parsers.AbstractSAXParser10a73b288db955f8
    org.apache.xerces.parsers.AbstractSAXParser.29951f28e6e1f22e9
    org.apache.xerces.parsers.AbstractSAXParser.AttributesProxy556c81522bf1f08c
    org.apache.xerces.parsers.AbstractSAXParser.LocatorProxydb4e8b9652a6f22b
    org.apache.xerces.parsers.AbstractXMLDocumentParser8863894dca746b5c
    org.apache.xerces.parsers.BasicParserConfiguration958b01c2367ce20a
    org.apache.xerces.parsers.DOMParser587d331cbd742a98
    org.apache.xerces.parsers.ObjectFactoryc757c5995df24200
    org.apache.xerces.parsers.SAXParser6297dd6cb4aebd4c
    org.apache.xerces.parsers.SecuritySupport0dd1796c902ad6bd
    org.apache.xerces.parsers.SecuritySupport.12dd512aee4faaa4f
    org.apache.xerces.parsers.SecuritySupport.22922557655645a55
    org.apache.xerces.parsers.SecuritySupport.412017a0c1da7e4ec
    org.apache.xerces.parsers.SecuritySupport.629240be163cb8d8e
    org.apache.xerces.parsers.SecuritySupport.70282c605e54f0ca7
    org.apache.xerces.parsers.XIncludeAwareParserConfiguration0d52edf1ea95ce8c
    org.apache.xerces.parsers.XML11Configuration4232068250c66a72
    org.apache.xerces.parsers.XMLParser5ea5d99c949266c4
    org.apache.xerces.util.AugmentationsImpl0c1fe14da46bb416
    org.apache.xerces.util.AugmentationsImpl.AugmentationsItemsContainer63b56783ead2f577
    org.apache.xerces.util.AugmentationsImpl.SmallContainer3fd5ef329d7f0abb
    org.apache.xerces.util.DOMEntityResolverWrapperccc5f375bbcbd81f
    org.apache.xerces.util.DOMUtil8a0e46479af78b62
    org.apache.xerces.util.DefaultErrorHandler99fcb1ecab76f0a4
    org.apache.xerces.util.EntityResolverWrapperae54928d232d4a0f
    org.apache.xerces.util.ErrorHandlerWrapperceb581598ca9223b
    org.apache.xerces.util.IntStack6d86774a62c48823
    org.apache.xerces.util.NamespaceSupport2ec78d35e1dd6396
    org.apache.xerces.util.NamespaceSupport.Prefixes65471e2dafc0f116
    org.apache.xerces.util.ParserConfigurationSettingsb2b8341658db5683
    org.apache.xerces.util.SAXMessageFormatter3f091e452b6ceb44
    org.apache.xerces.util.SecurityManager245b88eb6cd3efde
    org.apache.xerces.util.SymbolHashc538a3dfa3447267
    org.apache.xerces.util.SymbolHash.Entry507b6f95f44c00b0
    org.apache.xerces.util.SymbolTablec57500a0993e2cd1
    org.apache.xerces.util.SymbolTable.Entryed9feab192213eb7
    org.apache.xerces.util.URI884caaebb8950799
    org.apache.xerces.util.XMLAttributesImpl5372548792f8d9a1
    org.apache.xerces.util.XMLAttributesImpl.Attribute4be0ee5403a6dde4
    org.apache.xerces.util.XMLChar19d54097de4c2f40
    org.apache.xerces.util.XMLGrammarPoolImpl44a561a379c0d341
    org.apache.xerces.util.XMLGrammarPoolImpl.Entrya89fc4348bfd4ad3
    org.apache.xerces.util.XMLResourceIdentifierImplfbc9da91fce32602
    org.apache.xerces.util.XMLStringBuffer98e81028fe44707d
    org.apache.xerces.util.XMLSymbolsfb3448511f7b090a
    org.apache.xerces.xni.NamespaceContexta042cfa9211e0090
    org.apache.xerces.xni.QNamee1fbb8aed5fee97e
    org.apache.xerces.xni.XMLStringcd18fb32e73070cb
    org.apache.xerces.xni.XNIExceptionbcf12f9b5bef3cf1
    org.apache.xerces.xni.parser.XMLConfigurationException2e00dcd31070a403
    org.apache.xerces.xni.parser.XMLInputSource9c76a32c97e5c2fb
    org.apache.xerces.xni.parser.XMLParseException97d3d425a7c60e20
    org.apache.xml.dtm.Axis6eb92c3506c5d53a
    org.apache.xml.dtm.DTMAxisTraverser8cda39e0329c33d3
    org.apache.xml.dtm.DTMManager8fdb6ed86bbf40e5
    org.apache.xml.dtm.ObjectFactory8b907856329fbe43
    org.apache.xml.dtm.SecuritySupport355b0bfa498fe620
    org.apache.xml.dtm.SecuritySupport12be2fa8cc5b873724
    org.apache.xml.dtm.SecuritySupport12.110905dd90a2be2f8
    org.apache.xml.dtm.SecuritySupport12.23814cb512b12fc19
    org.apache.xml.dtm.SecuritySupport12.4115eb7d81c0df8dd
    org.apache.xml.dtm.SecuritySupport12.60c146e8d05450179
    org.apache.xml.dtm.SecuritySupport12.7608fed69e18dbe11
    org.apache.xml.dtm.ref.DTMDefaultBaseb214fcc54f48aae5
    org.apache.xml.dtm.ref.DTMDefaultBaseIteratorsd2cfe3ec9706140b
    org.apache.xml.dtm.ref.DTMDefaultBaseTraverserse8f1d265ffa2690c
    org.apache.xml.dtm.ref.DTMDefaultBaseTraversers.AllFromNodeTraverser41f8a982a982b5d8
    org.apache.xml.dtm.ref.DTMDefaultBaseTraversers.AllFromRootTraverserc73f1beb5d2f2e7c
    org.apache.xml.dtm.ref.DTMDefaultBaseTraversers.AttributeTraverser686481dd3ba884f4
    org.apache.xml.dtm.ref.DTMDefaultBaseTraversers.ChildTraversera2c11526ccbd4622
    org.apache.xml.dtm.ref.DTMDefaultBaseTraversers.DescendantFromRootTraversercb6457d5f79098f1
    org.apache.xml.dtm.ref.DTMDefaultBaseTraversers.DescendantOrSelfTraversercb81c513913df626
    org.apache.xml.dtm.ref.DTMDefaultBaseTraversers.DescendantTraverser6686c4a7beb09900
    org.apache.xml.dtm.ref.DTMDefaultBaseTraversers.IndexedDTMAxisTraverserd7025abbe4481cc6
    org.apache.xml.dtm.ref.DTMDefaultBaseTraversers.RootTraverserf3196e884152bc70
    org.apache.xml.dtm.ref.DTMDefaultBaseTraversers.SelfTraverser3071e0c95a5af40e
    org.apache.xml.dtm.ref.DTMManagerDefaultb6047a448ac09b1f
    org.apache.xml.dtm.ref.DTMNodeIterator468658434a3bab8f
    org.apache.xml.dtm.ref.DTMNodeList32906327ff1a37b9
    org.apache.xml.dtm.ref.DTMNodeListBase077d824dc8fef2a5
    org.apache.xml.dtm.ref.ExpandedNameTable573916d69d16002b
    org.apache.xml.dtm.ref.ExpandedNameTable.HashEntry41dbb044cda0dd2d
    org.apache.xml.dtm.ref.ExtendedType68f644353558ac94
    org.apache.xml.dtm.ref.dom2dtm.DOM2DTMff40421045b8dbcf
    org.apache.xml.dtm.ref.dom2dtm.DOM2DTMdefaultNamespaceDeclarationNode40c34513783b63ec
    org.apache.xml.serializer.AttributesImplSerializer5dcdec5a2f1ee983
    org.apache.xml.serializer.CharInfo1aea1483210b6efe
    org.apache.xml.serializer.CharInfo.1b491c801c5fb198e
    org.apache.xml.serializer.CharInfo.CharKeye0a5c645b76750a5
    org.apache.xml.serializer.ElemContext7d0beb07274aa709
    org.apache.xml.serializer.EncodingInfo032bfb0f7fa84126
    org.apache.xml.serializer.Encodingsa08628d721eb774c
    org.apache.xml.serializer.NamespaceMappings8ecb748068271682
    org.apache.xml.serializer.NamespaceMappings.MappingRecord85ea4076e699c390
    org.apache.xml.serializer.ObjectFactory9ba966f7adf280b5
    org.apache.xml.serializer.OutputPropertiesFactory81cb094e134b9026
    org.apache.xml.serializer.OutputPropertiesFactory.1165ec15bc2e43d24
    org.apache.xml.serializer.OutputPropertyUtils676acbf97d6a2313
    org.apache.xml.serializer.SecuritySupporta4f03156c96bcc0b
    org.apache.xml.serializer.SecuritySupport129f482fa023db0264
    org.apache.xml.serializer.SecuritySupport12.1d3503b8cab2b1c94
    org.apache.xml.serializer.SecuritySupport12.22ae4af14ea71baef
    org.apache.xml.serializer.SecuritySupport12.669b891bea0772dd2
    org.apache.xml.serializer.SerializerBasebcfb789bfcf1f617
    org.apache.xml.serializer.SerializerFactory12ae2413164762b6
    org.apache.xml.serializer.ToStream1fc4c5eee8a973a4
    org.apache.xml.serializer.ToStream.BoolStack8308615f6836e0f3
    org.apache.xml.serializer.ToXMLStreamee4ab9d8b80202c3
    org.apache.xml.utils.DOM2Helper018019cb7e8b99c4
    org.apache.xml.utils.DOMHelper46e5330841d3489b
    org.apache.xml.utils.DefaultErrorHandler8ff6a938cef3c847
    org.apache.xml.utils.FastStringBuffer68a1552b94bb092d
    org.apache.xml.utils.IntStack72e1277955991b54
    org.apache.xml.utils.IntVector60e032301d0b6da1
    org.apache.xml.utils.NSInfo5c76583914a49b48
    org.apache.xml.utils.NodeVector7ad821765bd789e2
    org.apache.xml.utils.ObjectPooldf454b9321347a80
    org.apache.xml.utils.ObjectStack1f5abed9e0e6bd7f
    org.apache.xml.utils.ObjectVectord5c99d601f139f8a
    org.apache.xml.utils.StringBufferPoolf0f2474ceddce288
    org.apache.xml.utils.SuballocatedIntVectorcd2943b54deb4b3e
    org.apache.xml.utils.TreeWalker735394ae3abd6915
    org.apache.xml.utils.UnImplNode6607f21a179f3a0f
    org.apache.xml.utils.XMLCharacterRecognizerd08c15e3d27ca589
    org.apache.xml.utils.XMLStringFactory90028b9cf62dd19d
    org.apache.xpath.Expression96ff8943036734b8
    org.apache.xpath.SourceTreeManager9baeb90a8e606394
    org.apache.xpath.VariableStack0bd79c7cdde98a82
    org.apache.xpath.XPathce51920dfda7647f
    org.apache.xpath.XPathContext32f45fb125d92d87
    org.apache.xpath.XPathContext.XPathExpressionContexta6e03cc6bbfa414d
    org.apache.xpath.axes.AttributeIterator11e32521f84649b7
    org.apache.xpath.axes.AxesWalkercbbea9d6b90cd973
    org.apache.xpath.axes.BasicTestIterator2f5609ab582d5209
    org.apache.xpath.axes.ChildTestIteratorcc2a13f10a6594b3
    org.apache.xpath.axes.DescendantIterator8afe3d791057d983
    org.apache.xpath.axes.IteratorPoolf80b75c3a491e516
    org.apache.xpath.axes.LocPathIteratorb0496d063e748c3a
    org.apache.xpath.axes.NodeSequence4f254d9c3cf6bc43
    org.apache.xpath.axes.PredicatedNodeTest5035fba7b9bfda65
    org.apache.xpath.axes.SelfIteratorNoPredicate98ffc773fdc21ecc
    org.apache.xpath.axes.WalkerFactoryf48a883e6fcfac21
    org.apache.xpath.axes.WalkingIterator09e65f22a8610464
    org.apache.xpath.compiler.Compiler9618b1a5e3cc3df7
    org.apache.xpath.compiler.FunctionTablea0005ab97f2b6270
    org.apache.xpath.compiler.Lexer694bb1a294c83993
    org.apache.xpath.compiler.OpMapdf25a77a3172dad9
    org.apache.xpath.compiler.OpMapVector8f099d94ac045342
    org.apache.xpath.compiler.XPathParser0e180af5ed826660
    org.apache.xpath.jaxp.JAXPVariableStackd618dd7df394dfd5
    org.apache.xpath.jaxp.XPathFactoryImpl21f848203239f18d
    org.apache.xpath.jaxp.XPathImpl4e3c197e09725969
    org.apache.xpath.objects.Comparatoraac20f7dcb11b435
    org.apache.xpath.objects.EqualComparator100f511d13317e2c
    org.apache.xpath.objects.GreaterThanComparator3420cf78c3985cbc
    org.apache.xpath.objects.GreaterThanOrEqualComparator7b26b4287101a3c7
    org.apache.xpath.objects.LessThanComparator4662d159399b0d3d
    org.apache.xpath.objects.LessThanOrEqualComparator3040087024446d3b
    org.apache.xpath.objects.NotEqualComparator7ae4c578d185332d
    org.apache.xpath.objects.XBoolean73ac83cf6e2e1958
    org.apache.xpath.objects.XBooleanStatic1e826c9616ce98d3
    org.apache.xpath.objects.XMLStringFactoryImplb9c89eb7aa15de43
    org.apache.xpath.objects.XNodeSet493324984362f74a
    org.apache.xpath.objects.XNumber92eecabd6a2723fc
    org.apache.xpath.objects.XObject3b185d0b0a602103
    org.apache.xpath.objects.XStringc8a5fd09e3fbe59c
    org.apache.xpath.operations.Equals56ac0c1b849f1b23
    org.apache.xpath.operations.Operation8dc620f36600d33a
    org.apache.xpath.patterns.NodeTest497875e862eeba99
    org.boris.pecoff4j.COFFHeader4cb0771113b7d65a
    org.boris.pecoff4j.DOSHeader89830dcbd806bb7d
    org.boris.pecoff4j.DOSStubd214b683daaacea4
    org.boris.pecoff4j.ImageDatad4ba2a732540a340
    org.boris.pecoff4j.ImageDataDirectory59c3087d05397ea4
    org.boris.pecoff4j.ImportDirectoryce65e43056e0c9b6
    org.boris.pecoff4j.ImportDirectoryEntry28956f04d3b26710
    org.boris.pecoff4j.OptionalHeader11e690329c7487b5
    org.boris.pecoff4j.PE097f622d25343d27
    org.boris.pecoff4j.PESignatureeeed97bcc2731494
    org.boris.pecoff4j.RVAConverter3a5b268ecee59bb3
    org.boris.pecoff4j.ResourceDirectory9587c1c47cd9c2bb
    org.boris.pecoff4j.ResourceDirectoryTablefd9cdfd73c7275ac
    org.boris.pecoff4j.ResourceEntry586cb10ba8c88742
    org.boris.pecoff4j.SectionDataff30e1212af76df9
    org.boris.pecoff4j.SectionHeaderdda41651b9600bc4
    org.boris.pecoff4j.SectionTablec89e669d0c10f742
    org.boris.pecoff4j.SectionTable.1e37d686aca1d9ebe
    org.boris.pecoff4j.io.ByteArrayDataReader7e685d96b370a723
    org.boris.pecoff4j.io.DataEntrycc5820327b650972
    org.boris.pecoff4j.io.DataReader214285cddec8782c
    org.boris.pecoff4j.io.ResourceParser8b988f2d4dab0936
    org.boris.pecoff4j.resources.FixedFileInfo561af6c8b5ce124e
    org.boris.pecoff4j.resources.StringFileInfo318ad75a741478fe
    org.boris.pecoff4j.resources.StringPair1b2bec5a5c61d611
    org.boris.pecoff4j.resources.StringTableb7883c0e625a0b7f
    org.boris.pecoff4j.resources.VarFileInfo95250d35e435053a
    org.boris.pecoff4j.resources.VersionInfobe14060d370ea581
    org.boris.pecoff4j.util.DataObject44ff57e4c3f64117
    org.boris.pecoff4j.util.IntMapa7de8c52c304fd1e
    org.boris.pecoff4j.util.IntMap.Entryf098fc2aeca9e312
    org.boris.pecoff4j.util.ResourceHelper5a9f50d308c9b625
    org.eclipse.packager.rpm.RpmLead8588e98f52d536f7
    org.eclipse.packager.rpm.RpmTag05e81aa8a65f7711
    org.eclipse.packager.rpm.Rpmsa2e82d900f4c50b3
    org.eclipse.packager.rpm.coding.PayloadCodinga20247eaf4c8e329
    org.eclipse.packager.rpm.coding.XZPayloadCoding001576c12c84a49d
    org.eclipse.packager.rpm.parse.HeaderValuee99528ed75bd655e
    org.eclipse.packager.rpm.parse.HeaderValue.Unknown37b8ae8b41b6fc70
    org.eclipse.packager.rpm.parse.InputHeaderdef259e8966b8629
    org.eclipse.packager.rpm.parse.RpmInputStream90c9f22fbb7bb5c2
    org.glassfish.json.BufferPoolImpl836d09e6b15fe927
    org.glassfish.json.JsonArrayBuilderImpl6f06b1bcb60d1d9c
    org.glassfish.json.JsonArrayBuilderImpl.JsonArrayImpl2473913d684e5724
    org.glassfish.json.JsonGeneratorImpl937b0598d8d2e71b
    org.glassfish.json.JsonGeneratorImpl.1b133e1d8946eca9f
    org.glassfish.json.JsonGeneratorImpl.Contextaa0f0f4f2a8e62b8
    org.glassfish.json.JsonGeneratorImpl.Scope14d4f9adf5fa5d91
    org.glassfish.json.JsonLocationImpl09415ef44747f80c
    org.glassfish.json.JsonMessagesf06a0f8cb79df459
    org.glassfish.json.JsonNumberImpl447ab5411c7724b8
    org.glassfish.json.JsonNumberImpl.JsonBigDecimalNumber8e8bc0bf92f28ef9
    org.glassfish.json.JsonNumberImpl.JsonIntNumber9a2c3dafe9ba2ecb
    org.glassfish.json.JsonObjectBuilderImpl1211ee75fd7bf0f1
    org.glassfish.json.JsonObjectBuilderImpl.JsonObjectImpl40b8f8ac2ba906b1
    org.glassfish.json.JsonParserImpl5cb1b1235d83a520
    org.glassfish.json.JsonParserImpl.472f5c19858fdac74
    org.glassfish.json.JsonParserImpl.ArrayContext070fe26322fac856
    org.glassfish.json.JsonParserImpl.Context7a006c910b75a2d2
    org.glassfish.json.JsonParserImpl.NoneContext03216417686aafcd
    org.glassfish.json.JsonParserImpl.ObjectContextc784c334c97a0446
    org.glassfish.json.JsonParserImpl.Stackb1ea5cd4417c3854
    org.glassfish.json.JsonProviderImpl9f077215b667ebce
    org.glassfish.json.JsonReaderFactoryImpl567d129b07c2ef77
    org.glassfish.json.JsonReaderImpl0505c7e42b01830d
    org.glassfish.json.JsonStringImpld4e9a70b4eb97432
    org.glassfish.json.JsonTokenizer04b00aebe1b8d506
    org.glassfish.json.JsonTokenizer.JsonTokenc25a727e32262f68
    org.glassfish.json.JsonWriterImpl06306e24801941f8
    org.glassfish.json.UnicodeDetectingInputStreamcbb27135a66d814d
    org.h2.Driver1f044461dbd822a6
    org.h2.api.ErrorCode840ef5ab229bbf49
    org.h2.api.IntervalQualifier246aae6a9c36f2b7
    org.h2.api.IntervalQualifier.1bf97f880f3318a4a
    org.h2.command.Commandf15559eee5a4b67d
    org.h2.command.CommandContainer7f1438019fc91d17
    org.h2.command.CommandListfddd5691a587a13e
    org.h2.command.Parser2bb8f9e5a4a70b2e
    org.h2.command.Parser.1cb4488aad45d295c
    org.h2.command.Parser.NullConstraintType1f57cffeb49c7540
    org.h2.command.Prepared2afc45f364116e7c
    org.h2.command.Token9041f63f56392fb0
    org.h2.command.Token.CharacterStringTokendfb98b3bd2551690
    org.h2.command.Token.EndOfInputTokence0acd08cca36d96
    org.h2.command.Token.IdentifierToken96fa97b12ec39d26
    org.h2.command.Token.IntegerToken706265d29c73ee40
    org.h2.command.Token.KeywordToken89175f50cf553a38
    org.h2.command.Token.LiteralToken55ac31d811877860
    org.h2.command.Token.ParameterTokena1dbfddba95ea8c7
    org.h2.command.Tokenizer43f9aad9c9c53267
    org.h2.command.ddl.AlterTable7aa39625dc5b307b
    org.h2.command.ddl.AlterTableAddConstraint6b675b8c9348065a
    org.h2.command.ddl.AlterTableAlterColumnc901e4c8571def2f
    org.h2.command.ddl.AlterTableRenameColumn804458f1e4fad270
    org.h2.command.ddl.Analyzed44dcecb13e7b816
    org.h2.command.ddl.Analyze.SelectivityData9d2bf75f8d5ea568
    org.h2.command.ddl.CommandWithColumns5d9315b33ee69573
    org.h2.command.ddl.CreateFunctionAliasd2883f3f10fd8091
    org.h2.command.ddl.CreateIndexf31feb6e3685ea46
    org.h2.command.ddl.CreateSequencef0b8c2a1c5e12476
    org.h2.command.ddl.CreateTablee7275c1615ebec1c
    org.h2.command.ddl.CreateTableData3569f1ca31e74768
    org.h2.command.ddl.CreateUser2695390fae1d1c8e
    org.h2.command.ddl.DefineCommandcdddc9c95e413810
    org.h2.command.ddl.DropTablec459b4654874bc90
    org.h2.command.ddl.DropTable.SchemaAndTable6a855d249c69374b
    org.h2.command.ddl.SchemaCommand37562b22aa4d46eb
    org.h2.command.ddl.SchemaOwnerCommandd933ca320cd38b16
    org.h2.command.ddl.SequenceOptionsac62424e14dc3d1f
    org.h2.command.dml.CommandWithValuesfe71d1b4348da45a
    org.h2.command.dml.DataChangeStatement33e9a83e6aa9a2b0
    org.h2.command.dml.FilteredDataChangeStatementd1f06c41064db97d
    org.h2.command.dml.Insert92b352a399a37d13
    org.h2.command.dml.Mergef44a09337cc1f188
    org.h2.command.dml.NoOperation45224ad69233db9a
    org.h2.command.dml.Setd21842a092a85228
    org.h2.command.dml.SetClauseList8d7af84401b9e26f
    org.h2.command.dml.SetClauseList.SetSimple8f716343f11c7e82
    org.h2.command.dml.SetClauseList.UpdateAction1eb72da8fe8e5057
    org.h2.command.dml.SetTypes016d945a5f04106d
    org.h2.command.dml.TransactionCommand3d756d024aef2b4e
    org.h2.command.dml.Update1bc1970970fb06be
    org.h2.command.query.AllColumnsForPlan450f809346d1808b
    org.h2.command.query.Optimizer46f986c336d6a3f6
    org.h2.command.query.Queryb4b2ce90b74182d5
    org.h2.command.query.Query.OffsetFetch19fb6b1d83396f8a
    org.h2.command.query.QueryOrderBy23777a00278ca3a2
    org.h2.command.query.Selectf5dc2c718161fa97
    org.h2.command.query.Select.LazyResultGroupSortedc599665435c0d17c
    org.h2.command.query.Select.LazyResultQueryFlat85da5085987fa500
    org.h2.command.query.Select.LazyResultSelectbccfb20cef56dd5e
    org.h2.command.query.SelectGroups31af3273b4e64a1c
    org.h2.command.query.SelectGroups.Groupede4db5aab5499ea40
    org.h2.compress.CompressLZF4b905f980eac239a
    org.h2.constraint.Constraintf020b750ed00e5a4
    org.h2.constraint.Constraint.Type22cd7378e3a10d3f
    org.h2.constraint.ConstraintActionType5628afb57ab6e865
    org.h2.constraint.ConstraintReferential2a77c026aeb8aab4
    org.h2.constraint.ConstraintUniqued487c96b0517f1bf
    org.h2.engine.Commentaeb6905a57d7cbf6
    org.h2.engine.ConnectionInfo343d6a137cb5b573
    org.h2.engine.Database83e12c5a8547f3c5
    org.h2.engine.DbObjecta1d54de7a70f69aa
    org.h2.engine.DbSettingsc16ca39af0b52094
    org.h2.engine.Engine8d1bef8b32a84ba9
    org.h2.engine.Engine.DatabaseHolderf3e1da4d84fad7c4
    org.h2.engine.IsolationLeveldc3d1e0f909bb346
    org.h2.engine.MetaRecord29bceca9a65575ba
    org.h2.engine.Moded125cf383981bd10
    org.h2.engine.Mode.CharPadding8cf8ff3cbc571739
    org.h2.engine.Mode.ExpressionNames88384897021057f2
    org.h2.engine.Mode.ModeEnuma38cd43a6cd506a3
    org.h2.engine.Mode.UniqueIndexNullsHandling502dde04362c0a05
    org.h2.engine.Mode.ViewExpressionNames5d52fc04ceb58107
    org.h2.engine.OnExitDatabaseCloserbf4571800d7637b7
    org.h2.engine.RightOwnerc6021e43f64032ac
    org.h2.engine.Role094194bad60e1b75
    org.h2.engine.Session64d6d72ad82917c2
    org.h2.engine.SessionLocal51a58f8ace245808
    org.h2.engine.SessionLocal.155f9583f8325b772
    org.h2.engine.SessionLocal.Savepoint781800cec7d35e7d
    org.h2.engine.SessionLocal.State1a3f8ed61a9b559b
    org.h2.engine.SessionRemotef37ba123636968a3
    org.h2.engine.Settingc86b1d51f590b2b5
    org.h2.engine.SettingsBase47dcfc6eb02612ad
    org.h2.engine.SysProperties738fc14326e6697a
    org.h2.engine.User6642d70796bd346f
    org.h2.expression.Alias47aad16dec6f33d9
    org.h2.expression.Expressionbb4614abe3a7154a
    org.h2.expression.ExpressionColumnf3c03411ffc0fd1f
    org.h2.expression.ExpressionVisitorcabab1ad46664b16
    org.h2.expression.Operation0b942a11663e00451
    org.h2.expression.Parameter9867f0e8942380a2
    org.h2.expression.ValueExpressionb0947d3b406882f5
    org.h2.expression.Wildcardd50b73091423744c
    org.h2.expression.aggregate.AbstractAggregatea1557954a9f0e0fd
    org.h2.expression.aggregate.Aggregatede37080964c8db3d
    org.h2.expression.aggregate.Aggregate.128b7d61d336b32ba
    org.h2.expression.aggregate.AggregateType1f12aa2df974eb3f
    org.h2.expression.analysis.DataAnalysisOperation0b8d4789dc81b499
    org.h2.expression.analysis.WindowFunctionType9edb2feb98f39fd3
    org.h2.expression.condition.CompareLikebfca5d36f3721656
    org.h2.expression.condition.CompareLike.LikeTypee95df3a5894c0c26
    org.h2.expression.condition.Comparisonab7a87af7f1330e7
    org.h2.expression.condition.Conditionbb2da5a03aff382e
    org.h2.expression.condition.ConditionAndOr2634baba9064882c
    org.h2.expression.condition.ConditionAndOrN0491a0d6c6b89083
    org.h2.expression.condition.ConditionAndOrN.1cfd803b14c295199
    org.h2.expression.condition.ConditionIne017bd7adb1fec4c
    org.h2.expression.condition.ConditionInConstantSetaddc1ef3077dfa02
    org.h2.expression.function.BuiltinFunctions78766f5d309e1eec
    org.h2.index.Index1437895d5bdaf159
    org.h2.index.Index.1a3373b1a421e99ac
    org.h2.index.IndexCondition0e9d41fbd2afa93d
    org.h2.index.IndexCursor21f3911a0d80a7b2
    org.h2.index.IndexTypedb20d5927a484411
    org.h2.index.SingleRowCursor6f2da13a23aba782
    org.h2.jdbc.JdbcConnectionaa9112f98496def0
    org.h2.jdbc.JdbcDatabaseMetaData4b65250c88adaaa7
    org.h2.jdbc.JdbcPreparedStatement0aaec231f77e8af1
    org.h2.jdbc.JdbcResultSet6616d9dd2dd82d4f
    org.h2.jdbc.JdbcSQLNonTransientExceptionee7382996c025809
    org.h2.jdbc.JdbcSQLSyntaxErrorException2bd1ec0ceace2a26
    org.h2.jdbc.JdbcStatementdf8e9ff4d1b735bd
    org.h2.jdbc.meta.DatabaseMeta379d6005c31973cb
    org.h2.jdbc.meta.DatabaseMetaLocal9825c2b1e6cec520
    org.h2.jdbc.meta.DatabaseMetaLocalBasea42ca75579848556
    org.h2.message.DbException3f0e60c471f39e98
    org.h2.message.Trace491f3dad3147c898
    org.h2.message.TraceObjectc9beab9cd4384a9d
    org.h2.message.TraceSystemaa8bb0c0af8cc8c0
    org.h2.mode.DefaultNullOrderingd83aa2fead8d7efe
    org.h2.mode.ModeFunction03b3e1d15a53837f
    org.h2.mvstore.Chunk2b8a58455a4c2e7c
    org.h2.mvstore.Chunk.PositionComparator717579c9b8e61fcb
    org.h2.mvstore.Cursor5d963e5e8ab0be55
    org.h2.mvstore.CursorPosd146fb9483aa8712
    org.h2.mvstore.DataUtils6f9e8b0e67603e41
    org.h2.mvstore.FileStore4d01e40aea5428e5
    org.h2.mvstore.FreeSpaceBitSet55db07b87d11e2d4
    org.h2.mvstore.MVMap32c3349a2372c157
    org.h2.mvstore.MVMap.48673b0dfdf29edc4
    org.h2.mvstore.MVMap.BasicBuilder12a8106056e3784e
    org.h2.mvstore.MVMap.Builder51c13779e4e1a2de
    org.h2.mvstore.MVMap.Decision2391341a8b4c7da2
    org.h2.mvstore.MVMap.DecisionMaker7fe21a9c95f0236a
    org.h2.mvstore.MVMap.DecisionMaker.159f115a410484a7f
    org.h2.mvstore.MVMap.DecisionMaker.26070fe88d005eac4
    org.h2.mvstore.MVMap.DecisionMaker.3be1c10e28ff6d6ed
    org.h2.mvstore.MVMap.DecisionMaker.4f9827774c99da346
    org.h2.mvstore.MVMap.DecisionMaker.5275afe4d593556c7
    org.h2.mvstore.MVMap.IntValueHolderfb1881f08df938cf
    org.h2.mvstore.MVMap.RewriteDecisionMaker3e5cd264616ca1dc
    org.h2.mvstore.MVStore4fc94bbd472340df
    org.h2.mvstore.MVStore.BackgroundWriterThread5e4fe6f9b6650f62
    org.h2.mvstore.MVStore.Builder22b94348c270ef84
    org.h2.mvstore.MVStore.RemovedPageInfo31c493fb15eead92
    org.h2.mvstore.MVStore.TxCounterf5c51e97efd048ff
    org.h2.mvstore.MVStoreTool40622d2c8e8a8fae
    org.h2.mvstore.MVStoreTool.GenericDataTypeabe626abc33a1797
    org.h2.mvstore.Page5b32006674721ed6
    org.h2.mvstore.Page.Leaf48d9ba9ba9662350
    org.h2.mvstore.Page.NonLeafbd593ef4c947b0e0
    org.h2.mvstore.Page.PageReferencea98dbb4602145de4
    org.h2.mvstore.RootReference8b29fe57e28baad2
    org.h2.mvstore.StreamStorea4b55720e4fa8a71
    org.h2.mvstore.WriteBufferf98e4194dfd876cb
    org.h2.mvstore.cache.CacheLongKeyLIRS70a2cf8ef58af26d
    org.h2.mvstore.cache.CacheLongKeyLIRS.Configab6a58ffa39c6717
    org.h2.mvstore.cache.CacheLongKeyLIRS.Entry7e7768c4cf65b4d3
    org.h2.mvstore.cache.CacheLongKeyLIRS.Segmentf45e9bdce23b5c6a
    org.h2.mvstore.cache.FilePathCache5cc88ecfa563617d
    org.h2.mvstore.db.LobStorageMapeee0296b34855abd
    org.h2.mvstore.db.LobStorageMap.BlobMeta.Type56a8bacb3e75d3c8
    org.h2.mvstore.db.LobStorageMap.BlobReference.Type9792efaa202c63aa
    org.h2.mvstore.db.MVDelegateIndex75a01b645f8a059b
    org.h2.mvstore.db.MVIndex30888e50fac82aa6
    org.h2.mvstore.db.MVPrimaryIndex4f32c68b3cab90d0
    org.h2.mvstore.db.MVPrimaryIndex.MVStoreCursorca89bfad0dcdffb4
    org.h2.mvstore.db.MVSecondaryIndex9c8fdcc12dea3c65
    org.h2.mvstore.db.MVSecondaryIndex.MVStoreCursor790db329af86c31a
    org.h2.mvstore.db.MVTablef4e542fe436bca97
    org.h2.mvstore.db.MVTable.TraceLockEvent2c65ff40346dd416
    org.h2.mvstore.db.NullValueDataType75887b246893f2df
    org.h2.mvstore.db.RowDataType415fc270aba4597d
    org.h2.mvstore.db.RowDataType.Factory61377fce7824577e
    org.h2.mvstore.db.Store9aa6802d26be5c1b
    org.h2.mvstore.db.ValueDataTypeddc57cbd4a05c876
    org.h2.mvstore.db.ValueDataType.Factory03156b0134bc4c6d
    org.h2.mvstore.tx.CommitDecisionMakerae621b8defbb83c6
    org.h2.mvstore.tx.Record254f69f363a486df
    org.h2.mvstore.tx.Record.Type13c88f7aecc610aa
    org.h2.mvstore.tx.RollbackDecisionMaker96ad2b6090040d45
    org.h2.mvstore.tx.Snapshot7825bd583d62dd0e
    org.h2.mvstore.tx.Transaction75932f57c40d96dc
    org.h2.mvstore.tx.TransactionMapa4908653e3ce2a56
    org.h2.mvstore.tx.TransactionMap.25cafec78b793e40f
    org.h2.mvstore.tx.TransactionMap.CommittedIterator22e94be11a21d3ac
    org.h2.mvstore.tx.TransactionMap.TMIterator80572a0d1caf43d1
    org.h2.mvstore.tx.TransactionMap.UncommittedIterator57853f3b6dbd4d83
    org.h2.mvstore.tx.TransactionMap.ValidationIterator75ff7710527bb148
    org.h2.mvstore.tx.TransactionStore5a88a95b9fb34fd5
    org.h2.mvstore.tx.TransactionStore.TxMapBuilder57e161cc52d96ce9
    org.h2.mvstore.tx.TransactionStore.TxMapBuilder.TMVMapf60431e734e35b1e
    org.h2.mvstore.tx.TxDecisionMaker85e444859e7357fd
    org.h2.mvstore.tx.TxDecisionMaker.LockDecisionMaker7ea1a788b9a585d7
    org.h2.mvstore.tx.TxDecisionMaker.PutIfAbsentDecisionMaker1259ec8cbd8d5f8c
    org.h2.mvstore.tx.VersionedBitSetcb03917e9303dd05
    org.h2.mvstore.tx.VersionedValueCommitted1f63835704f93873
    org.h2.mvstore.tx.VersionedValueTypee90353e002224186
    org.h2.mvstore.tx.VersionedValueType.Factoryb6f7352cd3439a49
    org.h2.mvstore.tx.VersionedValueUncommitted5871ba85ec76be11
    org.h2.mvstore.type.BasicDataType21b8242aa76782c6
    org.h2.mvstore.type.ByteArrayDataTypee926b9099661c292
    org.h2.mvstore.type.LongDataTypea03799f8c42a57d4
    org.h2.mvstore.type.MetaType1b436879079fb452
    org.h2.mvstore.type.ObjectDataType0579ed66fbb3a9d1
    org.h2.mvstore.type.ObjectDataType.AutoDetectDataTyped93d15cbc56bc2c0
    org.h2.mvstore.type.ObjectDataType.NullType9b8599d75350eb1b
    org.h2.mvstore.type.StringDataType4997f0a656a9b7fc
    org.h2.result.DefaultRowa9aef564d7a9fe69
    org.h2.result.FetchedResult2008c917d16b1cc3
    org.h2.result.LazyResult432ec92435f96622
    org.h2.result.LocalResult9de4335bee1fec76
    org.h2.result.ResultWithGeneratedKeys56dd718df0035863
    org.h2.result.Rowe004551f934d55a4
    org.h2.result.RowFactory301cd649330026d4
    org.h2.result.RowFactory.DefaultRowFactory5ab0b7f9f28099de
    org.h2.result.RowFactory.Holder41f1cc54c079c8d7
    org.h2.result.SearchRowd20e3d81378dc409
    org.h2.result.SimpleRowValueb7d88298dd608b52
    org.h2.result.SortOrder497173c7c397dac3
    org.h2.result.Sparseb44a8f52a128b90c
    org.h2.schema.FunctionAlias2e55d18c6db10dae
    org.h2.schema.FunctionAlias.JavaMethod85554b6f739981d5
    org.h2.schema.InformationSchema5e171fc1d52567fb
    org.h2.schema.MetaSchemac20f6c35b912334c
    org.h2.schema.Schemaf6454b28cba42d52
    org.h2.schema.SchemaObject36331feedf964ee6
    org.h2.schema.Sequence11a6133ecefc8aa4
    org.h2.schema.Sequence.Cycleb813b944f3b57fe2
    org.h2.schema.UserDefinedFunctionfbc4095ef115a3ff
    org.h2.security.SHA2561377489050965973
    org.h2.store.FileLockMethod0a5e8bccdf92e35d
    org.h2.store.fs.FilePath3e0e7373c74033d1
    org.h2.store.fs.FilePathWrapper87d875796781afee
    org.h2.store.fs.FileUtils060a02c4aa2ff96e
    org.h2.store.fs.async.FilePathAsync16b33a44b1b5c235
    org.h2.store.fs.disk.FilePathDisk9ad70347c3c53b77
    org.h2.store.fs.mem.FileMemData659f85e22c47f221
    org.h2.store.fs.mem.FileMemData.Cachec73e11e6de2d8b69
    org.h2.store.fs.mem.FilePathMem595d031b8b0ce4b0
    org.h2.store.fs.mem.FilePathMemLZFfd5d7643ab9b5c2f
    org.h2.store.fs.niomapped.FilePathNioMapped67f5832e83405fcb
    org.h2.store.fs.niomem.FilePathNioMemf67f0322fbf112b5
    org.h2.store.fs.niomem.FilePathNioMemLZF132bbce83f940aba
    org.h2.store.fs.retry.FilePathRetryOnInterrupt3d5668f3ef57ef12
    org.h2.store.fs.split.FilePathSplite0332cdbd53823fa
    org.h2.store.fs.zip.FilePathZip571394bd7911f1b6
    org.h2.table.Column500d643f327e8cd1
    org.h2.table.ColumnResolver4b2aaf94f471a049
    org.h2.table.DataChangeDeltaTablecfef12b2b35a029b
    org.h2.table.DataChangeDeltaTable.ResultOption73e3b4dbc5058973
    org.h2.table.IndexColumnc5ce22adf3f59bf5
    org.h2.table.Plan612dabb67cb62cc8
    org.h2.table.PlanItem2def26bf3b87d892
    org.h2.table.Tableed8d3f8796b74a1d
    org.h2.table.TableBasef9650065ef79d0f9
    org.h2.table.TableFilter1580e6e3d1837400
    org.h2.table.TableFilter.MapColumnsVisitor931d604ec2d424fa
    org.h2.table.TableType56836f7ea831c8ba
    org.h2.table.TableView637347b8559c044a
    org.h2.util.CloseWatcherd678edef8d7cbcbd
    org.h2.util.DateTimeUtilsacbb58d9000f572f
    org.h2.util.IOUtils06d92b9f3551d003
    org.h2.util.JdbcUtilsa7cfc728a8939a3e
    org.h2.util.MathUtilsbdf93c5de1c6efb3
    org.h2.util.MemoryEstimator7bd6b84998f4470b
    org.h2.util.ParserUtil398474903b80ed1c
    org.h2.util.Permutations1c369f58220c466d
    org.h2.util.SmallLRUCache63a9505e4a72e86e
    org.h2.util.StringUtilscf6054820621813b
    org.h2.util.TempFileDeletere68e70f0f01e6e19
    org.h2.util.TimeZoneProvidera9c2d46d5ee1d017
    org.h2.util.TimeZoneProvider.Simpled186373cefabcbb3
    org.h2.util.Utils2e2bbc2f742b19b6
    org.h2.value.CompareMode58b22695ed1120a6
    org.h2.value.DataTypebe6090f80ecffcac
    org.h2.value.ExtTypeInfo8a940de3624beb39
    org.h2.value.ExtTypeInfoNumeric3f914c76eef2be60
    org.h2.value.ExtTypeInfoRowdeaab78daddc8908
    org.h2.value.TypeInfo9580e5a8b9802809
    org.h2.value.Valuead2c19061ba2725c
    org.h2.value.ValueBigDecimalBase215bf47c3c8205bb
    org.h2.value.ValueBigint8ec2db6a6c646098
    org.h2.value.ValueBoolean4f6af7c87c5a47ef
    org.h2.value.ValueChar05adce8c2875c4f5
    org.h2.value.ValueInteger3d79aac636fd91c9
    org.h2.value.ValueNull51a52bf735d3f5c0
    org.h2.value.ValueNumeric0d8483876bb2fdff
    org.h2.value.ValueSmallintb08c69d5b0149bd7
    org.h2.value.ValueStringBaseeb1bace27aaac6ab
    org.h2.value.ValueTimestampTimeZonee96caed7fa609eb6
    org.h2.value.ValueToObjectConverter2eb11fd432392fbc
    org.h2.value.ValueToObjectConverter25f48ffd2c93ddbd9
    org.h2.value.ValueVarchara2d834fe0bd70399
    org.h2.value.VersionedValueb8b9a78f680ab7c6
    org.hamcrest.BaseDescription21c6ba794ab87610
    org.hamcrest.BaseMatcher7faa14942a96e4b2
    org.hamcrest.CoreMatchers8465d9ef370dff51
    org.hamcrest.Description.NullDescription5a43dc37728d10be
    org.hamcrest.MatcherAssertc15b1369a67a24c4
    org.hamcrest.Matchers69121f2930d4e465
    org.hamcrest.StringDescriptione3b43832c79f8ba4
    org.hamcrest.TypeSafeDiagnosingMatcher1a081671af395978
    org.hamcrest.TypeSafeMatcher74c291abe57e8c0d
    org.hamcrest.core.Every9f906a4b5a0c1c80
    org.hamcrest.core.Isc0cec33b7e0687d7
    org.hamcrest.core.IsEqual7f239f8b7d653f00
    org.hamcrest.core.IsNot881c8bcc9837f289
    org.hamcrest.core.IsNulld5ac87febb5f457f
    org.hamcrest.core.StringContainsbedae5a2afe9c1ed
    org.hamcrest.core.SubstringMatcher8809d380c24f9943
    org.hamcrest.internal.ReflectiveTypeFinderaba3c47e262d4b21
    org.joda.time.Durationab035c4fd50348ec
    org.joda.time.base.AbstractDurationce6c9d491d10bac1
    org.joda.time.base.BaseDuration9b99e8fd56239c81
    org.joda.time.field.FieldUtilsba306cdd0c308127
    org.json.JSONbaec6cdb200e359d
    org.json.JSONArray6b86c0cea058a8d1
    org.json.JSONObjectab674655a5f57b72
    org.json.JSONObject.18c249464b0673518
    org.json.JSONTokenerfc4574aa57cb5d24
    org.junit.Asserteda6db924019425b
    org.junit.Assumea0bac2e5a81f9b21
    org.junit.AssumptionViolatedException9629287966a5e9bd
    org.junit.internal.AssumptionViolatedException1ca480a1e8698dd8
    org.junit.internal.Checks5f543b0bb87b92da
    org.junit.internal.ComparisonCriteriaeb4930662485358d
    org.junit.internal.ComparisonCriteria.1078c309755193425
    org.junit.internal.ExactComparisonCriteriab46e382b993e25ce
    org.junit.internal.MethodSortera26607ae067f7352
    org.junit.internal.MethodSorter.1d3997b4bdb7889c1
    org.junit.internal.MethodSorter.2c8e6351cbf098013
    org.junit.internal.Throwables4302b5e924e77a8f
    org.junit.internal.builders.AllDefaultPossibilitiesBuilder4f18a1d7932cb8ab
    org.junit.internal.builders.AnnotatedBuilder0faf353d180c9332
    org.junit.internal.builders.IgnoredBuildere152f333c53967a6
    org.junit.internal.builders.IgnoredClassRunner03bb45d9edb4af51
    org.junit.internal.builders.JUnit3Builder4a2cc8e608e1275e
    org.junit.internal.builders.JUnit4Builderf2e00a3e1fc23005
    org.junit.internal.builders.SuiteMethodBuilder1df136431e07e393
    org.junit.internal.requests.ClassRequest47dbc61675e5a92e
    org.junit.internal.requests.ClassRequest.CustomAllDefaultPossibilitiesBuilderea1c269d9656f543
    org.junit.internal.requests.ClassRequest.CustomSuiteMethodBuilder03d01020b1c503c7
    org.junit.internal.requests.MemoizingRequest1e70801476dbab8f
    org.junit.internal.runners.model.EachTestNotifier077481995383e000
    org.junit.internal.runners.model.ReflectiveCallabled591724635588bcb
    org.junit.internal.runners.rules.RuleMemberValidator95b5ee2068ec6875
    org.junit.internal.runners.rules.RuleMemberValidator.Builderf24845fa6fd065af
    org.junit.internal.runners.rules.RuleMemberValidator.DeclaringClassMustBePublic1de994463c748d89
    org.junit.internal.runners.rules.RuleMemberValidator.FieldMustBeARulee24e9f59de6fe5b7
    org.junit.internal.runners.rules.RuleMemberValidator.FieldMustBeATestRule690823bd2992f52e
    org.junit.internal.runners.rules.RuleMemberValidator.MemberMustBeNonStaticOrAlsoClassRule1e703fb3e7f4e533
    org.junit.internal.runners.rules.RuleMemberValidator.MemberMustBePublic806c174eb921b478
    org.junit.internal.runners.rules.RuleMemberValidator.MemberMustBeStaticac28a03dd36b2b5a
    org.junit.internal.runners.rules.RuleMemberValidator.MethodMustBeARule88ea4a2237de2b8b
    org.junit.internal.runners.rules.RuleMemberValidator.MethodMustBeATestRule9f4dd18a26005c18
    org.junit.internal.runners.statements.ExpectException943171ebab48b749
    org.junit.internal.runners.statements.InvokeMethod05a7aa636afa2c39
    org.junit.internal.runners.statements.RunAfters14a998d07920cd7b
    org.junit.internal.runners.statements.RunBeforesef86a61ca3ab20ba
    org.junit.rules.RuleChain85495008a7595363
    org.junit.rules.RunRules89f6dee1be8fdd02
    org.junit.runner.Description1d6f7ddbbf223f9a
    org.junit.runner.Request214d9ade1c7dc38d
    org.junit.runner.Resultecf6c1c04298ff7d
    org.junit.runner.Result.Listenercf649a4ffbe55db9
    org.junit.runner.Runnerf5abacc70e2e08a4
    org.junit.runner.notification.Failureb4a9d161bd8d5912
    org.junit.runner.notification.RunListener69d2c783b42f6720
    org.junit.runner.notification.RunNotifierf6313076e2224ebb
    org.junit.runner.notification.RunNotifier.1e31025c12b4dbdee
    org.junit.runner.notification.RunNotifier.24c7314c6d595dc3e
    org.junit.runner.notification.RunNotifier.3df2bada5cb3794f3
    org.junit.runner.notification.RunNotifier.4fbdd84204c215de7
    org.junit.runner.notification.RunNotifier.5f62dc396b601f8bd
    org.junit.runner.notification.RunNotifier.7cdc931baa9785e66
    org.junit.runner.notification.RunNotifier.8dc2744829f175748
    org.junit.runner.notification.RunNotifier.9c3c3d54b8ed47ee1
    org.junit.runner.notification.RunNotifier.SafeNotifier0b43c10299733bfb
    org.junit.runner.notification.SynchronizedRunListener2b59d5cb3b105225
    org.junit.runners.BlockJUnit4ClassRunner95752fb34ff12f3f
    org.junit.runners.BlockJUnit4ClassRunner.1d0f63145230a5f42
    org.junit.runners.BlockJUnit4ClassRunner.2f93eace695ddd30e
    org.junit.runners.BlockJUnit4ClassRunner.RuleCollector9c768e710e39c989
    org.junit.runners.JUnit46d26e2305347fe01
    org.junit.runners.ParentRunner335ee90b10f96ea1
    org.junit.runners.ParentRunner.1ecc6961e8bc209c4
    org.junit.runners.ParentRunner.2c5cb913a629ec4c8
    org.junit.runners.ParentRunner.320bad8188aebc0f2
    org.junit.runners.ParentRunner.480476dbdcb8d52cc
    org.junit.runners.ParentRunner.ClassRuleCollector26f7fb338afcd13b
    org.junit.runners.RuleContainerd44c3ba6dc65af53
    org.junit.runners.RuleContainer.157bbc73f6f47763b
    org.junit.runners.model.FrameworkField2fe27c284e7d39f4
    org.junit.runners.model.FrameworkMemberbfd059486f267475
    org.junit.runners.model.FrameworkMethodf293b82d5aa86323
    org.junit.runners.model.FrameworkMethod.18fd5e02769c0e0c2
    org.junit.runners.model.MultipleFailureException187a72c573c34bac
    org.junit.runners.model.RunnerBuilder585cad2d320dc86e
    org.junit.runners.model.Statement9a75aa5de27bf4d5
    org.junit.runners.model.TestClass7e71209792391ee8
    org.junit.runners.model.TestClass.FieldComparator1b96cd3d5c4aeb07
    org.junit.runners.model.TestClass.MethodComparator0369eb29eb04248a
    org.junit.validator.AnnotationValidatorFactorye1e5570798173ab9
    org.junit.validator.AnnotationsValidator6cbe8454c9a93bb8
    org.junit.validator.AnnotationsValidator.AnnotatableValidatord211a963f22be103
    org.junit.validator.AnnotationsValidator.ClassValidator1b463c4e6642e880
    org.junit.validator.AnnotationsValidator.FieldValidator64068b954dc56a31
    org.junit.validator.AnnotationsValidator.MethodValidatorf16b57f17c787036
    org.junit.validator.PublicClassValidator3bac248cf06b18e4
    org.mockito.Answers7bb49d321e73bbc5
    org.mockito.Mockito577272f0518bf2bf
    org.mockito.codegen.HttpURLConnection.MockitoMock.mTUfKP0obaafc9a2c034a26d
    org.mockito.codegen.HttpURLConnection.MockitoMock.mTUfKP0o.auxiliary.HIAA6uPBb55142b00b75310a
    org.mockito.configuration.DefaultMockitoConfiguration7c1c365c15c2133e
    org.mockito.internal.MockitoCore8c1dee29fb0da68b
    org.mockito.internal.configuration.CaptorAnnotationProcessorb1d3667699da5bde
    org.mockito.internal.configuration.ClassPathLoader1837784d8946effa
    org.mockito.internal.configuration.DefaultDoNotMockEnforcerc193dbfbfd7e7112
    org.mockito.internal.configuration.GlobalConfiguration5d2c645125c6e76f
    org.mockito.internal.configuration.IndependentAnnotationEngine6712157121b4c009
    org.mockito.internal.configuration.InjectingAnnotationEngine093bcb2236e9e096
    org.mockito.internal.configuration.MockAnnotationProcessor63f2cd0aa6f4adfe
    org.mockito.internal.configuration.SpyAnnotationEngineb0201f8ea6674009
    org.mockito.internal.configuration.plugins.DefaultMockitoPluginsb56656ae000198c7
    org.mockito.internal.configuration.plugins.DefaultPluginSwitch973f142b836667e1
    org.mockito.internal.configuration.plugins.PluginFinderd946fdf7c3f2c58b
    org.mockito.internal.configuration.plugins.PluginInitializerfda3656b50f9d2f1
    org.mockito.internal.configuration.plugins.PluginLoadera0b8a7c6baea530e
    org.mockito.internal.configuration.plugins.PluginRegistryef9e70f0651edcfb
    org.mockito.internal.configuration.plugins.Pluginsff53f63a8240eb6e
    org.mockito.internal.creation.DelegatingMethod7ea1353e5c77b5f3
    org.mockito.internal.creation.MockSettingsImplef96156d4aa39063
    org.mockito.internal.creation.SuspendMethoddc8e823dfe533d87
    org.mockito.internal.creation.bytebuddy.ByteBuddyCrossClassLoaderSerializationSupport91ac516637b8c4ee
    org.mockito.internal.creation.bytebuddy.ByteBuddyMockMakere18344ca184c75a1
    org.mockito.internal.creation.bytebuddy.BytecodeGenerator896014d879c42ec9
    org.mockito.internal.creation.bytebuddy.MockFeatures161a6ae9389d4da3
    org.mockito.internal.creation.bytebuddy.MockMethodInterceptor0b02a477841f06a5
    org.mockito.internal.creation.bytebuddy.MockMethodInterceptor.DispatcherDefaultingToRealMethodeb121594c82e0f72
    org.mockito.internal.creation.bytebuddy.ModuleHandler77380dd282d3eb30
    org.mockito.internal.creation.bytebuddy.ModuleHandler.ModuleSystemFoundd8515816e294707d
    org.mockito.internal.creation.bytebuddy.ModuleHandler.NoModuleSystemFound48ae3962b292be8d
    org.mockito.internal.creation.bytebuddy.SubclassByteBuddyMockMaker11d36e9ecc8c0605
    org.mockito.internal.creation.bytebuddy.SubclassByteBuddyMockMaker.18361f13ee7b2c0cd
    org.mockito.internal.creation.bytebuddy.SubclassBytecodeGeneratorb13aa2a3c3f5de88
    org.mockito.internal.creation.bytebuddy.SubclassInjectionLoader47ea8dba5b15c796
    org.mockito.internal.creation.bytebuddy.SubclassInjectionLoader.WithReflection55a84d6cf8f318a1
    org.mockito.internal.creation.bytebuddy.TypeCachingBytecodeGenerator123a98feabc81a7a
    org.mockito.internal.creation.bytebuddy.TypeCachingBytecodeGenerator.MockitoMockKey8fb34c2e10b7db99
    org.mockito.internal.creation.bytebuddy.TypeSupport652949fe1e4bb215
    org.mockito.internal.creation.instance.DefaultInstantiatorProvider3900ee0969504a34
    org.mockito.internal.creation.instance.ObjenesisInstantiatore451a21eadbc4d30
    org.mockito.internal.creation.settings.CreationSettingsc4b00e979fa0a182
    org.mockito.internal.debugging.Java8LocationImpl9794ab1e8c402388
    org.mockito.internal.debugging.LocationFactory28d49edcf5091319
    org.mockito.internal.debugging.LocationFactory.Java8LocationFactoryfcd241e0d9477e2b
    org.mockito.internal.exceptions.stacktrace.ConditionalStackTraceFilterfa604b96ed91ae2e
    org.mockito.internal.exceptions.stacktrace.DefaultStackTraceCleaner370150513bd990b0
    org.mockito.internal.exceptions.stacktrace.DefaultStackTraceCleanerProvider475c82ec8ba01c75
    org.mockito.internal.exceptions.stacktrace.StackTraceFilter3df073dc72decbe3
    org.mockito.internal.handler.InvocationNotifierHandler7c138f78143ab433
    org.mockito.internal.handler.MockHandlerFactory236482acbbebaf4a
    org.mockito.internal.handler.MockHandlerImpl973b60d05d2d4a4d
    org.mockito.internal.handler.NullResultGuardian40a1d637e9eadd05
    org.mockito.internal.invocation.ArgumentsProcessord50039fd637b3496
    org.mockito.internal.invocation.DefaultInvocationFactory06ea8a896a1550ba
    org.mockito.internal.invocation.InterceptedInvocation40a1bce4be9e6523
    org.mockito.internal.invocation.InterceptedInvocation.11a1152b98b0c7d86
    org.mockito.internal.invocation.InvocationMatcher0f3f05080ade9bf3
    org.mockito.internal.invocation.InvocationMatcher.180b88eded9ee9335
    org.mockito.internal.invocation.MatcherApplicationStrategy60f4d78d262883d3
    org.mockito.internal.invocation.MatchersBinderb39b9426c9814ac7
    org.mockito.internal.invocation.RealMethod.FromBehavior3606745ce75bc7b7
    org.mockito.internal.invocation.RealMethod.FromCallable91b88c5e1e6b856f
    org.mockito.internal.invocation.RealMethod.FromCallable.1851ae10acd2d90b9
    org.mockito.internal.invocation.StubInfoImpl1314bab3c1422857
    org.mockito.internal.invocation.TypeSafeMatching0d588952c2946cca
    org.mockito.internal.invocation.mockref.MockWeakReferenceac456a2a5b693d6e
    org.mockito.internal.listeners.StubbingLookupNotifier6b94cdf6e74e7282
    org.mockito.internal.matchers.Equalitye1d16aba206ff315
    org.mockito.internal.matchers.Equalscf919842a27db421
    org.mockito.internal.progress.ArgumentMatcherStorageImpl83a3e5fcf460cd8d
    org.mockito.internal.progress.MockingProgressImpl92818897164b80b6
    org.mockito.internal.progress.MockingProgressImpl.1a1ad00aef40918d3
    org.mockito.internal.progress.SequenceNumberfd2449d941ed721b
    org.mockito.internal.progress.ThreadSafeMockingProgress5ef9d6f1a875dc18
    org.mockito.internal.progress.ThreadSafeMockingProgress.11c85bd989b9441aa
    org.mockito.internal.stubbing.BaseStubbing0fd68c747fb3e1ac
    org.mockito.internal.stubbing.ConsecutiveStubbing1b3fea0e4598e3dc
    org.mockito.internal.stubbing.DoAnswerStyleStubbingf2057cd0aee1a50b
    org.mockito.internal.stubbing.InvocationContainerImpl70d6f02b67d57b4f
    org.mockito.internal.stubbing.OngoingStubbingImpl646db189ef95b765
    org.mockito.internal.stubbing.StubbedInvocationMatcher738da3903cdefa65
    org.mockito.internal.stubbing.answers.AbstractThrowsException79cb6f21f189a6a5
    org.mockito.internal.stubbing.answers.CallsRealMethods16da2f316c946fec
    org.mockito.internal.stubbing.answers.DefaultAnswerValidatorde0c324c57207f3c
    org.mockito.internal.stubbing.answers.InvocationInfo558393abbeee5acd
    org.mockito.internal.stubbing.answers.Returnsb865c001022cfefe
    org.mockito.internal.stubbing.answers.ThrowsExceptionForClassType97c5030cfe9fdc05
    org.mockito.internal.stubbing.defaultanswers.GloballyConfiguredAnswerf308e3faf16f6212
    org.mockito.internal.stubbing.defaultanswers.ReturnsDeepStubs7a1b5ff44181d6b8
    org.mockito.internal.stubbing.defaultanswers.ReturnsEmptyValuesfb54ce54650adcb6
    org.mockito.internal.stubbing.defaultanswers.ReturnsMocksf923109370288432
    org.mockito.internal.stubbing.defaultanswers.ReturnsMoreEmptyValues4a4f9f45d874e56f
    org.mockito.internal.stubbing.defaultanswers.ReturnsSmartNulls56e4359834584989
    org.mockito.internal.stubbing.defaultanswers.TriesToReturnSelf2df789f77987f023
    org.mockito.internal.util.Checksc6a1d20be0e11d77
    org.mockito.internal.util.ConsoleMockitoLoggerb50468c7ba4abdba
    org.mockito.internal.util.KotlinInlineClassUtil0581c028953ad812
    org.mockito.internal.util.MockCreationValidatorb073c74d6aea57f3
    org.mockito.internal.util.MockNameImplc374206ea5426e18
    org.mockito.internal.util.MockUtild287b066371cb395
    org.mockito.internal.util.ObjectMethodsGuru2e0e0e3f520fd2eb
    org.mockito.internal.util.Primitives3126a7777504288b
    org.mockito.internal.util.StringUtilfc180f2e2cfb19c5
    org.mockito.internal.util.collections.Iterablesf2f271f84160edef
    org.mockito.internal.util.reflection.GenericMetadataSupport85227a69a82c938b
    org.mockito.internal.util.reflection.GenericMetadataSupport.FromClassGenericMetadataSupport356b7028b146ffda
    org.mockito.internal.util.reflection.GenericMetadataSupport.NotGenericReturnTypeSupportf614172becdb4957
    org.mockito.internal.util.reflection.GenericMetadataSupport.ParameterizedReturnTypede8799dae02553cd
    org.mockito.internal.util.reflection.ReflectionMemberAccessor5b659ecadce64e6d
    org.mockito.internal.verification.DefaultRegisteredInvocations2c81cbe8de7c014f
    org.mockito.mock.SerializableMode35d1981ec862bf72
    org.objenesis.ObjenesisBase0c1d2fd83029257f
    org.objenesis.ObjenesisStdf35c83a75caea811
    org.objenesis.instantiator.sun.SunReflectionFactoryHelperd17e7b3403696605
    org.objenesis.instantiator.sun.SunReflectionFactoryInstantiator6156947e7d7c507c
    org.objenesis.strategy.BaseInstantiatorStrategyb0aaa6460452f5ce
    org.objenesis.strategy.PlatformDescriptionc6456f671febfd7c
    org.objenesis.strategy.StdInstantiatorStrategyabae05ba56ea35a6
    org.owasp.dependencycheck.AnalysisTaske7c73a60a930646f
    org.owasp.dependencycheck.AnalysisTaskTest89eade1da5d9c624
    org.owasp.dependencycheck.AnalysisTaskTest.16d9643c2caf2a5dd
    org.owasp.dependencycheck.AnalysisTaskTest.2281a9187aae2eb37
    org.owasp.dependencycheck.AnalysisTaskTest.3f6f3c813b5a09988
    org.owasp.dependencycheck.AnalysisTaskTest.4703218ee9965b4f2
    org.owasp.dependencycheck.AnalysisTaskTest.5de5435e8df37bbb7
    org.owasp.dependencycheck.AnalysisTaskTest.613e032b376dc6ca1
    org.owasp.dependencycheck.BaseDBTestCase101fc405e6360a86
    org.owasp.dependencycheck.BaseTestbc884ee1d021a45f
    org.owasp.dependencycheck.Engine9eb4069cf91f3cee
    org.owasp.dependencycheck.Engine.Mode3f6a6fa06c5db5ef
    org.owasp.dependencycheck.EngineITc4971cf8c55135b2
    org.owasp.dependencycheck.EngineIT.160710c362970f7fc
    org.owasp.dependencycheck.EngineIT.2f7050c8b21daa3fb
    org.owasp.dependencycheck.EngineTeste8157382642cf37e
    org.owasp.dependencycheck.agent.DependencyCheckScanAgentde6949324a1aad84
    org.owasp.dependencycheck.agent.DependencyCheckScanAgentIT9a8ebda772823636
    org.owasp.dependencycheck.analyzer.AbstractAnalyzer53c2c707332e447f
    org.owasp.dependencycheck.analyzer.AbstractDependencyComparingAnalyzere5687426d9a0f66f
    org.owasp.dependencycheck.analyzer.AbstractFileTypeAnalyzercb75e41db9829ee7
    org.owasp.dependencycheck.analyzer.AbstractFileTypeAnalyzerTestf1ef218ba8d30bf1
    org.owasp.dependencycheck.analyzer.AbstractNpmAnalyzerf1f4584a14215949
    org.owasp.dependencycheck.analyzer.AbstractNpmAnalyzerIT9da620970c1a06b3
    org.owasp.dependencycheck.analyzer.AbstractSuppressionAnalyzerfac2a53fa568132a
    org.owasp.dependencycheck.analyzer.AbstractSuppressionAnalyzerTestf77fe09dfeb09037
    org.owasp.dependencycheck.analyzer.AbstractSuppressionAnalyzerTest.AbstractSuppressionAnalyzerImpl1f3aced8ac8ae300
    org.owasp.dependencycheck.analyzer.AnalysisPhase8a2dd7e79126521a
    org.owasp.dependencycheck.analyzer.AnalyzerServicec83777cdc46bc2d2
    org.owasp.dependencycheck.analyzer.AnalyzerServiceTestfcbff94e2034c6d4
    org.owasp.dependencycheck.analyzer.ArchiveAnalyzerc4afb05e99324933
    org.owasp.dependencycheck.analyzer.ArchiveAnalyzerITc787d05ebdc32d00
    org.owasp.dependencycheck.analyzer.ArchiveAnalyzerTest0736a383027ecc97
    org.owasp.dependencycheck.analyzer.ArtifactoryAnalyzeraba5274b7a2d3c9c
    org.owasp.dependencycheck.analyzer.AssemblyAnalyzerb4f040a2e12ea447
    org.owasp.dependencycheck.analyzer.AssemblyAnalyzerTestf3c7345efb99aa67
    org.owasp.dependencycheck.analyzer.AutoconfAnalyzera61c7303a707d079
    org.owasp.dependencycheck.analyzer.AutoconfAnalyzerTest348816efb6723e32
    org.owasp.dependencycheck.analyzer.CMakeAnalyzer466e5b6cfb32f8a0
    org.owasp.dependencycheck.analyzer.CMakeAnalyzerTestc0778b66e602cd85
    org.owasp.dependencycheck.analyzer.CPEAnalyzer8a5ab88772203ff1
    org.owasp.dependencycheck.analyzer.CPEAnalyzer.IdentifierConfidence68c0332006ac0f99
    org.owasp.dependencycheck.analyzer.CPEAnalyzer.IdentifierMatch92606f5613402d4c
    org.owasp.dependencycheck.analyzer.CPEAnalyzerIT3553cb036f73c538
    org.owasp.dependencycheck.analyzer.CPEAnalyzerTest8c18e0d491a6ab78
    org.owasp.dependencycheck.analyzer.CentralAnalyzer8510025c8aaa3199
    org.owasp.dependencycheck.analyzer.CentralAnalyzerTest0a6b96be8e6692e8
    org.owasp.dependencycheck.analyzer.CocoaPodsAnalyzer109d2f01d2ded1e1
    org.owasp.dependencycheck.analyzer.ComposerLockAnalyzer9d4ee64cf0474215
    org.owasp.dependencycheck.analyzer.ComposerLockAnalyzerTestfd03d9b1cd2bddca
    org.owasp.dependencycheck.analyzer.CpeSuppressionAnalyzer0e15da288e35d32d
    org.owasp.dependencycheck.analyzer.CpeSuppressionAnalyzerIT85afd58313114de6
    org.owasp.dependencycheck.analyzer.DartAnalyzeraa59897e89b30f0b
    org.owasp.dependencycheck.analyzer.DartAnalyzerTestd842ee79e2e7efe7
    org.owasp.dependencycheck.analyzer.DependencyBundlingAnalyzer07c8f954686b5590
    org.owasp.dependencycheck.analyzer.DependencyBundlingAnalyzerIT5ea9099e6f8ab2b7
    org.owasp.dependencycheck.analyzer.DependencyBundlingAnalyzerTest0634d8de940385ca
    org.owasp.dependencycheck.analyzer.DependencyBundlingAnalyzerTest.10e95ab05f314abda
    org.owasp.dependencycheck.analyzer.DependencyCheckPropertiesTest3cc6cce94e99cdb2
    org.owasp.dependencycheck.analyzer.DependencyMergingAnalyzer5b61b9ea1c73787a
    org.owasp.dependencycheck.analyzer.DependencyMergingAnalyzerTest83300e7eb1c8c9d8
    org.owasp.dependencycheck.analyzer.ElixirMixAuditAnalyzerdc7b13faacac2682
    org.owasp.dependencycheck.analyzer.ElixirMixAuditAnalyzerIT68d0cb66ba88a68c
    org.owasp.dependencycheck.analyzer.ElixirMixAuditAnalyzerTest35096b95334009c6
    org.owasp.dependencycheck.analyzer.FalsePositiveAnalyzer5d1e642680217c34
    org.owasp.dependencycheck.analyzer.FalsePositiveAnalyzerTestdc158d3b84af5f6a
    org.owasp.dependencycheck.analyzer.FileNameAnalyzer6bd5616bd35b083c
    org.owasp.dependencycheck.analyzer.FileNameAnalyzerTestad435f5c6fa334ec
    org.owasp.dependencycheck.analyzer.GolangDepAnalyzerfecafc9c62047e06
    org.owasp.dependencycheck.analyzer.GolangDepAnalyzerTest7610fd0ff91fb5bd
    org.owasp.dependencycheck.analyzer.GolangModAnalyzerb227db299327983e
    org.owasp.dependencycheck.analyzer.GolangModAnalyzerTest4d8f8069be13bbda
    org.owasp.dependencycheck.analyzer.HintAnalyzer06857ac00a5b69bc
    org.owasp.dependencycheck.analyzer.HintAnalyzerTest2d97b91707162a91
    org.owasp.dependencycheck.analyzer.JarAnalyzerd0852a5718eb3822
    org.owasp.dependencycheck.analyzer.JarAnalyzer.ClassNameInformationf7a6b8b47c825c6a
    org.owasp.dependencycheck.analyzer.JarAnalyzerTesta1b6366464bb2414
    org.owasp.dependencycheck.analyzer.KnownExploitedVulnerabilityAnalyzer3af076909f651f0b
    org.owasp.dependencycheck.analyzer.LibmanAnalyzerb71bb3bbd512db80
    org.owasp.dependencycheck.analyzer.LibmanAnalyzerTest34951e10720e5f91
    org.owasp.dependencycheck.analyzer.MSBuildProjectAnalyzer0c1951f7a7176b6a
    org.owasp.dependencycheck.analyzer.MSBuildProjectAnalyzerTest592d53c80fabf54d
    org.owasp.dependencycheck.analyzer.NexusAnalyzer0e8b9d66c36140bb
    org.owasp.dependencycheck.analyzer.NodeAuditAnalyzer9b08dc840a569526
    org.owasp.dependencycheck.analyzer.NodeAuditAnalyzerITe6d6c5907f91c673
    org.owasp.dependencycheck.analyzer.NodeAuditAnalyzerTest9aa8ae5d0edc06ab
    org.owasp.dependencycheck.analyzer.NodePackageAnalyzer4f9c2855819b2a43
    org.owasp.dependencycheck.analyzer.NodePackageAnalyzerTest69b93698261e0f8f
    org.owasp.dependencycheck.analyzer.NpmCPEAnalyzerc3b313265c0390a9
    org.owasp.dependencycheck.analyzer.NpmCPEAnalyzerITcbe11ea70f8cde77
    org.owasp.dependencycheck.analyzer.NpmCPEAnalyzerTestd87e9a1dda06d6ea
    org.owasp.dependencycheck.analyzer.NugetconfAnalyzerd7864bd059634c88
    org.owasp.dependencycheck.analyzer.NugetconfAnalyzerTeste482a9a037de6593
    org.owasp.dependencycheck.analyzer.NuspecAnalyzer51b5c3840fe8ede7
    org.owasp.dependencycheck.analyzer.NuspecAnalyzerTest210319361c4a5d31
    org.owasp.dependencycheck.analyzer.NvdCveAnalyzer462c94a163d9bd80
    org.owasp.dependencycheck.analyzer.OpenSSLAnalyzerc05ed6ced1a77cd1
    org.owasp.dependencycheck.analyzer.OpenSSLAnalyzerTest30c71ff552139069
    org.owasp.dependencycheck.analyzer.OssIndexAnalyzere0ec285a8210cefd
    org.owasp.dependencycheck.analyzer.OssIndexAnalyzerTest2a1af0aad42082e3
    org.owasp.dependencycheck.analyzer.OssIndexAnalyzerTest.OssIndexAnalyzerThrowing403892d5d4c934b0ec1
    org.owasp.dependencycheck.analyzer.OssIndexAnalyzerTest.OssIndexAnalyzerThrowing502a20177fab637423c
    org.owasp.dependencycheck.analyzer.OssIndexAnalyzerTest.OssIndexAnalyzerThrowingSocketTimeout534bf3221f124591
    org.owasp.dependencycheck.analyzer.OssIndexAnalyzerTest.OssIndexClient403a39fc4c80de3a4a1
    org.owasp.dependencycheck.analyzer.OssIndexAnalyzerTest.OssIndexClient5022736a33e1336fbd6
    org.owasp.dependencycheck.analyzer.OssIndexAnalyzerTest.OssIndexClientSocketTimeoutExceptioncf6847d04e7b1a4b
    org.owasp.dependencycheck.analyzer.OssIndexAnalyzerTest.SproutOssIndexAnalyzerc2ea0882d203cec4
    org.owasp.dependencycheck.analyzer.PEAnalyzerf1cf15bf017a345f
    org.owasp.dependencycheck.analyzer.PEAnalyzerTest6ae3e3eded8ff6fd
    org.owasp.dependencycheck.analyzer.PerlCpanfileAnalyzerf460b2c9a36956f5
    org.owasp.dependencycheck.analyzer.PerlCpanfileAnalyzerTesta84fed019278d828
    org.owasp.dependencycheck.analyzer.PinnedMavenInstallAnalyzerbabb05304288744c
    org.owasp.dependencycheck.analyzer.PinnedMavenInstallAnalyzer.DependencyTree3678a3638af6efe9
    org.owasp.dependencycheck.analyzer.PinnedMavenInstallAnalyzer.InstallFile9694784df554fb28
    org.owasp.dependencycheck.analyzer.PinnedMavenInstallAnalyzer.MavenDependency8b0b0e87333ee828
    org.owasp.dependencycheck.analyzer.PinnedMavenInstallAnalyzerTest7abb95220d771386
    org.owasp.dependencycheck.analyzer.PipAnalyzer4eb3e3df5fc1d9eb
    org.owasp.dependencycheck.analyzer.PipAnalyzerITe8e88c17fc0670db
    org.owasp.dependencycheck.analyzer.PipAnalyzerTest9ab6e6463aaa0488
    org.owasp.dependencycheck.analyzer.PipfileAnalyzer94f81965a1d6f8bb
    org.owasp.dependencycheck.analyzer.PipfileAnalyzerTestc4c5016cdd69ceef
    org.owasp.dependencycheck.analyzer.PipfilelockAnalyzer090000f0d80906ed
    org.owasp.dependencycheck.analyzer.PipfilelockAnalyzerTest1c403e9fd463f1ff
    org.owasp.dependencycheck.analyzer.PnpmAuditAnalyzer8a0332fc7129d211
    org.owasp.dependencycheck.analyzer.PnpmAuditAnalyzerTestcd2e6a11894cd087
    org.owasp.dependencycheck.analyzer.PoetryAnalyzerfd3b1fd402042898
    org.owasp.dependencycheck.analyzer.PoetryAnalyzerTestad043c5d11cc2008
    org.owasp.dependencycheck.analyzer.PythonDistributionAnalyzer48872d7099105b81
    org.owasp.dependencycheck.analyzer.PythonDistributionAnalyzerTest8f1ae407f6d3a618
    org.owasp.dependencycheck.analyzer.PythonPackageAnalyzer9e40fde1c8c573e3
    org.owasp.dependencycheck.analyzer.PythonPackageAnalyzerTestc840f2ec0c363bd8
    org.owasp.dependencycheck.analyzer.RetireJsAnalyzerbb886f09d58624f9
    org.owasp.dependencycheck.analyzer.RetireJsAnalyzerFiltersTest48028190f5701fe0
    org.owasp.dependencycheck.analyzer.RetireJsAnalyzerIT21f2592a160d0d17
    org.owasp.dependencycheck.analyzer.RubyBundleAuditAnalyzere2fc7cdb41f163c8
    org.owasp.dependencycheck.analyzer.RubyBundleAuditAnalyzerITb1b18b9e1aaf2e5a
    org.owasp.dependencycheck.analyzer.RubyBundlerAnalyzer5d486951fecfd610
    org.owasp.dependencycheck.analyzer.RubyBundlerAnalyzerTest5a244e8344f6c28b
    org.owasp.dependencycheck.analyzer.RubyGemspecAnalyzera1eb61175c0b726b
    org.owasp.dependencycheck.analyzer.RubyGemspecAnalyzerTest443cbc355a27ef49
    org.owasp.dependencycheck.analyzer.SwiftAnalyzersTest562802e5b85952cf
    org.owasp.dependencycheck.analyzer.SwiftPackageManagerAnalyzer2b236be3ad4379b4
    org.owasp.dependencycheck.analyzer.SwiftPackageResolvedAnalyzer602846b272882529
    org.owasp.dependencycheck.analyzer.UnusedSuppressionRuleAnalyzer96a130c36e2feb7c
    org.owasp.dependencycheck.analyzer.VersionFilterAnalyzerbccf328c51e5abce
    org.owasp.dependencycheck.analyzer.VersionFilterAnalyzerTest31817fcb855813d7
    org.owasp.dependencycheck.analyzer.VulnerabilitySuppressionAnalyzer120f6770a484b62e
    org.owasp.dependencycheck.analyzer.VulnerabilitySuppressionAnalyzerIT92c1286880650149
    org.owasp.dependencycheck.analyzer.YarnAuditAnalyzer29123c83238a50f8
    org.owasp.dependencycheck.analyzer.YarnAuditAnalyzerIT0dd3cf3d7ea93a75
    org.owasp.dependencycheck.analyzer.YarnAuditAnalyzerTest187f2d0fb715a3a6
    org.owasp.dependencycheck.analyzer.exception.AnalysisExceptionc597afbf1059b7ca
    org.owasp.dependencycheck.data.artifactory.ArtifactorySearch12ce05625f28ea64
    org.owasp.dependencycheck.data.artifactory.ArtifactorySearchTest9936af6b5a8785ea
    org.owasp.dependencycheck.data.artifactory.ChecksumsImplaa276b01edd6dc3b
    org.owasp.dependencycheck.data.artifactory.FileImplb86ae79b057f4912
    org.owasp.dependencycheck.data.artifactory.ItemImpl54e438a01b02ea72
    org.owasp.dependencycheck.data.cache.DataCache45c535388c562524
    org.owasp.dependencycheck.data.cache.DataCacheFactory1f8c9b237297367c
    org.owasp.dependencycheck.data.cache.DataCacheFactory.CacheType137a3e5cbb2df174
    org.owasp.dependencycheck.data.cache.DataCacheFactoryTest1266f1a8050bbfb1
    org.owasp.dependencycheck.data.central.CentralSearchda4b36ece402a9ea
    org.owasp.dependencycheck.data.central.CentralSearch.MockitoMock.UnhUeSJwb5325fc7a11d4648
    org.owasp.dependencycheck.data.central.CentralSearch.MockitoMock.UnhUeSJw.auxiliary.RlO1NS3B9ae5ce64e9bbc01b
    org.owasp.dependencycheck.data.central.CentralSearchTestfb153fa1f113005d
    org.owasp.dependencycheck.data.composer.ComposerDependencyb34305815c6d8712
    org.owasp.dependencycheck.data.composer.ComposerException851da4bd788b953e
    org.owasp.dependencycheck.data.composer.ComposerLockParser23bc8e3d7e48eca1
    org.owasp.dependencycheck.data.composer.ComposerLockParserTestbd18ec52adb113aa
    org.owasp.dependencycheck.data.cpe.AbstractMemoryIndex2ed8bf08d002c7f0
    org.owasp.dependencycheck.data.cpe.CpeMemoryIndex90c84bb62b80575d
    org.owasp.dependencycheck.data.cpe.CpeMemoryIndexTestb986cbfaade60a01
    org.owasp.dependencycheck.data.cpe.IndexEntry21d883b53737f9ed
    org.owasp.dependencycheck.data.cpe.IndexEntryTestfab4a4a89db42b96
    org.owasp.dependencycheck.data.cpe.NpmCpeMemoryIndexe19e64e36ca1c862
    org.owasp.dependencycheck.data.cwe.CweDB4b200943564bdb3c
    org.owasp.dependencycheck.data.cwe.CweDBTestadf844327e3ace66
    org.owasp.dependencycheck.data.elixir.MixAuditJsonParser3f4632831a7a99ed
    org.owasp.dependencycheck.data.elixir.MixAuditJsonParserTest98ae73d34cdb114a
    org.owasp.dependencycheck.data.elixir.MixAuditResult4a2053233b584de4
    org.owasp.dependencycheck.data.golang.GoModDependency957e5e8cab14dfce
    org.owasp.dependencycheck.data.golang.GoModJsonParser8a37afdcf773a099
    org.owasp.dependencycheck.data.golang.GoModJsonParserTestba3d02b4a32415a3
    org.owasp.dependencycheck.data.knownexploited.json.KnownExploitedVulnerabilitiesSchemad546a111ceca8d0e
    org.owasp.dependencycheck.data.knownexploited.json.Vulnerabilityb34347081c0c84bd
    org.owasp.dependencycheck.data.lucene.AbstractTokenizingFilteref2bdf555ac30e13
    org.owasp.dependencycheck.data.lucene.AlphaNumericFilterd338a5925b823b3a
    org.owasp.dependencycheck.data.lucene.AlphaNumericFilterTest4776825c707cb824
    org.owasp.dependencycheck.data.lucene.AlphaNumericFilterTest.15f8c6b4e3dc2b3b5
    org.owasp.dependencycheck.data.lucene.AlphaNumericFilterTest.2127e0a6243318ac5
    org.owasp.dependencycheck.data.lucene.FieldAnalyzerTesta97e3c86485e824a
    org.owasp.dependencycheck.data.lucene.LuceneUtils3f465d0437852575
    org.owasp.dependencycheck.data.lucene.LuceneUtilsTestab4e65dec975334f
    org.owasp.dependencycheck.data.lucene.SearchFieldAnalyzer8c548705eb3be048
    org.owasp.dependencycheck.data.lucene.SearchFieldAnalyzerTeste88f5d918ecb1058
    org.owasp.dependencycheck.data.lucene.TokenPairConcatenatingFilter66727c35667a1e7f
    org.owasp.dependencycheck.data.lucene.TokenPairConcatenatingFilterTest775406fbed75bb86
    org.owasp.dependencycheck.data.lucene.TokenPairConcatenatingFilterTest.10f5d106ed2594a8e
    org.owasp.dependencycheck.data.lucene.UrlTokenizingFilter195de16b342dfeb9
    org.owasp.dependencycheck.data.lucene.UrlTokenizingFilterTestaa33dd67e99d3f5f
    org.owasp.dependencycheck.data.lucene.UrlTokenizingFilterTest.11e66d2f0ce1900db
    org.owasp.dependencycheck.data.lucene.UrlTokenizingFilterTest.2a17a3531bcc84f68
    org.owasp.dependencycheck.data.nexus.MavenArtifact8181821aeb4d216d
    org.owasp.dependencycheck.data.nexus.MavenArtifactTest5547597e2168df60
    org.owasp.dependencycheck.data.nodeaudit.Advisory2164a59aadbf4fb6
    org.owasp.dependencycheck.data.nodeaudit.NodeAuditSearche7f6b585d3203b32
    org.owasp.dependencycheck.data.nodeaudit.NpmAuditParser33a770bfa46cb842
    org.owasp.dependencycheck.data.nodeaudit.NpmPayloadBuilder195df04fe9ed296a
    org.owasp.dependencycheck.data.nodeaudit.NpmPayloadBuilderTest90706efe7a46ca96
    org.owasp.dependencycheck.data.nuget.DirectoryBuildPropsParser1c2d3dd186d25cd2
    org.owasp.dependencycheck.data.nuget.DirectoryPackagesPropsParser2dc51aa4b9ff6ad5
    org.owasp.dependencycheck.data.nuget.NugetPackage9c9f119d22c5f7fa
    org.owasp.dependencycheck.data.nuget.NugetPackageReferencec5aa1088ddd6ee19
    org.owasp.dependencycheck.data.nuget.NuspecParseException7bf5335dd04ec40c
    org.owasp.dependencycheck.data.nuget.XPathMSBuildProjectParserdf3e338785e3c170
    org.owasp.dependencycheck.data.nuget.XPathNugetconfParser567d1ac9d7d08586
    org.owasp.dependencycheck.data.nuget.XPathNuspecParser3da13047c5bba7f2
    org.owasp.dependencycheck.data.nuget.XPathNuspecParserTestbed6ed2852f1c0c0
    org.owasp.dependencycheck.data.nvd.ecosystem.CveEcosystemMapper9bdc31c451b3a195
    org.owasp.dependencycheck.data.nvd.ecosystem.CveEcosystemMapperTest0bbcb623028c7118
    org.owasp.dependencycheck.data.nvd.ecosystem.DescriptionEcosystemMapper4b4fd8da48e1076a
    org.owasp.dependencycheck.data.nvd.ecosystem.DescriptionEcosystemMapperTest163df27452c5718b
    org.owasp.dependencycheck.data.nvd.ecosystem.DescriptionKeywordHint6e7e292d907035b1
    org.owasp.dependencycheck.data.nvd.ecosystem.Ecosystemf52dd17aa636a878
    org.owasp.dependencycheck.data.nvd.ecosystem.EcosystemHintNature6ecb7375a8182f28
    org.owasp.dependencycheck.data.nvd.ecosystem.FileExtensionHinteea097469cc99fb8
    org.owasp.dependencycheck.data.nvd.ecosystem.StringAhoCorasickDoubleArrayTrie7b86ffa8686f7317
    org.owasp.dependencycheck.data.nvd.ecosystem.UrlEcosystemMapperea6af3b5cb98e2dc
    org.owasp.dependencycheck.data.nvd.ecosystem.UrlEcosystemMapperTest1de927dde3f11d61
    org.owasp.dependencycheck.data.nvd.ecosystem.UrlHostHint05ec63c3d7dae0d3
    org.owasp.dependencycheck.data.nvd.ecosystem.UrlPathHintfa84ec515b0a7722
    org.owasp.dependencycheck.data.nvdcve.CveDB273b25a563ba79ba
    org.owasp.dependencycheck.data.nvdcve.CveDB.PreparedStatementCveDb412e4dfd99bf4695
    org.owasp.dependencycheck.data.nvdcve.CveDBIT093c5d8479c065fb
    org.owasp.dependencycheck.data.nvdcve.CveItemOperatoreab73d1ca7076e35
    org.owasp.dependencycheck.data.nvdcve.DatabaseManagerc8bfc4255f1ef4d5
    org.owasp.dependencycheck.data.nvdcve.DatabaseManagerTestf217c5d65855261c
    org.owasp.dependencycheck.data.nvdcve.DatabasePropertiesc7b0ef841dbb8d78
    org.owasp.dependencycheck.data.nvdcve.DatabasePropertiesIT914b9b3a1eeb66f1
    org.owasp.dependencycheck.data.nvdcve.DriverLoadException1525230f476c2aed
    org.owasp.dependencycheck.data.nvdcve.DriverLoader6f00b4d9849d8d88
    org.owasp.dependencycheck.data.nvdcve.DriverLoaderTest528c094e56eee8c9
    org.owasp.dependencycheck.data.nvdcve.DriverShim100a9676ec7c4389
    org.owasp.dependencycheck.data.ossindex.ODCConnectionTransport90e282fdbad6b102
    org.owasp.dependencycheck.data.ossindex.OssindexClientFactory876e346ea8162c86
    org.owasp.dependencycheck.data.update.EngineVersionCheckbeeed550972293ac
    org.owasp.dependencycheck.data.update.EngineVersionCheckTest0b289731725ae723
    org.owasp.dependencycheck.data.update.EngineVersionCheckTest.17c799da57a36821d
    org.owasp.dependencycheck.data.update.HostedSuppressionsDataSource73b26292db648f4e
    org.owasp.dependencycheck.data.update.KnownExploitedDataSource6f668dcee22ae298
    org.owasp.dependencycheck.data.update.NvdApiDataSourcee10a6e75393d2e78
    org.owasp.dependencycheck.data.update.NvdApiDataSource.UrlData7b82533596421951
    org.owasp.dependencycheck.data.update.NvdApiDataSourceTest2561fb5a11004f43
    org.owasp.dependencycheck.data.update.RetireJSDataSource90bcb0e202f4fd67
    org.owasp.dependencycheck.data.update.UpdateService5591427be2b53e13
    org.owasp.dependencycheck.data.update.cisa.KnownExploitedVulnerabilityParser61e861793461ad61
    org.owasp.dependencycheck.data.update.cisa.KnownExploitedVulnerabilityParserTest2858a9f787034e2f
    org.owasp.dependencycheck.data.update.cpe.CpeEcosystemCache776eb215e56504e7
    org.owasp.dependencycheck.data.update.cpe.CpeEcosystemCacheTest86eb3dbd3fed00c6
    org.owasp.dependencycheck.data.update.cpe.CpePlusa4daec4d8fade7cd
    org.owasp.dependencycheck.data.update.exception.UpdateExceptionee58a45beed2232d
    org.owasp.dependencycheck.dependency.Confidence8b1646fd73165f3d
    org.owasp.dependencycheck.dependency.CweSet92d71b148062e632
    org.owasp.dependencycheck.dependency.CweSetTest47a5433fcdf138bd
    org.owasp.dependencycheck.dependency.Dependencyad6f1800ed8875c2
    org.owasp.dependencycheck.dependency.Dependency.MockitoMock.pFqE4mRI7e6127a7325d39b0
    org.owasp.dependencycheck.dependency.Dependency.MockitoMock.pFqE4mRI.auxiliary.LwrGzPQyb307720873bfc534
    org.owasp.dependencycheck.dependency.DependencyTestd74d8f31778639af
    org.owasp.dependencycheck.dependency.Evidencea56eb960dbb41fa1
    org.owasp.dependencycheck.dependency.EvidenceCollection796f8ebade5a0ac6
    org.owasp.dependencycheck.dependency.EvidenceCollection.1c43d6c035fe1f0ab
    org.owasp.dependencycheck.dependency.EvidenceCollection.263ec251053ab3814
    org.owasp.dependencycheck.dependency.EvidenceCollection.339c4b6f5b69d425d
    org.owasp.dependencycheck.dependency.EvidenceCollection.486c481e087971d1f
    org.owasp.dependencycheck.dependency.EvidenceCollection.56d0ef220d6d3eb18
    org.owasp.dependencycheck.dependency.EvidenceTest9828883d9cc06aa0
    org.owasp.dependencycheck.dependency.EvidenceType80374dc893ee62b6
    org.owasp.dependencycheck.dependency.Referencea2e6d658cd4f904f
    org.owasp.dependencycheck.dependency.Vulnerability5547976019a46a50
    org.owasp.dependencycheck.dependency.Vulnerability.Source972bf446c0b0bb2a
    org.owasp.dependencycheck.dependency.VulnerabilityTest39f024a3b2b5f975
    org.owasp.dependencycheck.dependency.VulnerableSoftware8585e0e1fa3beeb8
    org.owasp.dependencycheck.dependency.VulnerableSoftwareBuildere0de1be074de33d1
    org.owasp.dependencycheck.dependency.VulnerableSoftwareTest29ea0c3e66140f04
    org.owasp.dependencycheck.dependency.naming.CpeIdentifierf5758c4da3e20472
    org.owasp.dependencycheck.dependency.naming.GenericIdentifier2720d1f73524f5f3
    org.owasp.dependencycheck.dependency.naming.PurlIdentifiereacb89219564694c
    org.owasp.dependencycheck.exception.ExceptionCollection42d79b8e2574a10f
    org.owasp.dependencycheck.exception.InitializationExceptionf942605a89a6d856
    org.owasp.dependencycheck.processing.GoModProcessore7ea720378ccef3e
    org.owasp.dependencycheck.processing.GrokAssemblyProcessor5b08cc9c89348774
    org.owasp.dependencycheck.reporting.EscapeToolcf686f5c98110b7f
    org.owasp.dependencycheck.reporting.EscapeToolTestaa58cf24d40145b5
    org.owasp.dependencycheck.reporting.ReportGeneratorb3e530fe266a825a
    org.owasp.dependencycheck.reporting.ReportGenerator.Formatc008dae7884b691a
    org.owasp.dependencycheck.reporting.ReportGeneratorITf803ee79bb723125
    org.owasp.dependencycheck.reporting.ReportTool6d98d89de82875d4
    org.owasp.dependencycheck.reporting.SarifRule0944fb4b45e06c49
    org.owasp.dependencycheck.resources.DependencyCheckBaseSuppressionTest3b752e016a53972a
    org.owasp.dependencycheck.utils.Checksumd3d032adcf9f83ac
    org.owasp.dependencycheck.utils.Checksum.FileChecksumsee01483ef72b41eb
    org.owasp.dependencycheck.utils.CvssUtilcf97a7fd82b7c986
    org.owasp.dependencycheck.utils.CvssUtilTestb5c9774a1bfa6dcd
    org.owasp.dependencycheck.utils.DBUtils5a736a1e9db30930
    org.owasp.dependencycheck.utils.DateUtil767aee70b6802f05
    org.owasp.dependencycheck.utils.DateUtilTestc623ab9d881e4adf
    org.owasp.dependencycheck.utils.DependencyVersionc76be697ccf1be3e
    org.owasp.dependencycheck.utils.DependencyVersionTeste64422fbf10f6a04
    org.owasp.dependencycheck.utils.DependencyVersionUtil6a41259161e9d641
    org.owasp.dependencycheck.utils.DependencyVersionUtilTest858a7aab86c493bd
    org.owasp.dependencycheck.utils.DownloadFailedException6443aeaaba25371c
    org.owasp.dependencycheck.utils.Downloader2535d5a88e84b460
    org.owasp.dependencycheck.utils.ExtractionExceptione58d90e53157b16b
    org.owasp.dependencycheck.utils.ExtractionUtil0e88fa19a5d5b6f8
    org.owasp.dependencycheck.utils.ExtractionUtilTest60d4cb6b7d8c7c21
    org.owasp.dependencycheck.utils.FileFilterBuilderb6f3bba13d18ff4a
    org.owasp.dependencycheck.utils.FileUtilsb4bc6fabbcb815d7
    org.owasp.dependencycheck.utils.Filterdf3734618639a9b3
    org.owasp.dependencycheck.utils.Filter.FilterIteratord1a81c541dfce734
    org.owasp.dependencycheck.utils.FilterTest60e0ed0d1a5f0b59
    org.owasp.dependencycheck.utils.FilterTest.14e9dca224e578528
    org.owasp.dependencycheck.utils.HttpResourceConnection3ec0169837be2310
    org.owasp.dependencycheck.utils.InterpolationUtilbf107010177e4d1e
    org.owasp.dependencycheck.utils.InterpolationUtil.PropertyLookup5b1e3b5a7f62328a
    org.owasp.dependencycheck.utils.InterpolationUtil.SyntaxStyle89f3ebbe8ef62093
    org.owasp.dependencycheck.utils.InterpolationUtilTestbafbe92801fbb93f
    org.owasp.dependencycheck.utils.JsonArrayFixingInputStreamf4287617daab86e6
    org.owasp.dependencycheck.utils.PEParser8042233ecf4fa4c8
    org.owasp.dependencycheck.utils.Pair7b0fe8cac5057419
    org.owasp.dependencycheck.utils.PyPACoreMetadataParser536068332d6d88a1
    org.owasp.dependencycheck.utils.PyPACoreMetadataParserTesta3225b0efd8e8ddc
    org.owasp.dependencycheck.utils.SSLSocketFactoryExcba4c39911275cd8
    org.owasp.dependencycheck.utils.SemverTest3a048716697e71dc
    org.owasp.dependencycheck.utils.Settings22a4155a48302848
    org.owasp.dependencycheck.utils.SeverityUtil2aa3a7803e3bc489
    org.owasp.dependencycheck.utils.SeverityUtil.171306fbb06678edb
    org.owasp.dependencycheck.utils.SeverityUtil.Severity9d4aeea771e02d24
    org.owasp.dependencycheck.utils.SeverityUtilTest01fc7587f86aeec1
    org.owasp.dependencycheck.utils.URLConnectionFactory20a3b96d5b95a4c9
    org.owasp.dependencycheck.utils.UrlStringUtils13ac88d7b902ba2e
    org.owasp.dependencycheck.utils.UrlStringUtilsTest8733316fc53d99ca
    org.owasp.dependencycheck.utils.Utils2388cf60ae13d515
    org.owasp.dependencycheck.utils.UtilsTestb1d5e41228ca0360
    org.owasp.dependencycheck.utils.WriteLock38fa2d9af95f448e
    org.owasp.dependencycheck.utils.WriteLockCleanupHookf4959b4938fb442b
    org.owasp.dependencycheck.utils.WriteLockShutdownHook53b3f5b037d6b82e
    org.owasp.dependencycheck.utils.WriteLockShutdownHookFactory7856e6c15668c9d5
    org.owasp.dependencycheck.utils.XmlUtils3db31a3238d69ec0
    org.owasp.dependencycheck.utils.processing.ProcessReader0afc367a946b9c57
    org.owasp.dependencycheck.utils.processing.ProcessReader.Gobbler61ba8ef7823a8474
    org.owasp.dependencycheck.utils.processing.Processor54d82509a803683c
    org.owasp.dependencycheck.utils.search.FileContentSearch7adade2cb225852a
    org.owasp.dependencycheck.xml.XmlEntity66e5eed82ef0963b
    org.owasp.dependencycheck.xml.XmlEntityTestad3a2648b1b6ca1d
    org.owasp.dependencycheck.xml.XmlInputStreameeef9b35cd9d2c10
    org.owasp.dependencycheck.xml.XmlInputStreamTest1e3317d21906b4d5
    org.owasp.dependencycheck.xml.assembly.AssemblyData40fcba4a7dc5fa6e
    org.owasp.dependencycheck.xml.assembly.GrokErrorHandler455b926a72c7a449
    org.owasp.dependencycheck.xml.assembly.GrokHandlerfe21aa0c14ae6b1e
    org.owasp.dependencycheck.xml.assembly.GrokHandlerTest69500e7dafc7c2da
    org.owasp.dependencycheck.xml.assembly.GrokParser0c137c352235f734
    org.owasp.dependencycheck.xml.assembly.GrokParserTest43ec79c92cf90ca4
    org.owasp.dependencycheck.xml.hints.EvidenceMatcherce8cbfbe4740ac69
    org.owasp.dependencycheck.xml.hints.EvidenceMatcherTestef6e32d537e6febc
    org.owasp.dependencycheck.xml.hints.HintErrorHandleraa3882d7c7c5cc67
    org.owasp.dependencycheck.xml.hints.HintHandlere93cf0a863214916
    org.owasp.dependencycheck.xml.hints.HintHandler.1a7e8cba20e8af505
    org.owasp.dependencycheck.xml.hints.HintHandler.ParentTypef24faabcce5f4c72
    org.owasp.dependencycheck.xml.hints.HintHandlerTest692a4bce51df6767
    org.owasp.dependencycheck.xml.hints.HintParseException15554ac25758454f
    org.owasp.dependencycheck.xml.hints.HintParserd88f1d17c3864870
    org.owasp.dependencycheck.xml.hints.HintParserTest1b749120f6ca688f
    org.owasp.dependencycheck.xml.hints.HintRule58dd9d52018d064f
    org.owasp.dependencycheck.xml.hints.VendorDuplicatingHintRulef590e0aa1fffc212
    org.owasp.dependencycheck.xml.pom.Developer464a73d3a131fa1a
    org.owasp.dependencycheck.xml.pom.License2922b99dd5b791bf
    org.owasp.dependencycheck.xml.pom.Model1a4e32bf68ae7b1c
    org.owasp.dependencycheck.xml.pom.ModelTestc238e17cad449115
    org.owasp.dependencycheck.xml.pom.PomHandler1dd6925cb0dd2e80
    org.owasp.dependencycheck.xml.pom.PomParseException98635555ff4d4aa7
    org.owasp.dependencycheck.xml.pom.PomParser5d76ef6cff2aa125
    org.owasp.dependencycheck.xml.pom.PomParserTest97173bd2433cf0c6
    org.owasp.dependencycheck.xml.pom.PomProjectInputStreamf1ac6922e08319a5
    org.owasp.dependencycheck.xml.pom.PomProjectInputStreamTest12ab6533f4288404
    org.owasp.dependencycheck.xml.pom.PomUtils2eb9b189fe53a4c9
    org.owasp.dependencycheck.xml.pom.PomUtilsTest8323b9c226fc33c3
    org.owasp.dependencycheck.xml.suppression.PropertyType88e0dda4979f444f
    org.owasp.dependencycheck.xml.suppression.PropertyTypeTest256a689dbd646730
    org.owasp.dependencycheck.xml.suppression.SuppressionErrorHandlerf0b45bf0579463da
    org.owasp.dependencycheck.xml.suppression.SuppressionHandler4ba9da2c9f4c384b
    org.owasp.dependencycheck.xml.suppression.SuppressionHandlerTest266e89dec984126c
    org.owasp.dependencycheck.xml.suppression.SuppressionParseException97a15067a82d77c3
    org.owasp.dependencycheck.xml.suppression.SuppressionParserd5b7ee2be33418e9
    org.owasp.dependencycheck.xml.suppression.SuppressionParser.ClassloaderResolver166296f9153760dd
    org.owasp.dependencycheck.xml.suppression.SuppressionParserTestccac19b8117bf923
    org.owasp.dependencycheck.xml.suppression.SuppressionRule1e5fc4cd38ec8b4d
    org.owasp.dependencycheck.xml.suppression.SuppressionRuleTestc7f9560bb3ca7af8
    org.semver4j.Rangec76bd6fb5c6624f0
    org.semver4j.Range.183e89d11501f6870
    org.semver4j.Range.RangeOperator183304b1af0c4752
    org.semver4j.RangesLista8c301fd698bd9b4
    org.semver4j.RangesListFactory64869c3535328dd6
    org.semver4j.RangesStringf76f2c89ffb441d9
    org.semver4j.Semver70db16a3793928ea
    org.semver4j.internal.Comparator7758e74b07ffb475
    org.semver4j.internal.StrictParser96e1da8b14489626
    org.semver4j.internal.StrictParser.Versionedbe7798d7758581
    org.semver4j.internal.Tokenizersaeb8629650cf81e5
    org.semver4j.internal.range.RangeProcessorPipeline09c9bb388b210875
    org.semver4j.internal.range.processor.CaretProcessor0b4be2b3380b2f10
    org.semver4j.internal.range.processor.GreaterThanOrEqualZeroProcessor494c5b8f938aab40
    org.semver4j.internal.range.processor.HyphenProcessor356a4851a0c62db0
    org.semver4j.internal.range.processor.IvyProcessorec6d55b28cdd1d11
    org.semver4j.internal.range.processor.RangesUtilse177929c6b1677f1
    org.semver4j.internal.range.processor.TildeProcessor475e9d9a26a212ea
    org.semver4j.internal.range.processor.XRangeProcessor59f94d8ce0512762
    org.slf4j.LoggerFactorya381b7ddf19bf47d
    org.slf4j.MDC4d31efbdc380017c
    org.slf4j.helpers.FormattingTuple46e388b1eb4cb5c1
    org.slf4j.helpers.MessageFormatter42e7db43bad15507
    org.slf4j.helpers.NOPLoggerFactory54f5632bfcb8d8d5
    org.slf4j.helpers.SubstituteLoggerFactorydc7efc0107a4a62d
    org.slf4j.helpers.Util857ff3acc0576435
    org.slf4j.impl.StaticLoggerBinder039b3c899e055991
    org.slf4j.impl.StaticMDCBinder649700d80abb641d
    org.sonatype.goodies.packageurl.MoreStringseb27ab287eb4da12
    org.sonatype.goodies.packageurl.PackageUrlba59cd89165925f5
    org.sonatype.goodies.packageurl.PackageUrlBuilderec5a37c5d8b7d8b1
    org.sonatype.goodies.packageurl.PackageUrlParser966ad3717efe4b6e
    org.sonatype.goodies.packageurl.PercentEncoding79b73d2088ba2b82
    org.sonatype.goodies.packageurl.RenderFlavor947e4e9573055a26
    org.sonatype.ossindex.service.api.componentreport.ComponentReport007095118ffb89d9
    org.sonatype.ossindex.service.api.componentreport.ComponentReportRequest73ae3750dffdc447
    org.sonatype.ossindex.service.api.cvss.Cvss3Severity84b517f36ff1f7ad
    org.sonatype.ossindex.service.client.OssindexClientConfiguration80726ff317afd7e0
    org.sonatype.ossindex.service.client.cache.DirectoryCache3bf8e452dad6c4ed
    org.sonatype.ossindex.service.client.cache.DirectoryCache.22429342e83a28fda
    org.sonatype.ossindex.service.client.cache.DirectoryCache.Configurationc55ab0a42e31cd91
    org.sonatype.ossindex.service.client.internal.OssindexClientImplbddac31c81071c23
    org.sonatype.ossindex.service.client.internal.OssindexClientImpl.17301951d52de3113
    org.sonatype.ossindex.service.client.marshal.GsonMarshaller68863d87c428b1a3
    org.sonatype.ossindex.service.client.marshal.GsonMarshaller.PackageUrlAdapter73a4e077a878c501
    org.sonatype.ossindex.service.client.transport.BasicAuthHelper320dad2d7314e44b
    org.sonatype.ossindex.service.client.transport.HttpUrlConnectionTransport991facb046fab196
    org.sonatype.ossindex.service.client.transport.Transport.TransportExceptionb66a493e23de6aed
    org.sonatype.ossindex.service.client.transport.UserAgentBuilder9d3fb196624e4211
    org.sonatype.ossindex.service.client.transport.UserAgentBuilder.Producte8adb958139cf605
    org.sonatype.ossindex.service.client.transport.UserAgentSupplier03764d421bd8e97f
    org.sonatype.ossindex.service.client.util.FileLocker3d6d14da708e076b
    org.sonatype.ossindex.service.client.util.OsTypeb30db1a529198478
    org.sonatype.ossindex.service.client.util.UserDataLocation1a312d7a51e71dc6
    org.tukaani.xz.ArrayCache3a2705094af3c27a
    org.tukaani.xz.BlockInputStreamcea1cc709adcd346
    org.tukaani.xz.CloseIgnoringInputStreama863ae6f67a3f73d
    org.tukaani.xz.CorruptedInputException68e09bed15125660
    org.tukaani.xz.CountingInputStreama05f9284acadb3a6
    org.tukaani.xz.LZMA2Coder8ddf1b127d382fc7
    org.tukaani.xz.LZMA2Decoder209c1a9726078bd0
    org.tukaani.xz.LZMA2InputStreame873b181ed732990
    org.tukaani.xz.RawCoder1a0a1f9d7621de71
    org.tukaani.xz.SingleXZInputStream3d45753fa4b2920d
    org.tukaani.xz.XZ3946689c4b3103ce
    org.tukaani.xz.XZIOExceptionbedc91a807f46346
    org.tukaani.xz.check.Checkd681ebce97021c9f
    org.tukaani.xz.check.SHA2563d1bbc8350e171bf
    org.tukaani.xz.common.DecoderUtil14162ce47eee68b7
    org.tukaani.xz.common.StreamFlags4d6d1770ec301bd7
    org.tukaani.xz.index.IndexBasecf5f3a13b6b40dd0
    org.tukaani.xz.index.IndexHashf8b2b31b1aafe0ec
    org.tukaani.xz.lz.LZDecoder03fae6821d7da094
    org.tukaani.xz.lzma.LZMACoderc4739da1b173bc69
    org.tukaani.xz.lzma.LZMACoder.LengthCoder072baeca0d12dd8b
    org.tukaani.xz.lzma.LZMACoder.LiteralCoder4eede9b4a5296f31
    org.tukaani.xz.lzma.LZMACoder.LiteralCoder.LiteralSubcoderea1d9740237871d1
    org.tukaani.xz.lzma.LZMADecoder11580525aeb25322
    org.tukaani.xz.lzma.LZMADecoder.LengthDecoder83286f526924c26d
    org.tukaani.xz.lzma.LZMADecoder.LiteralDecoderf48f900576a5b0f6
    org.tukaani.xz.lzma.LZMADecoder.LiteralDecoder.LiteralSubdecoder5bf0c8a55637b4ce
    org.tukaani.xz.lzma.State210ba97c94e56683
    org.tukaani.xz.rangecoder.RangeCoder8984356a5c2bc698
    org.tukaani.xz.rangecoder.RangeDecoder14e212fd7eec9505
    org.tukaani.xz.rangecoder.RangeDecoderFromBuffer9dc33cdc8357fbc0
    org.yaml.snakeyaml.DumperOptions.FlowStyle7ea3edc4f54be89c
    org.yaml.snakeyaml.DumperOptions.ScalarStyle7a319a4284186f2f
    org.yaml.snakeyaml.LoaderOptions84a262111bb47a06
    org.yaml.snakeyaml.comments.CommentType30cb86478661a12f
    org.yaml.snakeyaml.error.Mark5bc3c9bcc1841039
    org.yaml.snakeyaml.events.CollectionEndEvent85d805f2e4a55c08
    org.yaml.snakeyaml.events.CollectionStartEvent0231990b2e62aa32
    org.yaml.snakeyaml.events.DocumentStartEvent7f1b49bf95796e57
    org.yaml.snakeyaml.events.Event1e4e8e1ecffbccc7
    org.yaml.snakeyaml.events.Event.ID660b7e2db990b490
    org.yaml.snakeyaml.events.ImplicitTuple628a7e643cfc7a7b
    org.yaml.snakeyaml.events.MappingEndEvent7134da44bbf99c35
    org.yaml.snakeyaml.events.MappingStartEvent05f8e226564ac798
    org.yaml.snakeyaml.events.NodeEvent8ecfb5e7e3f77952
    org.yaml.snakeyaml.events.ScalarEvent117bfdf280bbb530
    org.yaml.snakeyaml.events.SequenceEndEvent6a68db127cec6d1a
    org.yaml.snakeyaml.events.SequenceStartEvent6ff99213ce77ab28
    org.yaml.snakeyaml.events.StreamStartEventf3468b4979ab0020
    org.yaml.snakeyaml.external.com.google.gdata.util.common.base.PercentEscaperea022b41b47fc5f5
    org.yaml.snakeyaml.external.com.google.gdata.util.common.base.UnicodeEscaperd8020d00257a6ce9
    org.yaml.snakeyaml.external.com.google.gdata.util.common.base.UnicodeEscaper.221e0ba18478a36c0
    org.yaml.snakeyaml.inspector.UnTrustedTagInspectorab2c84bb5b3c7253
    org.yaml.snakeyaml.nodes.NodeId87773f8b7ee7f4b1
    org.yaml.snakeyaml.nodes.Tagcd9051ef43ecba10
    org.yaml.snakeyaml.parser.ParserImpl0edc84d8eb6bcaa1
    org.yaml.snakeyaml.parser.ParserImpl.ParseBlockMappingFirstKeye518e21315418d3b
    org.yaml.snakeyaml.parser.ParserImpl.ParseBlockMappingKeyf63028db115a665d
    org.yaml.snakeyaml.parser.ParserImpl.ParseBlockMappingValue1c042e51dbc39a81
    org.yaml.snakeyaml.parser.ParserImpl.ParseBlockNodea1fc0244795f40ae
    org.yaml.snakeyaml.parser.ParserImpl.ParseBlockSequenceEntryKey3b3009d4961fdd55
    org.yaml.snakeyaml.parser.ParserImpl.ParseBlockSequenceEntryValued46c326810e6bcf0
    org.yaml.snakeyaml.parser.ParserImpl.ParseBlockSequenceFirstEntrybc301c9ea4a5e17b
    org.yaml.snakeyaml.parser.ParserImpl.ParseDocumentEnd9fb874de5b8e8d0f
    org.yaml.snakeyaml.parser.ParserImpl.ParseImplicitDocumentStarta8d083da8689f891
    org.yaml.snakeyaml.parser.ParserImpl.ParseStreamStart1a650a1b60f8448e
    org.yaml.snakeyaml.parser.VersionTagsTuple9ead52e54af6fc87
    org.yaml.snakeyaml.reader.StreamReadercbe1eb07c1e19750
    org.yaml.snakeyaml.resolver.Resolver5795ff14f5aade27
    org.yaml.snakeyaml.resolver.Resolver.1c852ec33cfb78ed7
    org.yaml.snakeyaml.resolver.ResolverTuple9bafaa5a94bb0eae
    org.yaml.snakeyaml.scanner.Constantc953d2a9dfe0d44d
    org.yaml.snakeyaml.scanner.ScannerImpl53df43e98f7c3217
    org.yaml.snakeyaml.scanner.SimpleKey04daba0a01220fe4
    org.yaml.snakeyaml.tokens.BlockEndTokenc9af1daeae586365
    org.yaml.snakeyaml.tokens.BlockEntryTokenf2806b5c53f6d53b
    org.yaml.snakeyaml.tokens.BlockMappingStartTokenbc003c7c05a1a87a
    org.yaml.snakeyaml.tokens.BlockSequenceStartToken9e1c5ac00b125734
    org.yaml.snakeyaml.tokens.CommentToken1f7f172330291e7a
    org.yaml.snakeyaml.tokens.KeyTokene0436b619dad88b8
    org.yaml.snakeyaml.tokens.ScalarTokena3dd6dceb0e01f07
    org.yaml.snakeyaml.tokens.StreamEndToken32c4c2cb185e55ae
    org.yaml.snakeyaml.tokens.StreamStartToken335f23b0a2e925a9
    org.yaml.snakeyaml.tokens.Token546abdb7bec97cc4
    org.yaml.snakeyaml.tokens.Token.IDfe926272c5ad9b19
    org.yaml.snakeyaml.tokens.ValueToken2ed7cb0fcd5f7185
    org.yaml.snakeyaml.util.ArrayStack62d36f3c502066f5
    org.yaml.snakeyaml.util.UriEncoderf42a08d2a399c34e
    sun.security.ec.ECDHKeyAgreement98786957379e8052
    sun.security.ec.ECDSASignaturea87c8a3b4c249cae
    sun.security.ec.ECDSASignature.Raw34fd4d4f3f7b07d0
    sun.security.ec.ECDSASignature.SHA19a8c8c1fccb702ae
    sun.security.ec.ECDSASignature.SHA2244ab113fda835de86
    sun.security.ec.ECDSASignature.SHA256b847f3aa86c638a1
    sun.security.ec.ECDSASignature.SHA3841f1f0bb690cec78f
    sun.security.ec.ECDSASignature.SHA512ca949e76b48c64db
    sun.security.ec.ECKeyFactory5ffb1bf65edd3e5b
    sun.security.ec.ECKeyPairGeneratord54779aa8847492b
    sun.security.ec.ECOperations8b042a6db0c7d250
    sun.security.ec.ECPrivateKeyImple88e88043bb769c8
    sun.security.ec.ECPublicKeyImpl579a0a9fbecbe2cb
    sun.security.ec.SunECed7aaa5d851afecd
    sun.security.ec.SunEC.12aaa42d831e10c34
    sun.security.ec.SunECEntries1fc66cad07ebf775
    sun.security.ec.point.AffinePoint4473cc59511e4f38
    sun.security.ec.point.ProjectivePoint42bfa254a41c4522
    sun.security.ec.point.ProjectivePoint.Immutablef385d4fcc17d6f05
    sun.security.ec.point.ProjectivePoint.Mutableb5e8bd959990211c
    us.springett.parsers.cpe.Cpe6dcbf890483207ec
    us.springett.parsers.cpe.CpeBuildera8a545e97ba6c683
    us.springett.parsers.cpe.util.Convertd44be2fdb506753e
    us.springett.parsers.cpe.util.Statusa1e82b1c21855dd4
    us.springett.parsers.cpe.util.Validate4c1a3e0799b4658a
    us.springett.parsers.cpe.values.LogicalValue77dbdb0651fff32c
    us.springett.parsers.cpe.values.Partc2b878523b4c15a0
    \ No newline at end of file diff --git a/dependency-check-core/jacoco/jacoco.csv b/dependency-check-core/jacoco/jacoco.csv index 178809995be..e3feeda1586 100644 --- a/dependency-check-core/jacoco/jacoco.csv +++ b/dependency-check-core/jacoco/jacoco.csv @@ -3,8 +3,10 @@ Dependency-Check Core,org.owasp.dependencycheck.data.central,CentralSearch,117,3 Dependency-Check Core,org.owasp.dependencycheck.data.cache,DataCache,0,17,0,0,0,6,0,3,0,3 Dependency-Check Core,org.owasp.dependencycheck.data.cache,DataCacheFactory,76,170,8,8,21,42,5,8,0,5 Dependency-Check Core,org.owasp.dependencycheck.data.cache,DataCacheFactory.CacheType,0,34,0,0,0,4,0,1,0,1 -Dependency-Check Core,org.owasp.dependencycheck.data.update.nvd.api,DownloadTask,105,0,2,0,25,0,5,0,4,0 -Dependency-Check Core,org.owasp.dependencycheck.data.update.nvd.api,NvdApiProcessor,79,0,2,0,20,0,6,0,5,0 +Dependency-Check Core,org.owasp.dependencycheck.data.update.nvd.api,DownloadTask,94,0,2,0,23,0,5,0,4,0 +Dependency-Check Core,org.owasp.dependencycheck.data.update.nvd.api,NvdApiProcessor.new TypeReference() {...},6,0,0,0,1,0,1,0,1,0 +Dependency-Check Core,org.owasp.dependencycheck.data.update.nvd.api,NvdApiProcessor.new TypeReference() {...},6,0,0,0,1,0,1,0,1,0 +Dependency-Check Core,org.owasp.dependencycheck.data.update.nvd.api,NvdApiProcessor,193,0,10,0,40,0,10,0,5,0 Dependency-Check Core,org.owasp.dependencycheck.dependency,VulnerableSoftware,242,652,46,96,49,132,41,49,2,15 Dependency-Check Core,org.owasp.dependencycheck.dependency,Vulnerability.Source,0,64,0,0,0,7,0,1,0,1 Dependency-Check Core,org.owasp.dependencycheck.dependency,CweSet,0,62,1,3,0,14,1,9,0,8 @@ -63,24 +65,25 @@ Dependency-Check Core,org.owasp.dependencycheck.data.ossindex,ODCConnectionTrans Dependency-Check Core,org.owasp.dependencycheck.data.ossindex,OssindexClientFactory,22,109,7,5,6,26,6,2,0,2 Dependency-Check Core,org.owasp.dependencycheck.data.update,UpdateService,0,12,0,0,0,4,0,2,0,2 Dependency-Check Core,org.owasp.dependencycheck.data.update,EngineVersionCheck,101,173,13,13,28,47,13,9,2,7 -Dependency-Check Core,org.owasp.dependencycheck.data.update,KnownExploitedDataSource,139,39,15,1,26,10,11,3,3,3 -Dependency-Check Core,org.owasp.dependencycheck.data.update,RetireJSDataSource,166,114,16,6,35,23,11,6,2,4 -Dependency-Check Core,org.owasp.dependencycheck.data.update,HostedSuppressionsDataSource,185,129,19,9,42,25,15,6,3,4 -Dependency-Check Core,org.owasp.dependencycheck.data.update,NvdApiDataSource,1262,48,145,3,273,14,85,4,11,4 -Dependency-Check Core,org.owasp.dependencycheck.data.lucene,UrlTokenizingFilter,11,76,0,10,3,18,0,8,0,3 +Dependency-Check Core,org.owasp.dependencycheck.data.update,KnownExploitedDataSource,131,39,15,1,24,10,10,3,2,3 +Dependency-Check Core,org.owasp.dependencycheck.data.update,RetireJSDataSource,175,130,18,6,37,26,12,6,2,4 +Dependency-Check Core,org.owasp.dependencycheck.data.update,NvdApiDataSource.UrlData,0,15,0,0,0,6,0,3,0,3 +Dependency-Check Core,org.owasp.dependencycheck.data.update,HostedSuppressionsDataSource,207,144,24,12,47,29,18,7,3,4 +Dependency-Check Core,org.owasp.dependencycheck.data.update,NvdApiDataSource,1439,91,147,7,303,24,86,7,11,5 +Dependency-Check Core,org.owasp.dependencycheck.data.lucene,UrlTokenizingFilter,15,72,1,9,4,17,1,7,0,3 Dependency-Check Core,org.owasp.dependencycheck.data.lucene,LuceneUtils,0,61,1,11,0,17,1,8,0,3 Dependency-Check Core,org.owasp.dependencycheck.data.lucene,TokenPairConcatenatingFilter,59,99,6,10,17,28,5,8,2,3 Dependency-Check Core,org.owasp.dependencycheck.data.lucene,AlphaNumericFilter,51,114,6,14,15,28,5,11,2,4 Dependency-Check Core,org.owasp.dependencycheck.data.lucene,DependencySimilarity,5,0,0,0,2,0,2,0,2,0 Dependency-Check Core,org.owasp.dependencycheck.data.lucene,AbstractTokenizingFilter,0,51,0,4,0,15,0,7,0,5 Dependency-Check Core,org.owasp.dependencycheck.data.lucene,SearchFieldAnalyzer,0,119,1,1,0,19,1,5,0,5 -Dependency-Check Core,org.owasp.dependencycheck.data.nvdcve,CveDB,2358,1317,203,69,555,267,161,45,46,24 +Dependency-Check Core,org.owasp.dependencycheck.data.nvdcve,CveDB,2382,1325,208,68,560,269,164,44,46,24 Dependency-Check Core,org.owasp.dependencycheck.data.nvdcve,DatabaseException,13,0,0,0,6,0,3,0,3,0 Dependency-Check Core,org.owasp.dependencycheck.data.nvdcve,DriverShim,91,27,8,0,25,6,12,4,8,4 Dependency-Check Core,org.owasp.dependencycheck.data.nvdcve,CveDB.PreparedStatementCveDb,0,274,0,0,0,28,0,1,0,1 Dependency-Check Core,org.owasp.dependencycheck.data.nvdcve,DriverLoader,71,147,1,9,17,29,2,9,1,5 Dependency-Check Core,org.owasp.dependencycheck.data.nvdcve,CveItemOperator,403,6,164,0,67,3,95,1,8,1 -Dependency-Check Core,org.owasp.dependencycheck.data.nvdcve,DatabaseProperties,76,83,10,8,15,21,11,9,4,7 +Dependency-Check Core,org.owasp.dependencycheck.data.nvdcve,DatabaseProperties,113,83,12,8,26,21,15,9,7,7 Dependency-Check Core,org.owasp.dependencycheck.data.nvdcve,H2Functions,593,0,36,0,153,0,24,0,6,0 Dependency-Check Core,org.owasp.dependencycheck.data.nvdcve,DatabaseManager,386,408,31,25,95,117,25,25,1,21 Dependency-Check Core,org.owasp.dependencycheck.data.nvdcve,CorruptDatabaseException,9,0,0,0,4,0,2,0,2,0 @@ -113,8 +116,8 @@ Dependency-Check Core,org.owasp.dependencycheck.analyzer,SwiftPackageManagerAnal Dependency-Check Core,org.owasp.dependencycheck.analyzer,AutoconfAnalyzer,14,278,8,26,4,58,7,21,0,11 Dependency-Check Core,org.owasp.dependencycheck.analyzer,CPEAnalyzer.IdentifierMatch,34,79,3,3,9,22,7,7,4,7 Dependency-Check Core,org.owasp.dependencycheck.analyzer,NvdCveAnalyzer,120,129,17,9,24,39,17,14,6,12 -Dependency-Check Core,org.owasp.dependencycheck.analyzer,GolangModAnalyzer,263,220,17,9,46,66,13,12,0,11 Dependency-Check Core,org.owasp.dependencycheck.analyzer,PinnedMavenInstallAnalyzer.MavenDependency,0,3,0,0,0,1,0,1,0,1 +Dependency-Check Core,org.owasp.dependencycheck.analyzer,GolangModAnalyzer,263,220,17,9,46,66,13,12,0,11 Dependency-Check Core,org.owasp.dependencycheck.analyzer,PythonDistributionAnalyzer,141,401,27,29,31,93,24,19,1,14 Dependency-Check Core,org.owasp.dependencycheck.analyzer,MSBuildProjectAnalyzer,66,553,20,42,19,115,20,24,0,13 Dependency-Check Core,org.owasp.dependencycheck.analyzer,DependencyMergingAnalyzer,88,390,52,84,26,89,45,40,0,17 @@ -127,13 +130,13 @@ Dependency-Check Core,org.owasp.dependencycheck.analyzer,PinnedMavenInstallAnaly Dependency-Check Core,org.owasp.dependencycheck.analyzer,UnusedSuppressionRuleAnalyzer,0,53,2,6,0,18,2,11,0,9 Dependency-Check Core,org.owasp.dependencycheck.analyzer,AbstractAnalyzer,0,64,0,6,0,24,0,15,0,12 Dependency-Check Core,org.owasp.dependencycheck.analyzer,NexusAnalyzer,258,66,30,4,72,20,20,10,4,9 -Dependency-Check Core,org.owasp.dependencycheck.analyzer,JarAnalyzer.ClassNameInformation,10,68,1,7,3,17,2,6,1,3 Dependency-Check Core,org.owasp.dependencycheck.analyzer,AbstractNpmAnalyzer,362,856,57,77,67,177,46,40,6,13 +Dependency-Check Core,org.owasp.dependencycheck.analyzer,JarAnalyzer.ClassNameInformation,10,68,1,7,3,17,2,6,1,3 Dependency-Check Core,org.owasp.dependencycheck.analyzer,AssemblyAnalyzer,324,732,85,79,85,157,70,27,0,15 Dependency-Check Core,org.owasp.dependencycheck.analyzer,PoetryAnalyzer,31,226,5,7,7,49,5,11,0,10 Dependency-Check Core,org.owasp.dependencycheck.analyzer,KnownExploitedVulnerabilityAnalyzer,14,49,1,3,4,16,1,8,0,7 Dependency-Check Core,org.owasp.dependencycheck.analyzer,PerlCpanfileAnalyzer,70,239,5,7,14,60,6,15,3,12 -Dependency-Check Core,org.owasp.dependencycheck.analyzer,AbstractSuppressionAnalyzer,238,547,18,50,56,133,18,30,0,14 +Dependency-Check Core,org.owasp.dependencycheck.analyzer,AbstractSuppressionAnalyzer,241,544,19,49,57,132,19,29,0,14 Dependency-Check Core,org.owasp.dependencycheck.analyzer,PipfileAnalyzer,37,212,4,6,8,48,4,10,0,9 Dependency-Check Core,org.owasp.dependencycheck.analyzer,CentralAnalyzer,345,115,39,5,97,35,23,12,3,10 Dependency-Check Core,org.owasp.dependencycheck.analyzer,PinnedMavenInstallAnalyzer.DependencyTree,0,9,0,0,0,3,0,3,0,3 @@ -149,7 +152,7 @@ Dependency-Check Core,org.owasp.dependencycheck.analyzer,PipfilelockAnalyzer,48, Dependency-Check Core,org.owasp.dependencycheck.analyzer,DartAnalyzer,30,457,8,29,11,106,8,27,0,16 Dependency-Check Core,org.owasp.dependencycheck.analyzer,AnalyzerService,1,84,1,11,1,22,1,10,0,5 Dependency-Check Core,org.owasp.dependencycheck.analyzer,CocoaPodsAnalyzer,103,431,17,23,20,102,15,17,0,12 -Dependency-Check Core,org.owasp.dependencycheck.analyzer,PythonPackageAnalyzer,55,312,6,18,9,71,5,20,0,13 +Dependency-Check Core,org.owasp.dependencycheck.analyzer,PythonPackageAnalyzer,55,312,7,17,9,71,6,19,0,13 Dependency-Check Core,org.owasp.dependencycheck.analyzer,OssIndexAnalyzer,430,273,50,20,104,69,37,20,6,16 Dependency-Check Core,org.owasp.dependencycheck.analyzer,CPEAnalyzer.IdentifierConfidence,0,34,0,0,0,4,0,1,0,1 Dependency-Check Core,org.owasp.dependencycheck.analyzer,LibmanAnalyzer,36,241,6,10,11,59,6,11,0,9 @@ -159,8 +162,8 @@ Dependency-Check Core,org.owasp.dependencycheck.analyzer,ArtifactoryAnalyzer,212 Dependency-Check Core,org.owasp.dependencycheck.analyzer,CpeSuppressionAnalyzer,0,23,0,2,0,9,0,8,0,7 Dependency-Check Core,org.owasp.dependencycheck.analyzer,PEAnalyzer,149,363,36,46,26,79,26,27,0,9 Dependency-Check Core,org.owasp.dependencycheck.analyzer,NuspecAnalyzer,47,167,5,3,9,35,4,8,0,8 -Dependency-Check Core,org.owasp.dependencycheck.analyzer,NodePackageAnalyzer,230,658,32,84,46,141,27,44,0,13 Dependency-Check Core,org.owasp.dependencycheck.analyzer,HintAnalyzer,243,439,14,52,53,90,14,35,1,15 +Dependency-Check Core,org.owasp.dependencycheck.analyzer,NodePackageAnalyzer,230,658,32,84,46,141,27,44,0,13 Dependency-Check Core,org.owasp.dependencycheck.analyzer.exception,LambdaExceptionWrapper,4,0,0,0,2,0,1,0,1,0 Dependency-Check Core,org.owasp.dependencycheck.analyzer.exception,ArchiveExtractionException,16,0,0,0,8,0,4,0,4,0 Dependency-Check Core,org.owasp.dependencycheck.analyzer.exception,UnexpectedAnalysisException,13,0,0,0,6,0,3,0,3,0 diff --git a/dependency-check-core/jacoco/jacoco.xml b/dependency-check-core/jacoco/jacoco.xml index 63d192b25f3..96dcfd02c23 100644 --- a/dependency-check-core/jacoco/jacoco.xml +++ b/dependency-check-core/jacoco/jacoco.xml @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/dependency-check-core/jacoco/org.owasp.dependencycheck.analyzer/AbstractSuppressionAnalyzer.html b/dependency-check-core/jacoco/org.owasp.dependencycheck.analyzer/AbstractSuppressionAnalyzer.html index c4f95a37d51..745230b98d7 100644 --- a/dependency-check-core/jacoco/org.owasp.dependencycheck.analyzer/AbstractSuppressionAnalyzer.html +++ b/dependency-check-core/jacoco/org.owasp.dependencycheck.analyzer/AbstractSuppressionAnalyzer.html @@ -1 +1 @@ -AbstractSuppressionAnalyzer

    AbstractSuppressionAnalyzer

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
    Total238 of 78569%18 of 6873%184856189014
    loadSuppressionFile(SuppressionParser, String)1549638%3975%37326001
    loadCachedHostedSuppressionsRules(SuppressionParser, File, Engine)227577%2250%2372301
    loadPackagedSuppressionBaseData(SuppressionParser, Engine)222452%3350%3461401
    prepareAnalyzer(Engine)163065%2100%0221101
    loadHostedSuppressionBaseData(SuppressionParser, Engine)109390%41477%41042501
    forceUpdateHostedSuppressions(Engine, File)72376%2250%232801
    loadSuppressionData(Engine)411596%21083%2712401
    getRuleCount(Engine)1285%1150%121401
    analyzeDependency(Dependency, Engine)3096%1787%1511001
    throwSuppressionParseException(String, Exception, String)27100%n/a010301
    loadSuppressionBaseData(Engine)13100%n/a010401
    static {...}4100%n/a010101
    AbstractSuppressionAnalyzer()3100%n/a010101
    getSupportedExtensions()100%n/a010101
    \ No newline at end of file +AbstractSuppressionAnalyzer

    AbstractSuppressionAnalyzer

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
    Total241 of 78569%19 of 6872%194857189014
    loadSuppressionFile(SuppressionParser, String)1549638%3975%37326001
    loadCachedHostedSuppressionsRules(SuppressionParser, File, Engine)227577%2250%2372301
    loadPackagedSuppressionBaseData(SuppressionParser, Engine)222452%3350%3461401
    prepareAnalyzer(Engine)163065%2100%0221101
    loadHostedSuppressionBaseData(SuppressionParser, Engine)139087%51372%51052501
    forceUpdateHostedSuppressions(Engine, File)72376%2250%232801
    loadSuppressionData(Engine)411596%21083%2712401
    getRuleCount(Engine)1285%1150%121401
    analyzeDependency(Dependency, Engine)3096%1787%1511001
    throwSuppressionParseException(String, Exception, String)27100%n/a010301
    loadSuppressionBaseData(Engine)13100%n/a010401
    static {...}4100%n/a010101
    AbstractSuppressionAnalyzer()3100%n/a010101
    getSupportedExtensions()100%n/a010101
    \ No newline at end of file diff --git a/dependency-check-core/jacoco/org.owasp.dependencycheck.analyzer/AbstractSuppressionAnalyzer.java.html b/dependency-check-core/jacoco/org.owasp.dependencycheck.analyzer/AbstractSuppressionAnalyzer.java.html index 758f7102379..38166a48247 100644 --- a/dependency-check-core/jacoco/org.owasp.dependencycheck.analyzer/AbstractSuppressionAnalyzer.java.html +++ b/dependency-check-core/jacoco/org.owasp.dependencycheck.analyzer/AbstractSuppressionAnalyzer.java.html @@ -255,10 +255,10 @@ repoEmpty = forceUpdateHostedSuppressions(engine, repoFile); } } - if (!repoEmpty) { + if (!repoEmpty) { loadCachedHostedSuppressionsRules(parser, repoFile, engine); } else { - LOGGER.warn("Empty Hosted Suppression file after update, results may contain false positives " + LOGGER.warn("Empty Hosted Suppression file after update, results may contain false positives " + "already resolved by the DependencyCheck project due to failed download of the hosted suppression file"); } } catch (IOException | InitializationException ex) { diff --git a/dependency-check-core/jacoco/org.owasp.dependencycheck.analyzer/PythonPackageAnalyzer.html b/dependency-check-core/jacoco/org.owasp.dependencycheck.analyzer/PythonPackageAnalyzer.html index 1d211cf8cfd..e62170c3cc9 100644 --- a/dependency-check-core/jacoco/org.owasp.dependencycheck.analyzer/PythonPackageAnalyzer.html +++ b/dependency-check-core/jacoco/org.owasp.dependencycheck.analyzer/PythonPackageAnalyzer.html @@ -1 +1 @@ -PythonPackageAnalyzer

    PythonPackageAnalyzer

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
    Total55 of 36785%6 of 2475%525980013
    analyzeFileContents(Dependency, File)5210266%3562%2582701
    analyzeDependency(Dependency, Engine)35594%2466%2411401
    static {...}47100%n/a0101101
    gatherEvidence(Dependency, EvidenceType, Pattern, String, String, String, Confidence)45100%4100%030901
    gatherHomePageEvidence(Dependency, EvidenceType, Pattern, String, String, String)22100%1375%130601
    addSummaryInfo(Dependency, Pattern, int, String, String, String)18100%2100%020501
    compileAssignPattern(String)11100%n/a010201
    PythonPackageAnalyzer()3100%n/a010101
    getName()2100%n/a010101
    getAnalysisPhase()2100%n/a010101
    getAnalyzerEnabledSettingKey()2100%n/a010101
    getFileFilter()2100%n/a010101
    prepareFileTypeAnalyzer(Engine)100%n/a010101
    \ No newline at end of file +PythonPackageAnalyzer

    PythonPackageAnalyzer

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
    Total55 of 36785%7 of 2470%625980013
    analyzeFileContents(Dependency, File)5210266%4450%3582701
    analyzeDependency(Dependency, Engine)35594%2466%2411401
    static {...}47100%n/a0101101
    gatherEvidence(Dependency, EvidenceType, Pattern, String, String, String, Confidence)45100%4100%030901
    gatherHomePageEvidence(Dependency, EvidenceType, Pattern, String, String, String)22100%1375%130601
    addSummaryInfo(Dependency, Pattern, int, String, String, String)18100%2100%020501
    compileAssignPattern(String)11100%n/a010201
    PythonPackageAnalyzer()3100%n/a010101
    getName()2100%n/a010101
    getAnalysisPhase()2100%n/a010101
    getAnalyzerEnabledSettingKey()2100%n/a010101
    getFileFilter()2100%n/a010101
    prepareFileTypeAnalyzer(Engine)100%n/a010101
    \ No newline at end of file diff --git a/dependency-check-core/jacoco/org.owasp.dependencycheck.analyzer/PythonPackageAnalyzer.java.html b/dependency-check-core/jacoco/org.owasp.dependencycheck.analyzer/PythonPackageAnalyzer.java.html index c35201a4aa2..56f89dde984 100644 --- a/dependency-check-core/jacoco/org.owasp.dependencycheck.analyzer/PythonPackageAnalyzer.java.html +++ b/dependency-check-core/jacoco/org.owasp.dependencycheck.analyzer/PythonPackageAnalyzer.java.html @@ -263,7 +263,7 @@ try { final PackageURLBuilder builder = PackageURLBuilder.aPackageURL().withType("pypi").withName(dependency.getName()); - if (dependency.getVersion() != null) { + if (dependency.getVersion() != null) { builder.withVersion(dependency.getVersion()); } final PackageURL purl = builder.build(); diff --git a/dependency-check-core/jacoco/org.owasp.dependencycheck.analyzer/index.html b/dependency-check-core/jacoco/org.owasp.dependencycheck.analyzer/index.html index ed6d44cd7dd..b08f8c64ae5 100644 --- a/dependency-check-core/jacoco/org.owasp.dependencycheck.analyzer/index.html +++ b/dependency-check-core/jacoco/org.owasp.dependencycheck.analyzer/index.html @@ -1 +1 @@ -org.owasp.dependencycheck.analyzer

    org.owasp.dependencycheck.analyzer

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethodsMissedClasses
    Total9,427 of 30,09068%1,529 of 3,47856%1,2222,5202,0436,61372774065
    JarAnalyzer7492,47876%18429461%15327313961103401
    ArchiveAnalyzer66988656%829453%7111713533062901
    FalsePositiveAnalyzer56049246%1696126%1081389421142301
    DependencyBundlingAnalyzer55766754%16514146%11817813026352501
    CPEAnalyzer5521,98178%8923172%7821210652765201
    OssIndexAnalyzer43027338%502028%375710417362201
    AbstractNpmAnalyzer36285670%577757%46866724461901
    RetireJsAnalyzer35454460%254865%22536318321501
    CentralAnalyzer34511525%39511%23359713231301
    AssemblyAnalyzer32473269%857948%70978524201501
    RubyBundleAuditAnalyzer29014533%241029%1526691081901
    PnpmAuditAnalyzer29010827%24414%18267210641201
    GolangModAnalyzer26322045%17934%13254611201101
    NexusAnalyzer2586620%30411%2030729241301
    ElixirMixAuditAnalyzer25713834%15525%101959891901
    HintAnalyzer24343964%145278%14495314311601
    AbstractSuppressionAnalyzer23854769%185073%18485618901401
    NodePackageAnalyzer23065874%328472%27714618701301
    ArtifactoryAnalyzer2124015%200%1422576941201
    NodeAuditAnalyzer18413341%91155%71945761901
    PEAnalyzer14936370%364656%2653261050901
    YarnAuditAnalyzer14831367%131350%12253911801201
    RubyGemspecAnalyzer14530567%311532%2435339521201
    PythonDistributionAnalyzer14140173%272951%24433112411501
    NvdCveAnalyzer12012951%17934%1731246361801
    CMakeAnalyzer11756982%124880%11431815801301
    CocoaPodsAnalyzer10343180%172357%15322012201201
    SwiftPackageResolvedAnalyzer9830175%231234%1732189701401
    SwiftPackageManagerAnalyzer9317064%141041%1223136001101
    DependencyMergingAnalyzer8839081%528461%45852611501701
    GolangDepAnalyzer7333682%92170%725149001001
    PerlCpanfileAnalyzer7023977%5758%621147431501
    MSBuildProjectAnalyzer6655389%204267%20441913401301
    PythonPackageAnalyzer5531285%61875%52598001301
    PinnedMavenInstallAnalyzer5325382%111862%112416790901
    RubyBundlerAnalyzer509264%171343%132010300501
    PipfilelockAnalyzer4824383%770%41411631901
    NuspecAnalyzer4716778%537%4129440801
    ComposerLockAnalyzer4419181%n/a01084601001
    NugetconfAnalyzer3723286%6100%0118510801
    PipfileAnalyzer3721285%4660%4148560901
    LibmanAnalyzer3624187%61062%61711700901
    CPEAnalyzer.IdentifierMatch347969%50%71493141101
    PoetryAnalyzer3122687%5758%51675601001
    OpenSSLAnalyzer3121487%41071%41774401001
    PipAnalyzer3121187%5758%5156540901
    NpmCPEAnalyzer315262%100%089270701
    DartAnalyzer3045793%82978%8351111701601
    AutoconfAnalyzer27895%82676%72846201101
    KnownExploitedVulnerabilityAnalyzer4977%75%194200701
    JarAnalyzer.ClassNameInformation6887%787%283201401
    FileNameAnalyzer14494%880%2111200601
    AbstractFileTypeAnalyzer6591%880%2121220701
    AnalyzerService8498%1191%1111230501
    VersionFilterAnalyzer317100%87690%8510510901
    AnalysisPhase154100%n/a010160101
    AbstractDependencyComparingAnalyzer79100%1191%1100200401
    AbstractAnalyzer64100%6100%01502401201
    UnusedSuppressionRuleAnalyzer53100%675%2130180901
    VulnerabilitySuppressionAnalyzer36100%880%212090701
    CPEAnalyzer.IdentifierConfidence34100%n/a01040101
    CpeSuppressionAnalyzer100%100%08090701
    PinnedMavenInstallAnalyzer.DependencyTree100%n/a03030301
    PinnedMavenInstallAnalyzer.MavenDependency100%n/a01010101
    PinnedMavenInstallAnalyzer.InstallFile100%n/a01010101
    \ No newline at end of file +org.owasp.dependencycheck.analyzer

    org.owasp.dependencycheck.analyzer

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethodsMissedClasses
    Total9,430 of 30,09068%1,531 of 3,47855%1,2242,5202,0446,61372774065
    JarAnalyzer7492,47876%18429461%15327313961103401
    ArchiveAnalyzer66988656%829453%7111713533062901
    FalsePositiveAnalyzer56049246%1696126%1081389421142301
    DependencyBundlingAnalyzer55766754%16514146%11817813026352501
    CPEAnalyzer5521,98178%8923172%7821210652765201
    OssIndexAnalyzer43027338%502028%375710417362201
    AbstractNpmAnalyzer36285670%577757%46866724461901
    RetireJsAnalyzer35454460%254865%22536318321501
    CentralAnalyzer34511525%39511%23359713231301
    AssemblyAnalyzer32473269%857948%70978524201501
    RubyBundleAuditAnalyzer29014533%241029%1526691081901
    PnpmAuditAnalyzer29010827%24414%18267210641201
    GolangModAnalyzer26322045%17934%13254611201101
    NexusAnalyzer2586620%30411%2030729241301
    ElixirMixAuditAnalyzer25713834%15525%101959891901
    HintAnalyzer24343964%145278%14495314311601
    AbstractSuppressionAnalyzer24154469%194972%19485718901401
    NodePackageAnalyzer23065874%328472%27714618701301
    ArtifactoryAnalyzer2124015%200%1422576941201
    NodeAuditAnalyzer18413341%91155%71945761901
    PEAnalyzer14936370%364656%2653261050901
    YarnAuditAnalyzer14831367%131350%12253911801201
    RubyGemspecAnalyzer14530567%311532%2435339521201
    PythonDistributionAnalyzer14140173%272951%24433112411501
    NvdCveAnalyzer12012951%17934%1731246361801
    CMakeAnalyzer11756982%124880%11431815801301
    CocoaPodsAnalyzer10343180%172357%15322012201201
    SwiftPackageResolvedAnalyzer9830175%231234%1732189701401
    SwiftPackageManagerAnalyzer9317064%141041%1223136001101
    DependencyMergingAnalyzer8839081%528461%45852611501701
    GolangDepAnalyzer7333682%92170%725149001001
    PerlCpanfileAnalyzer7023977%5758%621147431501
    MSBuildProjectAnalyzer6655389%204267%20441913401301
    PythonPackageAnalyzer5531285%71770%62598001301
    PinnedMavenInstallAnalyzer5325382%111862%112416790901
    RubyBundlerAnalyzer509264%171343%132010300501
    PipfilelockAnalyzer4824383%770%41411631901
    NuspecAnalyzer4716778%537%4129440801
    ComposerLockAnalyzer4419181%n/a01084601001
    NugetconfAnalyzer3723286%6100%0118510801
    PipfileAnalyzer3721285%4660%4148560901
    LibmanAnalyzer3624187%61062%61711700901
    CPEAnalyzer.IdentifierMatch347969%50%71493141101
    PoetryAnalyzer3122687%5758%51675601001
    OpenSSLAnalyzer3121487%41071%41774401001
    PipAnalyzer3121187%5758%5156540901
    NpmCPEAnalyzer315262%100%089270701
    DartAnalyzer3045793%82978%8351111701601
    AutoconfAnalyzer27895%82676%72846201101
    KnownExploitedVulnerabilityAnalyzer4977%75%194200701
    JarAnalyzer.ClassNameInformation6887%787%283201401
    FileNameAnalyzer14494%880%2111200601
    AbstractFileTypeAnalyzer6591%880%2121220701
    AnalyzerService8498%1191%1111230501
    VersionFilterAnalyzer317100%87690%8510510901
    AnalysisPhase154100%n/a010160101
    AbstractDependencyComparingAnalyzer79100%1191%1100200401
    AbstractAnalyzer64100%6100%01502401201
    UnusedSuppressionRuleAnalyzer53100%675%2130180901
    VulnerabilitySuppressionAnalyzer36100%880%212090701
    CPEAnalyzer.IdentifierConfidence34100%n/a01040101
    CpeSuppressionAnalyzer100%100%08090701
    PinnedMavenInstallAnalyzer.DependencyTree100%n/a03030301
    PinnedMavenInstallAnalyzer.MavenDependency100%n/a01010101
    PinnedMavenInstallAnalyzer.InstallFile100%n/a01010101
    \ No newline at end of file diff --git a/dependency-check-core/jacoco/org.owasp.dependencycheck.analyzer/index.source.html b/dependency-check-core/jacoco/org.owasp.dependencycheck.analyzer/index.source.html index a9d57f6b768..e621cac6ace 100644 --- a/dependency-check-core/jacoco/org.owasp.dependencycheck.analyzer/index.source.html +++ b/dependency-check-core/jacoco/org.owasp.dependencycheck.analyzer/index.source.html @@ -1 +1 @@ -org.owasp.dependencycheck.analyzer

    org.owasp.dependencycheck.analyzer

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethodsMissedClasses
    Total9,427 of 30,09068%1,529 of 3,47856%1,2222,5202,0436,61372774065
    JarAnalyzer.java7592,54677%18530161%15528114263113802
    ArchiveAnalyzer.java66988656%829453%7111713533062901
    CPEAnalyzer.java5862,09478%9223471%85227115562106403
    FalsePositiveAnalyzer.java56049246%1696126%1081389421142301
    DependencyBundlingAnalyzer.java55766754%16514146%11817813026352501
    OssIndexAnalyzer.java43027338%502028%375710417362201
    AbstractNpmAnalyzer.java36285670%577757%46866724461901
    RetireJsAnalyzer.java35454460%254865%22536318321501
    CentralAnalyzer.java34511525%39511%23359713231301
    AssemblyAnalyzer.java32473269%857948%70978524201501
    RubyBundleAuditAnalyzer.java29014533%241029%1526691081901
    PnpmAuditAnalyzer.java29010827%2414%18267210641201
    GolangModAnalyzer.java26322045%17934%13254611201101
    NexusAnalyzer.java2586620%3011%2030729241301
    ElixirMixAuditAnalyzer.java25713834%15525%101959891901
    HintAnalyzer.java24343964%145278%14495314311601
    AbstractSuppressionAnalyzer.java23854769%185073%18485618901401
    NodePackageAnalyzer.java23065874%328472%27714618701301
    ArtifactoryAnalyzer.java2124015%200%1422576941201
    NodeAuditAnalyzer.java18413341%91155%71945761901
    PEAnalyzer.java14936370%364656%2653261050901
    YarnAuditAnalyzer.java14831367%131350%12253911801201
    RubyGemspecAnalyzer.java14530567%311532%2435339521201
    PythonDistributionAnalyzer.java14140173%272951%24433112411501
    NvdCveAnalyzer.java12012951%17934%1731246361801
    CMakeAnalyzer.java11756982%124880%11431815801301
    CocoaPodsAnalyzer.java10343180%172357%15322012201201
    SwiftPackageResolvedAnalyzer.java9830175%231234%1732189701401
    SwiftPackageManagerAnalyzer.java9317064%141041%1223136001101
    DependencyMergingAnalyzer.java8839081%528461%45852611501701
    GolangDepAnalyzer.java7333682%92170%725149001001
    PerlCpanfileAnalyzer.java7023977%5758%621147431501
    MSBuildProjectAnalyzer.java6655389%204267%20441913401301
    PythonPackageAnalyzer.java5531285%61875%52598001301
    PinnedMavenInstallAnalyzer.java5326883%111862%1129168401404
    RubyBundlerAnalyzer.java509264%171343%132010300501
    PipfilelockAnalyzer.java4824383%770%41411631901
    NuspecAnalyzer.java4716778%537%4129440801
    ComposerLockAnalyzer.java4419181%n/a01084601001
    NugetconfAnalyzer.java3723286%6100%0118510801
    PipfileAnalyzer.java3721285%660%4148560901
    LibmanAnalyzer.java3624187%61062%61711700901
    PoetryAnalyzer.java3122687%5758%51675601001
    OpenSSLAnalyzer.java3121487%1071%41774401001
    PipAnalyzer.java3121187%5758%5156540901
    NpmCPEAnalyzer.java315262%100%089270701
    DartAnalyzer.java3045793%82978%8351111701601
    AutoconfAnalyzer.java27895%82676%72846201101
    KnownExploitedVulnerabilityAnalyzer.java4977%75%194200701
    FileNameAnalyzer.java14494%880%2111200601
    AbstractFileTypeAnalyzer.java6591%880%2121220701
    AnalyzerService.java8498%1191%1111230501
    VersionFilterAnalyzer.java317100%87690%8510510901
    AnalysisPhase.java154100%n/a010160101
    AbstractDependencyComparingAnalyzer.java79100%1191%1100200401
    AbstractAnalyzer.java64100%6100%01502401201
    UnusedSuppressionRuleAnalyzer.java53100%675%2130180901
    VulnerabilitySuppressionAnalyzer.java36100%880%212090701
    CpeSuppressionAnalyzer.java100%100%08090701
    \ No newline at end of file +org.owasp.dependencycheck.analyzer

    org.owasp.dependencycheck.analyzer

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethodsMissedClasses
    Total9,430 of 30,09068%1,531 of 3,47855%1,2242,5202,0446,61372774065
    JarAnalyzer.java7592,54677%18530161%15528114263113802
    ArchiveAnalyzer.java66988656%829453%7111713533062901
    CPEAnalyzer.java5862,09478%9223471%85227115562106403
    FalsePositiveAnalyzer.java56049246%1696126%1081389421142301
    DependencyBundlingAnalyzer.java55766754%16514146%11817813026352501
    OssIndexAnalyzer.java43027338%502028%375710417362201
    AbstractNpmAnalyzer.java36285670%577757%46866724461901
    RetireJsAnalyzer.java35454460%254865%22536318321501
    CentralAnalyzer.java34511525%39511%23359713231301
    AssemblyAnalyzer.java32473269%857948%70978524201501
    RubyBundleAuditAnalyzer.java29014533%241029%1526691081901
    PnpmAuditAnalyzer.java29010827%2414%18267210641201
    GolangModAnalyzer.java26322045%17934%13254611201101
    NexusAnalyzer.java2586620%3011%2030729241301
    ElixirMixAuditAnalyzer.java25713834%15525%101959891901
    HintAnalyzer.java24343964%145278%14495314311601
    AbstractSuppressionAnalyzer.java24154469%194972%19485718901401
    NodePackageAnalyzer.java23065874%328472%27714618701301
    ArtifactoryAnalyzer.java2124015%200%1422576941201
    NodeAuditAnalyzer.java18413341%91155%71945761901
    PEAnalyzer.java14936370%364656%2653261050901
    YarnAuditAnalyzer.java14831367%131350%12253911801201
    RubyGemspecAnalyzer.java14530567%311532%2435339521201
    PythonDistributionAnalyzer.java14140173%272951%24433112411501
    NvdCveAnalyzer.java12012951%17934%1731246361801
    CMakeAnalyzer.java11756982%124880%11431815801301
    CocoaPodsAnalyzer.java10343180%172357%15322012201201
    SwiftPackageResolvedAnalyzer.java9830175%231234%1732189701401
    SwiftPackageManagerAnalyzer.java9317064%141041%1223136001101
    DependencyMergingAnalyzer.java8839081%528461%45852611501701
    GolangDepAnalyzer.java7333682%92170%725149001001
    PerlCpanfileAnalyzer.java7023977%5758%621147431501
    MSBuildProjectAnalyzer.java6655389%204267%20441913401301
    PythonPackageAnalyzer.java5531285%71770%62598001301
    PinnedMavenInstallAnalyzer.java5326883%111862%1129168401404
    RubyBundlerAnalyzer.java509264%171343%132010300501
    PipfilelockAnalyzer.java4824383%770%41411631901
    NuspecAnalyzer.java4716778%537%4129440801
    ComposerLockAnalyzer.java4419181%n/a01084601001
    NugetconfAnalyzer.java3723286%6100%0118510801
    PipfileAnalyzer.java3721285%660%4148560901
    LibmanAnalyzer.java3624187%61062%61711700901
    PoetryAnalyzer.java3122687%5758%51675601001
    OpenSSLAnalyzer.java3121487%1071%41774401001
    PipAnalyzer.java3121187%5758%5156540901
    NpmCPEAnalyzer.java315262%100%089270701
    DartAnalyzer.java3045793%82978%8351111701601
    AutoconfAnalyzer.java27895%82676%72846201101
    KnownExploitedVulnerabilityAnalyzer.java4977%75%194200701
    FileNameAnalyzer.java14494%880%2111200601
    AbstractFileTypeAnalyzer.java6591%880%2121220701
    AnalyzerService.java8498%1191%1111230501
    VersionFilterAnalyzer.java317100%87690%8510510901
    AnalysisPhase.java154100%n/a010160101
    AbstractDependencyComparingAnalyzer.java79100%1191%1100200401
    AbstractAnalyzer.java64100%6100%01502401201
    UnusedSuppressionRuleAnalyzer.java53100%675%2130180901
    VulnerabilitySuppressionAnalyzer.java36100%880%212090701
    CpeSuppressionAnalyzer.java100%100%08090701
    \ No newline at end of file diff --git a/dependency-check-core/jacoco/org.owasp.dependencycheck.data.lucene/UrlTokenizingFilter.html b/dependency-check-core/jacoco/org.owasp.dependencycheck.data.lucene/UrlTokenizingFilter.html index 11de2a9e520..f8d154b16f4 100644 --- a/dependency-check-core/jacoco/org.owasp.dependencycheck.data.lucene/UrlTokenizingFilter.html +++ b/dependency-check-core/jacoco/org.owasp.dependencycheck.data.lucene/UrlTokenizingFilter.html @@ -1 +1 @@ -UrlTokenizingFilter

    UrlTokenizingFilter

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
    Total11 of 8787%0 of 10100%0832103
    incrementToken()116886%10100%0631801
    UrlTokenizingFilter(TokenStream)4100%n/a010201
    static {...}4100%n/a010101
    \ No newline at end of file +UrlTokenizingFilter

    UrlTokenizingFilter

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
    Total15 of 8782%1 of 1090%1842103
    incrementToken()156481%1990%1641801
    UrlTokenizingFilter(TokenStream)4100%n/a010201
    static {...}4100%n/a010101
    \ No newline at end of file diff --git a/dependency-check-core/jacoco/org.owasp.dependencycheck.data.lucene/UrlTokenizingFilter.java.html b/dependency-check-core/jacoco/org.owasp.dependencycheck.data.lucene/UrlTokenizingFilter.java.html index 74eaae3223c..3992e1db207 100644 --- a/dependency-check-core/jacoco/org.owasp.dependencycheck.data.lucene/UrlTokenizingFilter.java.html +++ b/dependency-check-core/jacoco/org.owasp.dependencycheck.data.lucene/UrlTokenizingFilter.java.html @@ -69,7 +69,7 @@ if (UrlStringUtils.containsUrl(text)) { final String[] parts = text.split("\\s"); for (String part : parts) { - if (UrlStringUtils.isUrl(part)) { + if (UrlStringUtils.isUrl(part)) { try { final List<String> data = UrlStringUtils.extractImportantUrlData(part); tokens.addAll(data); @@ -78,7 +78,7 @@ tokens.add(part); } } else { - tokens.add(part); + tokens.add(part); } } } else { diff --git a/dependency-check-core/jacoco/org.owasp.dependencycheck.data.lucene/index.html b/dependency-check-core/jacoco/org.owasp.dependencycheck.data.lucene/index.html index 2924cae3637..030f0b0b1ea 100644 --- a/dependency-check-core/jacoco/org.owasp.dependencycheck.data.lucene/index.html +++ b/dependency-check-core/jacoco/org.owasp.dependencycheck.data.lucene/index.html @@ -1 +1 @@ -org.owasp.dependencycheck.data.lucene

    org.owasp.dependencycheck.data.lucene

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethodsMissedClasses
    Total126 of 64680%14 of 6478%14613716262917
    TokenPairConcatenatingFilter599962%61062%51317452501
    AlphaNumericFilter5111469%61470%51615432601
    UrlTokenizingFilter117687%10100%083210301
    DependencySimilarity50%n/a22222211
    SearchFieldAnalyzer119100%1150%160190501
    LuceneUtils61100%11191%190170301
    AbstractTokenizingFilter51100%4100%070150501
    \ No newline at end of file +org.owasp.dependencycheck.data.lucene

    org.owasp.dependencycheck.data.lucene

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethodsMissedClasses
    Total130 of 64679%15 of 6476%15613816262917
    TokenPairConcatenatingFilter599962%61062%51317452501
    AlphaNumericFilter5111469%61470%51615432601
    UrlTokenizingFilter157282%1990%184210301
    DependencySimilarity50%n/a22222211
    SearchFieldAnalyzer119100%1150%160190501
    LuceneUtils61100%11191%190170301
    AbstractTokenizingFilter51100%4100%070150501
    \ No newline at end of file diff --git a/dependency-check-core/jacoco/org.owasp.dependencycheck.data.lucene/index.source.html b/dependency-check-core/jacoco/org.owasp.dependencycheck.data.lucene/index.source.html index 62331fc6374..0501b93108a 100644 --- a/dependency-check-core/jacoco/org.owasp.dependencycheck.data.lucene/index.source.html +++ b/dependency-check-core/jacoco/org.owasp.dependencycheck.data.lucene/index.source.html @@ -1 +1 @@ -org.owasp.dependencycheck.data.lucene

    org.owasp.dependencycheck.data.lucene

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethodsMissedClasses
    Total126 of 64680%14 of 6478%14613716262917
    TokenPairConcatenatingFilter.java599962%61062%51317452501
    AlphaNumericFilter.java5111469%61470%51615432601
    UrlTokenizingFilter.java117687%10100%083210301
    DependencySimilarity.java50%n/a22222211
    SearchFieldAnalyzer.java119100%1150%160190501
    LuceneUtils.java61100%11191%190170301
    AbstractTokenizingFilter.java51100%4100%070150501
    \ No newline at end of file +org.owasp.dependencycheck.data.lucene

    org.owasp.dependencycheck.data.lucene

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethodsMissedClasses
    Total130 of 64679%15 of 6476%15613816262917
    TokenPairConcatenatingFilter.java599962%61062%51317452501
    AlphaNumericFilter.java5111469%61470%51615432601
    UrlTokenizingFilter.java157282%1990%184210301
    DependencySimilarity.java50%n/a22222211
    SearchFieldAnalyzer.java119100%1150%160190501
    LuceneUtils.java61100%11191%190170301
    AbstractTokenizingFilter.java51100%4100%070150501
    \ No newline at end of file diff --git a/dependency-check-core/jacoco/org.owasp.dependencycheck.data.nvdcve/CveDB.html b/dependency-check-core/jacoco/org.owasp.dependencycheck.data.nvdcve/CveDB.html index 7e1ff7a6d66..6dfcdb0f447 100644 --- a/dependency-check-core/jacoco/org.owasp.dependencycheck.data.nvdcve/CveDB.html +++ b/dependency-check-core/jacoco/org.owasp.dependencycheck.data.nvdcve/CveDB.html @@ -1 +1 @@ -CveDB

    CveDB

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
    Total2,358 of 3,67535%203 of 27225%1612065558224670
    updateOrInsertVulnerability(DefCveItem, String)5050%260%141410110111
    updateVulnerabilityInsertSoftware(int, String, List, String)1690%80%55363611
    updateKnownExploitedVulnerabilities(List)1290%100%66313111
    updateVulnerabilityInsertReferences(int, DefCveItem)1090%200%1111232311
    cleanupDatabase()930%120%77262611
    updateVulnerability(DefCveItem, String)920%40%33212111
    saveCpeEcosystemCache()920%100%66191911
    updateVulnerabilityInsertCwe(int, DefCveItem)720%140%88151511
    updateEcosystemCache()710%20%22181811
    loadCpeEcosystemCache()700%20%22161611
    getknownExploitedVulnerabilities()622831%1150%12142101
    getVulnerability(String, Connection)5957790%182860%182469501
    parseCpes(DefCveItem)470%n/a11161611
    saveProperty(String, String)463140%3125%23111901
    defrag()420%20%22121211
    dataExists()402942%2250%23101501
    parseCpe(CpeMatch, String)380%n/a116611
    lambda$parseCpes$3(VulnerableSoftwareBuilder, DefCveItem, List, CpeMatch)380%n/a11111111
    addCpe(String, String, String)370%n/a11101011
    getVulnerabilities(Cpe)2921087%31583%31065101
    getPreparedStatement(Connection, CveDB.PreparedStatementCveDb)282142%6225%4571401
    executeBatch(String, PreparedStatement)270%20%229911
    setFloatValue(PreparedStatement, int, Map, String)260%40%337711
    deleteUnusedCpe()250%n/a117711
    setBooleanValue(PreparedStatement, int, Map, String)200%40%334411
    setStringValue(PreparedStatement, int, Map, String)190%40%334411
    deleteVulnerability(String)180%n/a114411
    addNullableStringParameter(PreparedStatement, int, String)150%40%334411
    lambda$parseCpes$2(DefCveItem, CpeMatch)150%40%332211
    getVulnerability(String)141348%n/a012401
    setUpdateColumn(PreparedStatement, int, Double)130%20%224411
    setUpdateColumn(PreparedStatement, int, CvssV2Data.AuthenticationType)130%20%224411
    setUpdateColumn(PreparedStatement, int, CvssV2Data.CiaType)130%20%224411
    setUpdateColumn(PreparedStatement, int, CvssV2Data.Version)130%20%224411
    setUpdateColumn(PreparedStatement, int, CvssV2Data.AccessComplexityType)130%20%224411
    setUpdateColumn(PreparedStatement, int, CvssV2Data.AccessVectorType)130%20%224411
    setUpdateColumn(PreparedStatement, int, Boolean)130%20%224411
    setUpdateColumn(PreparedStatement, int, CvssV3Data.AttackVectorType)130%20%224411
    setUpdateColumn(PreparedStatement, int, CvssV3Data.AttackComplexityType)130%20%224411
    setUpdateColumn(PreparedStatement, int, CvssV3Data.PrivilegesRequiredType)130%20%224411
    setUpdateColumn(PreparedStatement, int, CvssV3Data.UserInteractionType)130%20%224411
    setUpdateColumn(PreparedStatement, int, CvssV3Data.ScopeType)130%20%224411
    setUpdateColumn(PreparedStatement, int, CvssV3Data.SeverityType)130%20%224411
    setUpdateColumn(PreparedStatement, int, CvssV3Data.CiaType)130%20%224411
    setUpdateColumn(PreparedStatement, int, CvssV3Data.Version)130%20%224411
    setUpdateColumn(PreparedStatement, int, String)120%20%224411
    getBatchSize()110%n/a115511
    isBatchInsertEnabled()110%n/a115511
    getBooleanValue(ResultSet, int)110%20%223311
    getFloatValue(ResultSet, int)110%20%223311
    getVendorProductList()94182%2100%0231101
    getVendorProductListForNode()94182%2100%0231101
    getCPEs(String, String)810092%2100%0232701
    getProperties()83882%2100%0231101
    close()82777%2100%0231401
    lambda$parseCpes$0(CpeMatch)70%20%221111
    lambda$parseCpes$1(CpeMatch)60%n/a111111
    persistEcosystemCache()0%n/a113311
    CveDB(Settings)54100%n/a0101301
    getMatchingSoftware(Cpe, Set)36100%10100%060901
    getPreparedStatement(Connection, CveDB.PreparedStatementCveDb, String)11100%n/a010301
    getPreparedStatement(Connection, CveDB.PreparedStatementCveDb, int)11100%n/a010301
    open()10100%n/a010301
    reloadProperties()9100%n/a010201
    finalize()8100%n/a010401
    releaseResources()7100%n/a010301
    isOpen()100%n/a010101
    clearCache()100%n/a010201
    static {...}100%n/a010101
    getDatabaseProperties()100%n/a010101
    \ No newline at end of file +CveDB

    CveDB

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
    Total2,382 of 3,70735%208 of 27624%1642085608294670
    updateOrInsertVulnerability(DefCveItem, String)5250%280%151510610611
    updateVulnerabilityInsertSoftware(int, String, List, String)1690%80%55363611
    updateKnownExploitedVulnerabilities(List)1290%100%66313111
    updateVulnerabilityInsertReferences(int, DefCveItem)1130%200%1111232311
    cleanupDatabase()930%120%77262611
    updateVulnerability(DefCveItem, String)920%40%33212111
    saveCpeEcosystemCache()920%100%66191911
    updateVulnerabilityInsertCwe(int, DefCveItem)720%140%88151511
    updateEcosystemCache()710%20%22181811
    loadCpeEcosystemCache()700%20%22161611
    getknownExploitedVulnerabilities()622831%1150%12142101
    getVulnerability(String, Connection)5957790%182860%182469501
    parseCpes(DefCveItem)470%n/a11161611
    defrag()420%20%22121211
    dataExists()402942%2250%23101501
    parseCpe(CpeMatch, String)380%n/a116611
    lambda$parseCpes$3(VulnerableSoftwareBuilder, DefCveItem, List, CpeMatch)380%n/a11111111
    addCpe(String, String, String)370%n/a11101011
    saveProperty(String, String)364153%3125%2381901
    getVulnerabilities(Cpe)2921087%31583%31065101
    getPreparedStatement(Connection, CveDB.PreparedStatementCveDb)282142%6225%4571401
    executeBatch(String, PreparedStatement)270%20%229911
    setFloatValue(PreparedStatement, int, Map, String)260%40%337711
    deleteUnusedCpe()250%n/a117711
    setUpdateColumn(PreparedStatement, int, Boolean)210%40%336611
    setBooleanValue(PreparedStatement, int, Map, String)200%40%334411
    setStringValue(PreparedStatement, int, Map, String)190%40%334411
    deleteVulnerability(String)180%n/a114411
    addNullableStringParameter(PreparedStatement, int, String)150%40%334411
    lambda$parseCpes$2(DefCveItem, CpeMatch)150%40%332211
    getVulnerability(String)141348%n/a012401
    setUpdateColumn(PreparedStatement, int, Double)130%20%224411
    setUpdateColumn(PreparedStatement, int, CvssV2Data.AuthenticationType)130%20%224411
    setUpdateColumn(PreparedStatement, int, CvssV2Data.CiaType)130%20%224411
    setUpdateColumn(PreparedStatement, int, CvssV2Data.Version)130%20%224411
    setUpdateColumn(PreparedStatement, int, CvssV2Data.AccessComplexityType)130%20%224411
    setUpdateColumn(PreparedStatement, int, CvssV2Data.AccessVectorType)130%20%224411
    setUpdateColumn(PreparedStatement, int, CvssV3Data.AttackVectorType)130%20%224411
    setUpdateColumn(PreparedStatement, int, CvssV3Data.AttackComplexityType)130%20%224411
    setUpdateColumn(PreparedStatement, int, CvssV3Data.PrivilegesRequiredType)130%20%224411
    setUpdateColumn(PreparedStatement, int, CvssV3Data.UserInteractionType)130%20%224411
    setUpdateColumn(PreparedStatement, int, CvssV3Data.ScopeType)130%20%224411
    setUpdateColumn(PreparedStatement, int, CvssV3Data.SeverityType)130%20%224411
    setUpdateColumn(PreparedStatement, int, CvssV3Data.CiaType)130%20%224411
    setUpdateColumn(PreparedStatement, int, CvssV3Data.Version)130%20%224411
    setUpdateColumn(PreparedStatement, int, String)120%20%224411
    getBatchSize()110%n/a115511
    isBatchInsertEnabled()110%n/a115511
    getBooleanValue(ResultSet, int)110%20%223311
    getFloatValue(ResultSet, int)110%20%223311
    getVendorProductList()94182%2100%0231101
    getVendorProductListForNode()94182%2100%0231101
    getCPEs(String, String)810092%2100%0232701
    getProperties()83882%2100%0231101
    close()82777%2100%0231401
    lambda$parseCpes$0(CpeMatch)70%20%221111
    lambda$parseCpes$1(CpeMatch)60%n/a111111
    persistEcosystemCache()0%n/a113311
    getMatchingSoftware(Cpe, Set)3494%1990%161901
    CveDB(Settings)54100%n/a0101301
    getPreparedStatement(Connection, CveDB.PreparedStatementCveDb, String)11100%n/a010301
    getPreparedStatement(Connection, CveDB.PreparedStatementCveDb, int)11100%n/a010301
    open()10100%n/a010301
    reloadProperties()9100%n/a010201
    finalize()8100%n/a010401
    releaseResources()7100%n/a010301
    isOpen()100%n/a010101
    clearCache()100%n/a010201
    static {...}100%n/a010101
    getDatabaseProperties()100%n/a010101
    \ No newline at end of file diff --git a/dependency-check-core/jacoco/org.owasp.dependencycheck.data.nvdcve/CveDB.java.html b/dependency-check-core/jacoco/org.owasp.dependencycheck.data.nvdcve/CveDB.java.html index 51b076cca7e..7c01d84cd69 100644 --- a/dependency-check-core/jacoco/org.owasp.dependencycheck.data.nvdcve/CveDB.java.html +++ b/dependency-check-core/jacoco/org.owasp.dependencycheck.data.nvdcve/CveDB.java.html @@ -584,9 +584,9 @@ } } } - } catch (SQLException ex) { - LOGGER.warn("Unable to save property '{}' with a value of '{}' to the database", key, value); - LOGGER.debug("", ex); + } catch (SQLException ex) { + LOGGER.warn("Unable to save property '{}' with a value of '{}' to the database", key, value); + LOGGER.debug("", ex); } } @@ -978,86 +978,95 @@ callUpdate.setNull(4, java.sql.Types.DOUBLE); callUpdate.setNull(5, java.sql.Types.DOUBLE); callUpdate.setNull(6, java.sql.Types.VARCHAR); - callUpdate.setNull(7, java.sql.Types.BOOLEAN); - callUpdate.setNull(8, java.sql.Types.BOOLEAN); - callUpdate.setNull(9, java.sql.Types.BOOLEAN); - callUpdate.setNull(10, java.sql.Types.BOOLEAN); - callUpdate.setNull(11, java.sql.Types.DOUBLE); - callUpdate.setNull(12, java.sql.Types.VARCHAR); - callUpdate.setNull(13, java.sql.Types.VARCHAR); - callUpdate.setNull(14, java.sql.Types.VARCHAR); - callUpdate.setNull(15, java.sql.Types.VARCHAR); - callUpdate.setNull(16, java.sql.Types.VARCHAR); - callUpdate.setNull(17, java.sql.Types.VARCHAR); - callUpdate.setNull(18, java.sql.Types.VARCHAR); + //TODO this is may also be an issue for MS SQL, if an issue is created we'll just need + // to create an isMsSQL flag. See todo below in setUpdateColum + if (isOracle) { + callUpdate.setNull(7, java.sql.Types.BIT); + callUpdate.setNull(8, java.sql.Types.BIT); + callUpdate.setNull(9, java.sql.Types.BIT); + callUpdate.setNull(10, java.sql.Types.BIT); + } else { + callUpdate.setNull(7, java.sql.Types.BOOLEAN); + callUpdate.setNull(8, java.sql.Types.BOOLEAN); + callUpdate.setNull(9, java.sql.Types.BOOLEAN); + callUpdate.setNull(10, java.sql.Types.BOOLEAN); + } + callUpdate.setNull(11, java.sql.Types.DOUBLE); + callUpdate.setNull(12, java.sql.Types.VARCHAR); + callUpdate.setNull(13, java.sql.Types.VARCHAR); + callUpdate.setNull(14, java.sql.Types.VARCHAR); + callUpdate.setNull(15, java.sql.Types.VARCHAR); + callUpdate.setNull(16, java.sql.Types.VARCHAR); + callUpdate.setNull(17, java.sql.Types.VARCHAR); + callUpdate.setNull(18, java.sql.Types.VARCHAR); } - Optional<CvssV3> optCvssv30 = Optional.empty(); - if (cve.getCve().getMetrics() != null && cve.getCve().getMetrics().getCvssMetricV30() != null) { - optCvssv30 = cve.getCve().getMetrics().getCvssMetricV30().stream().sorted(Comparator.comparing(CvssV3::getType)).findFirst(); + Optional<CvssV3> optCvssv30 = Optional.empty(); + if (cve.getCve().getMetrics() != null && cve.getCve().getMetrics().getCvssMetricV30() != null) { + optCvssv30 = cve.getCve().getMetrics().getCvssMetricV30().stream().sorted(Comparator.comparing(CvssV3::getType)).findFirst(); } - Optional<CvssV3> optCvssv31 = Optional.empty(); - if (cve.getCve().getMetrics() != null && cve.getCve().getMetrics().getCvssMetricV31() != null) { - optCvssv31 = cve.getCve().getMetrics().getCvssMetricV31().stream().sorted(Comparator.comparing(CvssV3::getType)).findFirst(); + Optional<CvssV3> optCvssv31 = Optional.empty(); + if (cve.getCve().getMetrics() != null && cve.getCve().getMetrics().getCvssMetricV31() != null) { + optCvssv31 = cve.getCve().getMetrics().getCvssMetricV31().stream().sorted(Comparator.comparing(CvssV3::getType)).findFirst(); } - CvssV3 cvssv3 = null; - if (optCvssv31.isPresent()) { - cvssv3 = optCvssv31.get(); - } else if (optCvssv30.isPresent()) { - cvssv3 = optCvssv30.get(); + CvssV3 cvssv3 = null; + if (optCvssv31.isPresent()) { + cvssv3 = optCvssv31.get(); + } else if (optCvssv30.isPresent()) { + cvssv3 = optCvssv30.get(); } - if (cvssv3 != null) { - setUpdateColumn(callUpdate, 19, cvssv3.getExploitabilityScore()); - setUpdateColumn(callUpdate, 20, cvssv3.getImpactScore()); - setUpdateColumn(callUpdate, 21, cvssv3.getCvssData().getAttackVector()); - setUpdateColumn(callUpdate, 22, cvssv3.getCvssData().getAttackComplexity()); - setUpdateColumn(callUpdate, 23, cvssv3.getCvssData().getPrivilegesRequired()); - setUpdateColumn(callUpdate, 24, cvssv3.getCvssData().getUserInteraction()); - setUpdateColumn(callUpdate, 25, cvssv3.getCvssData().getScope()); - setUpdateColumn(callUpdate, 26, cvssv3.getCvssData().getConfidentialityImpact()); - setUpdateColumn(callUpdate, 27, cvssv3.getCvssData().getIntegrityImpact()); - setUpdateColumn(callUpdate, 28, cvssv3.getCvssData().getAvailabilityImpact()); - setUpdateColumn(callUpdate, 29, cvssv3.getCvssData().getBaseScore()); - setUpdateColumn(callUpdate, 30, cvssv3.getCvssData().getBaseSeverity()); - setUpdateColumn(callUpdate, 31, cvssv3.getCvssData().getVersion()); + if (cvssv3 != null) { + setUpdateColumn(callUpdate, 19, cvssv3.getExploitabilityScore()); + setUpdateColumn(callUpdate, 20, cvssv3.getImpactScore()); + setUpdateColumn(callUpdate, 21, cvssv3.getCvssData().getAttackVector()); + setUpdateColumn(callUpdate, 22, cvssv3.getCvssData().getAttackComplexity()); + setUpdateColumn(callUpdate, 23, cvssv3.getCvssData().getPrivilegesRequired()); + setUpdateColumn(callUpdate, 24, cvssv3.getCvssData().getUserInteraction()); + setUpdateColumn(callUpdate, 25, cvssv3.getCvssData().getScope()); + setUpdateColumn(callUpdate, 26, cvssv3.getCvssData().getConfidentialityImpact()); + setUpdateColumn(callUpdate, 27, cvssv3.getCvssData().getIntegrityImpact()); + setUpdateColumn(callUpdate, 28, cvssv3.getCvssData().getAvailabilityImpact()); + setUpdateColumn(callUpdate, 29, cvssv3.getCvssData().getBaseScore()); + setUpdateColumn(callUpdate, 30, cvssv3.getCvssData().getBaseSeverity()); + setUpdateColumn(callUpdate, 31, cvssv3.getCvssData().getVersion()); } else { - callUpdate.setNull(19, java.sql.Types.DOUBLE); - callUpdate.setNull(20, java.sql.Types.DOUBLE); - callUpdate.setNull(21, java.sql.Types.VARCHAR); - callUpdate.setNull(22, java.sql.Types.VARCHAR); - callUpdate.setNull(23, java.sql.Types.VARCHAR); - callUpdate.setNull(24, java.sql.Types.VARCHAR); - callUpdate.setNull(25, java.sql.Types.VARCHAR); - callUpdate.setNull(26, java.sql.Types.VARCHAR); - callUpdate.setNull(27, java.sql.Types.VARCHAR); - callUpdate.setNull(28, java.sql.Types.VARCHAR); - callUpdate.setNull(29, java.sql.Types.DOUBLE); - callUpdate.setNull(30, java.sql.Types.VARCHAR); - callUpdate.setNull(31, java.sql.Types.VARCHAR); + callUpdate.setNull(19, java.sql.Types.DOUBLE); + callUpdate.setNull(20, java.sql.Types.DOUBLE); + callUpdate.setNull(21, java.sql.Types.VARCHAR); + callUpdate.setNull(22, java.sql.Types.VARCHAR); + callUpdate.setNull(23, java.sql.Types.VARCHAR); + callUpdate.setNull(24, java.sql.Types.VARCHAR); + callUpdate.setNull(25, java.sql.Types.VARCHAR); + callUpdate.setNull(26, java.sql.Types.VARCHAR); + callUpdate.setNull(27, java.sql.Types.VARCHAR); + callUpdate.setNull(28, java.sql.Types.VARCHAR); + callUpdate.setNull(29, java.sql.Types.DOUBLE); + callUpdate.setNull(30, java.sql.Types.VARCHAR); + callUpdate.setNull(31, java.sql.Types.VARCHAR); } - if (isOracle) { + if (isOracle) { try { - final CallableStatement cs = (CallableStatement) callUpdate; - cs.registerOutParameter(32, JDBCType.INTEGER); - cs.executeUpdate(); - vulnerabilityId = cs.getInt(32); - } catch (SQLException ex) { - final String msg = String.format("Unable to retrieve id for new vulnerability for '%s'", cve.getCve().getId()); - throw new DatabaseException(msg, ex); - } + final CallableStatement cs = (CallableStatement) callUpdate; + cs.registerOutParameter(32, JDBCType.INTEGER); + cs.executeUpdate(); + vulnerabilityId = cs.getInt(32); + } catch (SQLException ex) { + final String msg = String.format("Unable to retrieve id for new vulnerability for '%s'", cve.getCve().getId()); + throw new DatabaseException(msg, ex); + } } else { - try (ResultSet rs = callUpdate.executeQuery()) { - rs.next(); - vulnerabilityId = rs.getInt(1); - } catch (SQLException ex) { - final String msg = String.format("Unable to retrieve id for new vulnerability for '%s'", cve.getCve().getId()); - throw new DatabaseException(msg, ex); - } + try (ResultSet rs = callUpdate.executeQuery()) { + rs.next(); + vulnerabilityId = rs.getInt(1); + } catch (SQLException ex) { + final String msg = String.format("Unable to retrieve id for new vulnerability for '%s'", cve.getCve().getId()); + throw new DatabaseException(msg, ex); + } } - } catch (SQLException ex) { - throw new UnexpectedAnalysisException(ex); - } - return vulnerabilityId; + } catch (SQLException ex) { + throw new UnexpectedAnalysisException(ex); + } + return vulnerabilityId; } /** @@ -1068,27 +1077,27 @@ * @throws SQLException thrown if there is an error inserting the data */ private void updateVulnerabilityInsertCwe(int vulnerabilityId, DefCveItem cve) throws SQLException { - if (cve.getCve() != null && cve.getCve().getWeaknesses() != null) { - try (Connection conn = databaseManager.getConnection(); - PreparedStatement insertCWE = getPreparedStatement(conn, INSERT_CWE, vulnerabilityId)) { - for (Weakness weakness : cve.getCve().getWeaknesses()) { - for (LangString desc : weakness.getDescription()) { - if ("en".equals(desc.getLang())) { - insertCWE.setString(2, desc.getValue()); - if (isBatchInsertEnabled()) { - insertCWE.addBatch(); + if (cve.getCve() != null && cve.getCve().getWeaknesses() != null) { + try (Connection conn = databaseManager.getConnection(); + PreparedStatement insertCWE = getPreparedStatement(conn, INSERT_CWE, vulnerabilityId)) { + for (Weakness weakness : cve.getCve().getWeaknesses()) { + for (LangString desc : weakness.getDescription()) { + if ("en".equals(desc.getLang())) { + insertCWE.setString(2, desc.getValue()); + if (isBatchInsertEnabled()) { + insertCWE.addBatch(); } else { - insertCWE.execute(); + insertCWE.execute(); } } - } - } - if (isBatchInsertEnabled()) { - insertCWE.executeBatch(); + } + } + if (isBatchInsertEnabled()) { + insertCWE.executeBatch(); } } } - } + } /** * Used when updating a vulnerability - in some cases a CVE needs to be @@ -1099,11 +1108,11 @@ * vulnerability */ private void deleteVulnerability(String cve) throws SQLException { - try (Connection conn = databaseManager.getConnection(); - PreparedStatement deleteVulnerability = getPreparedStatement(conn, DELETE_VULNERABILITY, cve)) { - deleteVulnerability.executeUpdate(); + try (Connection conn = databaseManager.getConnection(); + PreparedStatement deleteVulnerability = getPreparedStatement(conn, DELETE_VULNERABILITY, cve)) { + deleteVulnerability.executeUpdate(); } - } + } /** * Merges the list of known exploited vulnerabilities into the database. @@ -1115,44 +1124,44 @@ public void updateKnownExploitedVulnerabilities( List<org.owasp.dependencycheck.data.knownexploited.json.Vulnerability> vulnerabilities) throws DatabaseException, SQLException { - try (Connection conn = databaseManager.getConnection(); - PreparedStatement mergeKnownVulnerability = getPreparedStatement(conn, MERGE_KNOWN_EXPLOITED)) { - int ctr = 0; - for (org.owasp.dependencycheck.data.knownexploited.json.Vulnerability v : vulnerabilities) { - mergeKnownVulnerability.setString(1, v.getCveID()); - addNullableStringParameter(mergeKnownVulnerability, 2, v.getVendorProject()); - addNullableStringParameter(mergeKnownVulnerability, 3, v.getProduct()); - addNullableStringParameter(mergeKnownVulnerability, 4, v.getVulnerabilityName()); - addNullableStringParameter(mergeKnownVulnerability, 5, v.getDateAdded()); - addNullableStringParameter(mergeKnownVulnerability, 6, v.getShortDescription()); - addNullableStringParameter(mergeKnownVulnerability, 7, v.getRequiredAction()); - addNullableStringParameter(mergeKnownVulnerability, 8, v.getDueDate()); - addNullableStringParameter(mergeKnownVulnerability, 9, v.getNotes()); - if (isBatchInsertEnabled()) { - mergeKnownVulnerability.addBatch(); - ctr++; - if (ctr >= getBatchSize()) { - mergeKnownVulnerability.executeBatch(); - ctr = 0; + try (Connection conn = databaseManager.getConnection(); + PreparedStatement mergeKnownVulnerability = getPreparedStatement(conn, MERGE_KNOWN_EXPLOITED)) { + int ctr = 0; + for (org.owasp.dependencycheck.data.knownexploited.json.Vulnerability v : vulnerabilities) { + mergeKnownVulnerability.setString(1, v.getCveID()); + addNullableStringParameter(mergeKnownVulnerability, 2, v.getVendorProject()); + addNullableStringParameter(mergeKnownVulnerability, 3, v.getProduct()); + addNullableStringParameter(mergeKnownVulnerability, 4, v.getVulnerabilityName()); + addNullableStringParameter(mergeKnownVulnerability, 5, v.getDateAdded()); + addNullableStringParameter(mergeKnownVulnerability, 6, v.getShortDescription()); + addNullableStringParameter(mergeKnownVulnerability, 7, v.getRequiredAction()); + addNullableStringParameter(mergeKnownVulnerability, 8, v.getDueDate()); + addNullableStringParameter(mergeKnownVulnerability, 9, v.getNotes()); + if (isBatchInsertEnabled()) { + mergeKnownVulnerability.addBatch(); + ctr++; + if (ctr >= getBatchSize()) { + mergeKnownVulnerability.executeBatch(); + ctr = 0; } } else { try { - mergeKnownVulnerability.execute(); - } catch (SQLException ex) { - if (ex.getMessage().contains("Duplicate entry")) { - final String msg = String.format("Duplicate known exploited vulnerability key identified in '%s'", v.getCveID()); - LOGGER.info(msg, ex); - } else { - throw ex; + mergeKnownVulnerability.execute(); + } catch (SQLException ex) { + if (ex.getMessage().contains("Duplicate entry")) { + final String msg = String.format("Duplicate known exploited vulnerability key identified in '%s'", v.getCveID()); + LOGGER.info(msg, ex); + } else { + throw ex; } - } + } } - } - if (isBatchInsertEnabled()) { - mergeKnownVulnerability.executeBatch(); + } + if (isBatchInsertEnabled()) { + mergeKnownVulnerability.executeBatch(); } } - } + } /** * Used when updating a vulnerability - this method inserts the list of @@ -1169,50 +1178,50 @@ private void updateVulnerabilityInsertSoftware(int vulnerabilityId, String cveId, List<VulnerableSoftware> software, String baseEcosystem) throws DatabaseException, SQLException { - try (Connection conn = databaseManager.getConnection(); PreparedStatement insertSoftware = getPreparedStatement(conn, INSERT_SOFTWARE)) { - for (VulnerableSoftware parsedCpe : software) { - insertSoftware.setInt(1, vulnerabilityId); - insertSoftware.setString(2, parsedCpe.getPart().getAbbreviation()); - insertSoftware.setString(3, parsedCpe.getVendor()); - insertSoftware.setString(4, parsedCpe.getProduct()); - insertSoftware.setString(5, parsedCpe.getVersion()); - insertSoftware.setString(6, parsedCpe.getUpdate()); - insertSoftware.setString(7, parsedCpe.getEdition()); - insertSoftware.setString(8, parsedCpe.getLanguage()); - insertSoftware.setString(9, parsedCpe.getSwEdition()); - insertSoftware.setString(10, parsedCpe.getTargetSw()); - insertSoftware.setString(11, parsedCpe.getTargetHw()); - insertSoftware.setString(12, parsedCpe.getOther()); - final String ecosystem = CpeEcosystemCache.getEcosystem(parsedCpe.getVendor(), parsedCpe.getProduct(), - cveItemConverter.extractEcosystem(baseEcosystem, parsedCpe)); - - addNullableStringParameter(insertSoftware, 13, ecosystem); - addNullableStringParameter(insertSoftware, 14, parsedCpe.getVersionEndExcluding()); - addNullableStringParameter(insertSoftware, 15, parsedCpe.getVersionEndIncluding()); - addNullableStringParameter(insertSoftware, 16, parsedCpe.getVersionStartExcluding()); - addNullableStringParameter(insertSoftware, 17, parsedCpe.getVersionStartIncluding()); - insertSoftware.setBoolean(18, parsedCpe.isVulnerable()); - - if (isBatchInsertEnabled()) { - insertSoftware.addBatch(); + try (Connection conn = databaseManager.getConnection(); PreparedStatement insertSoftware = getPreparedStatement(conn, INSERT_SOFTWARE)) { + for (VulnerableSoftware parsedCpe : software) { + insertSoftware.setInt(1, vulnerabilityId); + insertSoftware.setString(2, parsedCpe.getPart().getAbbreviation()); + insertSoftware.setString(3, parsedCpe.getVendor()); + insertSoftware.setString(4, parsedCpe.getProduct()); + insertSoftware.setString(5, parsedCpe.getVersion()); + insertSoftware.setString(6, parsedCpe.getUpdate()); + insertSoftware.setString(7, parsedCpe.getEdition()); + insertSoftware.setString(8, parsedCpe.getLanguage()); + insertSoftware.setString(9, parsedCpe.getSwEdition()); + insertSoftware.setString(10, parsedCpe.getTargetSw()); + insertSoftware.setString(11, parsedCpe.getTargetHw()); + insertSoftware.setString(12, parsedCpe.getOther()); + final String ecosystem = CpeEcosystemCache.getEcosystem(parsedCpe.getVendor(), parsedCpe.getProduct(), + cveItemConverter.extractEcosystem(baseEcosystem, parsedCpe)); + + addNullableStringParameter(insertSoftware, 13, ecosystem); + addNullableStringParameter(insertSoftware, 14, parsedCpe.getVersionEndExcluding()); + addNullableStringParameter(insertSoftware, 15, parsedCpe.getVersionEndIncluding()); + addNullableStringParameter(insertSoftware, 16, parsedCpe.getVersionStartExcluding()); + addNullableStringParameter(insertSoftware, 17, parsedCpe.getVersionStartIncluding()); + insertSoftware.setBoolean(18, parsedCpe.isVulnerable()); + + if (isBatchInsertEnabled()) { + insertSoftware.addBatch(); } else { try { - insertSoftware.execute(); - } catch (SQLException ex) { - if (ex.getMessage().contains("Duplicate entry")) { - final String msg = String.format("Duplicate software key identified in '%s'", cveId); - LOGGER.info(msg, ex); - } else { - throw ex; + insertSoftware.execute(); + } catch (SQLException ex) { + if (ex.getMessage().contains("Duplicate entry")) { + final String msg = String.format("Duplicate software key identified in '%s'", cveId); + LOGGER.info(msg, ex); + } else { + throw ex; } - } + } } - } - if (isBatchInsertEnabled()) { - executeBatch(cveId, insertSoftware); + } + if (isBatchInsertEnabled()) { + executeBatch(cveId, insertSoftware); } } - } + } /** * Used when updating a vulnerability - this method inserts the list of @@ -1223,41 +1232,41 @@ * @throws SQLException thrown if there is an error inserting the data */ private void updateVulnerabilityInsertReferences(int vulnerabilityId, DefCveItem cve) throws SQLException { - try (Connection conn = databaseManager.getConnection(); PreparedStatement insertReference = getPreparedStatement(conn, INSERT_REFERENCE)) { - if (cve.getCve().getReferences() != null) { - for (Reference r : cve.getCve().getReferences()) { - insertReference.setInt(1, vulnerabilityId); - Optional<String> name = Optional.empty(); - if (r.getTags() != null) { - name = r.getTags().stream().sorted().findFirst(); + try (Connection conn = databaseManager.getConnection(); PreparedStatement insertReference = getPreparedStatement(conn, INSERT_REFERENCE)) { + if (cve.getCve().getReferences() != null) { + for (Reference r : cve.getCve().getReferences()) { + insertReference.setInt(1, vulnerabilityId); + String name = null; + if (r.getTags() != null) { + name = r.getTags().stream().sorted().collect(Collectors.joining(",")).toUpperCase().replaceAll("\\s", "_"); } - if (name.isPresent()) { - insertReference.setString(2, name.get()); + if (name != null) { + insertReference.setString(2, name); } else { - insertReference.setNull(2, java.sql.Types.VARCHAR); + insertReference.setNull(2, java.sql.Types.VARCHAR); } - if (r.getUrl() != null && !r.getUrl().isEmpty()) { - insertReference.setString(3, r.getUrl()); + if (r.getUrl() != null && !r.getUrl().isEmpty()) { + insertReference.setString(3, r.getUrl()); } else { - insertReference.setNull(3, java.sql.Types.VARCHAR); + insertReference.setNull(3, java.sql.Types.VARCHAR); } - if (r.getSource() != null && !r.getSource().isEmpty()) { - insertReference.setString(4, r.getSource()); + if (r.getSource() != null && !r.getSource().isEmpty()) { + insertReference.setString(4, r.getSource()); } else { - insertReference.setNull(4, java.sql.Types.VARCHAR); + insertReference.setNull(4, java.sql.Types.VARCHAR); } - if (isBatchInsertEnabled()) { - insertReference.addBatch(); + if (isBatchInsertEnabled()) { + insertReference.addBatch(); } else { - insertReference.execute(); + insertReference.execute(); } - } + } } - if (isBatchInsertEnabled()) { - insertReference.executeBatch(); + if (isBatchInsertEnabled()) { + insertReference.executeBatch(); } } - } + } /** * Parses the configuration entries from the CVE entry into a list of @@ -1268,39 +1277,39 @@ * @throws CpeValidationException if an invalid CPE is present */ private List<VulnerableSoftware> parseCpes(DefCveItem cve) throws CpeValidationException { - final List<VulnerableSoftware> software = new ArrayList<>(); - - final List<CpeMatch> cpeEntries = cve.getCve().getConfigurations().stream() - .map(Config::getNodes) - .flatMap(List::stream) - .map(Node::getCpeMatch) - .flatMap(List::stream) - .filter(predicate -> predicate.getCriteria() != null) - .filter(predicate -> predicate.getCriteria().startsWith(cpeStartsWithFilter)) + final List<VulnerableSoftware> software = new ArrayList<>(); + + final List<CpeMatch> cpeEntries = cve.getCve().getConfigurations().stream() + .map(Config::getNodes) + .flatMap(List::stream) + .map(Node::getCpeMatch) + .flatMap(List::stream) + .filter(predicate -> predicate.getCriteria() != null) + .filter(predicate -> predicate.getCriteria().startsWith(cpeStartsWithFilter)) //this single CPE entry causes nearly 100% FP - so filtering it at the source. - .filter(entry -> !("CVE-2009-0754".equals(cve.getCve().getId()) - && "cpe:2.3:a:apache:apache:*:*:*:*:*:*:*:*".equals(entry.getCriteria()))) - .collect(Collectors.toList()); - final VulnerableSoftwareBuilder builder = new VulnerableSoftwareBuilder(); + .filter(entry -> !("CVE-2009-0754".equals(cve.getCve().getId()) + && "cpe:2.3:a:apache:apache:*:*:*:*:*:*:*:*".equals(entry.getCriteria()))) + .collect(Collectors.toList()); + final VulnerableSoftwareBuilder builder = new VulnerableSoftwareBuilder(); try { - cpeEntries.forEach(entry -> { - builder.cpe(parseCpe(entry, cve.getCve().getId())) - .versionEndExcluding(entry.getVersionEndExcluding()) - .versionStartExcluding(entry.getVersionStartExcluding()) - .versionEndIncluding(entry.getVersionEndIncluding()) - .versionStartIncluding(entry.getVersionStartIncluding()) - .vulnerable(entry.getVulnerable()); + cpeEntries.forEach(entry -> { + builder.cpe(parseCpe(entry, cve.getCve().getId())) + .versionEndExcluding(entry.getVersionEndExcluding()) + .versionStartExcluding(entry.getVersionStartExcluding()) + .versionEndIncluding(entry.getVersionEndIncluding()) + .versionStartIncluding(entry.getVersionStartIncluding()) + .vulnerable(entry.getVulnerable()); try { - software.add(builder.build()); - } catch (CpeValidationException ex) { - throw new LambdaExceptionWrapper(ex); - } - }); - } catch (LambdaExceptionWrapper ex) { - throw (CpeValidationException) ex.getCause(); - } - return software; + software.add(builder.build()); + } catch (CpeValidationException ex) { + throw new LambdaExceptionWrapper(ex); + } + }); + } catch (LambdaExceptionWrapper ex) { + throw (CpeValidationException) ex.getCause(); + } + return software; } /** @@ -1318,12 +1327,12 @@ final Cpe parsedCpe; try { //the replace is a hack as the NVD does not properly escape backslashes in their JSON - parsedCpe = CpeParser.parse(cpe.getCriteria(), true); - } catch (CpeParsingException ex) { - LOGGER.debug("NVD (" + cveId + ") contain an invalid 2.3 CPE: " + cpe.getCriteria()); - throw new DatabaseException("Unable to parse CPE: " + cpe.getCriteria(), ex); - } - return parsedCpe; + parsedCpe = CpeParser.parse(cpe.getCriteria(), true); + } catch (CpeParsingException ex) { + LOGGER.debug("NVD (" + cveId + ") contain an invalid 2.3 CPE: " + cpe.getCriteria()); + throw new DatabaseException("Unable to parse CPE: " + cpe.getCriteria(), ex); + } + return parsedCpe; } /** @@ -1334,11 +1343,11 @@ private int getBatchSize() { int max; try { - max = settings.getInt(Settings.KEYS.MAX_BATCH_SIZE); - } catch (InvalidSettingException pE) { - max = 1000; - } - return max; + max = settings.getInt(Settings.KEYS.MAX_BATCH_SIZE); + } catch (InvalidSettingException pE) { + max = 1000; + } + return max; } /** @@ -1350,12 +1359,12 @@ private boolean isBatchInsertEnabled() { boolean batch; try { - batch = settings.getBoolean(Settings.KEYS.ENABLE_BATCH_UPDATES); - } catch (InvalidSettingException pE) { + batch = settings.getBoolean(Settings.KEYS.ENABLE_BATCH_UPDATES); + } catch (InvalidSettingException pE) { //If there's no configuration, default is to not perform batch inserts - batch = false; - } - return batch; + batch = false; + } + return batch; } /** @@ -1369,17 +1378,17 @@ private void executeBatch(String vulnId, PreparedStatement statement) throws SQLException { try { - statement.executeBatch(); - } catch (SQLException ex) { - if (ex.getMessage().contains("Duplicate entry")) { - final String msg = String.format("Duplicate software key identified in '%s'", + statement.executeBatch(); + } catch (SQLException ex) { + if (ex.getMessage().contains("Duplicate entry")) { + final String msg = String.format("Duplicate software key identified in '%s'", vulnId); - LOGGER.info(msg, ex); - } else { - throw ex; + LOGGER.info(msg, ex); + } else { + throw ex; } - } - } + } + } /** * Checks to see if data exists so that analysis can be performed. @@ -1387,27 +1396,27 @@ * @return <code>true</code> if data exists; otherwise <code>false</code> */ public boolean dataExists() { - try (Connection conn = databaseManager.getConnection(); - PreparedStatement cs = getPreparedStatement(conn, COUNT_CPE); - ResultSet rs = cs.executeQuery()) { - if (rs.next() && rs.getInt(1) > 0) { - return true; + try (Connection conn = databaseManager.getConnection(); + PreparedStatement cs = getPreparedStatement(conn, COUNT_CPE); + ResultSet rs = cs.executeQuery()) { + if (rs.next() && rs.getInt(1) > 0) { + return true; } - } catch (Exception ex) { + } catch (Exception ex) { String dd; try { - dd = settings.getDataDirectory().getAbsolutePath(); - } catch (IOException ex1) { - dd = settings.getString(Settings.KEYS.DATA_DIRECTORY); - } - LOGGER.error("Unable to access the local database.\n\nEnsure that '{}' is a writable directory. " + dd = settings.getDataDirectory().getAbsolutePath(); + } catch (IOException ex1) { + dd = settings.getString(Settings.KEYS.DATA_DIRECTORY); + } + LOGGER.error("Unable to access the local database.\n\nEnsure that '{}' is a writable directory. " + "If the problem persist try deleting the files in '{}' and running {} again. If the problem continues, please " + "create a log file (see documentation at https://jeremylong.github.io/DependencyCheck/) and open a ticket at " + "https://github.com/jeremylong/DependencyCheck/issues and include the log file.\n\n", - dd, dd, settings.getString(Settings.KEYS.APPLICATION_NAME)); - LOGGER.debug("", ex); - } - return false; + dd, dd, settings.getString(Settings.KEYS.APPLICATION_NAME)); + LOGGER.debug("", ex); + } + return false; } /** @@ -1416,67 +1425,67 @@ * ensure orphan entries are removed. */ public void cleanupDatabase() { - LOGGER.info("Begin database maintenance"); - final long start = System.currentTimeMillis(); - try (Connection conn = databaseManager.getConnection(); - PreparedStatement psOrphans = getPreparedStatement(conn, CLEANUP_ORPHANS); - PreparedStatement psEcosystem = getPreparedStatement(conn, UPDATE_ECOSYSTEM); - PreparedStatement psEcosystem2 = getPreparedStatement(conn, UPDATE_ECOSYSTEM2)) { - if (psEcosystem != null) { - final int count = psEcosystem.executeUpdate(); - if (count > 0) { - LOGGER.info("Updated the CPE ecosystem on {} NVD records", count); + LOGGER.info("Begin database maintenance"); + final long start = System.currentTimeMillis(); + try (Connection conn = databaseManager.getConnection(); + PreparedStatement psOrphans = getPreparedStatement(conn, CLEANUP_ORPHANS); + PreparedStatement psEcosystem = getPreparedStatement(conn, UPDATE_ECOSYSTEM); + PreparedStatement psEcosystem2 = getPreparedStatement(conn, UPDATE_ECOSYSTEM2)) { + if (psEcosystem != null) { + final int count = psEcosystem.executeUpdate(); + if (count > 0) { + LOGGER.info("Updated the CPE ecosystem on {} NVD records", count); } } - if (psEcosystem2 != null) { - final int count = psEcosystem2.executeUpdate(); - if (count > 0) { - LOGGER.info("Removed the CPE ecosystem on {} NVD records", count); + if (psEcosystem2 != null) { + final int count = psEcosystem2.executeUpdate(); + if (count > 0) { + LOGGER.info("Removed the CPE ecosystem on {} NVD records", count); } } - if (psOrphans != null) { - final int count = psOrphans.executeUpdate(); - if (count > 0) { - LOGGER.info("Cleaned up {} orphaned NVD records", count); + if (psOrphans != null) { + final int count = psOrphans.executeUpdate(); + if (count > 0) { + LOGGER.info("Cleaned up {} orphaned NVD records", count); } } - final long millis = System.currentTimeMillis() - start; + final long millis = System.currentTimeMillis() - start; //final long seconds = TimeUnit.MILLISECONDS.toSeconds(millis); - LOGGER.info("End database maintenance ({} ms)", millis); - } catch (SQLException ex) { - LOGGER.error("An unexpected SQL Exception occurred; please see the verbose log for more details."); - LOGGER.debug("", ex); - throw new DatabaseException("Unexpected SQL Exception", ex); - } - } + LOGGER.info("End database maintenance ({} ms)", millis); + } catch (SQLException ex) { + LOGGER.error("An unexpected SQL Exception occurred; please see the verbose log for more details."); + LOGGER.debug("", ex); + throw new DatabaseException("Unexpected SQL Exception", ex); + } + } /** * Persist the EcosystemCache into the database. */ public void persistEcosystemCache() { - saveCpeEcosystemCache(); - clearCache(); - } + saveCpeEcosystemCache(); + clearCache(); + } /** * If the database is using an H2 file based database calling * <code>defrag()</code> will de-fragment the database. */ public void defrag() { - if (isH2) { - final long start = System.currentTimeMillis(); - try (Connection conn = databaseManager.getConnection(); CallableStatement psCompaxt = conn.prepareCall("SHUTDOWN DEFRAG")) { - LOGGER.info("Begin database defrag"); - psCompaxt.execute(); - final long millis = System.currentTimeMillis() - start; + if (isH2) { + final long start = System.currentTimeMillis(); + try (Connection conn = databaseManager.getConnection(); CallableStatement psCompaxt = conn.prepareCall("SHUTDOWN DEFRAG")) { + LOGGER.info("Begin database defrag"); + psCompaxt.execute(); + final long millis = System.currentTimeMillis() - start; //final long seconds = TimeUnit.MILLISECONDS.toSeconds(millis); - LOGGER.info("End database defrag ({} ms)", millis); - } catch (SQLException ex) { - LOGGER.error("An unexpected SQL Exception occurred compacting the database; please see the verbose log for more details."); - LOGGER.debug("", ex); - } + LOGGER.info("End database defrag ({} ms)", millis); + } catch (SQLException ex) { + LOGGER.error("An unexpected SQL Exception occurred compacting the database; please see the verbose log for more details."); + LOGGER.debug("", ex); + } } - } + } /** * Determines if the given identifiedVersion is affected by the given cpeId @@ -1489,19 +1498,19 @@ * @return true if the identified version is affected, otherwise false */ VulnerableSoftware getMatchingSoftware(Cpe cpe, Set<VulnerableSoftware> vulnerableSoftware) { - VulnerableSoftware matched = null; - for (VulnerableSoftware vs : vulnerableSoftware) { - if (vs.matches(cpe)) { - if (matched == null) { - matched = vs; + VulnerableSoftware matched = null; + for (VulnerableSoftware vs : vulnerableSoftware) { + if (vs.matches(cpe)) { + if (matched == null) { + matched = vs; } else { - if ("*".equals(vs.getWellFormedUpdate()) && !"*".equals(matched.getWellFormedUpdate())) { - matched = vs; + if ("*".equals(vs.getWellFormedUpdate()) && !"*".equals(matched.getWellFormedUpdate())) { + matched = vs; } } } - } - return matched; + } + return matched; } /** @@ -1511,13 +1520,13 @@ * </p> */ public void deleteUnusedCpe() { - clearCache(); - try (Connection conn = databaseManager.getConnection(); PreparedStatement ps = getPreparedStatement(conn, DELETE_UNUSED_DICT_CPE)) { - ps.executeUpdate(); - } catch (SQLException ex) { - LOGGER.error("Unable to delete CPE dictionary entries", ex); - } - } + clearCache(); + try (Connection conn = databaseManager.getConnection(); PreparedStatement ps = getPreparedStatement(conn, DELETE_UNUSED_DICT_CPE)) { + ps.executeUpdate(); + } catch (SQLException ex) { + LOGGER.error("Unable to delete CPE dictionary entries", ex); + } + } /** * This method is only referenced in unused code and will likely break on @@ -1531,16 +1540,16 @@ * @param product the CPE product */ public void addCpe(String cpe, String vendor, String product) { - clearCache(); - try (Connection conn = databaseManager.getConnection(); PreparedStatement ps = getPreparedStatement(conn, ADD_DICT_CPE)) { - ps.setString(1, cpe); - ps.setString(2, vendor); - ps.setString(3, product); - ps.executeUpdate(); - } catch (SQLException ex) { - LOGGER.error("Unable to add CPE dictionary entry", ex); - } - } + clearCache(); + try (Connection conn = databaseManager.getConnection(); PreparedStatement ps = getPreparedStatement(conn, ADD_DICT_CPE)) { + ps.setString(1, cpe); + ps.setString(2, vendor); + ps.setString(3, product); + ps.executeUpdate(); + } catch (SQLException ex) { + LOGGER.error("Unable to add CPE dictionary entry", ex); + } + } /** * Returns a map of known exploited vulnerabilities. @@ -1548,31 +1557,31 @@ * @return a map of known exploited vulnerabilities */ public Map<String, org.owasp.dependencycheck.data.knownexploited.json.Vulnerability> getknownExploitedVulnerabilities() { - final Map<String, org.owasp.dependencycheck.data.knownexploited.json.Vulnerability> known = new HashMap<>(); + final Map<String, org.owasp.dependencycheck.data.knownexploited.json.Vulnerability> known = new HashMap<>(); - try (Connection conn = databaseManager.getConnection(); - PreparedStatement ps = getPreparedStatement(conn, SELECT_KNOWN_EXPLOITED_VULNERABILITIES); - ResultSet rs = ps.executeQuery()) { + try (Connection conn = databaseManager.getConnection(); + PreparedStatement ps = getPreparedStatement(conn, SELECT_KNOWN_EXPLOITED_VULNERABILITIES); + ResultSet rs = ps.executeQuery()) { - while (rs.next()) { - final org.owasp.dependencycheck.data.knownexploited.json.Vulnerability kev = + while (rs.next()) { + final org.owasp.dependencycheck.data.knownexploited.json.Vulnerability kev = new org.owasp.dependencycheck.data.knownexploited.json.Vulnerability(); - kev.setCveID(rs.getString(1)); - kev.setVendorProject(rs.getString(2)); - kev.setProduct(rs.getString(3)); - kev.setVulnerabilityName(rs.getString(4)); - kev.setDateAdded(rs.getString(5)); - kev.setShortDescription(rs.getString(6)); - kev.setRequiredAction(rs.getString(7)); - kev.setDueDate(rs.getString(8)); - kev.setNotes(rs.getString(9)); - known.put(kev.getCveID(), kev); - } - - } catch (SQLException ex) { - throw new DatabaseException(ex); - } - return known; + kev.setCveID(rs.getString(1)); + kev.setVendorProject(rs.getString(2)); + kev.setProduct(rs.getString(3)); + kev.setVulnerabilityName(rs.getString(4)); + kev.setDateAdded(rs.getString(5)); + kev.setShortDescription(rs.getString(6)); + kev.setRequiredAction(rs.getString(7)); + kev.setDueDate(rs.getString(8)); + kev.setNotes(rs.getString(9)); + known.put(kev.getCveID(), kev); + } + + } catch (SQLException ex) { + throw new DatabaseException(ex); + } + return known; } /** @@ -1584,140 +1593,146 @@ * @throws SQLException thrown if there is an error setting the parameter. */ private void addNullableStringParameter(PreparedStatement ps, int pos, String value) throws SQLException { - if (value == null || value.isEmpty()) { - ps.setNull(pos, java.sql.Types.VARCHAR); + if (value == null || value.isEmpty()) { + ps.setNull(pos, java.sql.Types.VARCHAR); } else { - ps.setString(pos, value); + ps.setString(pos, value); } - } + } private void setUpdateColumn(PreparedStatement ps, int i, Double value) throws SQLException { - if (value == null) { - ps.setNull(i, java.sql.Types.DOUBLE); + if (value == null) { + ps.setNull(i, java.sql.Types.DOUBLE); } else { - ps.setDouble(i, value); + ps.setDouble(i, value); } - } + } private void setUpdateColumn(PreparedStatement ps, int i, CvssV2Data.AuthenticationType value) throws SQLException { - if (value == null) { - ps.setNull(i, java.sql.Types.VARCHAR); + if (value == null) { + ps.setNull(i, java.sql.Types.VARCHAR); } else { - ps.setString(i, value.value()); + ps.setString(i, value.value()); } - } + } private void setUpdateColumn(PreparedStatement ps, int i, CvssV2Data.CiaType value) throws SQLException { - if (value == null) { - ps.setNull(i, java.sql.Types.VARCHAR); + if (value == null) { + ps.setNull(i, java.sql.Types.VARCHAR); } else { - ps.setString(i, value.value()); + ps.setString(i, value.value()); } - } + } private void setUpdateColumn(PreparedStatement ps, int i, CvssV2Data.Version value) throws SQLException { - if (value == null) { - ps.setNull(i, java.sql.Types.VARCHAR); + if (value == null) { + ps.setNull(i, java.sql.Types.VARCHAR); } else { - ps.setString(i, value.value()); + ps.setString(i, value.value()); } - } + } private void setUpdateColumn(PreparedStatement ps, int i, CvssV2Data.AccessComplexityType value) throws SQLException { - if (value == null) { - ps.setNull(i, java.sql.Types.VARCHAR); + if (value == null) { + ps.setNull(i, java.sql.Types.VARCHAR); } else { - ps.setString(i, value.value()); + ps.setString(i, value.value()); } - } + } private void setUpdateColumn(PreparedStatement ps, int i, CvssV2Data.AccessVectorType value) throws SQLException { - if (value == null) { - ps.setNull(i, java.sql.Types.VARCHAR); + if (value == null) { + ps.setNull(i, java.sql.Types.VARCHAR); } else { - ps.setString(i, value.value()); + ps.setString(i, value.value()); } - } + } private void setUpdateColumn(PreparedStatement ps, int i, String value) throws SQLException { - if (value == null) { - ps.setNull(i, java.sql.Types.VARCHAR); + if (value == null) { + ps.setNull(i, java.sql.Types.VARCHAR); } else { - ps.setString(i, value); + ps.setString(i, value); } - } + } private void setUpdateColumn(PreparedStatement ps, int i, Boolean value) throws SQLException { - if (value == null) { - ps.setNull(i, java.sql.Types.BOOLEAN); + if (value == null) { + //TODO this is may also be an issue for MS SQL, if an issue is created we'll just need + // to create an isMsSQL flag. See todo above in updateOrInsertVulnerability. + if (isOracle) { + ps.setNull(i, java.sql.Types.BIT); + } else { + ps.setNull(i, java.sql.Types.BOOLEAN); + } } else { - ps.setBoolean(i, value); + ps.setBoolean(i, value); } - } + } private void setUpdateColumn(PreparedStatement ps, int i, CvssV3Data.AttackVectorType value) throws SQLException { - if (value == null) { - ps.setNull(i, java.sql.Types.VARCHAR); + if (value == null) { + ps.setNull(i, java.sql.Types.VARCHAR); } else { - ps.setString(i, value.value()); + ps.setString(i, value.value()); } - } + } private void setUpdateColumn(PreparedStatement ps, int i, CvssV3Data.AttackComplexityType value) throws SQLException { - if (value == null) { - ps.setNull(i, java.sql.Types.VARCHAR); + if (value == null) { + ps.setNull(i, java.sql.Types.VARCHAR); } else { - ps.setString(i, value.value()); + ps.setString(i, value.value()); } - } + } private void setUpdateColumn(PreparedStatement ps, int i, CvssV3Data.PrivilegesRequiredType value) throws SQLException { - if (value == null) { - ps.setNull(i, java.sql.Types.VARCHAR); + if (value == null) { + ps.setNull(i, java.sql.Types.VARCHAR); } else { - ps.setString(i, value.value()); + ps.setString(i, value.value()); } - } + } private void setUpdateColumn(PreparedStatement ps, int i, CvssV3Data.UserInteractionType value) throws SQLException { - if (value == null) { - ps.setNull(i, java.sql.Types.VARCHAR); + if (value == null) { + ps.setNull(i, java.sql.Types.VARCHAR); } else { - ps.setString(i, value.value()); + ps.setString(i, value.value()); } - } + } private void setUpdateColumn(PreparedStatement ps, int i, CvssV3Data.ScopeType value) throws SQLException { - if (value == null) { - ps.setNull(i, java.sql.Types.VARCHAR); + if (value == null) { + ps.setNull(i, java.sql.Types.VARCHAR); } else { - ps.setString(i, value.value()); + ps.setString(i, value.value()); } - } + } private void setUpdateColumn(PreparedStatement ps, int i, CvssV3Data.SeverityType value) throws SQLException { - if (value == null) { - ps.setNull(i, java.sql.Types.VARCHAR); + if (value == null) { + ps.setNull(i, java.sql.Types.VARCHAR); } else { - ps.setString(i, value.value()); + ps.setString(i, value.value()); } - } + } private void setUpdateColumn(PreparedStatement ps, int i, CvssV3Data.CiaType value) throws SQLException { - if (value == null) { - ps.setNull(i, java.sql.Types.VARCHAR); + if (value == null) { + ps.setNull(i, java.sql.Types.VARCHAR); } else { - ps.setString(i, value.value()); + ps.setString(i, value.value()); } - } + } private void setUpdateColumn(PreparedStatement ps, int i, CvssV3Data.Version value) throws SQLException { - if (value == null) { - ps.setNull(i, java.sql.Types.VARCHAR); + if (value == null) { + ps.setNull(i, java.sql.Types.VARCHAR); } else { - ps.setString(i, value.value()); + ps.setString(i, value.value()); } - } + } /** * Sets the float parameter on a prepared statement from a properties map. @@ -1729,16 +1744,16 @@ * @throws SQLException thrown if there is an error adding the property */ private void setFloatValue(PreparedStatement ps, int i, Map<String, Object> props, String key) throws SQLException { - if (props != null && props.containsKey(key)) { + if (props != null && props.containsKey(key)) { try { - ps.setFloat(i, Float.parseFloat(props.get(key).toString())); - } catch (NumberFormatException nfe) { - ps.setNull(i, java.sql.Types.FLOAT); - } + ps.setFloat(i, Float.parseFloat(props.get(key).toString())); + } catch (NumberFormatException nfe) { + ps.setNull(i, java.sql.Types.FLOAT); + } } else { - ps.setNull(i, java.sql.Types.FLOAT); + ps.setNull(i, java.sql.Types.FLOAT); } - } + } /** * Sets the string parameter on a prepared statement from a properties map. @@ -1750,12 +1765,12 @@ * @throws SQLException thrown if there is an error adding the property */ private void setStringValue(PreparedStatement ps, int i, Map<String, Object> props, String key) throws SQLException { - if (props != null && props.containsKey(key)) { - ps.setString(i, props.get(key).toString()); + if (props != null && props.containsKey(key)) { + ps.setString(i, props.get(key).toString()); } else { - ps.setNull(i, java.sql.Types.VARCHAR); + ps.setNull(i, java.sql.Types.VARCHAR); } - } + } /** * Sets the boolean parameter on a prepared statement from a properties map. @@ -1767,12 +1782,12 @@ * @throws SQLException thrown if there is an error adding the property */ private void setBooleanValue(PreparedStatement ps, int i, Map<String, Object> props, String key) throws SQLException { - if (props != null && props.containsKey(key)) { - ps.setBoolean(i, Boolean.parseBoolean(props.get(key).toString())); + if (props != null && props.containsKey(key)) { + ps.setBoolean(i, Boolean.parseBoolean(props.get(key).toString())); } else { - ps.setNull(i, java.sql.Types.BOOLEAN); + ps.setNull(i, java.sql.Types.BOOLEAN); } - } + } /** * Returns the Boolean value for the given index; if the value is null then @@ -1785,10 +1800,10 @@ */ @SuppressFBWarnings("NP_BOOLEAN_RETURN_NULL") private Boolean getBooleanValue(ResultSet rs, int index) throws SQLException { - if (rs.getObject(index) == null) { - return null; + if (rs.getObject(index) == null) { + return null; } - return rs.getBoolean(index); + return rs.getBoolean(index); } /** @@ -1801,10 +1816,10 @@ * @throws SQLException thrown if there is an error obtaining the value */ private Float getFloatValue(ResultSet rs, int index) throws SQLException { - if (rs.getObject(index) == null) { - return null; + if (rs.getObject(index) == null) { + return null; } - return rs.getFloat(index); + return rs.getFloat(index); } } \ No newline at end of file diff --git a/dependency-check-core/jacoco/org.owasp.dependencycheck.data.nvdcve/DatabaseProperties.html b/dependency-check-core/jacoco/org.owasp.dependencycheck.data.nvdcve/DatabaseProperties.html index 0877bb4753c..79023705e15 100644 --- a/dependency-check-core/jacoco/org.owasp.dependencycheck.data.nvdcve/DatabaseProperties.html +++ b/dependency-check-core/jacoco/org.owasp.dependencycheck.data.nvdcve/DatabaseProperties.html @@ -1 +1 @@ -DatabaseProperties

    DatabaseProperties

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
    Total76 of 15952%10 of 1844%11201536411
    getMetaData()314358%4866%4741401
    getTimestamp(Properties, String)190%20%226611
    isEmpty()110%40%331111
    save(String, ZonedDateTime)100%n/a113311
    getTimestamp(String)50%n/a111111
    save(String, String)12100%n/a010301
    DatabaseProperties(CveDB)10100%n/a010401
    getProperty(String, String)6100%n/a010101
    getProperty(String)5100%n/a010101
    static {...}4100%n/a010101
    getProperties()3100%n/a010101
    \ No newline at end of file +DatabaseProperties

    DatabaseProperties

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
    Total113 of 19642%12 of 2040%15242647714
    getMetaData()314358%4866%4741401
    getTimestamp(Properties, String)190%20%226611
    getIsoTimestamp(Properties, String)180%20%226611
    isEmpty()110%40%331111
    setTimestamp(Properties, String, ZonedDateTime)110%n/a113311
    save(String, ZonedDateTime)100%n/a113311
    getPropertyInSeconds(String)80%n/a112211
    getTimestamp(String)50%n/a111111
    save(String, String)12100%n/a010301
    DatabaseProperties(CveDB)10100%n/a010401
    getProperty(String, String)6100%n/a010101
    getProperty(String)5100%n/a010101
    static {...}4100%n/a010101
    getProperties()3100%n/a010101
    \ No newline at end of file diff --git a/dependency-check-core/jacoco/org.owasp.dependencycheck.data.nvdcve/DatabaseProperties.java.html b/dependency-check-core/jacoco/org.owasp.dependencycheck.data.nvdcve/DatabaseProperties.java.html index b8016777a45..0ff50e9298b 100644 --- a/dependency-check-core/jacoco/org.owasp.dependencycheck.data.nvdcve/DatabaseProperties.java.html +++ b/dependency-check-core/jacoco/org.owasp.dependencycheck.data.nvdcve/DatabaseProperties.java.html @@ -28,6 +28,7 @@ import javax.annotation.concurrent.ThreadSafe; import org.owasp.dependencycheck.data.update.exception.UpdateException; +import org.owasp.dependencycheck.utils.DateUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -43,7 +44,7 @@ /** * The Logger. */ - private static final Logger LOGGER = LoggerFactory.getLogger(DatabaseProperties.class); + private static final Logger LOGGER = LoggerFactory.getLogger(DatabaseProperties.class); /** * The last modified request data for the NVD API. */ @@ -72,6 +73,14 @@ * The key for the last check time for the Known Exploited Vulnerabilities. */ public static final String KEV_LAST_CHECKED = "kev.checked"; + /** + * The key for the last check time for the Retire JS repository. + */ + public static final String RETIRE_LAST_CHECKED = "retirejs.checked"; + /** + * The key for the last check time for the hosted suppression file. + */ + public static final String HOSTED_SUPPRESSION_LAST_CHECKED = "hosted.suppression.checked"; /** * The key for the version the Known Exploited Vulnerabilities. */ @@ -90,10 +99,10 @@ * * @param cveDB the database object holding the properties */ - DatabaseProperties(CveDB cveDB) { - this.cveDB = cveDB; - this.properties = cveDB.getProperties(); - } + DatabaseProperties(CveDB cveDB) { + this.cveDB = cveDB; + this.properties = cveDB.getProperties(); + } /** * Returns whether or not any properties are set. @@ -101,7 +110,7 @@ * @return whether or not any properties are set */ public synchronized boolean isEmpty() { - return properties == null || properties.isEmpty(); + return properties == null || properties.isEmpty(); } /** @@ -112,9 +121,9 @@ * @throws UpdateException is thrown if there is an update exception */ public synchronized void save(String key, String value) throws UpdateException { - properties.put(key, value); - cveDB.saveProperty(key, value); - } + properties.put(key, value); + cveDB.saveProperty(key, value); + } /** * Returns the property value for the given key. If the key is not contained @@ -124,7 +133,7 @@ * @return the value of the property */ public synchronized String getProperty(String key) { - return properties.getProperty(key); + return properties.getProperty(key); } /** @@ -136,7 +145,7 @@ * @return the value of the property */ public synchronized String getProperty(String key, String defaultValue) { - return properties.getProperty(key, defaultValue); + return properties.getProperty(key, defaultValue); } /** @@ -145,7 +154,7 @@ * @return the collection of Database Properties */ public synchronized Properties getProperties() { - return properties; + return properties; } /** @@ -156,25 +165,25 @@ * @return a map of the database meta data */ public synchronized Map<String, String> getMetaData() { - final Map<String, String> map = new TreeMap<>(); - for (Entry<Object, Object> entry : properties.entrySet()) { - final String key = (String) entry.getKey(); - if (!"version".equals(key)) { - if (DatabaseProperties.NVD_API_LAST_CHECKED.equals(key)) { - map.put("NVD API Last Checked", entry.getValue().toString()); - - } else if (DatabaseProperties.NVD_API_LAST_MODIFIED.equals(key)) { - map.put("NVD API Last Modified", entry.getValue().toString()); - - } else if (DatabaseProperties.NVD_CACHE_LAST_CHECKED.equals(key)) { - map.put("NVD Cache Last Checked", entry.getValue().toString()); - - } else if (DatabaseProperties.NVD_CACHE_LAST_MODIFIED.equals(key)) { - map.put("NVD Cache Last Modified", entry.getValue().toString()); + final Map<String, String> map = new TreeMap<>(); + for (Entry<Object, Object> entry : properties.entrySet()) { + final String key = (String) entry.getKey(); + if (!"version".equals(key)) { + if (DatabaseProperties.NVD_API_LAST_CHECKED.equals(key)) { + map.put("NVD API Last Checked", entry.getValue().toString()); + + } else if (DatabaseProperties.NVD_API_LAST_MODIFIED.equals(key)) { + map.put("NVD API Last Modified", entry.getValue().toString()); + + } else if (DatabaseProperties.NVD_CACHE_LAST_CHECKED.equals(key)) { + map.put("NVD Cache Last Checked", entry.getValue().toString()); + + } else if (DatabaseProperties.NVD_CACHE_LAST_MODIFIED.equals(key)) { + map.put("NVD Cache Last Modified", entry.getValue().toString()); } } - } - return map; + } + return map; } /** @@ -184,7 +193,7 @@ * @return the zoned date time */ public ZonedDateTime getTimestamp(String key) { - return DatabaseProperties.getTimestamp(properties, key); + return DatabaseProperties.getTimestamp(properties, key); } /** @@ -194,9 +203,21 @@ * @param timestamp the zoned date time */ public void save(String key, ZonedDateTime timestamp) throws UpdateException { - final DateTimeFormatter dtf = DateTimeFormatter.ofPattern("uuuu-MM-dd'T'HH:mm:ssX"); - save(key, dtf.format(timestamp)); - } + final DateTimeFormatter dtf = DateTimeFormatter.ofPattern("uuuu-MM-dd'T'HH:mm:ssX"); + save(key, dtf.format(timestamp)); + } + + /** + * Stores a timestamp in the properties file. + * + * @param properties the properties to store the timestamp + * @param key the property key + * @param timestamp the zoned date time + */ + public static void setTimestamp(Properties properties, String key, ZonedDateTime timestamp) throws UpdateException { + final DateTimeFormatter dtf = DateTimeFormatter.ofPattern("uuuu-MM-dd'T'HH:mm:ssX"); + properties.put(key, dtf.format(timestamp)); + } /** * Retrieves a zoned date time. @@ -206,13 +227,42 @@ * @return the zoned date time */ public static ZonedDateTime getTimestamp(Properties properties, String key) { - final DateTimeFormatter dtf = DateTimeFormatter.ofPattern("uuuu-MM-dd'T'HH:mm:ssX"); - final String val = properties.getProperty(key); - if (val != null) { - final String value = properties.getProperty(key); - return ZonedDateTime.parse(value, dtf); + final DateTimeFormatter dtf = DateTimeFormatter.ofPattern("uuuu-MM-dd'T'HH:mm:ssX"); + final String val = properties.getProperty(key); + if (val != null) { + final String value = properties.getProperty(key); + return ZonedDateTime.parse(value, dtf); + } + return null; + } + + /** + * Retrieves a zoned date time. + * + * @param properties the properties file containing the date time + * @param key the property key + * @return the zoned date time + */ + public static ZonedDateTime getIsoTimestamp(Properties properties, String key) { + //final DateTimeFormatter dtf = DateTimeFormatter.ofPattern("uuuu-MM-dd'T'HH:mm:ssX"); + final DateTimeFormatter dtf = DateTimeFormatter.ISO_DATE_TIME; + final String val = properties.getProperty(key); + if (val != null) { + final String value = properties.getProperty(key); + return ZonedDateTime.parse(value, dtf); } - return null; + return null; + } + + /** + * Returns the database property value in seconds. + * + * @param key the key to the property + * @return the property value in seconds + */ + public long getPropertyInSeconds(String key) { + final String value = getProperty(key, "0"); + return DateUtil.getEpochValueInSeconds(value); } } diff --git a/dependency-check-core/jacoco/org.owasp.dependencycheck.data.nvdcve/index.html b/dependency-check-core/jacoco/org.owasp.dependencycheck.data.nvdcve/index.html index ef8f592d161..5c1adb4524d 100644 --- a/dependency-check-core/jacoco/org.owasp.dependencycheck.data.nvdcve/index.html +++ b/dependency-check-core/jacoco/org.owasp.dependencycheck.data.nvdcve/index.html @@ -1 +1 @@ -org.owasp.dependencycheck.data.nvdcve

    org.owasp.dependencycheck.data.nvdcve

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethodsMissedClasses
    Total4,008 of 6,27536%453 of 56419%3374329411,41481145311
    CveDB2,3581,31735%2036925%161206555822467001
    H2Functions5930%360%24241531536611
    CveItemOperator4031%1640%959667708901
    DatabaseManager38640851%312544%25509521212201
    DriverShim9122%80%1216253181201
    DatabaseProperties768352%10844%1120153641101
    DriverLoader7114767%990%21117461601
    DatabaseException0%n/a33663311
    CorruptDatabaseException0%n/a22442211
    DriverLoadException38%n/a23462301
    CveDB.PreparedStatementCveDb274100%n/a010280101
    \ No newline at end of file +org.owasp.dependencycheck.data.nvdcve

    org.owasp.dependencycheck.data.nvdcve

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethodsMissedClasses
    Total4,069 of 6,34435%460 of 57019%3444389571,43284148311
    CveDB2,3821,32535%2086824%164208560829467001
    H2Functions5930%360%24241531536611
    CveItemOperator4031%1640%959667708901
    DatabaseManager38640851%312544%25509521212201
    DatabaseProperties1138342%12840%1524264771401
    DriverShim9122%80%1216253181201
    DriverLoader7114767%990%21117461601
    DatabaseException0%n/a33663311
    CorruptDatabaseException0%n/a22442211
    DriverLoadException38%n/a23462301
    CveDB.PreparedStatementCveDb274100%n/a010280101
    \ No newline at end of file diff --git a/dependency-check-core/jacoco/org.owasp.dependencycheck.data.nvdcve/index.source.html b/dependency-check-core/jacoco/org.owasp.dependencycheck.data.nvdcve/index.source.html index 2855392e90f..ba24c8cf8ff 100644 --- a/dependency-check-core/jacoco/org.owasp.dependencycheck.data.nvdcve/index.source.html +++ b/dependency-check-core/jacoco/org.owasp.dependencycheck.data.nvdcve/index.source.html @@ -1 +1 @@ -org.owasp.dependencycheck.data.nvdcve

    org.owasp.dependencycheck.data.nvdcve

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethodsMissedClasses
    Total4,008 of 6,27536%453 of 56419%3374329411,41481145311
    CveDB.java2,3581,59140%2036925%161207555850467102
    H2Functions.java5930%360%24241531536611
    CveItemOperator.java4031%1640%959667708901
    DatabaseManager.java38640851%312544%25509521212201
    DriverShim.java9122%80%1216253181201
    DatabaseProperties.java768352%10844%1120153641101
    DriverLoader.java7114767%990%21117461601
    DatabaseException.java0%n/a33663311
    CorruptDatabaseException.java0%n/a22442211
    DriverLoadException.java38%n/a23462301
    \ No newline at end of file +org.owasp.dependencycheck.data.nvdcve

    org.owasp.dependencycheck.data.nvdcve

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethodsMissedClasses
    Total4,069 of 6,34435%460 of 57019%3444389571,43284148311
    CveDB.java2,3821,59940%2086824%164209560857467102
    H2Functions.java5930%360%24241531536611
    CveItemOperator.java4031%1640%959667708901
    DatabaseManager.java38640851%312544%25509521212201
    DatabaseProperties.java1138342%12840%1524264771401
    DriverShim.java9122%80%1216253181201
    DriverLoader.java7114767%990%21117461601
    DatabaseException.java0%n/a33663311
    CorruptDatabaseException.java0%n/a22442211
    DriverLoadException.java38%n/a23462301
    \ No newline at end of file diff --git a/dependency-check-core/jacoco/org.owasp.dependencycheck.data.update.nvd.api/DownloadTask.html b/dependency-check-core/jacoco/org.owasp.dependencycheck.data.update.nvd.api/DownloadTask.html index 895d026de52..8478c1befd3 100644 --- a/dependency-check-core/jacoco/org.owasp.dependencycheck.data.update.nvd.api/DownloadTask.html +++ b/dependency-check-core/jacoco/org.owasp.dependencycheck.data.update.nvd.api/DownloadTask.html @@ -1 +1 @@ -DownloadTask

    DownloadTask

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
    Total105 of 1050%2 of 20%55252544
    call()810%20%22171711
    DownloadTask(String, ExecutorService, CveDB, Settings)150%n/a116611
    isModified()50%n/a111111
    static {...}40%n/a111111
    \ No newline at end of file +DownloadTask

    DownloadTask

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
    Total94 of 940%2 of 20%55232344
    call()700%20%22151511
    DownloadTask(String, ExecutorService, CveDB, Settings)150%n/a116611
    isModified()50%n/a111111
    static {...}40%n/a111111
    \ No newline at end of file diff --git a/dependency-check-core/jacoco/org.owasp.dependencycheck.data.update.nvd.api/DownloadTask.java.html b/dependency-check-core/jacoco/org.owasp.dependencycheck.data.update.nvd.api/DownloadTask.java.html index 0b9d73d2511..da7724e3e34 100644 --- a/dependency-check-core/jacoco/org.owasp.dependencycheck.data.update.nvd.api/DownloadTask.java.html +++ b/dependency-check-core/jacoco/org.owasp.dependencycheck.data.update.nvd.api/DownloadTask.java.html @@ -17,9 +17,7 @@ */ package org.owasp.dependencycheck.data.update.nvd.api; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; -import io.github.jeremylong.openvulnerability.client.nvd.CveApiJson20; +import java.io.File; import java.net.URL; import java.util.concurrent.Callable; import java.util.concurrent.ExecutorService; @@ -27,7 +25,6 @@ import javax.annotation.concurrent.ThreadSafe; import org.apache.commons.lang3.StringUtils; import org.owasp.dependencycheck.data.nvdcve.CveDB; -import org.owasp.dependencycheck.data.update.exception.UpdateException; import org.owasp.dependencycheck.utils.Downloader; import org.owasp.dependencycheck.utils.Settings; import org.slf4j.Logger; @@ -45,7 +42,7 @@ /** * The Logger. */ - private static final Logger LOGGER = LoggerFactory.getLogger(DownloadTask.class); + private static final Logger LOGGER = LoggerFactory.getLogger(DownloadTask.class); /** * The CVE DB to use when processing the files. */ @@ -72,39 +69,35 @@ * @param settings a reference to the global settings object; this is * necessary so that when the thread is started the dependencies have a * correct reference to the global settings. - * @throws UpdateException thrown if temporary files could not be created */ - public DownloadTask(String url, ExecutorService processor, CveDB cveDB, Settings settings) { - this.url = url; - this.processorService = processor; - this.cveDB = cveDB; - this.settings = settings; - } + public DownloadTask(String url, ExecutorService processor, CveDB cveDB, Settings settings) { + this.url = url; + this.processorService = processor; + this.cveDB = cveDB; + this.settings = settings; + } @SuppressWarnings("BusyWait") @Override public Future<NvdApiProcessor> call() throws Exception { try { - final URL u = new URL(url); - LOGGER.info("Download Started for NVD Cache - {}", url); - final long startDownload = System.currentTimeMillis(); - final Downloader d = new Downloader(settings); - final String content = d.fetchGzContent(u, true, Settings.KEYS.NVD_API_DATAFEED_USER, Settings.KEYS.NVD_API_DATAFEED_PASSWORD); - final ObjectMapper objectMapper = new ObjectMapper(); - objectMapper.registerModule(new JavaTimeModule()); - final CveApiJson20 data = objectMapper.readValue(content, CveApiJson20.class); - - if (this.processorService == null) { - return null; + final URL u = new URL(url); + LOGGER.info("Download Started for NVD Cache - {}", url); + final long startDownload = System.currentTimeMillis(); + final Downloader d = new Downloader(settings); + final File outputFile = settings.getTempFile("nvd-datafeed-", "json.gz"); + d.fetchFile(u, outputFile, true, Settings.KEYS.NVD_API_DATAFEED_USER, Settings.KEYS.NVD_API_DATAFEED_PASSWORD); + if (this.processorService == null) { + return null; } - final NvdApiProcessor task = new NvdApiProcessor(cveDB, data.getVulnerabilities(), startDownload); - final Future<NvdApiProcessor> val = this.processorService.submit(task); - return val; - } catch (Throwable ex) { - LOGGER.error("Error downloading NVD CVE - {} Reason: {}", url, ex.getMessage()); - throw ex; + final NvdApiProcessor task = new NvdApiProcessor(cveDB, outputFile, startDownload); + final Future<NvdApiProcessor> val = this.processorService.submit(task); + return val; + } catch (Throwable ex) { + LOGGER.error("Error downloading NVD CVE - {} Reason: {}", url, ex.getMessage()); + throw ex; } finally { - settings.cleanup(false); + settings.cleanup(false); } } @@ -116,7 +109,7 @@ * otherwise <code>false</code> */ public boolean isModified() { - return StringUtils.containsIgnoreCase(url, "modified"); + return StringUtils.containsIgnoreCase(url, "modified"); } } \ No newline at end of file diff --git a/dependency-check-core/jacoco/org.owasp.dependencycheck.data.update.nvd.api/NvdApiProcessor$1.html b/dependency-check-core/jacoco/org.owasp.dependencycheck.data.update.nvd.api/NvdApiProcessor$1.html new file mode 100644 index 00000000000..9d1ff1be0b0 --- /dev/null +++ b/dependency-check-core/jacoco/org.owasp.dependencycheck.data.update.nvd.api/NvdApiProcessor$1.html @@ -0,0 +1 @@ +NvdApiProcessor.new TypeReference() {...}

    NvdApiProcessor.new TypeReference() {...}

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
    Total6 of 60%0 of 0n/a111111
    {...}60%n/a111111
    \ No newline at end of file diff --git a/dependency-check-core/jacoco/org.owasp.dependencycheck.data.update.nvd.api/NvdApiProcessor$2.html b/dependency-check-core/jacoco/org.owasp.dependencycheck.data.update.nvd.api/NvdApiProcessor$2.html new file mode 100644 index 00000000000..db37e17959d --- /dev/null +++ b/dependency-check-core/jacoco/org.owasp.dependencycheck.data.update.nvd.api/NvdApiProcessor$2.html @@ -0,0 +1 @@ +NvdApiProcessor.new TypeReference() {...}

    NvdApiProcessor.new TypeReference() {...}

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
    Total6 of 60%0 of 0n/a111111
    {...}60%n/a111111
    \ No newline at end of file diff --git a/dependency-check-core/jacoco/org.owasp.dependencycheck.data.update.nvd.api/NvdApiProcessor.html b/dependency-check-core/jacoco/org.owasp.dependencycheck.data.update.nvd.api/NvdApiProcessor.html index a40f0b6ee44..9bc1200d5c3 100644 --- a/dependency-check-core/jacoco/org.owasp.dependencycheck.data.update.nvd.api/NvdApiProcessor.html +++ b/dependency-check-core/jacoco/org.owasp.dependencycheck.data.update.nvd.api/NvdApiProcessor.html @@ -1 +1 @@ -NvdApiProcessor

    NvdApiProcessor

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
    Total79 of 790%2 of 20%66202055
    call()430%20%229911
    NvdApiProcessor(CveDB, Collection, long)200%n/a117711
    NvdApiProcessor(CveDB, Collection)60%n/a112211
    getDurationMillis()60%n/a111111
    static {...}40%n/a111111
    \ No newline at end of file +NvdApiProcessor

    NvdApiProcessor

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
    Total193 of 1930%10 of 100%1010404055
    call()1570%100%66292911
    NvdApiProcessor(CveDB, File, long)200%n/a117711
    NvdApiProcessor(CveDB, File)60%n/a112211
    getDurationMillis()60%n/a111111
    static {...}40%n/a111111
    \ No newline at end of file diff --git a/dependency-check-core/jacoco/org.owasp.dependencycheck.data.update.nvd.api/NvdApiProcessor.java.html b/dependency-check-core/jacoco/org.owasp.dependencycheck.data.update.nvd.api/NvdApiProcessor.java.html index 54f83de8cdc..2bf2307698f 100644 --- a/dependency-check-core/jacoco/org.owasp.dependencycheck.data.update.nvd.api/NvdApiProcessor.java.html +++ b/dependency-check-core/jacoco/org.owasp.dependencycheck.data.update.nvd.api/NvdApiProcessor.java.html @@ -17,11 +17,20 @@ */ package org.owasp.dependencycheck.data.update.nvd.api; +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; +import io.github.jeremylong.openvulnerability.client.nvd.CveApiJson20; import io.github.jeremylong.openvulnerability.client.nvd.DefCveItem; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; import java.util.Collection; import java.util.concurrent.Callable; +import java.util.zip.GZIPInputStream; import org.owasp.dependencycheck.data.nvd.ecosystem.CveEcosystemMapper; import org.owasp.dependencycheck.data.nvdcve.CveDB; +import org.owasp.dependencycheck.data.update.exception.UpdateException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -35,19 +44,19 @@ /** * The Logger for use throughout the class. */ - private static final Logger LOGGER = LoggerFactory.getLogger(NvdApiProcessor.class); + private static final Logger LOGGER = LoggerFactory.getLogger(NvdApiProcessor.class); /** * A reference to the database. */ private final CveDB cveDB; /** - * The collection of NVD API data to add to the database. + * The file containing the data to inject. */ - private Collection<DefCveItem> data; + private File jsonFile; /** * Reference to the CVE Ecosystem Mapper object. */ - private final CveEcosystemMapper mapper = new CveEcosystemMapper(); + private final CveEcosystemMapper mapper = new CveEcosystemMapper(); /** * The start time. */ @@ -55,43 +64,68 @@ /** * The end time. */ - private long endTime = 0; + private long endTime = 0; /** * Create a new processor to put the NVD data into the database. * - * @param cveDB a reference to the database - * @param data the data to add to the database + * @param cveDB a reference to the database. + * @param jsonFile the JSON data file to inject. * @param startTime the start time of the update process. */ - public NvdApiProcessor(final CveDB cveDB, Collection<DefCveItem> data, long startTime) { - this.cveDB = cveDB; - this.data = data; - this.startTime = startTime; - } + public NvdApiProcessor(final CveDB cveDB, File jsonFile, long startTime) { + this.cveDB = cveDB; + this.jsonFile = jsonFile; + this.startTime = startTime; + } /** * Create a new processor to put the NVD data into the database. * * @param cveDB a reference to the database - * @param data the data to add to the database + * @param jsonFile the JSON data file to inject. */ - public NvdApiProcessor(final CveDB cveDB, Collection<DefCveItem> data) { - this(cveDB, data, System.currentTimeMillis()); - } + public NvdApiProcessor(final CveDB cveDB, File jsonFile) { + this(cveDB, jsonFile, System.currentTimeMillis()); + } @Override public NvdApiProcessor call() throws Exception { - for (DefCveItem entry : data) { - try { - cveDB.updateVulnerability(entry, mapper.getEcosystem(entry)); - } catch (Exception ex) { - LOGGER.error("Failed to process " + entry.getCve().getId(), ex); - } - } - endTime = System.currentTimeMillis(); - data = null; - return this; + final ObjectMapper objectMapper = new ObjectMapper(); + objectMapper.registerModule(new JavaTimeModule()); + Collection<DefCveItem> data = null; + + if (jsonFile.getName().endsWith(".jsonarray.gz")) { + try (FileInputStream fileInputStream = new FileInputStream(jsonFile); + GZIPInputStream gzipInputStream = new GZIPInputStream(fileInputStream);) { + data = objectMapper.readValue(gzipInputStream, new TypeReference<Collection<DefCveItem>>(){}); + } catch (IOException exception) { + throw new UpdateException("Unable to read downloaded json data: " + jsonFile, exception); + } + } else if (jsonFile.getName().endsWith(".gz")) { + try (FileInputStream fileInputStream = new FileInputStream(jsonFile); + GZIPInputStream gzipInputStream = new GZIPInputStream(fileInputStream);) { + CveApiJson20 cveData = objectMapper.readValue(gzipInputStream, CveApiJson20.class); + if (cveData != null) { + data = cveData.getVulnerabilities(); + } + } catch (IOException exception) { + throw new UpdateException("Unable to read downloaded json data: " + jsonFile, exception); + } + } else { + data = objectMapper.readValue(jsonFile, new TypeReference<Collection<DefCveItem>>(){}); + } + if (data != null ) { + for (DefCveItem entry : data) { + try { + cveDB.updateVulnerability(entry, mapper.getEcosystem(entry)); + } catch (Exception ex) { + LOGGER.error("Failed to process " + entry.getCve().getId(), ex); + } + } + } + endTime = System.currentTimeMillis(); + return this; } /** @@ -100,7 +134,7 @@ * @return the number of milliseconds that the update process took */ public long getDurationMillis() { - return endTime - startTime; + return endTime - startTime; } } \ No newline at end of file diff --git a/dependency-check-core/jacoco/org.owasp.dependencycheck.data.update.nvd.api/index.html b/dependency-check-core/jacoco/org.owasp.dependencycheck.data.update.nvd.api/index.html index fbe364e1f8f..81adfe7bf07 100644 --- a/dependency-check-core/jacoco/org.owasp.dependencycheck.data.update.nvd.api/index.html +++ b/dependency-check-core/jacoco/org.owasp.dependencycheck.data.update.nvd.api/index.html @@ -1 +1 @@ -org.owasp.dependencycheck.data.update.nvd.api

    org.owasp.dependencycheck.data.update.nvd.api

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethodsMissedClasses
    Total184 of 1840%4 of 40%111145459922
    DownloadTask1050%20%5525254411
    NvdApiProcessor790%20%6620205511
    \ No newline at end of file +org.owasp.dependencycheck.data.update.nvd.api

    org.owasp.dependencycheck.data.update.nvd.api

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethodsMissedClasses
    Total299 of 2990%12 of 120%17176363111144
    NvdApiProcessor1930%100%101040405511
    DownloadTask940%20%5523234411
    NvdApiProcessor.new TypeReference() {...}60%n/a11111111
    NvdApiProcessor.new TypeReference() {...}60%n/a11111111
    \ No newline at end of file diff --git a/dependency-check-core/jacoco/org.owasp.dependencycheck.data.update.nvd.api/index.source.html b/dependency-check-core/jacoco/org.owasp.dependencycheck.data.update.nvd.api/index.source.html index 0c5d02d6a88..d72532782ad 100644 --- a/dependency-check-core/jacoco/org.owasp.dependencycheck.data.update.nvd.api/index.source.html +++ b/dependency-check-core/jacoco/org.owasp.dependencycheck.data.update.nvd.api/index.source.html @@ -1 +1 @@ -org.owasp.dependencycheck.data.update.nvd.api

    org.owasp.dependencycheck.data.update.nvd.api

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethodsMissedClasses
    Total184 of 1840%4 of 40%111145459922
    DownloadTask.java1050%20%5525254411
    NvdApiProcessor.java790%20%6620205511
    \ No newline at end of file +org.owasp.dependencycheck.data.update.nvd.api

    org.owasp.dependencycheck.data.update.nvd.api

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethodsMissedClasses
    Total299 of 2990%12 of 120%17176363111144
    NvdApiProcessor.java2050%100%121240407733
    DownloadTask.java940%20%5523234411
    \ No newline at end of file diff --git a/dependency-check-core/jacoco/org.owasp.dependencycheck.data.update/HostedSuppressionsDataSource.html b/dependency-check-core/jacoco/org.owasp.dependencycheck.data.update/HostedSuppressionsDataSource.html index 962aca90913..1733cf71112 100644 --- a/dependency-check-core/jacoco/org.owasp.dependencycheck.data.update/HostedSuppressionsDataSource.html +++ b/dependency-check-core/jacoco/org.owasp.dependencycheck.data.update/HostedSuppressionsDataSource.html @@ -1 +1 @@ -HostedSuppressionsDataSource

    HostedSuppressionsDataSource

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
    Total185 of 31441%19 of 2832%1521426737
    purge(Engine)630%20%22131311
    shouldUpdate(File)560%80%55121211
    update(Engine)349172%8850%6962301
    deleteCachedFile(File)200%n/a118811
    fetchHostedSuppressions(Settings, URL, File)123172%1150%123901
    static {...}4100%n/a010101
    HostedSuppressionsDataSource()3100%n/a010101
    \ No newline at end of file +HostedSuppressionsDataSource

    HostedSuppressionsDataSource

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
    Total207 of 35141%24 of 3633%1825477637
    shouldUpdate(File)700%120%77161611
    purge(Engine)630%20%22131311
    update(Engine)4210371%91155%71172701
    deleteCachedFile(File)200%n/a118811
    fetchHostedSuppressions(Settings, URL, File)123172%1150%123901
    HostedSuppressionsDataSource()6100%n/a010201
    static {...}4100%n/a010101
    \ No newline at end of file diff --git a/dependency-check-core/jacoco/org.owasp.dependencycheck.data.update/HostedSuppressionsDataSource.java.html b/dependency-check-core/jacoco/org.owasp.dependencycheck.data.update/HostedSuppressionsDataSource.java.html index db43d9600d1..971c9466cc8 100644 --- a/dependency-check-core/jacoco/org.owasp.dependencycheck.data.update/HostedSuppressionsDataSource.java.html +++ b/dependency-check-core/jacoco/org.owasp.dependencycheck.data.update/HostedSuppressionsDataSource.java.html @@ -33,19 +33,23 @@ import java.net.MalformedURLException; import java.net.URL; import java.nio.file.Files; +import org.owasp.dependencycheck.data.nvdcve.DatabaseProperties; -public class HostedSuppressionsDataSource implements CachedWebDataSource { +public class HostedSuppressionsDataSource implements CachedWebDataSource { /** * Static logger. */ - private static final Logger LOGGER = LoggerFactory.getLogger(HostedSuppressionsDataSource.class); + private static final Logger LOGGER = LoggerFactory.getLogger(HostedSuppressionsDataSource.class); /** * The configured settings. */ private Settings settings; - + /** + * The properties obtained from the database. + */ + private DatabaseProperties dbProperties = null; /** * The default URL to the Hosted Suppressions file. */ @@ -55,64 +59,79 @@ * Downloads the current Hosted suppressions file. * * @param engine a reference to the ODC Engine - * @return returns false as no updates are made to the database, just web resources cached locally + * @return returns false as no updates are made to the database, just web + * resources cached locally * @throws UpdateException thrown if the update encountered fatal errors */ @Override public boolean update(Engine engine) throws UpdateException { - this.settings = engine.getSettings(); - final String configuredUrl = settings.getString(Settings.KEYS.HOSTED_SUPPRESSIONS_URL, DEFAULT_SUPPRESSIONS_URL); - final boolean autoupdate = settings.getBoolean(Settings.KEYS.AUTO_UPDATE, true); - final boolean forceupdate = settings.getBoolean(Settings.KEYS.HOSTED_SUPPRESSIONS_FORCEUPDATE, false); - final boolean cpeSuppressionEnabled = settings.getBoolean(Settings.KEYS.ANALYZER_CPE_SUPPRESSION_ENABLED, true); - final boolean vulnSuppressionEnabled = settings.getBoolean(Settings.KEYS.ANALYZER_VULNERABILITY_SUPPRESSION_ENABLED, true); - boolean enabled = settings.getBoolean(Settings.KEYS.HOSTED_SUPPRESSIONS_ENABLED, true); - enabled = enabled && (cpeSuppressionEnabled || vulnSuppressionEnabled); + this.settings = engine.getSettings(); + if (engine.getMode() != Engine.Mode.EVIDENCE_COLLECTION) { + //note this conditional is only to support test cases. + this.dbProperties = engine.getDatabase().getDatabaseProperties(); + } + final String configuredUrl = settings.getString(Settings.KEYS.HOSTED_SUPPRESSIONS_URL, DEFAULT_SUPPRESSIONS_URL); + final boolean autoupdate = settings.getBoolean(Settings.KEYS.AUTO_UPDATE, true); + final boolean forceupdate = settings.getBoolean(Settings.KEYS.HOSTED_SUPPRESSIONS_FORCEUPDATE, false); + final boolean cpeSuppressionEnabled = settings.getBoolean(Settings.KEYS.ANALYZER_CPE_SUPPRESSION_ENABLED, true); + final boolean vulnSuppressionEnabled = settings.getBoolean(Settings.KEYS.ANALYZER_VULNERABILITY_SUPPRESSION_ENABLED, true); + boolean enabled = settings.getBoolean(Settings.KEYS.HOSTED_SUPPRESSIONS_ENABLED, true); + enabled = enabled && (cpeSuppressionEnabled || vulnSuppressionEnabled); try { - final URL url = new URL(configuredUrl); - final File filepath = new File(url.getPath()); - final File repoFile = new File(settings.getDataDirectory(), filepath.getName()); - final boolean proceed = enabled && (forceupdate || (autoupdate && shouldUpdate(repoFile))); - if (proceed) { - LOGGER.debug("Begin Hosted Suppressions file update"); - fetchHostedSuppressions(settings, url, repoFile); + final URL url = new URL(configuredUrl); + final File filepath = new File(url.getPath()); + final File repoFile = new File(settings.getDataDirectory(), filepath.getName()); + final boolean proceed = enabled && (forceupdate || (autoupdate && shouldUpdate(repoFile))); + if (proceed) { + LOGGER.debug("Begin Hosted Suppressions file update"); + fetchHostedSuppressions(settings, url, repoFile); + if (dbProperties != null) { + dbProperties.save(DatabaseProperties.HOSTED_SUPPRESSION_LAST_CHECKED, Long.toString(System.currentTimeMillis() / 1000)); + } } - } catch (UpdateException ex) { + } catch (UpdateException ex) { // only emit a warning, DependencyCheck will continue without taking the latest hosted suppressions into account. - LOGGER.warn("Failed to update hosted suppressions file, results may contain false positives already resolved by the " - + "DependencyCheck project", ex); - } catch (MalformedURLException ex) { - throw new UpdateException(String.format("Invalid URL for Hosted Suppressions file (%s)", configuredUrl), ex); - } catch (IOException ex) { - throw new UpdateException("Unable to get the data directory", ex); - } - return false; + LOGGER.warn("Failed to update hosted suppressions file, results may contain false positives already resolved by the " + + "DependencyCheck project", ex); + } catch (MalformedURLException ex) { + throw new UpdateException(String.format("Invalid URL for Hosted Suppressions file (%s)", configuredUrl), ex); + } catch (IOException ex) { + throw new UpdateException("Unable to get the data directory", ex); + } + return false; } /** * Determines if the we should update the Hosted Suppressions file. * * @param repo the Hosted Suppressions file. - * @return <code>true</code> if an update to the Hosted Suppressions file should - * be performed; otherwise <code>false</code> + * @return <code>true</code> if an update to the Hosted Suppressions file + * should be performed; otherwise <code>false</code> * @throws NumberFormatException thrown if an invalid value is contained in * the database properties */ protected boolean shouldUpdate(File repo) throws NumberFormatException { - boolean proceed = true; - if (repo != null && repo.isFile()) { - final int validForHours = settings.getInt(Settings.KEYS.HOSTED_SUPPRESSIONS_VALID_FOR_HOURS, 2); - final long lastUpdatedOn = repo.lastModified(); - final long now = System.currentTimeMillis(); - LOGGER.debug("Last updated: {}", lastUpdatedOn); - LOGGER.debug("Now: {}", now); - final long msValid = validForHours * 60L * 60L * 1000L; - proceed = (now - lastUpdatedOn) > msValid; - if (!proceed) { - LOGGER.info("Skipping Hosted Suppressions file update since last update was within {} hours.", validForHours); + boolean proceed = true; + if (repo != null && repo.isFile()) { + final int validForHours = settings.getInt(Settings.KEYS.HOSTED_SUPPRESSIONS_VALID_FOR_HOURS, 2); + long lastUpdatedOn = 0; + if (dbProperties != null) { + lastUpdatedOn = dbProperties.getPropertyInSeconds(DatabaseProperties.HOSTED_SUPPRESSION_LAST_CHECKED); + } + if (lastUpdatedOn <= 0) { + //fall back on conversion from file last modified to storing in the db. + lastUpdatedOn = repo.lastModified(); + } + final long now = System.currentTimeMillis(); + LOGGER.debug("Last updated: {}", lastUpdatedOn); + LOGGER.debug("Now: {}", now); + final long msValid = validForHours * 60L * 60L * 1000L; + proceed = (now - lastUpdatedOn) > msValid; + if (!proceed) { + LOGGER.info("Skipping Hosted Suppressions file update since last update was within {} hours.", validForHours); } } - return proceed; + return proceed; } /** @@ -120,55 +139,56 @@ * * @param settings a reference to the dependency-check settings * @param repoUrl the URL to the hosted suppressions file to use - * @param repoFile the local file where the hosted suppressions file is to be placed + * @param repoFile the local file where the hosted suppressions file is to + * be placed * @throws UpdateException thrown if there is an exception during * initialization */ @SuppressWarnings("try") private void fetchHostedSuppressions(Settings settings, URL repoUrl, File repoFile) throws UpdateException { - try (WriteLock ignored = new WriteLock(settings, true, repoFile.getName() + ".lock")) { - if (LOGGER.isDebugEnabled()) { - LOGGER.debug("Hosted Suppressions URL: {}", repoUrl.toExternalForm()); + try (WriteLock ignored = new WriteLock(settings, true, repoFile.getName() + ".lock")) { + if (LOGGER.isDebugEnabled()) { + LOGGER.debug("Hosted Suppressions URL: {}", repoUrl.toExternalForm()); } - final Downloader downloader = new Downloader(settings); - downloader.fetchFile(repoUrl, repoFile); - } catch (IOException | TooManyRequestsException | ResourceNotFoundException | WriteLockException ex) { - throw new UpdateException("Failed to update the hosted suppressions file", ex); - } - } + final Downloader downloader = new Downloader(settings); + downloader.fetchFile(repoUrl, repoFile); + } catch (IOException | TooManyRequestsException | ResourceNotFoundException | WriteLockException ex) { + throw new UpdateException("Failed to update the hosted suppressions file", ex); + } + } @Override @SuppressWarnings("try") public boolean purge(Engine engine) { - this.settings = engine.getSettings(); - boolean result = true; + this.settings = engine.getSettings(); + boolean result = true; try { - final URL repoUrl = new URL(settings.getString(Settings.KEYS.HOSTED_SUPPRESSIONS_URL, - DEFAULT_SUPPRESSIONS_URL)); - final String filename = new File(repoUrl.getPath()).getName(); - final File repo = new File(settings.getDataDirectory(), filename); - if (repo.exists()) { - try (WriteLock ignored = new WriteLock(settings, true, filename + ".lock")) { - result = deleteCachedFile(repo); + final URL repoUrl = new URL(settings.getString(Settings.KEYS.HOSTED_SUPPRESSIONS_URL, + DEFAULT_SUPPRESSIONS_URL)); + final String filename = new File(repoUrl.getPath()).getName(); + final File repo = new File(settings.getDataDirectory(), filename); + if (repo.exists()) { + try (WriteLock ignored = new WriteLock(settings, true, filename + ".lock")) { + result = deleteCachedFile(repo); } } - } catch (WriteLockException | IOException ex) { - LOGGER.error("Unable to delete the Hosted suppression file - invalid configuration"); - result = false; - } - return result; + } catch (WriteLockException | IOException ex) { + LOGGER.error("Unable to delete the Hosted suppression file - invalid configuration"); + result = false; + } + return result; } private boolean deleteCachedFile(final File repo) { - boolean deleted = true; + boolean deleted = true; try { - Files.delete(repo.toPath()); - LOGGER.info("Hosted suppression file removed successfully"); - } catch (IOException ex) { - LOGGER.error("Unable to delete '{}'; please delete the file manually", repo.getAbsolutePath(), ex); - deleted = false; - } - return deleted; + Files.delete(repo.toPath()); + LOGGER.info("Hosted suppression file removed successfully"); + } catch (IOException ex) { + LOGGER.error("Unable to delete '{}'; please delete the file manually", repo.getAbsolutePath(), ex); + deleted = false; + } + return deleted; } } \ No newline at end of file diff --git a/dependency-check-core/jacoco/org.owasp.dependencycheck.data.update/KnownExploitedDataSource.html b/dependency-check-core/jacoco/org.owasp.dependencycheck.data.update/KnownExploitedDataSource.html index 63740e5cf57..df5e1b47155 100644 --- a/dependency-check-core/jacoco/org.owasp.dependencycheck.data.update/KnownExploitedDataSource.html +++ b/dependency-check-core/jacoco/org.owasp.dependencycheck.data.update/KnownExploitedDataSource.html @@ -1 +1 @@ -KnownExploitedDataSource

    KnownExploitedDataSource

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
    Total139 of 17821%15 of 166%1114263636
    update(Engine)792926%7112%45132001
    shouldUpdate()490%80%55101011
    getPropertyInSeconds(String)90%n/a112211
    purge(Engine)20%n/a111111
    KnownExploitedDataSource()6100%n/a010201
    static {...}4100%n/a010101
    \ No newline at end of file +KnownExploitedDataSource

    KnownExploitedDataSource

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
    Total131 of 17022%15 of 166%1013243425
    update(Engine)792926%7112%45132001
    shouldUpdate()500%80%55101011
    purge(Engine)20%n/a111111
    KnownExploitedDataSource()6100%n/a010201
    static {...}4100%n/a010101
    \ No newline at end of file diff --git a/dependency-check-core/jacoco/org.owasp.dependencycheck.data.update/KnownExploitedDataSource.java.html b/dependency-check-core/jacoco/org.owasp.dependencycheck.data.update/KnownExploitedDataSource.java.html index 96ab11f82b0..2d0146eb9fd 100644 --- a/dependency-check-core/jacoco/org.owasp.dependencycheck.data.update/KnownExploitedDataSource.java.html +++ b/dependency-check-core/jacoco/org.owasp.dependencycheck.data.update/KnownExploitedDataSource.java.html @@ -120,7 +120,7 @@ if (cveDB.dataExists() && 0 < validForHours) { // ms Valid = valid (hours) x 60 min/hour x 60 sec/min x 1000 ms/sec final long validForSeconds = validForHours * 60L * 60L; - final long lastChecked = getPropertyInSeconds(DatabaseProperties.KEV_LAST_CHECKED); + final long lastChecked = dbProperties.getPropertyInSeconds(DatabaseProperties.KEV_LAST_CHECKED); final long now = System.currentTimeMillis() / 1000; proceed = (now - lastChecked) > validForSeconds; if (!proceed) { @@ -130,16 +130,5 @@ return proceed; } - /** - * Returns the database property value in seconds. - * - * @param key the key to the property - * @return the property value in seconds - */ - private long getPropertyInSeconds(String key) { - final String value = dbProperties.getProperty(key, "0"); - return DateUtil.getEpochValueInSeconds(value); - } - } \ No newline at end of file diff --git a/dependency-check-core/jacoco/org.owasp.dependencycheck.data.update/NvdApiDataSource$UrlData.html b/dependency-check-core/jacoco/org.owasp.dependencycheck.data.update/NvdApiDataSource$UrlData.html new file mode 100644 index 00000000000..0198871c1a1 --- /dev/null +++ b/dependency-check-core/jacoco/org.owasp.dependencycheck.data.update/NvdApiDataSource$UrlData.html @@ -0,0 +1 @@ +NvdApiDataSource.UrlData

    NvdApiDataSource.UrlData

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
    Total0 of 15100%0 of 0n/a030603
    NvdApiDataSource.UrlData(String, String)9100%n/a010401
    getPattern()3100%n/a010101
    getUrl()3100%n/a010101
    \ No newline at end of file diff --git a/dependency-check-core/jacoco/org.owasp.dependencycheck.data.update/NvdApiDataSource.html b/dependency-check-core/jacoco/org.owasp.dependencycheck.data.update/NvdApiDataSource.html index 5f61f8a2eda..51bc617aaaf 100644 --- a/dependency-check-core/jacoco/org.owasp.dependencycheck.data.update/NvdApiDataSource.html +++ b/dependency-check-core/jacoco/org.owasp.dependencycheck.data.update/NvdApiDataSource.html @@ -1 +1 @@ -NvdApiDataSource

    NvdApiDataSource

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
    Total1,262 of 1,3103%145 of 1482%85892732871115
    processApi()3700%380%2020808011
    processDatafeed(String)2420%380%2020616111
    getUpdatesNeeded(String, String, Properties, ZonedDateTime)2160%300%1616303011
    purge(Engine)910%120%77242411
    checkUpdate()780%100%66161611
    getRemoteCacheProperties(String)580%n/a11121211
    startDownloads(Map, ExecutorService, DownloadTask, Set, ExecutorService)540%60%44101011
    storeLastModifiedDates(ZonedDateTime, Properties, Map)480%20%227711
    processFuture(Set)390%20%22121211
    processDownload(Future, Set)360%20%22121211
    update(Engine)191340%3125%235901
    isUpdateConfiguredFalse()71973%2250%233801
    dataExists()40%n/a111111
    NvdApiDataSource()9100%n/a010301
    static {...}7100%n/a010201
    \ No newline at end of file +NvdApiDataSource

    NvdApiDataSource

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
    Total1,439 of 1,5305%147 of 1544%86933033271116
    processApi()4150%400%2121888811
    processDatafeed(String)2160%340%1818555511
    getUpdatesNeeded(String, String, Properties, ZonedDateTime)2160%300%1616303011
    getRemoteCacheProperties(String, String)2040%40%33373711
    purge(Engine)910%120%77242411
    checkUpdate()780%100%66161611
    storeLastModifiedDates(ZonedDateTime, Properties, Map)600%20%22101011
    startDownloads(Map, ExecutorService, DownloadTask, Set, ExecutorService)540%60%44101011
    processFuture(Set)390%20%22121211
    processDownload(Future, Set)360%20%22121211
    update(Engine)191340%3125%235901
    isUpdateConfiguredFalse()71973%2250%233801
    dataExists()40%n/a111111
    extractUrlData(String)43100%4100%0301001
    NvdApiDataSource()9100%n/a010301
    static {...}7100%n/a010201
    \ No newline at end of file diff --git a/dependency-check-core/jacoco/org.owasp.dependencycheck.data.update/NvdApiDataSource.java.html b/dependency-check-core/jacoco/org.owasp.dependencycheck.data.update/NvdApiDataSource.java.html index b50dfcc64a1..72bd5fd5091 100644 --- a/dependency-check-core/jacoco/org.owasp.dependencycheck.data.update/NvdApiDataSource.java.html +++ b/dependency-check-core/jacoco/org.owasp.dependencycheck.data.update/NvdApiDataSource.java.html @@ -17,13 +17,17 @@ */ package org.owasp.dependencycheck.data.update; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; import io.github.jeremylong.openvulnerability.client.nvd.DefCveItem; import io.github.jeremylong.openvulnerability.client.nvd.NvdCveClient; import io.github.jeremylong.openvulnerability.client.nvd.NvdCveClientBuilder; import java.io.File; +import java.io.FileOutputStream; import java.io.IOException; import java.io.StringReader; -import java.net.MalformedURLException; +import java.net.URI; +import java.net.URISyntaxException; import java.net.URL; import java.text.MessageFormat; import java.time.Duration; @@ -41,6 +45,7 @@ import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.Future; +import java.util.zip.GZIPOutputStream; import org.owasp.dependencycheck.Engine; import org.owasp.dependencycheck.data.nvdcve.CveDB; import org.owasp.dependencycheck.data.nvdcve.DatabaseException; @@ -62,16 +67,16 @@ * * @author Jeremy Long */ -public class NvdApiDataSource implements CachedWebDataSource { +public class NvdApiDataSource implements CachedWebDataSource { /** * The logger. */ - private static final Logger LOGGER = LoggerFactory.getLogger(NvdApiDataSource.class); + private static final Logger LOGGER = LoggerFactory.getLogger(NvdApiDataSource.class); /** * The thread pool size to use for CPU-intense tasks. */ - private static final int PROCESSING_THREAD_POOL_SIZE = Runtime.getRuntime().availableProcessors(); + private static final int PROCESSING_THREAD_POOL_SIZE = Runtime.getRuntime().availableProcessors(); /** * The configured settings. */ @@ -79,11 +84,11 @@ /** * Reference to the DAO. */ - private CveDB cveDb = null; + private CveDB cveDb = null; /** * The properties obtained from the database. */ - private DatabaseProperties dbProperties = null; + private DatabaseProperties dbProperties = null; /** * The key for the NVD API cache properties file's last modified date. */ @@ -96,280 +101,303 @@ @Override public boolean update(Engine engine) throws UpdateException { - this.settings = engine.getSettings(); - this.cveDb = engine.getDatabase(); - if (isUpdateConfiguredFalse()) { - return false; + this.settings = engine.getSettings(); + this.cveDb = engine.getDatabase(); + if (isUpdateConfiguredFalse()) { + return false; } - dbProperties = cveDb.getDatabaseProperties(); + dbProperties = cveDb.getDatabaseProperties(); - final String nvdDataFeedUrl = settings.getString(Settings.KEYS.NVD_API_DATAFEED_URL); - if (nvdDataFeedUrl != null) { - return processDatafeed(nvdDataFeedUrl); + final String nvdDataFeedUrl = settings.getString(Settings.KEYS.NVD_API_DATAFEED_URL); + if (nvdDataFeedUrl != null) { + return processDatafeed(nvdDataFeedUrl); } - return processApi(); + return processApi(); + } + + protected UrlData extractUrlData(String nvdDataFeedUrl) { + String url; + String pattern = null; + if (nvdDataFeedUrl.endsWith(".json.gz")) { + final int lio = nvdDataFeedUrl.lastIndexOf("/"); + pattern = nvdDataFeedUrl.substring(lio + 1); + url = nvdDataFeedUrl.substring(0, lio); + } else { + url = nvdDataFeedUrl; + } + if (!url.endsWith("/")) { + url += "/"; + } + return new UrlData(url, pattern); } private boolean processDatafeed(String nvdDataFeedUrl) throws UpdateException { - boolean updatesMade = false; + boolean updatesMade = false; try { - dbProperties = cveDb.getDatabaseProperties(); - if (checkUpdate()) { - String url; - String pattern = null; - if (nvdDataFeedUrl.endsWith(".json.gz")) { - final int lio = nvdDataFeedUrl.lastIndexOf("/"); - pattern = nvdDataFeedUrl.substring(lio + 1); - url = nvdDataFeedUrl.substring(0, lio); - } else { - url = nvdDataFeedUrl; - } - if (!url.endsWith("/")) { - url += "/"; - } - final Properties cacheProperties = getRemoteCacheProperties(url); - if (pattern == null) { - final String prefix = cacheProperties.getProperty("prefix", "nvdcve-"); - pattern = prefix + "{0}.json.gz"; + dbProperties = cveDb.getDatabaseProperties(); + if (checkUpdate()) { + final UrlData data = extractUrlData(nvdDataFeedUrl); + String url = data.getUrl(); + String pattern = data.getPattern(); + final Properties cacheProperties = getRemoteCacheProperties(url, pattern); + if (pattern == null) { + final String prefix = cacheProperties.getProperty("prefix", "nvdcve-"); + pattern = prefix + "{0}.json.gz"; } - final ZonedDateTime now = ZonedDateTime.now(ZoneId.of("UTC")); - final Map<String, String> updateable = getUpdatesNeeded(url, pattern, cacheProperties, now); - if (!updateable.isEmpty()) { + final ZonedDateTime now = ZonedDateTime.now(ZoneId.of("UTC")); + final Map<String, String> updateable = getUpdatesNeeded(url, pattern, cacheProperties, now); + if (!updateable.isEmpty()) { final int downloadPoolSize; - final int max = settings.getInt(Settings.KEYS.MAX_DOWNLOAD_THREAD_POOL_SIZE, 1); - downloadPoolSize = Math.min(Runtime.getRuntime().availableProcessors(), max); + final int max = settings.getInt(Settings.KEYS.MAX_DOWNLOAD_THREAD_POOL_SIZE, 1); + downloadPoolSize = Math.min(Runtime.getRuntime().availableProcessors(), max); - ExecutorService processingExecutorService = null; - ExecutorService downloadExecutorService = null; + ExecutorService processingExecutorService = null; + ExecutorService downloadExecutorService = null; try { - downloadExecutorService = Executors.newFixedThreadPool(downloadPoolSize); - processingExecutorService = Executors.newFixedThreadPool(PROCESSING_THREAD_POOL_SIZE); + downloadExecutorService = Executors.newFixedThreadPool(downloadPoolSize); + processingExecutorService = Executors.newFixedThreadPool(PROCESSING_THREAD_POOL_SIZE); - DownloadTask runLast = null; - final Set<Future<Future<NvdApiProcessor>>> downloadFutures = new HashSet<>(updateable.size()); - runLast = startDownloads(updateable, processingExecutorService, runLast, downloadFutures, downloadExecutorService); + DownloadTask runLast = null; + final Set<Future<Future<NvdApiProcessor>>> downloadFutures = new HashSet<>(updateable.size()); + runLast = startDownloads(updateable, processingExecutorService, runLast, downloadFutures, downloadExecutorService); //complete downloads - final Set<Future<NvdApiProcessor>> processFutures = new HashSet<>(updateable.size()); - for (Future<Future<NvdApiProcessor>> future : downloadFutures) { - processDownload(future, processFutures); - } + final Set<Future<NvdApiProcessor>> processFutures = new HashSet<>(updateable.size()); + for (Future<Future<NvdApiProcessor>> future : downloadFutures) { + processDownload(future, processFutures); + } //process the data - processFuture(processFutures); - processFutures.clear(); + processFuture(processFutures); + processFutures.clear(); //download and process the modified as the last entry - if (runLast != null) { - final Future<Future<NvdApiProcessor>> modified = downloadExecutorService.submit(runLast); - processDownload(modified, processFutures); - processFuture(processFutures); + if (runLast != null) { + final Future<Future<NvdApiProcessor>> modified = downloadExecutorService.submit(runLast); + processDownload(modified, processFutures); + processFuture(processFutures); } } finally { - if (processingExecutorService != null) { - processingExecutorService.shutdownNow(); + if (processingExecutorService != null) { + processingExecutorService.shutdownNow(); } - if (downloadExecutorService != null) { - downloadExecutorService.shutdownNow(); + if (downloadExecutorService != null) { + downloadExecutorService.shutdownNow(); } } - updatesMade = true; + updatesMade = true; } - storeLastModifiedDates(now, cacheProperties, updateable); - if (updatesMade) { - cveDb.persistEcosystemCache(); + storeLastModifiedDates(now, cacheProperties, updateable); + if (updatesMade) { + cveDb.persistEcosystemCache(); } - final int updateCount = cveDb.updateEcosystemCache(); - LOGGER.debug("Corrected the ecosystem for {} ecoSystemCache entries", updateCount); - if (updatesMade || updateCount > 0) { - cveDb.cleanupDatabase(); + final int updateCount = cveDb.updateEcosystemCache(); + LOGGER.debug("Corrected the ecosystem for {} ecoSystemCache entries", updateCount); + if (updatesMade || updateCount > 0) { + cveDb.cleanupDatabase(); } } - } catch (UpdateException ex) { - if (ex.getCause() != null && ex.getCause() instanceof DownloadFailedException) { - final String jre = System.getProperty("java.version"); - if (jre == null || jre.startsWith("1.4") || jre.startsWith("1.5") || jre.startsWith("1.6") || jre.startsWith("1.7")) { - LOGGER.error("An old JRE is being used ({} {}), and likely does not have the correct root certificates or algorithms " - + "to connect to the NVD - consider upgrading your JRE.", System.getProperty("java.vendor"), jre); + } catch (UpdateException ex) { + if (ex.getCause() != null && ex.getCause() instanceof DownloadFailedException) { + final String jre = System.getProperty("java.version"); + if (jre == null || jre.startsWith("1.4") || jre.startsWith("1.5") || jre.startsWith("1.6") || jre.startsWith("1.7")) { + LOGGER.error("An old JRE is being used ({} {}), and likely does not have the correct root certificates or algorithms " + + "to connect to the NVD - consider upgrading your JRE.", System.getProperty("java.vendor"), jre); } } - throw ex; - } catch (DatabaseException ex) { - throw new UpdateException("Database Exception, unable to update the data to use the most current data.", ex); - } - return updatesMade; + throw ex; + } catch (DatabaseException ex) { + throw new UpdateException("Database Exception, unable to update the data to use the most current data.", ex); + } + return updatesMade; } private void storeLastModifiedDates(final ZonedDateTime now, final Properties cacheProperties, final Map<String, String> updateable) throws UpdateException { - dbProperties.save(DatabaseProperties.NVD_CACHE_LAST_CHECKED, now); - dbProperties.save(DatabaseProperties.NVD_CACHE_LAST_MODIFIED, DatabaseProperties.getTimestamp(cacheProperties, - NVD_API_CACHE_MODIFIED_DATE + ".modified")); - for (String entry : updateable.keySet()) { - final ZonedDateTime date = DatabaseProperties.getTimestamp(cacheProperties, NVD_API_CACHE_MODIFIED_DATE + "." + entry); - dbProperties.save(DatabaseProperties.NVD_CACHE_LAST_MODIFIED + "." + entry, date); - } - } + + ZonedDateTime lastModifiedRequest = DatabaseProperties.getTimestamp(cacheProperties, + NVD_API_CACHE_MODIFIED_DATE + ".modified"); + dbProperties.save(DatabaseProperties.NVD_CACHE_LAST_CHECKED, now); + dbProperties.save(DatabaseProperties.NVD_CACHE_LAST_MODIFIED, lastModifiedRequest); + //allow users to initially load from a cache but then use the API - this may happen with the GH Action + dbProperties.save(DatabaseProperties.NVD_API_LAST_CHECKED, now); + dbProperties.save(DatabaseProperties.NVD_API_LAST_MODIFIED, lastModifiedRequest); + + for (String entry : updateable.keySet()) { + final ZonedDateTime date = DatabaseProperties.getTimestamp(cacheProperties, NVD_API_CACHE_MODIFIED_DATE + "." + entry); + dbProperties.save(DatabaseProperties.NVD_CACHE_LAST_MODIFIED + "." + entry, date); + } + } private DownloadTask startDownloads(final Map<String, String> updateable, ExecutorService processingExecutorService, DownloadTask runLast, final Set<Future<Future<NvdApiProcessor>>> downloadFutures, ExecutorService downloadExecutorService) throws UpdateException { - DownloadTask lastCall = runLast; - for (Map.Entry<String, String> cve : updateable.entrySet()) { - final DownloadTask call = new DownloadTask(cve.getValue(), processingExecutorService, cveDb, settings); - if (call.isModified()) { - lastCall = call; + DownloadTask lastCall = runLast; + for (Map.Entry<String, String> cve : updateable.entrySet()) { + final DownloadTask call = new DownloadTask(cve.getValue(), processingExecutorService, cveDb, settings); + if (call.isModified()) { + lastCall = call; } else { - final boolean added = downloadFutures.add(downloadExecutorService.submit(call)); - if (!added) { - throw new UpdateException("Unable to add the download task for " + cve); + final boolean added = downloadFutures.add(downloadExecutorService.submit(call)); + if (!added) { + throw new UpdateException("Unable to add the download task for " + cve); } } - } - return lastCall; + } + return lastCall; } private void processFuture(final Set<Future<NvdApiProcessor>> processFutures) throws UpdateException { //complete processing - for (Future<NvdApiProcessor> future : processFutures) { + for (Future<NvdApiProcessor> future : processFutures) { try { - final NvdApiProcessor task = future.get(); - } catch (InterruptedException ex) { - LOGGER.debug("Thread was interrupted during processing", ex); - Thread.currentThread().interrupt(); - throw new UpdateException(ex); - } catch (ExecutionException ex) { - LOGGER.debug("Execution Exception during process", ex); - throw new UpdateException(ex); - } - } - } + final NvdApiProcessor task = future.get(); + } catch (InterruptedException ex) { + LOGGER.debug("Thread was interrupted during processing", ex); + Thread.currentThread().interrupt(); + throw new UpdateException(ex); + } catch (ExecutionException ex) { + LOGGER.debug("Execution Exception during process", ex); + throw new UpdateException(ex); + } + } + } private void processDownload(Future<Future<NvdApiProcessor>> future, final Set<Future<NvdApiProcessor>> processFutures) throws UpdateException { final Future<NvdApiProcessor> task; try { - task = future.get(); - if (task != null) { - processFutures.add(task); + task = future.get(); + if (task != null) { + processFutures.add(task); } - } catch (InterruptedException ex) { - LOGGER.debug("Thread was interrupted during download", ex); - Thread.currentThread().interrupt(); - throw new UpdateException("The download was interrupted", ex); - } catch (ExecutionException ex) { - LOGGER.debug("Thread was interrupted during download execution", ex); - throw new UpdateException("The execution of the download was interrupted", ex); - } - } + } catch (InterruptedException ex) { + LOGGER.debug("Thread was interrupted during download", ex); + Thread.currentThread().interrupt(); + throw new UpdateException("The download was interrupted", ex); + } catch (ExecutionException ex) { + LOGGER.debug("Thread was interrupted during download execution", ex); + throw new UpdateException("The execution of the download was interrupted", ex); + } + } private boolean processApi() throws UpdateException { - final ZonedDateTime lastChecked = dbProperties.getTimestamp(DatabaseProperties.NVD_API_LAST_CHECKED); - final int validForHours = settings.getInt(Settings.KEYS.NVD_API_VALID_FOR_HOURS, 0); - if (cveDb.dataExists() && lastChecked != null && validForHours>0) { + final ZonedDateTime lastChecked = dbProperties.getTimestamp(DatabaseProperties.NVD_API_LAST_CHECKED); + final int validForHours = settings.getInt(Settings.KEYS.NVD_API_VALID_FOR_HOURS, 0); + if (cveDb.dataExists() && lastChecked != null && validForHours > 0) { // ms Valid = valid (hours) x 60 min/hour x 60 sec/min x 1000 ms/sec - final long validForSeconds = validForHours * 60L * 60L; - final ZonedDateTime now = ZonedDateTime.now(ZoneId.of("UTC")); - final Duration duration = Duration.between(lastChecked, now); - final long difference = duration.getSeconds(); - if (difference < validForSeconds) { - LOGGER.info("Skipping the NVD API Update as it was completed within the last {} minutes", validForSeconds/60); - return false; + final long validForSeconds = validForHours * 60L * 60L; + final ZonedDateTime now = ZonedDateTime.now(ZoneId.of("UTC")); + final Duration duration = Duration.between(lastChecked, now); + final long difference = duration.getSeconds(); + if (difference < validForSeconds) { + LOGGER.info("Skipping the NVD API Update as it was completed within the last {} minutes", validForSeconds / 60); + return false; } } - ZonedDateTime lastModifiedRequest = dbProperties.getTimestamp(DatabaseProperties.NVD_API_LAST_MODIFIED); - final NvdCveClientBuilder builder = NvdCveClientBuilder.aNvdCveApi(); - if (lastModifiedRequest != null) { - final ZonedDateTime end = lastModifiedRequest.minusDays(-120); - builder.withLastModifiedFilter(lastModifiedRequest, end); + ZonedDateTime lastModifiedRequest = dbProperties.getTimestamp(DatabaseProperties.NVD_API_LAST_MODIFIED); + final NvdCveClientBuilder builder = NvdCveClientBuilder.aNvdCveApi(); + final String endpoint = settings.getString(Settings.KEYS.NVD_API_ENDPOINT); + if (endpoint != null) { + builder.withEndpoint(endpoint); + } + if (lastModifiedRequest != null) { + final ZonedDateTime end = lastModifiedRequest.minusDays(-120); + builder.withLastModifiedFilter(lastModifiedRequest, end); } - final String key = settings.getString(Settings.KEYS.NVD_API_KEY); - if (key != null) { + final String key = settings.getString(Settings.KEYS.NVD_API_KEY); + if (key != null) { //using a higher delay as the system may not be able to process these faster. - builder.withApiKey(key) - .withDelay(2000) - .withThreadCount(4); + builder.withApiKey(key) + .withDelay(2000) + .withThreadCount(4); } else { - LOGGER.warn("An NVD API Key was not provided - it is highly recommended to use " + LOGGER.warn("An NVD API Key was not provided - it is highly recommended to use " + "an NVD API key as the update can take a VERY long time without an API Key"); - builder.withDelay(8000); + builder.withDelay(8000); } - builder.withResultsPerPage(RESULTS_PER_PAGE); + builder.withResultsPerPage(RESULTS_PER_PAGE); //removed due to the virtualMatch filter causing overhead with the NVD API //final String virtualMatch = settings.getString(Settings.KEYS.CVE_CPE_STARTS_WITH_FILTER); //if (virtualMatch != null) { // builder.withVirtualMatchString(virtualMatch); //} - final int retryCount = settings.getInt(Settings.KEYS.NVD_API_MAX_RETRY_COUNT, 10); - builder.withMaxRetryCount(retryCount); - long delay = 0; + final int retryCount = settings.getInt(Settings.KEYS.NVD_API_MAX_RETRY_COUNT, 10); + builder.withMaxRetryCount(retryCount); + long delay = 0; try { - delay = settings.getLong(Settings.KEYS.NVD_API_DELAY); - } catch (InvalidSettingException ex) { - LOGGER.warn("Invalid setting `NVD_API_DELAY`? ({}), using default delay", settings.getString(Settings.KEYS.NVD_API_DELAY)); - } - if (delay > 0) { - builder.withDelay(delay); + delay = settings.getLong(Settings.KEYS.NVD_API_DELAY); + } catch (InvalidSettingException ex) { + LOGGER.warn("Invalid setting `NVD_API_DELAY`? ({}), using default delay", settings.getString(Settings.KEYS.NVD_API_DELAY)); + } + if (delay > 0) { + builder.withDelay(delay); } - ExecutorService processingExecutorService = null; + ExecutorService processingExecutorService = null; try { - processingExecutorService = Executors.newFixedThreadPool(PROCESSING_THREAD_POOL_SIZE); - final List<Future<NvdApiProcessor>> submitted = new ArrayList<>(); - int max = -1; - int ctr = 0; - try (NvdCveClient api = builder.build()) { - while (api.hasNext()) { - final Collection<DefCveItem> items = api.next(); - max = api.getTotalAvailable(); - if (ctr == 0) { - LOGGER.info(String.format("NVD API has %,d records in this update", max)); + processingExecutorService = Executors.newFixedThreadPool(PROCESSING_THREAD_POOL_SIZE); + final List<Future<NvdApiProcessor>> submitted = new ArrayList<>(); + int max = -1; + int ctr = 0; + try (NvdCveClient api = builder.build()) { + while (api.hasNext()) { + Collection<DefCveItem> items = api.next(); + max = api.getTotalAvailable(); + if (ctr == 0) { + LOGGER.info(String.format("NVD API has %,d records in this update", max)); } - if (items != null && !items.isEmpty()) { - final Future<NvdApiProcessor> f = processingExecutorService.submit(new NvdApiProcessor(cveDb, items)); - submitted.add(f); - ctr += 1; - if ((ctr % 5) == 0) { - final double percent = (double) (ctr * RESULTS_PER_PAGE) / max * 100; - LOGGER.info(String.format("Downloaded %,d/%,d (%.0f%%)", ctr * RESULTS_PER_PAGE, max, percent)); + if (items != null && !items.isEmpty()) { + final ObjectMapper objectMapper = new ObjectMapper(); + objectMapper.registerModule(new JavaTimeModule()); + final File outputFile = settings.getTempFile("nvd-data-", ".jsonarray.gz"); + try (FileOutputStream fos = new FileOutputStream(outputFile); GZIPOutputStream out = new GZIPOutputStream(fos);) { + objectMapper.writeValue(out, items); + final Future<NvdApiProcessor> f = processingExecutorService.submit(new NvdApiProcessor(cveDb, outputFile)); + submitted.add(f); + } + ctr += 1; + if ((ctr % 5) == 0) { + final double percent = (double) (ctr * RESULTS_PER_PAGE) / max * 100; + LOGGER.info(String.format("Downloaded %,d/%,d (%.0f%%)", ctr * RESULTS_PER_PAGE, max, percent)); } } - final ZonedDateTime last = api.getLastUpdated(); - if (last != null && (lastModifiedRequest == null || lastModifiedRequest.compareTo(last) < 0)) { - lastModifiedRequest = last; + final ZonedDateTime last = api.getLastUpdated(); + if (last != null && (lastModifiedRequest == null || lastModifiedRequest.compareTo(last) < 0)) { + lastModifiedRequest = last; } - } - - } catch (Exception e) { - throw new UpdateException("Error updating the NVD Data", e); - } - LOGGER.info(String.format("Downloaded %,d/%,d (%.0f%%)", max, max, 100f)); - max = submitted.size(); - final boolean updated = max > 0; - ctr = 0; - for (Future<NvdApiProcessor> f : submitted) { + } + + } catch (Exception e) { + throw new UpdateException("Error updating the NVD Data", e); + } + LOGGER.info(String.format("Downloaded %,d/%,d (%.0f%%)", max, max, 100f)); + max = submitted.size(); + final boolean updated = max > 0; + ctr = 0; + for (Future<NvdApiProcessor> f : submitted) { try { - final NvdApiProcessor proc = f.get(); - ctr += 1; - final double percent = (double) ctr / max * 100; - LOGGER.info(String.format("Completed processing batch %d/%d (%.0f%%) in %,dms", ctr, max, percent, proc.getDurationMillis())); - } catch (InterruptedException ex) { - Thread.currentThread().interrupt(); - throw new RuntimeException(ex); - } catch (ExecutionException ex) { - LOGGER.error("Exception processing NVD API Results", ex); - throw new RuntimeException(ex); - } - } - if (lastModifiedRequest != null) { - dbProperties.save(DatabaseProperties.NVD_API_LAST_CHECKED, ZonedDateTime.now()); - dbProperties.save(DatabaseProperties.NVD_API_LAST_MODIFIED, lastModifiedRequest); + final NvdApiProcessor proc = f.get(); + ctr += 1; + final double percent = (double) ctr / max * 100; + LOGGER.info(String.format("Completed processing batch %d/%d (%.0f%%) in %,dms", ctr, max, percent, proc.getDurationMillis())); + } catch (InterruptedException ex) { + Thread.currentThread().interrupt(); + throw new RuntimeException(ex); + } catch (ExecutionException ex) { + LOGGER.error("Exception processing NVD API Results", ex); + throw new RuntimeException(ex); + } + } + if (lastModifiedRequest != null) { + dbProperties.save(DatabaseProperties.NVD_API_LAST_CHECKED, ZonedDateTime.now()); + dbProperties.save(DatabaseProperties.NVD_API_LAST_MODIFIED, lastModifiedRequest); } - return updated; + return updated; } finally { - if (processingExecutorService != null) { - processingExecutorService.shutdownNow(); + if (processingExecutorService != null) { + processingExecutorService.shutdownNow(); } } } @@ -381,51 +409,51 @@ * true */ private boolean isUpdateConfiguredFalse() { - if (!settings.getBoolean(Settings.KEYS.UPDATE_NVDCVE_ENABLED, true)) { - return true; + if (!settings.getBoolean(Settings.KEYS.UPDATE_NVDCVE_ENABLED, true)) { + return true; } - boolean autoUpdate = true; + boolean autoUpdate = true; try { - autoUpdate = settings.getBoolean(Settings.KEYS.AUTO_UPDATE); - } catch (InvalidSettingException ex) { - LOGGER.debug("Invalid setting for auto-update; using true."); - } - return !autoUpdate; + autoUpdate = settings.getBoolean(Settings.KEYS.AUTO_UPDATE); + } catch (InvalidSettingException ex) { + LOGGER.debug("Invalid setting for auto-update; using true."); + } + return !autoUpdate; } @Override public boolean purge(Engine engine) { - boolean result = true; + boolean result = true; try { - final File dataDir = engine.getSettings().getDataDirectory(); - final File db = new File(dataDir, engine.getSettings().getString(Settings.KEYS.DB_FILE_NAME, "odc.mv.db")); - if (db.exists()) { - if (db.delete()) { - LOGGER.info("Database file purged; local copy of the NVD has been removed"); + final File dataDir = engine.getSettings().getDataDirectory(); + final File db = new File(dataDir, engine.getSettings().getString(Settings.KEYS.DB_FILE_NAME, "odc.mv.db")); + if (db.exists()) { + if (db.delete()) { + LOGGER.info("Database file purged; local copy of the NVD has been removed"); } else { - LOGGER.error("Unable to delete '{}'; please delete the file manually", db.getAbsolutePath()); - result = false; + LOGGER.error("Unable to delete '{}'; please delete the file manually", db.getAbsolutePath()); + result = false; } } else { - LOGGER.info("Unable to purge database; the database file does not exist: {}", db.getAbsolutePath()); - result = false; + LOGGER.info("Unable to purge database; the database file does not exist: {}", db.getAbsolutePath()); + result = false; } - final File traceFile = new File(dataDir, "odc.trace.db"); - if (traceFile.exists() && !traceFile.delete()) { - LOGGER.error("Unable to delete '{}'; please delete the file manually", traceFile.getAbsolutePath()); - result = false; + final File traceFile = new File(dataDir, "odc.trace.db"); + if (traceFile.exists() && !traceFile.delete()) { + LOGGER.error("Unable to delete '{}'; please delete the file manually", traceFile.getAbsolutePath()); + result = false; } - final File lockFile = new File(dataDir, "odc.update.lock"); - if (lockFile.exists() && !lockFile.delete()) { - LOGGER.error("Unable to delete '{}'; please delete the file manually", lockFile.getAbsolutePath()); - result = false; + final File lockFile = new File(dataDir, "odc.update.lock"); + if (lockFile.exists() && !lockFile.delete()) { + LOGGER.error("Unable to delete '{}'; please delete the file manually", lockFile.getAbsolutePath()); + result = false; } - } catch (IOException ex) { - final String msg = "Unable to delete the database"; - LOGGER.error(msg, ex); - result = false; - } - return result; + } catch (IOException ex) { + final String msg = "Unable to delete the database"; + LOGGER.error(msg, ex); + result = false; + } + return result; } /** @@ -437,28 +465,28 @@ * updates */ private boolean checkUpdate() throws UpdateException { - boolean proceed = true; + boolean proceed = true; // If the valid setting has not been specified, then we proceed to check... - final int validForHours = settings.getInt(Settings.KEYS.NVD_API_VALID_FOR_HOURS, 0); - if (dataExists() && 0 < validForHours) { + final int validForHours = settings.getInt(Settings.KEYS.NVD_API_VALID_FOR_HOURS, 0); + if (dataExists() && 0 < validForHours) { // ms Valid = valid (hours) x 60 min/hour x 60 sec/min x 1000 ms/sec - final long validForSeconds = validForHours * 60L * 60L; - final ZonedDateTime lastChecked = dbProperties.getTimestamp(DatabaseProperties.NVD_CACHE_LAST_CHECKED); - if (lastChecked != null) { - final ZonedDateTime now = ZonedDateTime.now(ZoneId.of("UTC")); - final Duration duration = Duration.between(lastChecked, now); - final long difference = duration.getSeconds(); - proceed = difference > validForSeconds; - if (!proceed) { - LOGGER.info("Skipping NVD API Cache check since last check was within {} hours.", validForHours); - LOGGER.debug("Last NVD API was at {}, and now {} is within {} s.", lastChecked, now, validForSeconds); + final long validForSeconds = validForHours * 60L * 60L; + final ZonedDateTime lastChecked = dbProperties.getTimestamp(DatabaseProperties.NVD_CACHE_LAST_CHECKED); + if (lastChecked != null) { + final ZonedDateTime now = ZonedDateTime.now(ZoneId.of("UTC")); + final Duration duration = Duration.between(lastChecked, now); + final long difference = duration.getSeconds(); + proceed = difference > validForSeconds; + if (!proceed) { + LOGGER.info("Skipping NVD API Cache check since last check was within {} hours.", validForHours); + LOGGER.debug("Last NVD API was at {}, and now {} is within {} s.", lastChecked, now, validForSeconds); } - } else { - LOGGER.warn("NVD cache last checked not present; updating the entire database. This could occur if you are " + } else { + LOGGER.warn("NVD cache last checked not present; updating the entire database. This could occur if you are " + "switching back and forth from using the API vs a datafeed or if you are using a database created prior to ODC 9.x"); } } - return proceed; + return proceed; } /** @@ -467,7 +495,7 @@ * @return true if the database contains data */ private boolean dataExists() { - return cveDb.dataExists(); + return cveDb.dataExists(); } /** @@ -487,53 +515,53 @@ */ protected final Map<String, String> getUpdatesNeeded(String url, String filePattern, Properties cacheProperties, ZonedDateTime now) throws UpdateException { - LOGGER.debug("starting getUpdatesNeeded() ..."); - final Map<String, String> updates = new HashMap<>(); - if (dbProperties != null && !dbProperties.isEmpty()) { - final int startYear = settings.getInt(Settings.KEYS.NVD_API_DATAFEED_START_YEAR, 2002); + LOGGER.debug("starting getUpdatesNeeded() ..."); + final Map<String, String> updates = new HashMap<>(); + if (dbProperties != null && !dbProperties.isEmpty()) { + final int startYear = settings.getInt(Settings.KEYS.NVD_API_DATAFEED_START_YEAR, 2002); // for establishing the current year use the timezone where the new year starts first // as from that moment on CNAs might start assigning CVEs with the new year depending // on the CNA's timezone - final int endYear = now.withZoneSameInstant(ZoneId.of("UTC+14:00")).getYear(); - boolean needsFullUpdate = false; - for (int y = startYear; y <= endYear; y++) { - final ZonedDateTime val = dbProperties.getTimestamp(DatabaseProperties.NVD_CACHE_LAST_MODIFIED + "." + y); - if (val == null) { - needsFullUpdate = true; - break; + final int endYear = now.withZoneSameInstant(ZoneId.of("UTC+14:00")).getYear(); + boolean needsFullUpdate = false; + for (int y = startYear; y <= endYear; y++) { + final ZonedDateTime val = dbProperties.getTimestamp(DatabaseProperties.NVD_CACHE_LAST_MODIFIED + "." + y); + if (val == null) { + needsFullUpdate = true; + break; } } - final ZonedDateTime lastUpdated = dbProperties.getTimestamp(DatabaseProperties.NVD_CACHE_LAST_MODIFIED); - final int days = settings.getInt(Settings.KEYS.NVD_API_DATAFEED_VALID_FOR_DAYS, 7); + final ZonedDateTime lastUpdated = dbProperties.getTimestamp(DatabaseProperties.NVD_CACHE_LAST_MODIFIED); + final int days = settings.getInt(Settings.KEYS.NVD_API_DATAFEED_VALID_FOR_DAYS, 7); - if (!needsFullUpdate && lastUpdated.equals(DatabaseProperties.getTimestamp(cacheProperties, NVD_API_CACHE_MODIFIED_DATE))) { - return updates; + if (!needsFullUpdate && lastUpdated.equals(DatabaseProperties.getTimestamp(cacheProperties, NVD_API_CACHE_MODIFIED_DATE))) { + return updates; } else { - updates.put("modified", url + MessageFormat.format(filePattern, "modified")); - if (needsFullUpdate) { - for (int i = startYear; i <= endYear; i++) { - if (cacheProperties.containsKey(NVD_API_CACHE_MODIFIED_DATE + "." + i)) { - updates.put(String.valueOf(i), url + MessageFormat.format(filePattern, String.valueOf(i))); + updates.put("modified", url + MessageFormat.format(filePattern, "modified")); + if (needsFullUpdate) { + for (int i = startYear; i <= endYear; i++) { + if (cacheProperties.containsKey(NVD_API_CACHE_MODIFIED_DATE + "." + i)) { + updates.put(String.valueOf(i), url + MessageFormat.format(filePattern, String.valueOf(i))); } } - } else if (!DateUtil.withinDateRange(lastUpdated, now, days)) { - for (int i = startYear; i <= endYear; i++) { - if (cacheProperties.containsKey(NVD_API_CACHE_MODIFIED_DATE + "." + i)) { - final ZonedDateTime lastModifiedCache = DatabaseProperties.getTimestamp(cacheProperties, + } else if (!DateUtil.withinDateRange(lastUpdated, now, days)) { + for (int i = startYear; i <= endYear; i++) { + if (cacheProperties.containsKey(NVD_API_CACHE_MODIFIED_DATE + "." + i)) { + final ZonedDateTime lastModifiedCache = DatabaseProperties.getTimestamp(cacheProperties, NVD_API_CACHE_MODIFIED_DATE + "." + i); - final ZonedDateTime lastModifiedDB = dbProperties.getTimestamp(DatabaseProperties.NVD_CACHE_LAST_MODIFIED + "." + i); - if (lastModifiedDB == null || lastModifiedCache.compareTo(lastModifiedDB) > 0) { - updates.put(String.valueOf(i), url + MessageFormat.format(filePattern, String.valueOf(i))); + final ZonedDateTime lastModifiedDB = dbProperties.getTimestamp(DatabaseProperties.NVD_CACHE_LAST_MODIFIED + "." + i); + if (lastModifiedDB == null || lastModifiedCache.compareTo(lastModifiedDB) > 0) { + updates.put(String.valueOf(i), url + MessageFormat.format(filePattern, String.valueOf(i))); } } } } } } - if (updates.size() > 3) { - LOGGER.info("NVD API Cache requires several updates; this could take a couple of minutes."); + if (updates.size() > 3) { + LOGGER.info("NVD API Cache requires several updates; this could take a couple of minutes."); } - return updates; + return updates; } /** @@ -544,21 +572,82 @@ * @throws UpdateException thrown if the properties file could not be * downloaded */ - protected final Properties getRemoteCacheProperties(String url) throws UpdateException { + protected final Properties getRemoteCacheProperties(String url, String pattern) throws UpdateException { + final Downloader d = new Downloader(settings); + final Properties properties = new Properties(); try { - final URL u = new URL(url + "cache.properties"); - final Downloader d = new Downloader(settings); - final String content = d.fetchContent(u, true, Settings.KEYS.NVD_API_DATAFEED_USER, Settings.KEYS.NVD_API_DATAFEED_PASSWORD); - final Properties properties = new Properties(); - properties.load(new StringReader(content)); - return properties; - } catch (MalformedURLException ex) { - throw new UpdateException("Invalid NVD Cache URL", ex); - } catch (DownloadFailedException | TooManyRequestsException | ResourceNotFoundException ex) { - throw new UpdateException("Unable to download the NVD API cache.properties", ex); - } catch (IOException ex) { - throw new UpdateException("Invalid NVD Cache Properties file contents", ex); + final URL u = new URI(url + "cache.properties").toURL(); + final String content = d.fetchContent(u, true, Settings.KEYS.NVD_API_DATAFEED_USER, Settings.KEYS.NVD_API_DATAFEED_PASSWORD); + properties.load(new StringReader(content)); + + } catch (URISyntaxException ex) { + throw new UpdateException("Invalid NVD Cache URL", ex); + } catch (DownloadFailedException | ResourceNotFoundException ex) { + String metaPattern; + if (pattern == null) { + metaPattern = "nvdcve-{0}.meta"; + } else { + metaPattern = pattern.replace(".json.gz", ".meta"); + } + try { + URL metaUrl = new URI(url + MessageFormat.format(metaPattern, "modified")).toURL(); + String content = d.fetchContent(metaUrl, true, Settings.KEYS.NVD_API_DATAFEED_USER, Settings.KEYS.NVD_API_DATAFEED_PASSWORD); + Properties props = new Properties(); + props.load(new StringReader(content)); + ZonedDateTime lmd = DatabaseProperties.getIsoTimestamp(props, "lastModifiedDate"); + DatabaseProperties.setTimestamp(properties,"lastModifiedDate.modified", lmd); + DatabaseProperties.setTimestamp(properties,"lastModifiedDate", lmd); + final int startYear = settings.getInt(Settings.KEYS.NVD_API_DATAFEED_START_YEAR, 2002); + final ZonedDateTime now = ZonedDateTime.now(ZoneId.of("UTC")); + final int endYear = now.withZoneSameInstant(ZoneId.of("UTC+14:00")).getYear(); + for (int y = startYear; y <= endYear; y++) { + metaUrl = new URI(url + MessageFormat.format(metaPattern, String.valueOf(y))).toURL(); + content = d.fetchContent(metaUrl, true, Settings.KEYS.NVD_API_DATAFEED_USER, Settings.KEYS.NVD_API_DATAFEED_PASSWORD); + props.clear(); + props.load(new StringReader(content)); + lmd = DatabaseProperties.getIsoTimestamp(props, "lastModifiedDate"); + DatabaseProperties.setTimestamp(properties, "lastModifiedDate." + String.valueOf(y), lmd); + } + } catch (URISyntaxException | TooManyRequestsException | ResourceNotFoundException | IOException ex1) { + throw new UpdateException("Unable to download the data feed META files", ex); + } + } catch ( TooManyRequestsException ex) { + throw new UpdateException("Unable to download the NVD API cache.properties", ex); + } catch (IOException ex) { + throw new UpdateException("Invalid NVD Cache Properties file contents", ex); + } + return properties; + } + + protected static class UrlData { + + private final String url; + + private final String pattern; + + public UrlData(String url, String pattern) { + this.url = url; + this.pattern = pattern; + } + + /** + * Get the value of pattern + * + * @return the value of pattern + */ + public String getPattern() { + return pattern; } + + /** + * Get the value of url + * + * @return the value of url + */ + public String getUrl() { + return url; + } + } } \ No newline at end of file diff --git a/dependency-check-core/jacoco/org.owasp.dependencycheck.data.update/RetireJSDataSource.html b/dependency-check-core/jacoco/org.owasp.dependencycheck.data.update/RetireJSDataSource.html index 9ef91cc718e..9a196f87517 100644 --- a/dependency-check-core/jacoco/org.owasp.dependencycheck.data.update/RetireJSDataSource.html +++ b/dependency-check-core/jacoco/org.owasp.dependencycheck.data.update/RetireJSDataSource.html @@ -1 +1 @@ -RetireJSDataSource

    RetireJSDataSource

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
    Total166 of 28040%16 of 2227%1117355826
    purge(Engine)780%40%33171711
    shouldUpdate(File)560%80%55121211
    update(Engine)257274%4660%3641801
    initializeRetireJsRepo(Settings, URL, File)73583%n/a012801
    static {...}4100%n/a010101
    RetireJSDataSource()3100%n/a010201
    \ No newline at end of file +RetireJSDataSource

    RetireJSDataSource

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
    Total175 of 30542%18 of 2425%1218376326
    purge(Engine)780%40%33171711
    shouldUpdate(File)650%100%66141411
    update(Engine)258577%4660%3642001
    initializeRetireJsRepo(Settings, URL, File)73583%n/a012801
    RetireJSDataSource()6100%n/a010301
    static {...}4100%n/a010101
    \ No newline at end of file diff --git a/dependency-check-core/jacoco/org.owasp.dependencycheck.data.update/RetireJSDataSource.java.html b/dependency-check-core/jacoco/org.owasp.dependencycheck.data.update/RetireJSDataSource.java.html index 8da494982cc..c756fc7f961 100644 --- a/dependency-check-core/jacoco/org.owasp.dependencycheck.data.update/RetireJSDataSource.java.html +++ b/dependency-check-core/jacoco/org.owasp.dependencycheck.data.update/RetireJSDataSource.java.html @@ -24,6 +24,7 @@ import javax.annotation.concurrent.ThreadSafe; import org.owasp.dependencycheck.Engine; +import org.owasp.dependencycheck.data.nvdcve.DatabaseProperties; import org.owasp.dependencycheck.data.update.exception.UpdateException; import org.owasp.dependencycheck.exception.WriteLockException; import org.owasp.dependencycheck.utils.Downloader; @@ -45,7 +46,7 @@ /** * Static logger. */ - private static final Logger LOGGER = LoggerFactory.getLogger(RetireJSDataSource.class); + private static final Logger LOGGER = LoggerFactory.getLogger(RetireJSDataSource.class); /** * The property key indicating when the last update occurred. */ @@ -54,6 +55,10 @@ * The configured settings. */ private Settings settings; + /** + * The properties obtained from the database. + */ + private DatabaseProperties dbProperties = null; /** * The default URL to the RetireJS JavaScript repository. */ @@ -62,8 +67,8 @@ /** * Constructs a new engine version check utility. */ - public RetireJSDataSource() { - } + public RetireJSDataSource() { + } /** * Downloads the current RetireJS data source. @@ -74,26 +79,28 @@ */ @Override public boolean update(Engine engine) throws UpdateException { - this.settings = engine.getSettings(); - final String configuredUrl = settings.getString(Settings.KEYS.ANALYZER_RETIREJS_REPO_JS_URL, DEFAULT_JS_URL); - final boolean autoupdate = settings.getBoolean(Settings.KEYS.AUTO_UPDATE, true); - final boolean forceupdate = settings.getBoolean(Settings.KEYS.ANALYZER_RETIREJS_FORCEUPDATE, false); - final boolean enabled = settings.getBoolean(Settings.KEYS.ANALYZER_RETIREJS_ENABLED, true); + this.settings = engine.getSettings(); + this.dbProperties = engine.getDatabase().getDatabaseProperties(); + final String configuredUrl = settings.getString(Settings.KEYS.ANALYZER_RETIREJS_REPO_JS_URL, DEFAULT_JS_URL); + final boolean autoupdate = settings.getBoolean(Settings.KEYS.AUTO_UPDATE, true); + final boolean forceupdate = settings.getBoolean(Settings.KEYS.ANALYZER_RETIREJS_FORCEUPDATE, false); + final boolean enabled = settings.getBoolean(Settings.KEYS.ANALYZER_RETIREJS_ENABLED, true); try { - final URL url = new URL(configuredUrl); - final File filepath = new File(url.getPath()); - final File repoFile = new File(settings.getDataDirectory(), filepath.getName()); - final boolean proceed = enabled && (forceupdate || (autoupdate && shouldUpdate(repoFile))); - if (proceed) { - LOGGER.debug("Begin RetireJS Update"); - initializeRetireJsRepo(settings, url, repoFile); + final URL url = new URL(configuredUrl); + final File filepath = new File(url.getPath()); + final File repoFile = new File(settings.getDataDirectory(), filepath.getName()); + final boolean proceed = enabled && (forceupdate || (autoupdate && shouldUpdate(repoFile))); + if (proceed) { + LOGGER.debug("Begin RetireJS Update"); + initializeRetireJsRepo(settings, url, repoFile); + dbProperties.save(DatabaseProperties.RETIRE_LAST_CHECKED, Long.toString(System.currentTimeMillis() / 1000)); } - } catch (MalformedURLException ex) { - throw new UpdateException(String.format("Invalid URL for RetireJS repository (%s)", configuredUrl), ex); - } catch (IOException ex) { - throw new UpdateException("Unable to get the data directory", ex); - } - return false; + } catch (MalformedURLException ex) { + throw new UpdateException(String.format("Invalid URL for RetireJS repository (%s)", configuredUrl), ex); + } catch (IOException ex) { + throw new UpdateException("Unable to get the data directory", ex); + } + return false; } /** @@ -106,20 +113,24 @@ * the database properties */ protected boolean shouldUpdate(File repo) throws NumberFormatException { - boolean proceed = true; - if (repo != null && repo.isFile()) { - final int validForHours = settings.getInt(Settings.KEYS.ANALYZER_RETIREJS_REPO_VALID_FOR_HOURS, 0); - final long lastUpdatedOn = repo.lastModified(); - final long now = System.currentTimeMillis(); - LOGGER.debug("Last updated: {}", lastUpdatedOn); - LOGGER.debug("Now: {}", now); - final long msValid = validForHours * 60L * 60L * 1000L; - proceed = (now - lastUpdatedOn) > msValid; - if (!proceed) { - LOGGER.info("Skipping RetireJS update since last update was within {} hours.", validForHours); + boolean proceed = true; + if (repo != null && repo.isFile()) { + final int validForHours = settings.getInt(Settings.KEYS.ANALYZER_RETIREJS_REPO_VALID_FOR_HOURS, 0); + long lastUpdatedOn = dbProperties.getPropertyInSeconds(DatabaseProperties.RETIRE_LAST_CHECKED); + if (lastUpdatedOn <= 0) { + //fall back on conversion from file last modified to storing in the db. + lastUpdatedOn = repo.lastModified(); + } + final long now = System.currentTimeMillis(); + LOGGER.debug("Last updated: {}", lastUpdatedOn); + LOGGER.debug("Now: {}", now); + final long msValid = validForHours * 60L * 60L * 1000L; + proceed = (now - lastUpdatedOn) > msValid; + if (!proceed) { + LOGGER.info("Skipping RetireJS update since last update was within {} hours.", validForHours); } } - return proceed; + return proceed; } /** @@ -133,40 +144,40 @@ */ @SuppressWarnings("try") private void initializeRetireJsRepo(Settings settings, URL repoUrl, File repoFile) throws UpdateException { - try (WriteLock lock = new WriteLock(settings, true, repoFile.getName() + ".lock")) { - LOGGER.debug("RetireJS Repo URL: {}", repoUrl.toExternalForm()); - final Downloader downloader = new Downloader(settings); - downloader.fetchFile(repoUrl, repoFile, Settings.KEYS.ANALYZER_RETIREJS_REPO_JS_USER, Settings.KEYS.ANALYZER_RETIREJS_REPO_JS_PASSWORD); - } catch (IOException | TooManyRequestsException | ResourceNotFoundException | WriteLockException ex) { - throw new UpdateException("Failed to initialize the RetireJS repo", ex); - } - } + try (WriteLock lock = new WriteLock(settings, true, repoFile.getName() + ".lock")) { + LOGGER.debug("RetireJS Repo URL: {}", repoUrl.toExternalForm()); + final Downloader downloader = new Downloader(settings); + downloader.fetchFile(repoUrl, repoFile, Settings.KEYS.ANALYZER_RETIREJS_REPO_JS_USER, Settings.KEYS.ANALYZER_RETIREJS_REPO_JS_PASSWORD); + } catch (IOException | TooManyRequestsException | ResourceNotFoundException | WriteLockException ex) { + throw new UpdateException("Failed to initialize the RetireJS repo", ex); + } + } @Override @SuppressWarnings("try") public boolean purge(Engine engine) { - this.settings = engine.getSettings(); - boolean result = true; + this.settings = engine.getSettings(); + boolean result = true; try { - final File dataDir = engine.getSettings().getDataDirectory(); - final URL repoUrl = new URL(engine.getSettings().getString(Settings.KEYS.ANALYZER_RETIREJS_REPO_JS_URL, DEFAULT_JS_URL)); - final String filename = repoUrl.getFile().substring(repoUrl.getFile().lastIndexOf("/") + 1); - final File repo = new File(dataDir, filename); - if (repo.exists()) { - try (WriteLock lock = new WriteLock(settings, true, filename + ".lock")) { - if (repo.delete()) { - LOGGER.info("RetireJS repo removed successfully"); + final File dataDir = engine.getSettings().getDataDirectory(); + final URL repoUrl = new URL(engine.getSettings().getString(Settings.KEYS.ANALYZER_RETIREJS_REPO_JS_URL, DEFAULT_JS_URL)); + final String filename = repoUrl.getFile().substring(repoUrl.getFile().lastIndexOf("/") + 1); + final File repo = new File(dataDir, filename); + if (repo.exists()) { + try (WriteLock lock = new WriteLock(settings, true, filename + ".lock")) { + if (repo.delete()) { + LOGGER.info("RetireJS repo removed successfully"); } else { - LOGGER.error("Unable to delete '{}'; please delete the file manually", repo.getAbsolutePath()); - result = false; + LOGGER.error("Unable to delete '{}'; please delete the file manually", repo.getAbsolutePath()); + result = false; } } } - } catch (WriteLockException | IOException ex) { - LOGGER.error("Unable to delete the RetireJS repo - invalid configuration"); - result = false; - } - return result; + } catch (WriteLockException | IOException ex) { + LOGGER.error("Unable to delete the RetireJS repo - invalid configuration"); + result = false; + } + return result; } } \ No newline at end of file diff --git a/dependency-check-core/jacoco/org.owasp.dependencycheck.data.update/index.html b/dependency-check-core/jacoco/org.owasp.dependencycheck.data.update/index.html index fb67b16a1c2..50b3665ff63 100644 --- a/dependency-check-core/jacoco/org.owasp.dependencycheck.data.update/index.html +++ b/dependency-check-core/jacoco/org.owasp.dependencycheck.data.update/index.html @@ -1 +1 @@ -org.owasp.dependencycheck.data.update

    org.owasp.dependencycheck.data.update

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethodsMissedClasses
    Total1,853 of 2,36821%208 of 24013%135165404527214506
    NvdApiDataSource1,262483%14532%8589273287111501
    HostedSuppressionsDataSource18512941%19932%152142673701
    RetireJSDataSource16611440%16627%111735582601
    KnownExploitedDataSource1393921%156%111426363601
    EngineVersionCheck10117363%131350%132228752901
    UpdateService12100%n/a02040201
    \ No newline at end of file +org.owasp.dependencycheck.data.update

    org.owasp.dependencycheck.data.update

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethodsMissedClasses
    Total2,053 of 2,65722%217 of 25615%139176439585204807
    NvdApiDataSource1,439915%14774%8693303327111601
    HostedSuppressionsDataSource20714441%241233%182547763701
    RetireJSDataSource17513042%18625%121837632601
    KnownExploitedDataSource1313922%156%101324342501
    EngineVersionCheck10117363%131350%132228752901
    NvdApiDataSource.UrlData15100%n/a03060301
    UpdateService100%n/a02040201
    \ No newline at end of file diff --git a/dependency-check-core/jacoco/org.owasp.dependencycheck.data.update/index.source.html b/dependency-check-core/jacoco/org.owasp.dependencycheck.data.update/index.source.html index 8657991c529..bb42f287200 100644 --- a/dependency-check-core/jacoco/org.owasp.dependencycheck.data.update/index.source.html +++ b/dependency-check-core/jacoco/org.owasp.dependencycheck.data.update/index.source.html @@ -1 +1 @@ -org.owasp.dependencycheck.data.update

    org.owasp.dependencycheck.data.update

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethodsMissedClasses
    Total1,853 of 2,36821%208 of 24013%135165404527214506
    NvdApiDataSource.java1,262483%14532%8589273287111501
    HostedSuppressionsDataSource.java18512941%19932%152142673701
    RetireJSDataSource.java16611440%16627%111735582601
    KnownExploitedDataSource.java1393921%156%111426363601
    EngineVersionCheck.java10117363%131350%132228752901
    UpdateService.java12100%n/a02040201
    \ No newline at end of file +org.owasp.dependencycheck.data.update

    org.owasp.dependencycheck.data.update

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethodsMissedClasses
    Total2,053 of 2,65722%217 of 25615%139176439585204807
    NvdApiDataSource.java1,4391066%14774%8696303333111902
    HostedSuppressionsDataSource.java20714441%241233%182547763701
    RetireJSDataSource.java17513042%18625%121837632601
    KnownExploitedDataSource.java1313922%156%101324342501
    EngineVersionCheck.java10117363%131350%132228752901
    UpdateService.java100%n/a02040201
    \ No newline at end of file diff --git a/dependency-check-core/licenses.html b/dependency-check-core/licenses.html index ff80854eea7..1d6e7bd3b79 100644 --- a/dependency-check-core/licenses.html +++ b/dependency-check-core/licenses.html @@ -1,13 +1,13 @@ - + dependency-check-core – Project Licenses @@ -41,8 +41,8 @@
  • documentation/
  • dependency-check/
  • Project Licenses
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • diff --git a/dependency-check-core/plugin-updates-report.html b/dependency-check-core/plugin-updates-report.html index 771e5e871f9..53ce2486a41 100644 --- a/dependency-check-core/plugin-updates-report.html +++ b/dependency-check-core/plugin-updates-report.html @@ -1,13 +1,13 @@ - + dependency-check-core – Plugin Updates Report @@ -41,8 +41,8 @@
  • documentation/
  • dependency-check/
  • Plugin Updates Report
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • @@ -96,7 +96,7 @@

    Overview

    # of plugins using the latest version available -27 +25 # of plugins where the next version available is smaller than an incremental version update @@ -104,7 +104,7 @@

    Overview

    # of plugins where the next version available is an incremental version update -1 +3 # of plugins where the next version available is a minor version update @@ -220,12 +220,12 @@

    Plugin Management

    - + org.apache.maven.plugins maven-failsafe-plugin -3.2.2 - +3.2.2 +3.2.3 @@ -320,12 +320,12 @@

    Plugin Management

    - + org.apache.maven.plugins maven-surefire-plugin -3.2.2 - +3.2.2 +3.2.3 @@ -643,7 +643,7 @@

    Plugin o - + @@ -652,7 +652,10 @@

    Plugin o

    -
    Status No newer versions available.
     There is at least one newer incremental version available. Incremental updates are typically passive.
    Group Id org.apache.maven.plugins
    maven-failsafe-plugin
    Current Version3.2.2
    +3.2.2 + +Newer versions +3.2.3 Latest Incremental

    Plugin org.apache.maven.plugins:maven-gpg-plugin

    @@ -906,7 +909,7 @@

    Plugin o

    - + @@ -915,7 +918,10 @@

    Plugin o

    -
    Status No newer versions available.
     There is at least one newer incremental version available. Incremental updates are typically passive.
    Group Id org.apache.maven.plugins
    maven-surefire-plugin
    Current Version3.2.2
    +3.2.2 + +Newer versions +3.2.3 Latest Incremental

    Plugin org.codehaus.gmavenplus:gmavenplus-plugin

    diff --git a/dependency-check-core/project-info.html b/dependency-check-core/project-info.html index a850fc5fb15..ee8734bb22d 100644 --- a/dependency-check-core/project-info.html +++ b/dependency-check-core/project-info.html @@ -1,13 +1,13 @@ - + dependency-check-core – Project Information @@ -41,8 +41,8 @@
  • documentation/
  • dependency-check/
  • Project Information
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • diff --git a/dependency-check-core/project-reports.html b/dependency-check-core/project-reports.html index 9e34a16d431..a54c19f49d5 100644 --- a/dependency-check-core/project-reports.html +++ b/dependency-check-core/project-reports.html @@ -1,13 +1,13 @@ - + dependency-check-core – Generated Reports @@ -41,8 +41,8 @@
  • documentation/
  • dependency-check/
  • Generated Reports
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • diff --git a/dependency-check-core/scm.html b/dependency-check-core/scm.html index 4b0820f3d2d..17227c4100c 100644 --- a/dependency-check-core/scm.html +++ b/dependency-check-core/scm.html @@ -1,13 +1,13 @@ - + dependency-check-core – Source Code Management @@ -41,8 +41,8 @@
  • documentation/
  • dependency-check/
  • Source Code Management
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • @@ -92,11 +92,11 @@

    Web Browser Access

    Anonymous Access

    The source can be checked out anonymously from Git with this command (See https://git-scm.com/docs/git-clone):

    -
    $ git clone --branch v9.0.4 https://github.com/jeremylong/DependencyCheck.git
    +
    $ git clone --branch v9.0.5 https://github.com/jeremylong/DependencyCheck.git

    Developer Access

    Only project developers can access the Git tree via this method (See https://git-scm.com/docs/git-clone).

    -
    $ git clone --branch v9.0.4 git@github.com:jeremylong/DependencyCheck.git
    +
    $ git clone --branch v9.0.5 git@github.com:jeremylong/DependencyCheck.git

    Access from Behind a Firewall

    Refer to the documentation of the SCM used for more information about access behind a firewall.

    diff --git a/dependency-check-core/spotbugs.html b/dependency-check-core/spotbugs.html index df9410d519c..5963c0dbb1f 100644 --- a/dependency-check-core/spotbugs.html +++ b/dependency-check-core/spotbugs.html @@ -1,13 +1,13 @@ - + dependency-check-core – SpotBugs Bug Detector Report @@ -41,8 +41,8 @@
  • documentation/
  • dependency-check/
  • SpotBugs Bug Detector Report
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • @@ -102,8 +102,8 @@

    Summary

    - - + +
    Errors Missing Classes
    3001330314 0 0

    Files

    @@ -124,6 +124,9 @@

    Files

    org.owasp.dependencycheck.data.knownexploited.json.Vulnerability 8 +org.owasp.dependencycheck.data.update.NvdApiDataSource +1 + org.owasp.dependencycheck.dependency.Vulnerability 1

    org.owasp.dependencycheck.analyzer.CentralAnalyzer

    @@ -223,6 +226,20 @@

    < BAD_PRACTICE ES_COMPARING_STRINGS_WITH_EQ 369 +Medium

    +

    org.owasp.dependencycheck.data.update.NvdApiDataSource

    + + + + + + + + + + + +
    BugCategoryDetailsLinePriority
    Exception is caught when Exception is not thrown in org.owasp.dependencycheck.data.update.NvdApiDataSource.processApi()STYLEREC_CATCH_EXCEPTION372 Medium

    org.owasp.dependencycheck.dependency.Vulnerability

    diff --git a/dependency-check-core/summary.html b/dependency-check-core/summary.html index b177d01c2f8..a2802157db0 100644 --- a/dependency-check-core/summary.html +++ b/dependency-check-core/summary.html @@ -1,13 +1,13 @@ - + dependency-check-core – Project Summary @@ -41,8 +41,8 @@
  • documentation/
  • dependency-check/
  • Project Summary
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • @@ -122,7 +122,7 @@

    Build Information

    - + diff --git a/dependency-check-core/surefire-report.html b/dependency-check-core/surefire-report.html index e6ce75f669a..57d3153be05 100644 --- a/dependency-check-core/surefire-report.html +++ b/dependency-check-core/surefire-report.html @@ -1,13 +1,13 @@ - + dependency-check-core – Surefire Report @@ -41,8 +41,8 @@
  • documentation/
  • dependency-check/
  • Surefire Report
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • @@ -117,12 +117,12 @@

    Summary

    - + -
    Version9.0.4
    9.0.5
    Type jar
    Success Rate Time
    472473 0 0 10 97.9%46.51 s

    +40.13 s

    Note: failures are anticipated and checked for with assertions while errors are unanticipated.


    Package List

    [Summary] [Package List] [Test Cases]


    @@ -137,12 +137,12 @@

    Package List

    Time org.owasp.dependencycheck.data.update -2 +3 0 0 0 100% -0.441 s +0.677 s org.owasp.dependencycheck.reporting 7 @@ -150,7 +150,7 @@

    Package List

    0 0 100% -0.022 s +0.015 s org.owasp.dependencycheck.dependency 33 @@ -158,7 +158,7 @@

    Package List

    0 0 100% -0.062 s +0.168 s org.owasp.dependencycheck.data.nexus 10 @@ -166,7 +166,7 @@

    Package List

    0 8 20.0% -0 s +0.001 s org.owasp.dependencycheck.data.artifactory 9 @@ -174,7 +174,7 @@

    Package List

    0 0 100% -1.092 s +0.261 s org.owasp.dependencycheck.data.composer 4 @@ -182,7 +182,7 @@

    Package List

    0 0 100% -0.039 s +0.001 s org.owasp.dependencycheck.data.elixir 2 @@ -190,7 +190,7 @@

    Package List

    0 0 100% -0.006 s +0.001 s org.owasp.dependencycheck.xml.hints 12 @@ -198,7 +198,7 @@

    Package List

    0 0 100% -0.053 s +0.022 s org.owasp.dependencycheck.data.golang 1 @@ -206,7 +206,7 @@

    Package List

    0 0 100% -0.010 s +0.001 s org.owasp.dependencycheck.data.nodeaudit 4 @@ -214,7 +214,7 @@

    Package List

    0 0 100% -0.403 s +0.356 s org.owasp.dependencycheck.analyzer 204 @@ -222,7 +222,7 @@

    Package List

    0 2 99.0% -15.37 s +30.35 s org.owasp.dependencycheck.xml 5 @@ -230,7 +230,7 @@

    Package List

    0 0 100% -0.006 s +0.012 s org.owasp.dependencycheck.xml.assembly 2 @@ -238,7 +238,7 @@

    Package List

    0 0 100% -0.015 s +0.003 s org.owasp.dependencycheck.data.cwe 2 @@ -246,7 +246,7 @@

    Package List

    0 0 100% -0 s +0.001 s org.owasp.dependencycheck.data.central 5 @@ -254,7 +254,7 @@

    Package List

    0 0 100% -1.422 s +0.941 s org.owasp.dependencycheck.resources 1 @@ -262,7 +262,7 @@

    Package List

    0 0 100% -0.179 s +0.051 s org.owasp.dependencycheck.data.nuget 3 @@ -270,7 +270,7 @@

    Package List

    0 0 100% -0.034 s +0.009 s org.owasp.dependencycheck.utils 41 @@ -278,7 +278,7 @@

    Package List

    0 0 100% -0.099 s +0.988 s org.owasp.dependencycheck.data.update.cisa 1 @@ -286,7 +286,7 @@

    Package List

    0 0 100% -0.140 s +0.083 s org.owasp.dependencycheck.data.cpe 8 @@ -294,7 +294,7 @@

    Package List

    0 0 100% -3.028 s +2.746 s org.owasp.dependencycheck.data.lucene 15 @@ -302,7 +302,7 @@

    Package List

    0 0 100% -1.738 s +1.198 s org.owasp.dependencycheck.xml.pom 32 @@ -310,7 +310,7 @@

    Package List

    0 0 100% -0.150 s +0.050 s org.owasp.dependencycheck.data.nvdcve 7 @@ -318,7 +318,7 @@

    Package List

    0 0 100% -1.731 s +1.203 s org.owasp.dependencycheck.data.update.cpe 4 @@ -326,7 +326,7 @@

    Package List

    0 0 100% -0.003 s +0.118 s org.owasp.dependencycheck 6 @@ -334,7 +334,7 @@

    Package List

    0 0 100% -19.06 s +0.697 s org.owasp.dependencycheck.xml.suppression 40 @@ -342,7 +342,7 @@

    Package List

    0 0 100% -1.367 s +0.109 s org.owasp.dependencycheck.data.nvd.ecosystem 11 @@ -350,7 +350,7 @@

    Package List

    0 0 100% -0.045 s +0.058 s org.owasp.dependencycheck.data.cache 1 @@ -358,7 +358,7 @@

    Package List

    0 0 100% -0 s
    +0.006 s

    Note: package statistics are not computed recursively, they only sum up all of its testsuites numbers.

    org.owasp.dependencycheck.data.update

    @@ -372,6 +372,15 @@

    org.owasp.dependencychec

    + + + + + + + + + @@ -379,7 +388,7 @@

    org.owasp.dependencychec

    -
    Success Rate Time
    NvdApiDataSourceTest1000100%0.006 s
    EngineVersionCheckTest 20 0 100%0.441 s
    +0.671 s

    org.owasp.dependencycheck.reporting

    @@ -399,7 +408,7 @@

    org.owasp.dependencycheck.

    -
    0 0 100%0.022 s
    +0.015 s

    org.owasp.dependencycheck.dependency

    @@ -412,14 +421,14 @@

    org.owasp.dependencycheck

    - - - + + + - + @@ -428,29 +437,29 @@

    org.owasp.dependencycheck

    - + - - - + + + - + - - - + + + - + - - - + + + @@ -468,17 +477,17 @@

    org.owasp.dependencycheck

    - - + + - + - - + + @@ -513,7 +522,7 @@

    org.owasp.dependenc

    -
    Success Rate Time
    CweSetTest5DependencyTest19 0 0 0 100%0.015 s
    0.082 s
    VulnerabilityTest0 0 100%0.019 s
    0.018 s
    EvidenceTest3CweSetTest5 0 0 0 100%0.005 s
    0.041 s
    DependencyTest19VulnerableSoftwareTest4 0 0 0 100%0.017 s
    0.021 s
    VulnerableSoftwareTest4EvidenceTest3 0 0 0Success Rate Time
    NexusV2SearchTestNexusV3SearchTest 4 0 0 4 0%0 s
    0.001 s
    NexusV3SearchTestNexusV2SearchTest 4 0 00 0 100%1.092 s
    +0.261 s

    org.owasp.dependencycheck.data.composer

    @@ -533,7 +542,7 @@

    org.owasp.dependencych

    -
    0 0 100%0.039 s
    +0.001 s

    org.owasp.dependencycheck.data.elixir

    @@ -553,7 +562,7 @@

    org.owasp.dependencychec

    -
    0 0 100%0.006 s
    +0.001 s

    org.owasp.dependencycheck.xml.hints

    @@ -566,14 +575,14 @@

    org.owasp.dependencycheck.

    - - - + + + - + @@ -582,16 +591,16 @@

    org.owasp.dependencycheck.

    - + - - - + + + -
    Success Rate Time
    HintParserTest4HintHandlerTest1 0 0 0 100%0.053 s
    0 s
    EvidenceMatcherTest0 0 100%0 s
    0.001 s
    HintHandlerTest1HintParserTest4 0 0 0 100%0 s
    +0.021 s

    org.owasp.dependencycheck.data.golang

    @@ -611,7 +620,7 @@

    org.owasp.dependencychec

    -
    0 0 100%0.010 s
    +0.001 s

    org.owasp.dependencycheck.data.nodeaudit

    @@ -631,7 +640,7 @@

    org.owasp.dependencyc

    -
    0 0 100%0.403 s
    +0.356 s

    org.owasp.dependencycheck.analyzer

    @@ -644,86 +653,104 @@

    org.owasp.dependencycheck.a

    - - - + + + - + - - - + + + - + - - - + + + - + - - - + + + - + - - + + + + + + + + + + + + + + + + + + + + - + - - - + + + - + - - - + + + - + - - - + + + - + - - - + + + - + @@ -732,331 +759,313 @@

    org.owasp.dependencycheck.a

    - + - - - + + + - + - - - + + + - + - - - + + + - + - - - + + + - + - - - + + + - + - - - + + + - + - - - + + + - + - - - + + + - + - - - + + + - + - - - + + + - + - - - + + + - + - - - + + + - + - - - + + + - + - - - + + + - + - - - + + + - + - - - + + + - + - - - + + + - + - - + + - + - - - + + + - + - - - + + + - + - - + + - + - - - + + + - + - - - + + + - + - - + + - - - - - - - - - - - - - - - - - - - + - - + + - + - - - + + + - + - - - + + + - + - - - + + + - + - - - + + + - + - - - + + + - + - - - + + + - + - - + + - + - - + + - + - - - + + + -
    Success Rate Time
    NodePackageAnalyzerTest8LibmanAnalyzerTest4 0 0 0 100%0.075 s
    0.010 s
    PythonDistributionAnalyzerTest8DependencyBundlingAnalyzerTest7 0 0 0 100%0.062 s
    0.087 s
    PythonPackageAnalyzerTest3FileNameAnalyzerTest5 0 0 0 100%0.001 s
    0.008 s
    OpenSSLAnalyzerTest4AssemblyAnalyzerTest5 0 0 0 100%0 s
    2.307 s
    NugetconfAnalyzerTestAbstractSuppressionAnalyzerTest5000100%1.397 s
    ArchiveAnalyzerTest20020%0.001 s
    CentralAnalyzerTest 3 0 0 0 100%0.007 s
    0.757 s
    DependencyBundlingAnalyzerTest7HintAnalyzerTest4 0 0 0 100%0.090 s
    2.846 s
    SwiftAnalyzersTest10YarnAuditAnalyzerTest2 0 0 0 100%0.013 s
    0.001 s
    PerlCpanfileAnalyzerTest7NuspecAnalyzerTest4 0 0 0 100%0.014 s
    0.253 s
    DependencyMergingAnalyzerTest11NodeAuditAnalyzerTest2 0 0 0 100%0.038 s
    0.001 s
    PEAnalyzerTest0 0 100%0.020 s
    0.025 s
    RubyGemspecAnalyzerTest3OpenSSLAnalyzerTest4 0 0 0 100%0 s
    0.002 s
    CMakeAnalyzerTest10AutoconfAnalyzerTest6 0 0 0 100%0.254 s
    0.017 s
    PinnedMavenInstallAnalyzerTest4PythonDistributionAnalyzerTest8 0 0 0 100%0.083 s
    0.045 s
    PipfileAnalyzerTest3PerlCpanfileAnalyzerTest7 0 0 0 100%0.073 s
    0.013 s
    AutoconfAnalyzerTest6RubyGemspecAnalyzerTest3 0 0 0 100%0.020 s
    0.004 s
    ComposerLockAnalyzerTest3ElixirMixAuditAnalyzerTest2 0 0 0 100%0.079 s
    0.003 s
    PoetryAnalyzerTest4PipfilelockAnalyzerTest3 0 0 0 100%0.120 s
    0.081 s
    GolangModAnalyzerTest3JarAnalyzerTest10 0 0 0 100%1.136 s
    0.176 s
    MSBuildProjectAnalyzerTest5NpmCPEAnalyzerTest2 0 0 0 100%0.114 s
    0.046 s
    AssemblyAnalyzerTest5NugetconfAnalyzerTest3 0 0 0 100%8.785 s
    0.018 s
    CPEAnalyzerTest7ComposerLockAnalyzerTest3 0 0 0 100%0.004 s
    0.081 s
    DependencyCheckPropertiesTest1GolangModAnalyzerTest3 0 0 0 100%0.026 s
    0.618 s
    VersionFilterAnalyzerTest7GolangDepAnalyzerTest3 0 0 0 100%0.008 s
    0.010 s
    LibmanAnalyzerTest4NodePackageAnalyzerTest8 0 0 0 100%0.015 s
    0.126 s
    RetireJsAnalyzerFiltersTest1PoetryAnalyzerTest4 0 0 0 100%1.313 s
    0.209 s
    ElixirMixAuditAnalyzerTest2MSBuildProjectAnalyzerTest5 0 0 0 100%0 s
    0.113 s
    NuspecAnalyzerTest4PipAnalyzerTest3 0 0 0 100%0.010 s
    0.069 s
    GolangDepAnalyzerTestAnalyzerServiceTest 3 0 0 0 100%0.067 s
    0.069 s
    OssIndexAnalyzerTest5DependencyMergingAnalyzerTest11 0 0 0 100%0.513 s
    0.045 s
    AbstractSuppressionAnalyzerTest5SwiftAnalyzersTest10 0 0 0 100%0.612 s
    0.011 s
    JarAnalyzerTestCMakeAnalyzerTest 10 0 0 0 100%0.105 s
    17.61 s
    PnpmAuditAnalyzerTest2DependencyCheckPropertiesTest1 0 0 0 100%0.007 s
    0.036 s
    NpmCPEAnalyzerTest2DartAnalyzerTest6 0 0 0 100%0.043 s
    0.067 s
    AnalyzerServiceTestPythonPackageAnalyzerTest 3 0 0 0 100%0.160 s
    HintAnalyzerTest4000100%1.086 s
    ArchiveAnalyzerTest20020%0.003 s
    0.001 s
    FileNameAnalyzerTestFalsePositiveAnalyzerTest 5 0 0 0 100%0.010 s
    0 s
    PipAnalyzerTest3AbstractFileTypeAnalyzerTest1 0 0 0 100%0.076 s
    0.001 s
    YarnAuditAnalyzerTest2OssIndexAnalyzerTest5 0 0 0 100%0 s
    0.800 s
    NodeAuditAnalyzerTest2RetireJsAnalyzerFiltersTest1 0 0 0 100%0.001 s
    2.180 s
    FalsePositiveAnalyzerTest5VersionFilterAnalyzerTest7 0 0 0 100%0.001 s
    0.004 s
    CentralAnalyzerTest3PinnedMavenInstallAnalyzerTest4 0 0 0 100%0.184 s
    0.116 s
    AbstractFileTypeAnalyzerTest1PnpmAuditAnalyzerTest2 0 0 0 100%0 s
    0.002 s
    RubyBundlerAnalyzerTestPipfileAnalyzerTest 3 0 0 0 100%0 s
    0.078 s
    PipfilelockAnalyzerTestRubyBundlerAnalyzerTest 3 0 0 0 100%0.078 s
    0.001 s
    DartAnalyzerTest6CPEAnalyzerTest7 0 0 0 100%0.065 s
    +0.003 s

    org.owasp.dependencycheck.xml

    @@ -1076,7 +1085,7 @@

    org.owasp.dependencycheck.xml0

    - + @@ -1085,7 +1094,7 @@

    org.owasp.dependencycheck.xml0

    -
    0 100%0.002 s
    0.011 s
    XmlInputStreamTest0 100%0.004 s
    +0.001 s

    org.owasp.dependencycheck.xml.assembly

    @@ -1098,23 +1107,23 @@

    org.owasp.dependencyche

    - - + + - + - - + + -
    Success Rate Time
    GrokHandlerTestGrokParserTest 1 0 0 0 100%0.007 s
    0.001 s
    GrokParserTestGrokHandlerTest 1 0 0 0 100%0.008 s
    +0.002 s

    org.owasp.dependencycheck.data.cwe

    @@ -1134,7 +1143,7 @@

    org.owasp.dependencycheck.d

    -
    0 0 100%0 s
    +0.001 s

    org.owasp.dependencycheck.data.central

    @@ -1154,7 +1163,7 @@

    org.owasp.dependencyche

    -
    0 0 100%1.422 s
    +0.941 s

    org.owasp.dependencycheck.resources

    @@ -1174,7 +1183,7 @@

    org.owasp.dependencycheck.

    -
    0 0 100%0.179 s
    +0.051 s

    org.owasp.dependencycheck.data.nuget

    @@ -1194,7 +1203,7 @@

    org.owasp.dependencycheck

    -
    0 0 100%0.034 s
    +0.009 s

    org.owasp.dependencycheck.utils

    @@ -1207,50 +1216,50 @@

    org.owasp.dependencycheck.util

    - - - + + + - + - - - + + + - + - - - + + + - + - - - + + + - + - - - + + + - + @@ -1259,28 +1268,28 @@

    org.owasp.dependencycheck.util

    - + - - - + + + - + - - - + + + - + - - + + @@ -1288,32 +1297,32 @@

    org.owasp.dependencycheck.util

    - - - + + + - + - - - + + + - + - - - + + + -
    Success Rate Time
    ExtractionUtilTest3SemverTest2 0 0 0 100%0.031 s
    0.057 s
    SemverTest2ExtractionUtilTest3 0 0 0 100%0.028 s
    0.093 s
    DependencyVersionUtilTest3DependencyVersionTest9 0 0 0 100%0 s
    0.019 s
    UtilsTest1DateUtilTest4 0 0 0 100%0 s
    0.032 s
    CvssUtilTest4UtilsTest1 0 0 0 100%0.002 s
    0.001 s
    InterpolationUtilTest0 0 100%0.003 s
    0.018 s
    DependencyVersionTest9SeverityUtilTest1 0 0 0 100%0.009 s
    0.017 s
    FilterTest2UrlStringUtilsTest3 0 0 0 100%0.005 s
    0.003 s
    DateUtilTestCvssUtilTest 4 0 0100% 0.013 s
    UrlStringUtilsTest3PyPACoreMetadataParserTest5 0 0 0 100%0.006 s
    0.388 s
    SeverityUtilTest1FilterTest2 0 0 0 100%0 s
    0.331 s
    PyPACoreMetadataParserTest5DependencyVersionUtilTest3 0 0 0 100%0.002 s
    +0.016 s

    org.owasp.dependencycheck.data.update.cisa

    @@ -1333,7 +1342,7 @@

    org.owasp.dependenc

    -
    0 0 100%0.140 s
    +0.083 s

    org.owasp.dependencycheck.data.cpe

    @@ -1346,23 +1355,23 @@

    org.owasp.dependencycheck.d

    - - - + + + - + - - - + + + -
    Success Rate Time
    CpeMemoryIndexTest7IndexEntryTest1 0 0 0 100%3.028 s
    0 s
    IndexEntryTest1CpeMemoryIndexTest7 0 0 0 100%0 s
    +2.746 s

    org.owasp.dependencycheck.data.lucene

    @@ -1375,50 +1384,50 @@

    org.owasp.dependencychec

    - - - + + + - + - - + + - + - - - + + + - + - - - + + + - + - - - + + + - + @@ -1427,7 +1436,7 @@

    org.owasp.dependencychec

    -
    Success Rate Time
    UrlTokenizingFilterTest3TokenPairConcatenatingFilterTest1 0 0 0 100%0.257 s
    0.369 s
    TokenPairConcatenatingFilterTestFieldAnalyzerTest 1 0 0 0 100%0.619 s
    0.040 s
    FieldAnalyzerTest1LuceneUtilsTest5 0 0 0 100%0.336 s
    0.002 s
    AlphaNumericFilterTest4UrlTokenizingFilterTest3 0 0 0 100%0.513 s
    0.262 s
    LuceneUtilsTest5AlphaNumericFilterTest4 0 0 0 100%0.003 s
    0.524 s
    SearchFieldAnalyzerTest0 0 100%0.010 s
    +0.001 s

    org.owasp.dependencycheck.xml.pom

    @@ -1440,32 +1449,32 @@

    org.owasp.dependencycheck.xm

    - - + + - + - - - + + + - + - - - + + + - + @@ -1474,7 +1483,7 @@

    org.owasp.dependencycheck.xm

    -
    Success Rate Time
    PomUtilsTestPomProjectInputStreamTest 2 0 0 0 100%0.046 s
    0.001 s
    PomProjectInputStreamTest2ModelTest21 0 0 0 100%0.012 s
    0.002 s
    ModelTest21PomUtilsTest2 0 0 0 100%0.061 s
    0.019 s
    PomParserTest0 0 100%0.031 s
    +0.028 s

    org.owasp.dependencycheck.data.nvdcve

    @@ -1494,7 +1503,7 @@

    org.owasp.dependencychec

    - + @@ -1503,7 +1512,7 @@

    org.owasp.dependencychec

    -
    0 0 100%0.034 s
    0.041 s
    DatabaseManagerTest0 0 100%1.697 s
    +1.162 s

    org.owasp.dependencycheck.data.update.cpe

    @@ -1523,7 +1532,7 @@

    org.owasp.dependency

    -
    0 0 100%0.003 s
    +0.118 s

    org.owasp.dependencycheck

    @@ -1536,23 +1545,23 @@

    org.owasp.dependencycheck

    - - - + + + - + - - - + + + -
    Success Rate Time
    EngineTest1AnalysisTaskTest5 0 0 0 100%18.33 s
    0.670 s
    AnalysisTaskTest5EngineTest1 0 0 0 100%0.732 s
    +0.027 s

    org.owasp.dependencycheck.xml.suppression

    @@ -1572,7 +1581,7 @@

    org.owasp.dependency

    - + @@ -1581,7 +1590,7 @@

    org.owasp.dependency

    - + @@ -1590,7 +1599,7 @@

    org.owasp.dependency

    - + @@ -1599,7 +1608,7 @@

    org.owasp.dependency

    -
    0 0 100%0.005 s
    0.003 s
    SuppressionHandlerTest0 0 100%0.010 s
    0 s
    SuppressionParserTest0 0 100%0.411 s
    0.096 s
    SuppressionRuleTest0 0 100%0.941 s
    +0.010 s

    org.owasp.dependencycheck.data.nvd.ecosystem

    @@ -1619,7 +1628,7 @@

    org.owasp.depende

    - + @@ -1628,7 +1637,7 @@

    org.owasp.depende

    - + @@ -1637,7 +1646,7 @@

    org.owasp.depende

    -
    0 0 100%0.032 s
    0.035 s
    UrlEcosystemMapperTest0 0 100%0.007 s
    0.014 s
    CveEcosystemMapperTest0 0 100%0.006 s
    +0.009 s

    org.owasp.dependencycheck.data.cache

    @@ -1657,273 +1666,237 @@

    org.owasp.dependencycheck

    -
    0 0 100%0 s

    +0.006 s

    Test Cases

    -

    [Summary] [Package List] [Test Cases]

    -

    NodePackageAnalyzerTest

    +

    [Summary] [Package List] [Test Cases]

    +

    CpeEcosystemCacheTest

    - - - - - - - - - - - - - + - - - - - - + + - - + + - -
    testPackageLockV20.011 s
    testPackageLockV30.013 s
    testAnalyzePackageJsonWithShrinkwrap0.020 s
    testGetNametestGetEcosystem 0.004 s
    testLocalPackageDependency0.006 s
    testAnalyzeShrinkwrapJson0.011 s
    testGetChanged0 s
    testWithoutLock0.006 s
    testIsEmpty0 s
    testSupportsFiles0.004 s
    -

    GrokHandlerTest

    +testSetCache +0 s
    +

    GoModJsonParserTest

    - -
    testHandler0.004 s
    -

    PythonDistributionAnalyzerTest

    +testProcess +0 s
    +

    DescriptionEcosystemMapperTest

    - - - - - - - - - - - - - + - - - - - - + + - + - -
    testAnalyzeEggFolder0.002 s
    testGetName0.001 s
    testAnalyzeEggArchive0.045 s
    testAnalyzeEggArchiveNamedZiptestJspLinksDoNotCountScoring 0.004 s
    testAnalyzeWheel0.006 s
    testAnalyzeEggInfoFolder0.001 s
    testSubsetFileExtensionsDoNotMatch0.002 s
    testAnalyzeSitePackagetestPhpLinksDoNotCountScoring 0.001 s
    testSupportsFiles0 s
    -

    HintParserTest

    - - - - - - - - - + + - - + + - -
    testParseHintsXSDSelection0.015 s
    testParseHints_File0.009 s
    testSubsetKeywordsDoNotMatch0.019 s
    testParseHints_InputStream0.014 s
    testDescriptionEcosystemMapper0.006 s
    testParseHintsWithRegex0.014 s
    -

    ExtractionUtilTest

    +testScoring +0.002 s
    +

    PropertyTypeTest

    - - + + - + - -
    testExtractFiles_File_File0.028 s
    testSetGetValue0 s
    testExtractFiles_3argstestMatches 0.001 s
    testExtractFilesUsingFilter0.001 s
    -

    PythonPackageAnalyzerTest

    - - - - + - - - - - -
    testAnalyzeSourceMetadatatestIsRegex 0 s
    testGetName0 s
    testSupportsFileExtension0 s
    -

    DependencyCheckBaseSuppressionTest

    - - - - -
    testAllSuppressionsHaveBaseAttribute0.117 s
    -

    GoModJsonParserTest

    +testIsCaseSensitive +0 s
    +

    HintHandlerTest

    - -
    testProcess0.010 s
    -

    GrokParserTest

    +testHandler +0 s
    +

    SuppressionHandlerTest

    - -
    testParseSuppressionRulesV1dot00.007 s
    -

    CentralSearchTest

    +testHandler +0 s
    +

    DependencyTest

    - - + + - + - - + + - - + + - -
    testMultipleReturns0.803 s
    testGetSha1sum0.052 s
    testNullSha1testGetSoftwareIdentifiers 0.001 s
    testMalformedSha10 s
    testAddAsEvidenceWithExisting0.013 s
    testValidSha10.318 s
    testGetActualFilePath0 s
    testMissingSha10.299 s
    -

    OpenSSLAnalyzerTest

    - + + + + + + - + - + - - + + - -
    testAddAsEvidence0.001 s
    testAddAsEvidenceWithEmptyArtifact0.001 s
    testGetNametestSetSha256sum 0 s
    testVersionConstantExamplestestAddSoftwareIdentifiers 0 s
    testOpenSSLVersionHeaderFile0 s
    testSetSha1sum0.001 s
    testAccept0 s
    -

    CweSetTest

    - + + - - + + - + - + - - + + - -
    testSetFileName0 s
    testGetFullCwes0.011 s
    testSetFilePath0.001 s
    testGetEntriestestGetFileName 0 s
    testToStringtestGetFilePath 0.001 s
    testAddCwe0.001 s
    testSetMd5sum0 s
    testStream0 s
    -

    VulnerabilityTest

    - - + + + - + + + + + - -
    testGetMd5sum0.001 s
    testDuplicateVersionstestAddVulnerableSoftwareIdentifier0.002 s
    testGetEvidence 0 s
    compareTo_proper_sorting0.017 s
    -

    NugetconfAnalyzerTest

    +testGetSha256sum +0.001 s + + +testSetActualFilePath +0 s
    +

    LibmanAnalyzerTest

    - - + + - - + + - -
    testSupportedFileNames0 s
    testSupportedFileNames0.001 s
    testNugetconfAnalysis0.006 s
    testLibmanAnalysis0.004 s
    testGetAnalyzerName0 s
    -

    SemverTest

    +testGetAnalyzerName +0.003 s + + +testGetAnalyzerEnabledSettingKey +0.001 s
    +

    DependencyBundlingAnalyzerTest

    - - + + - -
    testSemverComplex0.025 s
    testAnalyze0.076 s
    testSemver0.002 s
    -

    KnownExploitedVulnerabilityParserTest

    - + + - -
    testGetAnalysisPhase0.001 s
    testParse0.139 s
    -

    UrlTokenizingFilterTest

    - + + + + + + - - + + - - + + - -
    testGetName0.002 s
    testIsShaded0.002 s
    testExamples0.008 s
    testIsWebJar0.002 s
    testEmptyTerm0.003 s
    testFirstPathIsShortest0.002 s
    testRandomStrings0.107 s
    -

    EngineVersionCheckTest

    +testIsCore +0.001 s
    +

    FileNameAnalyzerTest

    - - + + - -
    testShouldUpdate0.409 s
    testAnalyze0.005 s
    testGetCurrentReleaseVersion0.031 s
    +testClose +0.001 s + + +testGetAnalysisPhase +0 s + + +testGetName +0 s + + +testInitialize +0.001 s

    EvidenceMatcherTest

    @@ -1949,269 +1922,319 @@

    EvidenceMatcherTest

    - + -
    testExactMatching0 s
    0.001 s
    testWildcardSourceMatching0 s
    -

    ComposerLockParserTest

    +0 s
    +

    AssemblyAnalyzerTest

    - - + + - - + + - - + + - -
    testNotPackagesArray0.016 s
    testGetName0.440 s
    testValidComposerLock0.016 s
    testAnalysis0.537 s
    testNotComposer0.004 s
    testWithSettingMono0.266 s
    testNotJSON0.002 s
    -

    DependencyBundlingAnalyzerTest

    +testNonexistent +0.442 s + + +testLog4Net +0.547 s
    +

    SemverTest

    - - + + - - + +
    testAnalyze0.081 s
    testSemverComplex0.051 s
    testGetAnalysisPhase0.001 s
    testSemver0.001 s
    +

    AbstractSuppressionAnalyzerTest

    + - - + + - - + + - - + + - - + + - -
    testGetName0 s
    testGetRulesFromMultipleSuppressionFiles1.111 s
    testIsShaded0.002 s
    testFailureToLocateSuppressionFileAnywhere0.061 s
    testIsWebJar0.003 s
    testGetRulesFromSuppressionFileFromURL0.114 s
    testFirstPathIsShortest0.001 s
    testGetRulesFromSuppressionFileInClasspath0.107 s
    testIsCore0.001 s
    -

    EscapeToolTest

    +testGetSupportedExtensions +0 s
    +

    ArchiveAnalyzerTest

    - - - + + + - - + + + + + + + + + +
    testCsvCpeConfidence0.018 s
    testRpmExtension +0 s
    testCsv-got: <true>, expected: is <false>-
    testZippableExtensions + 0 s
    -got: <true>, expected: is <false>-
    +

    CentralAnalyzerTest

    + - - + + - - + + - + +
    testUrl0 s
    testFetchMavenArtifactsWithoutException0.750 s
    testXml0 s
    testFetchMavenArtifactsAlwaysThrowsIOException0.003 s
    testHtmltestFetchMavenArtifactsRethrowsFileNotFoundException0.001 s
    +

    VulnerabilityTest

    + + + + - - + +
    testDuplicateVersions 0 s
    testJson0.001 s
    compareTo_proper_sorting0.017 s
    +

    PomProjectInputStreamTest

    + - -
    testCsvIdentifiers0 s
    -

    CpeMemoryIndexTest

    +testFindSequence +0 s + + +testFilter +0 s
    +

    HintAnalyzerTest

    - - + + - - + + - - + + - - + +
    testGetDocument1.948 s
    testAnalyze2.761 s
    testParseQuery0.028 s
    testAnalyze_10.037 s
    testSearch_String_int0.491 s
    testGetAnalysisPhase0.022 s
    testIsOpen0.485 s
    testGetName0.021 s
    +

    CweSetTest

    + - - + + - - + + - -
    testNumDocs0.022 s
    testGetFullCwes0.024 s
    testGetInstance0.022 s
    testGetEntries0.001 s
    testSearch_Query_int0.024 s
    -

    XmlEntityTest

    - + + + + + + - -
    testToString0.006 s
    testAddCwe0.001 s
    testFromNamedReference0 s
    -

    PomUtilsTest

    +testStream +0 s
    +

    SuppressionParserTest

    - + + + + + + + + + - -
    testReadPom_String_FiletestParseSuppressionRulesV1dot00.007 s
    testParseSuppressionRulesV1dot1 0.012 s
    testParseSuppressionRulesV1dot20.067 s
    testReadPom_File0.032 s
    -

    SwiftAnalyzersTest

    +testParseSuppressionRulesV1dot3 +0.008 s
    +

    ModelTest

    - + - - + + - - + + - - + + - + - + - + - - + + - + - -
    testSPMGetNametestGetLicenses 0 s
    testSPMResolvedAnalyzerV10.004 s
    testSetGroupId0 s
    testSPMResolvedAnalyzerV20.002 s
    testSetParentArtifactId0 s
    testCocoaPodsPodfileAnalyzer0.003 s
    testSetVersion0 s
    testPodsGetNametestSetArtifactId 0 s
    testIsEnabledIsTrueByDefaulttestGetOrganization 0 s
    testSPMSupportsFilestestGetParentGroupId 0 s
    testPodsSupportsFiles0.001 s
    testGetParentVersion0 s
    testSPMAnalyzertestSetDescription 0 s
    testCocoaPodsPodspecAnalyzer0.002 s
    -

    PerlCpanfileAnalyzerTest

    - + + - - + + - + - - + + - - + + - - + + - - - - - -
    testSetOrganization0 s
    testGetAnalysisPhase0.001 s
    testGetName0 s
    testGetNametestGetParentArtifactId 0 s
    testProcessFileContents0.008 s
    testGetGroupId0 s
    testProcessDefaultZero0.001 s
    testGetVersion0 s
    testPrepareContent0.002 s
    testGetDescription0 s
    testProcessSingleFileContents0.001 s
    testGetAnalyzerEnabledSettingKey0.001 s
    -

    DependencyMergingAnalyzerTest

    - + + - + - + - - + + - + - + +
    testProcessProperties0 s
    testGetAnalysisPhasetestSetParentGroupId 0 s
    testGetNametestSetParentVersion 0 s
    testMergeDependencies0 s
    testAddLicense0.001 s
    testEvaluateDependenciestestSetName 0 s
    testIsSameSwiftPackagetestGetArtifactId0 s
    +

    YarnAuditAnalyzerTest

    + + + + - - + +
    testGetName 0 s
    testGetMainDotnetDependency0 s
    testSupportsFiles0 s
    +

    NuspecAnalyzerTest

    + - - + + - + + + + + + + + +
    testGetMainAndroidDependency0.036 s
    testSupportsFileExtensions0 s
    testGetMainSwiftDependencytestNuspecAnalysis0.250 s
    testGetAnalysisPhaze 0.001 s
    testGetAnalyzerName0 s
    +

    NodeAuditAnalyzerTest

    + - + - - + +
    testGetAnalyzerEnabledSettingKeytestGetName 0 s
    testIsSameRubyGem0 s
    testSupportsFiles0 s
    +

    KnownExploitedVulnerabilityParserTest

    + - -
    testGetMainGemspecDependency0 s
    -

    PEAnalyzerTest

    +testParse +0.082 s
    +

    TokenPairConcatenatingFilterTest

    - - - - - -
    testGetName0 s
    testAnalysis0.018 s
    +testEmptyTerm +0.016 s

    DriverLoaderTest

    - + @@ -2219,1151 +2242,1061 @@

    DriverLoaderTest

    - + - + - + -
    testLoad_String0.001 s
    0 s
    testLoad_String_ex
    testLoad_String_String_badClassName0.002 s
    0.003 s
    testLoad_String_String_badPath0.001 s
    0 s
    testLoad_String_String0.016 s
    0.017 s
    testLoad_String_String_multiple_paths0.012 s
    -

    RubyGemspecAnalyzerTest

    +0.020 s
    +

    PEAnalyzerTest

    - + - - - - - -
    testGetNametestGetName 0 s
    testAnalyzePackageJson0 s
    testSupportsFiles0 s
    -

    NexusV2SearchTest

    +testAnalysis +0.024 s
    +

    ExtractionUtilTest

    - - - - - - - - - - - - - - - - - - - + + + - - - + + + - - - - - - -
    testNullSha1 -0 s
    -skipped-
    testMalformedSha1 -0 s
    -skipped-
    testValidSha1 -0 s
    testExtractFiles_File_File0.085 s
    -skipped-
    testExtractFiles_3args0.003 s
    testMissingSha1 -0 s
    -skipped-
    -

    CMakeAnalyzerTest

    + +testExtractFilesUsingFilter +0.002 s
    +

    DependencyVersionTest

    - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - - -
    testAnalyzeCMakeInfiniteLoop0.027 s
    testSetVersionParts0 s
    testRemoveSelfReferences0.022 s
    testMatchesAtLeastThreeLevels0 s
    testAnalyzeCMakeListsZlib0.023 s
    testToString0 s
    testAnalyzeCMakeListsOpenCV0.036 s
    testCompareTo0.003 s
    testAnalyzeCMakeListsPython0.026 s
    testParseVersion0.001 s
    testGetName0.021 s
    testHashCode0.006 s
    testAnalyzeCMakeTempVariable0.028 s
    testEquals0.001 s
    testAnalyzeCMakeListsOpenCV3rdParty0.027 s
    testGetVersionParts0.001 s
    testAccept0.022 s
    testRemoveSelfReferences20.022 s
    -

    PinnedMavenInstallAnalyzerTest

    +testIterator +0.001 s
    +

    OpenSSLAnalyzerTest

    - - + + - - + + - - + + - -
    testAnalyzeOtherInstallJson0.004 s
    testGetName0 s
    testGetName0.022 s
    testVersionConstantExamples0 s
    testAnalyzePinnedInstallJson0.034 s
    testOpenSSLVersionHeaderFile0 s
    testSupportsFiles0.022 s
    -

    PipfileAnalyzerTest

    +testAccept +0 s
    +

    NvdApiDataSourceTest

    - - - - - - - - - -
    testGetName0.019 s
    testAnalyzePackageJson0.031 s
    testSupportsFiles0.022 s
    -

    DependencyVersionUtilTest

    +testExtractUrlData +0.006 s
    +

    DateUtilTest

    - - + + - - + + - -
    testParseVersion_String_boolean0 s
    testGetEpochValueInSeconds0.003 s
    testParsePreVersion0 s
    testWithinDateRange0.001 s
    testParseVersion_String0 s
    -

    AutoconfAnalyzerTest

    +testParseXmlDate +0.008 s + + +testWithinZonedDateRange +0.016 s
    +

    ComposerLockParserTest

    - - + + - + - - + + - - + +
    testAnalyzeReadableConfigureScript0.006 s
    testNotPackagesArray0 s
    testGetNametestValidComposerLock 0 s
    testSupportsFileExtension0.001 s
    testNotComposer0 s
    testAnalyzeConfigureScript0.010 s
    testNotJSON0.001 s
    +

    UtilsTest

    + - - - + +
    testAnalyzeConfigureAC10.001 s
    testParseUpdate0 s
    +

    IndexEntryTest

    + + - -
    testAnalyzeConfigureAC20.001 s
    -

    DescriptionEcosystemMapperTest

    +testSetName +0 s
    +

    HintParserTest

    - - + + - - + + - - + + - - - - - - - - - -
    testJspLinksDoNotCountScoring0.014 s
    testParseHintsXSDSelection0.003 s
    testSubsetFileExtensionsDoNotMatch0.003 s
    testParseHints_File0.005 s
    testPhpLinksDoNotCountScoring0.002 s
    testParseHints_InputStream0.006 s
    testSubsetKeywordsDoNotMatch0.002 s
    testDescriptionEcosystemMapper0.007 s
    testScoring0.002 s
    -

    PropertyTypeTest

    +testParseHintsWithRegex +0.006 s
    +

    NexusV3SearchTest

    - - + + - - - + + + - - + + - - -
    testSetGetValuetestNullSha1 + 0 s
    testMatches0 s
    -skipped-
    testIsRegextestMalformedSha1 + 0 s
    testIsCaseSensitive0 s
    -

    PomProjectInputStreamTest

    - + + + - - + + - - -
    -skipped-
    testFindSequencetestValidSha1 + 0 s
    testFilter0 s
    -

    ComposerLockAnalyzerTest

    - + + + - - - + + + - - - - - - -
    -skipped-
    testGetName0.020 s
    testMissingSha1 +0 s
    testAnalyzePackageJson0.036 s
    testSupportsFiles0.022 s
    -

    SuppressionHandlerTest

    - - - - -
    testHandler0.005 s
    -

    PoetryAnalyzerTest

    +- +skipped +-
    +

    VulnerableSoftwareTest

    - - + + - - + + - + - -
    testName0 s
    testCompareTo0.012 s
    testPoetryLock0.114 s
    testcompareUpdateAttributes0.002 s
    testPyprojectTomltestCompareVersionRange 0.002 s
    testSupportsFiles0.002 s
    -

    GolangModAnalyzerTest

    +testEquals +0.003 s
    +

    AutoconfAnalyzerTest

    - - + + - + - -
    testGoMod1.133 s
    testAnalyzeReadableConfigureScript0.001 s
    testNametestGetName 0.001 s
    testSupportsFiles0.001 s
    -

    MSBuildProjectAnalyzerTest

    - - - - + - - + + - - + + - - - - - -
    testSupportsFileExtensionstestSupportsFileExtension 0 s
    testGetAnalysisPhaze0 s
    testAnalyzeConfigureScript0.011 s
    testMSBuildProjectAnalysis_WithImports0.097 s
    testAnalyzeConfigureAC10.002 s
    testMSBuildProjectAnalysis0.015 s
    testGetAnalyzerName0 s
    -

    EngineTest

    - - - - -
    testScanFile18.32 s
    -

    UrlEcosystemMapperTest

    +testAnalyzeConfigureAC2 +0.001 s
    +

    PythonDistributionAnalyzerTest

    - - + + - - + + - - + + - -
    testGetEcosystemMustHandleNullCveReferences0.001 s
    testAnalyzeEggFolder0 s
    testGetEcosystemMustHandleNullCveItem0.002 s
    testGetName0 s
    testGetEcosystemMustHandleNullCve0.001 s
    testAnalyzeEggArchive0.031 s
    testUrlHostEcosystemMapper0.003 s
    -

    AssemblyAnalyzerTest

    - + + - - + + - - + + - - + + - - - - - -
    testAnalyzeEggArchiveNamedZip0.003 s
    testGetName6.837 s
    testAnalyzeWheel0.006 s
    testAnalysis0.637 s
    testAnalyzeEggInfoFolder0.002 s
    testWithSettingMono0.269 s
    testAnalyzeSitePackage0.001 s
    testNonexistent0.470 s
    testLog4Net0.570 s
    -

    CPEAnalyzerTest

    +testSupportsFiles +0.001 s
    +

    EscapeToolTest

    - - + + - + - + - - + + - + - + - -
    testCollectTerms0 s
    testCsvCpeConfidence0.013 s
    testBuildSearchBlanktestCsv 0 s
    testGetAnalysisPhasetestUrl 0 s
    testGetName0 s
    testXml0.001 s
    testAddEvidenceWithoutDuplicateTermstestHtml 0 s
    testBuildSearchtestJson 0 s
    testGetAnalyzerEnabledSettingKey0 s
    -

    DependencyCheckPropertiesTest

    - - - - -
    should_each_analyzer_have_default_enabled_property0.025 s
    -

    VersionFilterAnalyzerTest

    +testCsvIdentifiers +0 s
    +

    PerlCpanfileAnalyzerTest

    - + - + - - + + - - + + - + - - + + - -
    testAnalyzeDependencyPomManifesttestGetAnalysisPhase 0 s
    testGetAnalysisPhasetestGetName 0 s
    testGetName0 s
    testProcessFileContents0.005 s
    testAnalyzeDependency0 s
    testProcessDefaultZero0.002 s
    testAnalyzeDependencyFilePomtestPrepareContent 0.002 s
    testAnalyzeDependencyFileManifest0 s
    testProcessSingleFileContents0.001 s
    testGetAnalyzerEnabledSettingKey0 s
    -

    LibmanAnalyzerTest

    +testGetAnalyzerEnabledSettingKey +0.001 s
    +

    GrokParserTest

    - - - - - - + +
    testSupportedFileNames0.002 s
    testLibmanAnalysis0.007 s
    testParseSuppressionRulesV1dot00 s
    +

    CentralSearchTest

    + - - + + - -
    testGetAnalyzerName0.004 s
    testMultipleReturns0.335 s
    testGetAnalyzerEnabledSettingKey0.001 s
    -

    RetireJsAnalyzerFiltersTest

    - - - - -
    testFilters1.313 s
    -

    EvidenceTest

    - + + - + - - + + - -
    testNullSha10.001 s
    testCompareTotestMalformedSha1 0 s
    testHashcodeContract0.003 s
    testValidSha10.292 s
    testEquals0 s
    -

    CpeEcosystemCacheTest

    +testMissingSha1 +0.310 s
    +

    RubyGemspecAnalyzerTest

    - - - - - + - - - - - -
    testGetEcosystem0.002 s
    testGetChangedtestGetName 0 s
    testIsEmpty0.001 s
    testSetCache0 s
    -

    UtilsTest

    - + + - +
    testAnalyzePackageJson0.004 s
    testParseUpdatetestSupportsFiles 0 s

    ElixirMixAuditAnalyzerTest

    - + -
    testGetName0 s
    0.001 s
    testSupportsFiles0 s
    -

    TokenPairConcatenatingFilterTest

    +0 s
    +

    InterpolationUtilTest

    - -
    testEmptyTerm0.043 s
    -

    CvssUtilTest

    - - + + + - + - - - - - - + + - -
    testInterpolateMSBuild0.014 s
    testVectorToCvssV2testInterpolateNonexistentErasedMSBuild 0 s
    testVectorToCvssV30.001 s
    testCvssV3ScoreToSeverity0 s
    testInterpolateNonexistentErased0.001 s
    testCvssV2ScoreToSeverity0 s
    -

    XmlInputStreamTest

    +testInterpolate +0 s
    +

    ArtifactorySearchTest

    - - + + - - + + - - + + - -
    testToString0 s
    shouldProcessCorrectlyArtifactoryAnswerWithoutSha2560.127 s
    testRead_0args0 s
    shouldProcessCorrectlyArtifactoryAnswerWithMultipleMatches0.005 s
    testRead_3args0.003 s
    shouldProcessCorrectlyArtifactoryAnswerMisMatchSha2560.005 s
    testLength0 s
    -

    HintHandlerTest

    - - - - -
    testHandler0 s
    -

    NuspecAnalyzerTest

    - + + - - + + - - + + - - + + - -
    shouldFailWhenHostUnknown0.099 s
    testSupportsFileExtensions0 s
    shouldProcessCorrectlyArtifactoryAnswerMisMatchMd50.006 s
    testNuspecAnalysis0.009 s
    shouldProcessCorrectlyArtifactoryAnswerMisMatchSha10.004 s
    testGetAnalysisPhaze0 s
    shouldHandleNoMatches0.003 s
    testGetAnalyzerName0.001 s
    -

    SuppressionParserTest

    +shouldThrowExceptionWhenPatternCannotBeParsed +0.004 s + + +shouldProcessCorrectlyArtifactoryAnswer +0.005 s
    +

    DatabaseManagerTest

    - - - + +
    testParseSuppressionRulesV1dot00.255 s
    testInitialize1.161 s
    +

    SeverityUtilTest

    + + - - + +
    testParseSuppressionRulesV1dot10.020 s
    testEstimateCvssV20.008 s
    +

    PipfilelockAnalyzerTest

    + - - + + - -
    testParseSuppressionRulesV1dot20.113 s
    testGetName0.021 s
    testParseSuppressionRulesV1dot30.018 s
    -

    InterpolationUtilTest

    +testAnalyzePackageLock +0.037 s + + +testSupportsFiles +0.022 s
    +

    JarAnalyzerTest

    - - + + - + - - + + - -
    testInterpolateMSBuild0 s
    testAnalyze0.101 s
    testInterpolateNonexistentErasedMSBuildtestGetAnalysisPhase 0.001 s
    testInterpolateNonexistentErased0 s
    testGetName0.001 s
    testInterpolate0 s
    -

    DependencyTest

    - + + - + - - + + - - + + - - + + - + - - + +
    testAcceptSupportedExtensions0.001 s
    testGetSha1sumtestClassInformation 0.001 s
    testGetSoftwareIdentifiers0.001 s
    testAnalyzeDependency_SkipsMacOSMetaDataFile0.011 s
    testAddAsEvidenceWithExisting0.004 s
    testAddMatchingValues0.011 s
    testGetActualFilePath0 s
    testParseManifest0.038 s
    testAddAsEvidencetestGetAnalyzerEnabledSettingKey 0.001 s
    testAddAsEvidenceWithEmptyArtifact0 s
    testAnalyseDependency_SkipsNonZipFile0.008 s
    +

    UrlStringUtilsTest

    + - + - + - - - - - - + +
    testSetSha256sumtestIsUrl 0 s
    testAddSoftwareIdentifierstestContainsUrl 0 s
    testSetSha1sum0.001 s
    testSetFileName0 s
    testExtractImportantUrlData0.002 s
    +

    NpmCPEAnalyzerTest

    + - - + + - - + +
    testSetFilePath0.001 s
    testGetName0.023 s
    testGetFileName0 s
    testGetAnalyzerEnabledSettingKey0.021 s
    +

    FieldAnalyzerTest

    + - - - - - - + +
    testGetFilePath0.001 s
    testSetMd5sum0 s
    testAnalyzers0.039 s
    +

    NugetconfAnalyzerTest

    + - - + + - - + + - - + +
    testGetMd5sum0.001 s
    testSupportedFileNames0.004 s
    testAddVulnerableSoftwareIdentifier0.001 s
    testNugetconfAnalysis0.012 s
    testGetEvidence0.001 s
    testGetAnalyzerName0 s
    +

    NexusV2SearchTest

    + + + + + - - + + + + + + + + + + - - -
    testNullSha1 +0 s
    testGetSha256sum-skipped-
    testMalformedSha1 + 0 s
    -skipped-
    testSetActualFilePath0 s
    -

    FieldAnalyzerTest

    + +testValidSha1 + +0 s + +- +skipped +- + + +testMissingSha1 + +0 s + +- +skipped +-
    +

    PomUtilsTest

    - -
    testAnalyzers0.335 s
    -

    GolangDepAnalyzerTest

    +testReadPom_String_File +0.002 s + + +testReadPom_File +0.017 s
    +

    NpmPayloadBuilderTest

    - - + + - + - -
    testGopkgLock0.062 s
    testSanitizer0.004 s
    testNametestSkippedDependencies 0.002 s
    testSupportsFiles0.001 s
    -

    XPathNuspecParserTest

    +testSanitizePackage +0.188 s + + +testPayloadWithLockAndPackage +0.159 s
    +

    ComposerLockAnalyzerTest

    - - + + - - + + - -
    testGoodDocument0.022 s
    testGetName0.019 s
    testMissingDocument0.005 s
    testAnalyzePackageJson0.038 s
    testNotNuspec0.007 s
    -

    IndexEntryTest

    +testSupportsFiles +0.022 s
    +

    XmlEntityTest

    - -
    testSetName0 s
    -

    DependencyVersionTest

    +testFromNamedReference +0 s
    +

    LuceneUtilsTest

    - + - + - + - + - - + +
    testSetVersionPartstestAppendEscapedLuceneQuery 0 s
    testMatchesAtLeastThreeLevelstestIsKeyword 0 s
    testToStringtestEscapeLuceneQuery 0 s
    testCompareTotestEscapeLuceneQuery_null 0.001 s
    testParseVersion0.007 s
    testAppendEscapedLuceneQuery_null0 s
    +

    GolangModAnalyzerTest

    + + + + + - - + + - - + +
    testGoMod0.615 s
    testHashCode0 s
    testName0.002 s
    testEquals0 s
    testSupportsFiles0.001 s
    +

    GolangDepAnalyzerTest

    + + + + + - + - -
    testGopkgLock0.005 s
    testGetVersionPartstestName 0 s
    testIterator0 s
    -

    OssIndexAnalyzerTest

    +testSupportsFiles +0.005 s
    +

    CvssUtilTest

    - - + + - - + + - - + + - - + +
    should_analyzeDependency_only_warn_when_transport_error_from_sonatype0.042 s
    testVectorToCvssV20.001 s
    should_enrich_be_included_in_mutex_to_prevent_NPE0.456 s
    testVectorToCvssV30.010 s
    should_analyzeDependency_only_warn_when_socket_error_from_sonatype0.007 s
    testCvssV3ScoreToSeverity0 s
    should_analyzeDependency_fail_when_socket_error_from_sonatype0.005 s
    testCvssV2ScoreToSeverity0.001 s
    +

    XPathNuspecParserTest

    + - -
    should_analyzeDependency_return_a_dedicated_error_message_when_403_response_from_sonatype0.001 s
    -

    CweDBTest

    +testGoodDocument +0.003 s + + +testMissingDocument +0.002 s + + +testNotNuspec +0.004 s
    +

    PomParserTest

    - + - -
    testGetFullNametestParse_File 0 s
    testGetName0 s
    -

    VulnerableSoftwareTest

    - + + - - + + - - + + - - + + - -
    testParseWithoutDocTypeCleanup_InputStream0.004 s
    testCompareTo0 s
    testParse_InputStream0.003 s
    testcompareUpdateAttributes0 s
    testParseWithoutDocTypeCleanup_InputStreamWithDocType0.004 s
    testCompareVersionRange0.004 s
    testParseWithoutDocTypeCleanup0.005 s
    testEquals0.001 s
    -

    ArtifactorySearchTest

    +testParse_InputStreamWithDocType +0.003 s + + +testParseWithoutDocTypeCleanup_WithDocType +0.007 s
    +

    NodePackageAnalyzerTest

    - - + + - - + + - - + + - - + + - + - - + + - - + + - - - - - -
    shouldProcessCorrectlyArtifactoryAnswerWithoutSha2560.676 s
    testPackageLockV20.039 s
    shouldProcessCorrectlyArtifactoryAnswerWithMultipleMatches0.007 s
    testPackageLockV30.014 s
    shouldProcessCorrectlyArtifactoryAnswerMisMatchSha2560.005 s
    testAnalyzePackageJsonWithShrinkwrap0.024 s
    shouldFailWhenHostUnknown0.320 s
    testGetName0.007 s
    shouldProcessCorrectlyArtifactoryAnswerMisMatchMd5testLocalPackageDependency 0.007 s
    shouldProcessCorrectlyArtifactoryAnswerMisMatchSha10.004 s
    testAnalyzeShrinkwrapJson0.018 s
    shouldHandleNoMatches0.004 s
    testWithoutLock0.009 s
    shouldThrowExceptionWhenPatternCannotBeParsed0.004 s
    shouldProcessCorrectlyArtifactoryAnswer0.004 s
    -

    FilterTest

    +testSupportsFiles +0.006 s
    +

    EvidenceTest

    - - + + - -
    testFilter_Iterable0.003 s
    testCompareTo0 s
    testPasses0.001 s
    -

    AbstractSuppressionAnalyzerTest

    +testHashcodeContract +0.003 s + + +testEquals +0.001 s
    +

    PoetryAnalyzerTest

    - - + + - - + + - - + + - - - - - -
    testGetRulesFromMultipleSuppressionFiles0.329 s
    testName0.009 s
    testFailureToLocateSuppressionFileAnywhere0.064 s
    testPoetryLock0.194 s
    testGetRulesFromSuppressionFileFromURL0.110 s
    testPyprojectToml0.003 s
    testGetRulesFromSuppressionFileInClasspath0.106 s
    testGetSupportedExtensions0.001 s
    -

    AlphaNumericFilterTest

    +testSupportsFiles +0.002 s
    +

    MSBuildProjectAnalyzerTest

    - - + + - - + + - - + + - -
    testGarbage0.040 s
    testSupportsFileExtensions0 s
    testIncrementToken0.005 s
    testGetAnalysisPhaze0 s
    testRandomStrings0.240 s
    testMSBuildProjectAnalysis_WithImports0.093 s
    testEmptyTerm0.003 s
    -

    JarAnalyzerTest

    +testMSBuildProjectAnalysis +0.017 s + + +testGetAnalyzerName +0.001 s
    +

    PipAnalyzerTest

    - - + + - - + + - - - - - - + +
    testAnalyze0.041 s
    testGetName0.020 s
    testGetAnalysisPhase0.001 s
    testAnalyzePackageJson0.027 s
    testGetName0 s
    testAcceptSupportedExtensions0 s
    testSupportsFiles0.022 s
    +

    UrlTokenizingFilterTest

    + - - + + - + - - - - - - + +
    testClassInformation0.001 s
    testRandomStrings0.122 s
    testAnalyzeDependency_SkipsMacOSMetaDataFiletestEmptyTerm 0.008 s
    testAddMatchingValues0.005 s
    testParseManifest0.040 s
    testExamples0.011 s
    +

    AnalyzerServiceTest

    + - - + + - -
    testGetAnalyzerEnabledSettingKey0 s
    testGetAnalyzers_SpecificPhases0.022 s
    testAnalyseDependency_SkipsNonZipFile0.007 s
    -

    CveEcosystemMapperTest

    - + + - -
    testGetAnalyzers0.023 s
    testGetEcosystem0.006 s
    -

    ModelTest

    +testGetExperimentalAnalyzers +0.023 s
    +

    PyPACoreMetadataParserTest

    - - + + - + - - - - - + - - - - - + - - - - - - + +
    testGetLicenses0.005 s
    getProperties_should_support_colon_in_headerValue0.298 s
    testSetGroupIdgetProperties_should_throw_exception_for_too_large_major 0.001 s
    testSetParentArtifactId0 s
    testSetVersiongetProperties_should_support_folding_in_headerValue 0.001 s
    testSetArtifactId0 s
    testGetOrganizationgetProperties_should_properly_parse_multiline_description 0 s
    testGetParentGroupId0.002 s
    testGetParentVersion0 s
    getProperties_should_support_newer_minors0.007 s
    +

    DependencyMergingAnalyzerTest

    + - - + + - + - + - + - + - + - - - - - - - - - - + + - + - + - - - - - -
    testSetDescription0 s
    testGetAnalysisPhase0.004 s
    testSetOrganizationtestGetName 0 s
    testGetNametestMergeDependencies 0 s
    testGetParentArtifactIdtestEvaluateDependencies 0 s
    testGetGroupIdtestIsSameSwiftPackage 0.001 s
    testGetVersiontestGetMainDotnetDependency 0 s
    testGetDescription0.001 s
    testProcessProperties0.044 s
    testSetParentGroupId0 s
    testGetMainAndroidDependency0.036 s
    testSetParentVersiontestGetMainSwiftDependency 0 s
    testAddLicensetestGetAnalyzerEnabledSettingKey 0 s
    testSetName0 s
    testGetArtifactId0 s
    -

    PnpmAuditAnalyzerTest

    - + + - - - - - -
    testIsSameRubyGem0.001 s
    testNpmAuditParserCompatibility0.005 s
    testSupportsFiles0.001 s
    -

    NpmCPEAnalyzerTest

    +testGetMainGemspecDependency +0 s
    +

    SwiftAnalyzersTest

    - - + + - -
    testGetName0.021 s
    testSPMGetName0 s
    testGetAnalyzerEnabledSettingKey0.021 s
    -

    AnalyzerServiceTest

    - + + - - + + - - - - - -
    testSPMResolvedAnalyzerV10.002 s
    testGetAnalyzers_SpecificPhases0.027 s
    testSPMResolvedAnalyzerV20.002 s
    testGetAnalyzers0.024 s
    testGetExperimentalAnalyzers0.031 s
    -

    HintAnalyzerTest

    - + + - - + + - - + + - - - - - -
    testCocoaPodsPodfileAnalyzer0.002 s
    testAnalyze0.997 s
    testPodsGetName0 s
    testAnalyze_10.043 s
    testIsEnabledIsTrueByDefault0.001 s
    testGetAnalysisPhase0.023 s
    testGetName0.022 s
    -

    NexusV3SearchTest

    - - - - + - - - - - - + + + + + + - - - + + +
    testNullSha1 -testSPMSupportsFiles 0 s
    -skipped-
    testMalformedSha1 -testPodsSupportsFiles 0 s
    testSPMAnalyzer0.001 s
    -skipped-
    testCocoaPodsPodspecAnalyzer0.002 s
    +

    AnalysisTaskTest

    + - - - + + + - - - + + + - - - + + + - - -
    testValidSha1 -0 s
    shouldAnalyzeReturnsFalseIfTheFileTypeAnalyzerDoesNotAcceptTheDependency0.457 s
    -skipped-
    taskDoesNothingIfItShouldNotAnalyze0.107 s
    testMissingSha1 -0 s
    shouldAnalyzeReturnsTrueForNonFileTypeAnalyzers0.008 s
    -skipped-
    + +shouldAnalyzeReturnsTrueIfTheFileTypeAnalyzersAcceptsTheDependency +0.045 s + + +taskAnalyzes +0.051 s

    SuppressionRuleTest

    - + - + - + - + - + - + - + - + @@ -3371,7 +3304,7 @@

    SuppressionRuleTest

    - + @@ -3379,15 +3312,15 @@

    SuppressionRuleTest

    - + - + - + @@ -3395,15 +3328,15 @@

    SuppressionRuleTest

    - + - + - + @@ -3411,11 +3344,11 @@

    SuppressionRuleTest

    - + - + @@ -3423,11 +3356,11 @@

    SuppressionRuleTest

    - + - + @@ -3435,11 +3368,11 @@

    SuppressionRuleTest

    - + - + @@ -3447,7 +3380,7 @@

    SuppressionRuleTest

    - + @@ -3455,149 +3388,249 @@

    SuppressionRuleTest

    -
    testProcessVulnerabilityNames0.786 s
    0 s
    testCpeHasNoVersion0.002 s
    0 s
    testCpe0.001 s
    0 s
    testCve0.002 s
    0 s
    testCwe0.001 s
    0 s
    testBase0.002 s
    0 s
    testSha10.001 s
    0 s
    testCpeMatches0.002 s
    0 s
    testHasCvssBelow
    testProcess0.032 s
    0 s
    testGetSha1
    testProcessGAV0.003 s
    0 s
    testAddCvssBelow0.001 s
    0 s
    testFilePath0.001 s
    0 s
    testGetCvssBelow
    testSetFilePath0.010 s
    0 s
    testGetFilePath0.001 s
    0 s
    testAddCpe0.001 s
    0 s
    testAddCve
    testAddCwe0.001 s
    0 s
    testGetCpe0.001 s
    0 s
    testGetCve
    testGetCwe0.001 s
    0 s
    testHasCpe0.001 s
    0 s
    testHasCve
    testHasCwe0.001 s
    0 s
    testSetCvssBelow0.001 s
    0 s
    testSetSha1
    testSetCpe0.001 s
    0 s
    testSetCve
    testSetCwe0.001 s
    -

    ArchiveAnalyzerTest

    +0.001 s
    +

    DataCacheFactoryTest

    - - - + + +
    testRpmExtension -0 s
    testGetCache0.002 s
    +

    CpeMemoryIndexTest

    + + + + + - - - + + + - - - + + + - - -
    testGetDocument1.903 s
    -got: <true>, expected: is <false>-
    testParseQuery0.024 s
    testZippableExtensions -0 s
    testSearch_String_int0.355 s
    -got: <true>, expected: is <false>-
    -

    FileNameAnalyzerTest

    + +testIsOpen +0.394 s + + +testNumDocs +0.022 s + + +testGetInstance +0.022 s + + +testSearch_Query_int +0.023 s
    +

    CMakeAnalyzerTest

    - - + + - - + + - - + + - + + + + + + + + + + + + + + + + + + + + + + + + + +
    testAnalyze0.009 s
    testAnalyzeCMakeInfiniteLoop17.30 s
    testClose0 s
    testRemoveSelfReferences0.022 s
    testGetAnalysisPhase0 s
    testAnalyzeCMakeListsZlib0.025 s
    testGetNametestAnalyzeCMakeListsOpenCV0.040 s
    testAnalyzeCMakeListsPython0.031 s
    testGetName0.022 s
    testAnalyzeCMakeTempVariable0.031 s
    testAnalyzeCMakeListsOpenCV3rdParty0.031 s
    testAccept0.023 s
    testRemoveSelfReferences20.021 s
    +

    DependencyCheckPropertiesTest

    + + + + +
    should_each_analyzer_have_default_enabled_property0.035 s
    +

    DartAnalyzerTest

    + + + + + + + + + + + + + + + + - -
    testDartPubspecLockAnalyzer0.049 s
    testDartPubspecYamlAnalyzer0.011 s
    testDartAnalyzerGetName0.001 s
    testIsEnabledIsTrueByDefault 0 s
    testInitialize0 s
    -

    PipAnalyzerTest

    +testAnalyzerSupportsFiles +0.001 s + + +testDartPubspecYamlAnalyzerAddressbook +0.003 s
    +

    UrlEcosystemMapperTest

    - - + + - - + + - -
    testGetName0.018 s
    testGetEcosystemMustHandleNullCveReferences0.007 s
    testAnalyzePackageJson0.035 s
    testGetEcosystemMustHandleNullCveItem0.002 s
    testSupportsFiles0.022 s
    -

    PomParserTest

    +testGetEcosystemMustHandleNullCve +0.002 s + + +testUrlHostEcosystemMapper +0.003 s
    +

    PythonPackageAnalyzerTest

    - + - + - - + +
    testParse_FiletestAnalyzeSourceMetadata 0 s
    testParseWithoutDocTypeCleanup_InputStreamtestGetName 0 s
    testParse_InputStream0.004 s
    testSupportsFileExtension0.001 s
    +

    FalsePositiveAnalyzerTest

    + + + + + - - + + - - + + - - + + - -
    testRemoveBadMatches0 s
    testParseWithoutDocTypeCleanup_InputStreamWithDocType0.006 s
    testGetAnalysisPhase0 s
    testParseWithoutDocTypeCleanup0.008 s
    testGetName0 s
    testParse_InputStreamWithDocType0.003 s
    testAnalyzeDependency0 s
    testParseWithoutDocTypeCleanup_WithDocType0.009 s
    -

    LuceneUtilsTest

    +testGetAnalyzerEnabledSettingKey +0 s
    +

    MavenArtifactTest

    + + + + + + + + +
    getPomUrl0 s
    getPomUrlWithQualifier0 s
    +

    AbstractFileTypeAnalyzerTest

    + + + + +
    testNewHashSet0 s
    +

    OssIndexAnalyzerTest

    - - + + - - + + - - + + - - + + - -
    testAppendEscapedLuceneQuery0 s
    should_analyzeDependency_only_warn_when_transport_error_from_sonatype0.044 s
    testIsKeyword0 s
    should_enrich_be_included_in_mutex_to_prevent_NPE0.744 s
    testEscapeLuceneQuery0 s
    should_analyzeDependency_only_warn_when_socket_error_from_sonatype0.004 s
    testEscapeLuceneQuery_null0.001 s
    should_analyzeDependency_fail_when_socket_error_from_sonatype0.004 s
    testAppendEscapedLuceneQuery_null0.001 s
    -

    YarnAuditAnalyzerTest

    +should_analyzeDependency_return_a_dedicated_error_message_when_403_response_from_sonatype +0.003 s
    +

    FilterTest

    - - + + - -
    testGetName0 s
    testFilter_Iterable0.324 s
    testSupportsFiles0 s
    -

    DateUtilTest

    +testPasses +0.001 s
    +

    XmlInputStreamTest

    - + - + - + - -
    testGetEpochValueInSecondstestToString 0 s
    testWithinDateRangetestRead_0args 0 s
    testParseXmlDatetestRead_3args 0 s
    testWithinZonedDateRange0.013 s
    -

    DatabaseManagerTest

    +testLength +0 s
    +

    EngineTest

    - -
    testInitialize1.696 s
    +testScanFile +0.026 s
    +

    DependencyCheckBaseSuppressionTest

    + + + + +
    testAllSuppressionsHaveBaseAttribute0.050 s

    MixAuditJsonParserTest

    @@ -3607,280 +3640,262 @@

    MixAuditJsonParserTest

    -
    testEmptyResult0 s
    -

    NodeAuditAnalyzerTest

    +0 s
    +

    RetireJsAnalyzerFiltersTest

    - - - + +
    testGetName0 s
    testFilters2.179 s
    +

    GrokHandlerTest

    + + - -
    testSupportsFiles0.001 s
    -

    FalsePositiveAnalyzerTest

    +testHandler +0.001 s
    +

    CveEcosystemMapperTest

    - - + +
    testRemoveBadMatches0 s
    testGetEcosystem0.008 s
    +

    VersionFilterAnalyzerTest

    + + + + + - + - + - - - - - -
    testAnalyzeDependencyPomManifest0.001 s
    testGetAnalysisPhasetestGetAnalysisPhase 0 s
    testGetNametestGetName 0 s
    testAnalyzeDependency0 s
    testGetAnalyzerEnabledSettingKey0 s
    -

    CentralAnalyzerTest

    - + + - - + + - - + + - -
    testAnalyzeDependency0.001 s
    testFetchMavenArtifactsWithoutException0.179 s
    testAnalyzeDependencyFilePom0.001 s
    testFetchMavenArtifactsAlwaysThrowsIOException0.003 s
    testAnalyzeDependencyFileManifest0 s
    testFetchMavenArtifactsRethrowsFileNotFoundException0.001 s
    -

    UrlStringUtilsTest

    +testGetAnalyzerEnabledSettingKey +0 s
    +

    DependencyVersionUtilTest

    - - + + - - + + - -
    testIsUrl0 s
    testParseVersion_String_boolean0.005 s
    testContainsUrl0 s
    testParsePreVersion0.001 s
    testExtractImportantUrlData0 s
    -

    MavenArtifactTest

    +testParseVersion_String +0.008 s
    +

    AlphaNumericFilterTest

    - - + + - -
    getPomUrl0 s
    testRandomStrings0.210 s
    getPomUrlWithQualifier0 s
    -

    AbstractFileTypeAnalyzerTest

    - + + - -
    testIncrementToken0.008 s
    testNewHashSet0 s
    -

    RubyBundlerAnalyzerTest

    +testEmptyTerm +0.011 s + + +testGarbage +0.009 s
    +

    CweDBTest

    - + - - - - - -
    testGetNametestGetFullName 0 s
    testAnalyzeGemspec0 s
    testSupportsFiles0 s
    -

    SeverityUtilTest

    +testGetName +0 s
    +

    PinnedMavenInstallAnalyzerTest

    - -
    testEstimateCvssV20 s
    -

    DataCacheFactoryTest

    - + + + + + + - -
    testAnalyzeOtherInstallJson0.033 s
    testGetName0.022 s
    testGetCache0 s
    -

    AnalysisTaskTest

    +testAnalyzePinnedInstallJson +0.037 s + + +testSupportsFiles +0.023 s
    +

    PnpmAuditAnalyzerTest

    - - + + - - + +
    shouldAnalyzeReturnsFalseIfTheFileTypeAnalyzerDoesNotAcceptTheDependency0.501 s
    testNpmAuditParserCompatibility0 s
    taskDoesNothingIfItShouldNotAnalyze0.123 s
    testSupportsFiles0 s
    +

    PipfileAnalyzerTest

    + - - + + - - + + - -
    shouldAnalyzeReturnsTrueForNonFileTypeAnalyzers0.009 s
    testGetName0.020 s
    shouldAnalyzeReturnsTrueIfTheFileTypeAnalyzersAcceptsTheDependency0.048 s
    testAnalyzePackageJson0.035 s
    taskAnalyzes0.050 s
    -

    PipfilelockAnalyzerTest

    +testSupportsFiles +0.023 s
    +

    RubyBundlerAnalyzerTest

    - - + + - - + + - -
    testGetName0.022 s
    testGetName0 s
    testAnalyzePackageLock0.032 s
    testAnalyzeGemspec0 s
    testSupportsFiles0.022 s
    -

    PyPACoreMetadataParserTest

    +testSupportsFiles +0 s
    +

    CPEAnalyzerTest

    - + - + - + - + - -
    getProperties_should_support_colon_in_headerValuetestCollectTerms 0 s
    getProperties_should_throw_exception_for_too_large_majortestBuildSearchBlank 0 s
    getProperties_should_support_folding_in_headerValuetestGetAnalysisPhase 0 s
    getProperties_should_properly_parse_multiline_descriptiontestGetName 0 s
    getProperties_should_support_newer_minors0 s
    -

    NpmPayloadBuilderTest

    - - - - - + + - - + + - - - - - -
    testSanitizer0.013 s
    testAddEvidenceWithoutDuplicateTerms0 s
    testSkippedDependencies0.003 s
    testBuildSearch0.001 s
    testSanitizePackage0.208 s
    testPayloadWithLockAndPackage0.177 s
    +testGetAnalyzerEnabledSettingKey +0 s

    SearchFieldAnalyzerTest

    -
    testGetStopWords0.008 s
    -

    DartAnalyzerTest

    +0 s
    +

    EngineVersionCheckTest

    - - - - - - - - - - - - - - - - - - + + - -
    testDartPubspecLockAnalyzer0.050 s
    testDartPubspecYamlAnalyzer0.010 s
    testDartAnalyzerGetName0 s
    testIsEnabledIsTrueByDefault0.001 s
    testAnalyzerSupportsFiles0 s
    testShouldUpdate0.648 s
    testDartPubspecYamlAnalyzerAddressbook0.004 s

    +testGetCurrentReleaseVersion +0.021 s

    Failure Details

    [Summary] [Package List] [Test Cases]


    - + - + - + - + - + - + - + - + - + - + - + - + - + -
    testNullSha1
    testRpmExtension
    -skipped: skipped
    skipped: got: <true>, expected: is <false>
    testMalformedSha1
    testZippableExtensions
    -skipped: skipped
    skipped: got: <true>, expected: is <false>
    testValidSha1
    testNullSha1
    - skipped: skipped
    testMissingSha1
    testMalformedSha1
    - skipped: skipped
    testNullSha1
    testValidSha1
    - skipped: skipped
    testMalformedSha1
    testMissingSha1
    - skipped: skipped
    testValidSha1
    testNullSha1
    - skipped: skipped
    testMissingSha1
    testMalformedSha1
    - skipped: skipped
    testRpmExtension
    testValidSha1
    -skipped: got: <true>, expected: is <false>
    skipped: skipped
    testZippableExtensions
    testMissingSha1
    -skipped: got: <true>, expected: is <false>

    +skipped: skipped

    diff --git a/dependency-check-core/taglist.html b/dependency-check-core/taglist.html index e041a29a329..aa23dfd52a4 100644 --- a/dependency-check-core/taglist.html +++ b/dependency-check-core/taglist.html @@ -1,13 +1,13 @@ - + dependency-check-core – Tag List report @@ -41,8 +41,8 @@
  • documentation/
  • dependency-check/
  • Tag List report
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • @@ -98,11 +98,11 @@

    Tag List Report

    Tag strings used by tag class Todo Work -65 +68 todo, FIXME

    Each tag is detailed below:

    Todo Work

    -

    Number of occurrences found in the code: 65

    +

    Number of occurrences found in the code: 68

    @@ -321,90 +321,105 @@

    Todo Work

    - + + + + + + + + + + - + - + - + - + + + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - +
    org.owasp.dependencycheck.Engine could be checked afterwards 236
    org.owasp.dependencycheck.data.nvdcve.CveItemOperatororg.owasp.dependencycheck.data.nvdcve.CveDB Line
    this is may also be an issue for MS SQL, if an issue is created we'll just need981
    this is may also be an issue for MS SQL, if an issue is created we'll just need1661
    org.owasp.dependencycheck.data.nvdcve.CveItemOperatorLine
    the following was added to reduce the need for the slow UPDATE_ECOSYSTEM2 query the following should be analyzed to determine if an ecosystem should be returned. Note that these all have 'bindings' in the description of a vulnerability in more than one case these were related to language bindings; as such the list need to be reviewed and refined. 77
    org.owasp.dependencycheck.data.nvdcve.DriverLoader Line
    add usage count so we don't de-register a driver that is in use. 152
    org.owasp.dependencycheck.data.update.KnownExploitedDataSource Line
    - add all the proxy config, likely use the same as configured for NVD 78
    org.owasp.dependencycheck.data.update.NvdApiDataSourceTestLine
    review the generated test code and remove the default call to fail. fail("The test case is a prototype."); }74
    org.owasp.dependencycheck.dependency.Dependency Line
    the following assertion should be removed after initial testing and implementation 495
    - should we check for type of identifier? I.e. could we see a Purl and GenericIdentifier with the same value 501
    org.owasp.dependencycheck.dependency.VulnerableSoftware Line
    implement versionStart etc. 197
    - if the vulnerablity has an update we are might not be collecting it correctly... as such, this check might cause FN if the CVE has an update in the data set 200
    - if the vulnerablity has an update we are might not be collecting it correctly... as such, this check might cause FN if the CVE has an update in the data set 341
    org.owasp.dependencycheck.dependency.naming.PurlIdentifier Line
    update package url implementation to implement compare.. 219
    org.owasp.dependencycheck.processing.BundlerAuditProcessor Line
    add package URL - note, this may require parsing the gemfile.lock and getting the version for each entry 326
    org.owasp.dependencycheck.utils.DependencyVersion Line
    steal better version of code from compareTo 154
    org.owasp.dependencycheck.utils.DependencyVersionTest Line
    (code review): should this be here/do something? assertEquals("0", parts.get(2)); 54
    org.owasp.dependencycheck.utils.PEParser Line
    - name table refer to data outside image directory for (int i = 0; i < id.size(); i++) { ImportDirectoryEntry e = id.getEntry(i); dr.jumpTo(e.getNameRVA() - baseAddress); String name = dr.readUtf(); dr.jumpTo(e.getImportLookupTableRVA() - baseAddress); ImportDirectoryTable nt = readImportDirectoryTable(dr, baseAddress); dr.jumpTo(e.getImportAddressTableRVA() - baseAddress); ImportDirectoryTable at = null; // readImportDirectoryTable(dr, // baseAddress); id.add(name, nt, at); } 565
    this is an index into the export table 608
    org.owasp.dependencycheck.utils.WriteLock Line
    - this 30 minute check needs to be configurable. 255
    org.owasp.dependencycheck.xml.suppression.SuppressionRule Line
    validate this comparison 529
    check for regex - not just type 613
    diff --git a/dependency-check-core/team.html b/dependency-check-core/team.html index 88b79fb838f..4e01a62cc71 100644 --- a/dependency-check-core/team.html +++ b/dependency-check-core/team.html @@ -1,13 +1,13 @@ - + dependency-check-core – Project Team @@ -41,8 +41,8 @@
  • documentation/
  • dependency-check/
  • Project Team
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • diff --git a/dependency-check-core/xref-test/allclasses-frame.html b/dependency-check-core/xref-test/allclasses-frame.html index e84b64ffaf9..620fae9a44f 100644 --- a/dependency-check-core/xref-test/allclasses-frame.html +++ b/dependency-check-core/xref-test/allclasses-frame.html @@ -277,6 +277,9 @@

    All Classes

  • NuspecAnalyzerTest +
  • +
  • + NvdApiDataSourceTest
  • OpenSSLAnalyzerTest diff --git a/dependency-check-core/xref-test/index.html b/dependency-check-core/xref-test/index.html index 4c7cd7b9fb1..4f4ec95d459 100644 --- a/dependency-check-core/xref-test/index.html +++ b/dependency-check-core/xref-test/index.html @@ -4,7 +4,7 @@ - Dependency-Check Core 9.0.4 Reference + Dependency-Check Core 9.0.5 Reference diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/agent/package-frame.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/agent/package-frame.html index d2caab002a5..66397eb7c98 100644 --- a/dependency-check-core/xref-test/org/owasp/dependencycheck/agent/package-frame.html +++ b/dependency-check-core/xref-test/org/owasp/dependencycheck/agent/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.agent + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.agent diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/agent/package-summary.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/agent/package-summary.html index 3b88297a0c4..794974c3b7e 100644 --- a/dependency-check-core/xref-test/org/owasp/dependencycheck/agent/package-summary.html +++ b/dependency-check-core/xref-test/org/owasp/dependencycheck/agent/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.agent + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.agent diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/analyzer/package-frame.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/analyzer/package-frame.html index 8a808e4ca4c..41774bc5e06 100644 --- a/dependency-check-core/xref-test/org/owasp/dependencycheck/analyzer/package-frame.html +++ b/dependency-check-core/xref-test/org/owasp/dependencycheck/analyzer/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.analyzer + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.analyzer diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/analyzer/package-summary.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/analyzer/package-summary.html index e28271f1cdc..46a9b3b78ff 100644 --- a/dependency-check-core/xref-test/org/owasp/dependencycheck/analyzer/package-summary.html +++ b/dependency-check-core/xref-test/org/owasp/dependencycheck/analyzer/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.analyzer + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.analyzer diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/artifactory/package-frame.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/artifactory/package-frame.html index 43024ca24d1..67400391028 100644 --- a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/artifactory/package-frame.html +++ b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/artifactory/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.data.artifactory + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.data.artifactory diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/artifactory/package-summary.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/artifactory/package-summary.html index 4745d95437b..8b50de670d4 100644 --- a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/artifactory/package-summary.html +++ b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/artifactory/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.data.artifactory + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.data.artifactory diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/cache/package-frame.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/cache/package-frame.html index ecc8662eba1..b3c8cc371ae 100644 --- a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/cache/package-frame.html +++ b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/cache/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.data.cache + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.data.cache diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/cache/package-summary.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/cache/package-summary.html index a5359ee646c..caa33add080 100644 --- a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/cache/package-summary.html +++ b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/cache/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.data.cache + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.data.cache diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/central/package-frame.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/central/package-frame.html index 012ea44b0dd..1e958acd2c7 100644 --- a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/central/package-frame.html +++ b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/central/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.data.central + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.data.central diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/central/package-summary.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/central/package-summary.html index 0eb3004b2e4..c43238d3524 100644 --- a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/central/package-summary.html +++ b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/central/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.data.central + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.data.central diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/composer/package-frame.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/composer/package-frame.html index ff3db28e3af..041ebe15cf4 100644 --- a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/composer/package-frame.html +++ b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/composer/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.data.composer + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.data.composer diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/composer/package-summary.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/composer/package-summary.html index 8e39ab2b1e9..1f2fdae2278 100644 --- a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/composer/package-summary.html +++ b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/composer/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.data.composer + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.data.composer diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/cpe/package-frame.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/cpe/package-frame.html index 1e6d049b5d2..d132a7670ad 100644 --- a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/cpe/package-frame.html +++ b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/cpe/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.data.cpe + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.data.cpe diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/cpe/package-summary.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/cpe/package-summary.html index 34265205efb..1237e14b9ae 100644 --- a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/cpe/package-summary.html +++ b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/cpe/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.data.cpe + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.data.cpe diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/cwe/package-frame.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/cwe/package-frame.html index 6ed49ac02b1..ba8de6ad80f 100644 --- a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/cwe/package-frame.html +++ b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/cwe/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.data.cwe + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.data.cwe diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/cwe/package-summary.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/cwe/package-summary.html index 4e182f00106..49d079fcba1 100644 --- a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/cwe/package-summary.html +++ b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/cwe/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.data.cwe + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.data.cwe diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/elixir/package-frame.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/elixir/package-frame.html index e1824f7b0a4..6b79555c3ca 100644 --- a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/elixir/package-frame.html +++ b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/elixir/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.data.elixir + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.data.elixir diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/elixir/package-summary.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/elixir/package-summary.html index 6b3417d4e28..898fbd57838 100644 --- a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/elixir/package-summary.html +++ b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/elixir/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.data.elixir + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.data.elixir diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/golang/package-frame.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/golang/package-frame.html index d84fca15500..569926c42fd 100644 --- a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/golang/package-frame.html +++ b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/golang/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.data.golang + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.data.golang diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/golang/package-summary.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/golang/package-summary.html index f9f9ef2cb7e..59bfd007496 100644 --- a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/golang/package-summary.html +++ b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/golang/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.data.golang + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.data.golang diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/lucene/package-frame.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/lucene/package-frame.html index 4779911565d..dbbe0c97db8 100644 --- a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/lucene/package-frame.html +++ b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/lucene/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.data.lucene + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.data.lucene diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/lucene/package-summary.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/lucene/package-summary.html index a9078c7452d..45c10ecd2e9 100644 --- a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/lucene/package-summary.html +++ b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/lucene/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.data.lucene + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.data.lucene diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/nexus/package-frame.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/nexus/package-frame.html index 8c5dda52814..ef69c132a4e 100644 --- a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/nexus/package-frame.html +++ b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/nexus/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.data.nexus + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.data.nexus diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/nexus/package-summary.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/nexus/package-summary.html index 873b4ad68e3..751360144a3 100644 --- a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/nexus/package-summary.html +++ b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/nexus/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.data.nexus + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.data.nexus diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/nodeaudit/package-frame.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/nodeaudit/package-frame.html index 6c03f2d5da5..5ac98274760 100644 --- a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/nodeaudit/package-frame.html +++ b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/nodeaudit/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.data.nodeaudit + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.data.nodeaudit diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/nodeaudit/package-summary.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/nodeaudit/package-summary.html index b666d5a1cce..c79322c0376 100644 --- a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/nodeaudit/package-summary.html +++ b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/nodeaudit/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.data.nodeaudit + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.data.nodeaudit diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/nuget/package-frame.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/nuget/package-frame.html index 9095d8c3ba6..8f3304a43ec 100644 --- a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/nuget/package-frame.html +++ b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/nuget/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.data.nuget + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.data.nuget diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/nuget/package-summary.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/nuget/package-summary.html index 0b27f40289c..01f1d565f6d 100644 --- a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/nuget/package-summary.html +++ b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/nuget/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.data.nuget + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.data.nuget diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/nvd/ecosystem/package-frame.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/nvd/ecosystem/package-frame.html index 21e3faece59..93c9fd909c8 100644 --- a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/nvd/ecosystem/package-frame.html +++ b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/nvd/ecosystem/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.data.nvd.ecosystem + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.data.nvd.ecosystem diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/nvd/ecosystem/package-summary.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/nvd/ecosystem/package-summary.html index 7b7b2c2b4b5..21c84f7911b 100644 --- a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/nvd/ecosystem/package-summary.html +++ b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/nvd/ecosystem/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.data.nvd.ecosystem + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.data.nvd.ecosystem diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/nvdcve/package-frame.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/nvdcve/package-frame.html index c1a70065fca..65efc0ec442 100644 --- a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/nvdcve/package-frame.html +++ b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/nvdcve/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.data.nvdcve + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.data.nvdcve diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/nvdcve/package-summary.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/nvdcve/package-summary.html index 097f436939b..97b71098b66 100644 --- a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/nvdcve/package-summary.html +++ b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/nvdcve/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.data.nvdcve + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.data.nvdcve diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/update/NvdApiDataSourceTest.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/update/NvdApiDataSourceTest.html new file mode 100644 index 00000000000..32592bafca2 --- /dev/null +++ b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/update/NvdApiDataSourceTest.html @@ -0,0 +1,90 @@ + + + +NvdApiDataSourceTest xref + + + +
    +1   /*
    +2    * This file is part of dependency-check-core.
    +3    *
    +4    * Licensed under the Apache License, Version 2.0 (the "License");
    +5    * you may not use this file except in compliance with the License.
    +6    * You may obtain a copy of the License at
    +7    *
    +8    *     http://www.apache.org/licenses/LICENSE-2.0
    +9    *
    +10   * Unless required by applicable law or agreed to in writing, software
    +11   * distributed under the License is distributed on an "AS IS" BASIS,
    +12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +13   * See the License for the specific language governing permissions and
    +14   * limitations under the License.
    +15   *
    +16   * Copyright (c) 2023 Jeremy Long. All Rights Reserved.
    +17   */
    +18  package org.owasp.dependencycheck.data.update;
    +19  
    +20  import java.time.ZonedDateTime;
    +21  import java.util.Map;
    +22  import java.util.Properties;
    +23  import org.junit.After;
    +24  import org.junit.AfterClass;
    +25  import org.junit.Before;
    +26  import org.junit.BeforeClass;
    +27  import org.junit.Test;
    +28  import static org.junit.Assert.*;
    +29  import org.owasp.dependencycheck.Engine;
    +30  
    +31  /**
    +32   *
    +33   * @author Jeremy Long
    +34   */
    +35  public class NvdApiDataSourceTest {
    +36  
    +37      /**
    +38       * Test of extractUrlData method, of class NvdApiDataSource.
    +39       */
    +40      @Test
    +41      public void testExtractUrlData() {
    +42          String nvdDataFeedUrl = "https://internal.server/nist/nvdcve-{0}.json.gz";
    +43          NvdApiDataSource instance = new NvdApiDataSource();
    +44          String expectedUrl = "https://internal.server/nist/";
    +45          String expectedPattern = "nvdcve-{0}.json.gz";
    +46          NvdApiDataSource.UrlData result = instance.extractUrlData(nvdDataFeedUrl);
    +47  
    +48          nvdDataFeedUrl = "https://internal.server/nist/";
    +49          expectedUrl = "https://internal.server/nist/";
    +50          result = instance.extractUrlData(nvdDataFeedUrl);
    +51  
    +52          assertEquals(expectedUrl, result.getUrl());
    +53          assertNull(result.getPattern());
    +54          
    +55          nvdDataFeedUrl = "https://internal.server/nist";
    +56          expectedUrl = "https://internal.server/nist/";
    +57          result = instance.extractUrlData(nvdDataFeedUrl);
    +58  
    +59          assertEquals(expectedUrl, result.getUrl());
    +60          assertNull(result.getPattern());
    +61      }
    +62  
    +63  //    /**
    +64  //     * Test of getRemoteCacheProperties method, of class NvdApiDataSource.
    +65  //     */
    +66  //    @Test
    +67  //    public void testGetRemoteCacheProperties() throws Exception {
    +68  //        System.out.println("getRemoteCacheProperties");
    +69  //        String url = "";
    +70  //        NvdApiDataSource instance = new NvdApiDataSource();
    +71  //        Properties expResult = null;
    +72  //        Properties result = instance.getRemoteCacheProperties(url);
    +73  //        assertEquals(expResult, result);
    +74  //        // TODO review the generated test code and remove the default call to fail.
    +75  //        fail("The test case is a prototype.");
    +76  //    }
    +77  }
    +
    +
    + + + diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/update/cisa/package-frame.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/update/cisa/package-frame.html index 9c845959b2e..b1b6fdaf0f9 100644 --- a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/update/cisa/package-frame.html +++ b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/update/cisa/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.data.update.cisa + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.data.update.cisa diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/update/cisa/package-summary.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/update/cisa/package-summary.html index 17d21326209..b15421f8f99 100644 --- a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/update/cisa/package-summary.html +++ b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/update/cisa/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.data.update.cisa + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.data.update.cisa diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/update/cpe/package-frame.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/update/cpe/package-frame.html index d25756488a0..c1214350ee1 100644 --- a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/update/cpe/package-frame.html +++ b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/update/cpe/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.data.update.cpe + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.data.update.cpe diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/update/cpe/package-summary.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/update/cpe/package-summary.html index 135ba29760e..6355a316a56 100644 --- a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/update/cpe/package-summary.html +++ b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/update/cpe/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.data.update.cpe + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.data.update.cpe diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/update/package-frame.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/update/package-frame.html index a6f678ad3cb..5737b86dfce 100644 --- a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/update/package-frame.html +++ b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/update/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.data.update + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.data.update @@ -17,6 +17,9 @@

    Classes

    diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/update/package-summary.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/update/package-summary.html index d073b7fdb22..e67168d179b 100644 --- a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/update/package-summary.html +++ b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/update/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.data.update + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.data.update @@ -39,6 +39,11 @@

    Package org.owasp.dependencycheck.data.update

    EngineVersionCheckTest + + + + NvdApiDataSourceTest + diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/dependency/package-frame.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/dependency/package-frame.html index 43efa82fac3..dde823db814 100644 --- a/dependency-check-core/xref-test/org/owasp/dependencycheck/dependency/package-frame.html +++ b/dependency-check-core/xref-test/org/owasp/dependencycheck/dependency/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.dependency + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.dependency diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/dependency/package-summary.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/dependency/package-summary.html index 6f29f3e1499..d55564e9bc4 100644 --- a/dependency-check-core/xref-test/org/owasp/dependencycheck/dependency/package-summary.html +++ b/dependency-check-core/xref-test/org/owasp/dependencycheck/dependency/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.dependency + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.dependency diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/package-frame.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/package-frame.html index 489a71e98c2..4b67ec27ec0 100644 --- a/dependency-check-core/xref-test/org/owasp/dependencycheck/package-frame.html +++ b/dependency-check-core/xref-test/org/owasp/dependencycheck/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/package-summary.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/package-summary.html index 07f7701212f..40ed9f8a3fa 100644 --- a/dependency-check-core/xref-test/org/owasp/dependencycheck/package-summary.html +++ b/dependency-check-core/xref-test/org/owasp/dependencycheck/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/reporting/package-frame.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/reporting/package-frame.html index ccbaa9fc864..b99e934f97a 100644 --- a/dependency-check-core/xref-test/org/owasp/dependencycheck/reporting/package-frame.html +++ b/dependency-check-core/xref-test/org/owasp/dependencycheck/reporting/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.reporting + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.reporting diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/reporting/package-summary.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/reporting/package-summary.html index 36ff03df23a..367e63e1c3f 100644 --- a/dependency-check-core/xref-test/org/owasp/dependencycheck/reporting/package-summary.html +++ b/dependency-check-core/xref-test/org/owasp/dependencycheck/reporting/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.reporting + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.reporting diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/resources/package-frame.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/resources/package-frame.html index e12037977a0..f33d1244842 100644 --- a/dependency-check-core/xref-test/org/owasp/dependencycheck/resources/package-frame.html +++ b/dependency-check-core/xref-test/org/owasp/dependencycheck/resources/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.resources + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.resources diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/resources/package-summary.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/resources/package-summary.html index 6a7d44c02af..72fbadc43de 100644 --- a/dependency-check-core/xref-test/org/owasp/dependencycheck/resources/package-summary.html +++ b/dependency-check-core/xref-test/org/owasp/dependencycheck/resources/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.resources + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.resources diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/utils/package-frame.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/utils/package-frame.html index e159fc1b649..f33857b83fe 100644 --- a/dependency-check-core/xref-test/org/owasp/dependencycheck/utils/package-frame.html +++ b/dependency-check-core/xref-test/org/owasp/dependencycheck/utils/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.utils + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.utils diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/utils/package-summary.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/utils/package-summary.html index f468e92488d..27e6f75010d 100644 --- a/dependency-check-core/xref-test/org/owasp/dependencycheck/utils/package-summary.html +++ b/dependency-check-core/xref-test/org/owasp/dependencycheck/utils/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.utils + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.utils diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/xml/assembly/package-frame.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/xml/assembly/package-frame.html index 3c329e36c6a..9b570ca765d 100644 --- a/dependency-check-core/xref-test/org/owasp/dependencycheck/xml/assembly/package-frame.html +++ b/dependency-check-core/xref-test/org/owasp/dependencycheck/xml/assembly/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.xml.assembly + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.xml.assembly diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/xml/assembly/package-summary.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/xml/assembly/package-summary.html index c10b808fa2c..2b8970aabd5 100644 --- a/dependency-check-core/xref-test/org/owasp/dependencycheck/xml/assembly/package-summary.html +++ b/dependency-check-core/xref-test/org/owasp/dependencycheck/xml/assembly/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.xml.assembly + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.xml.assembly diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/xml/hints/package-frame.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/xml/hints/package-frame.html index 486db86e483..bdef78bf609 100644 --- a/dependency-check-core/xref-test/org/owasp/dependencycheck/xml/hints/package-frame.html +++ b/dependency-check-core/xref-test/org/owasp/dependencycheck/xml/hints/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.xml.hints + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.xml.hints diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/xml/hints/package-summary.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/xml/hints/package-summary.html index c995403ecc5..5938eae6bb1 100644 --- a/dependency-check-core/xref-test/org/owasp/dependencycheck/xml/hints/package-summary.html +++ b/dependency-check-core/xref-test/org/owasp/dependencycheck/xml/hints/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.xml.hints + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.xml.hints diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/xml/package-frame.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/xml/package-frame.html index 39b600179ac..ddefdc3f587 100644 --- a/dependency-check-core/xref-test/org/owasp/dependencycheck/xml/package-frame.html +++ b/dependency-check-core/xref-test/org/owasp/dependencycheck/xml/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.xml + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.xml diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/xml/package-summary.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/xml/package-summary.html index c393dad798d..488ae6fdb53 100644 --- a/dependency-check-core/xref-test/org/owasp/dependencycheck/xml/package-summary.html +++ b/dependency-check-core/xref-test/org/owasp/dependencycheck/xml/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.xml + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.xml diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/xml/pom/package-frame.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/xml/pom/package-frame.html index d6795fa35b7..9788aaff439 100644 --- a/dependency-check-core/xref-test/org/owasp/dependencycheck/xml/pom/package-frame.html +++ b/dependency-check-core/xref-test/org/owasp/dependencycheck/xml/pom/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.xml.pom + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.xml.pom diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/xml/pom/package-summary.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/xml/pom/package-summary.html index 5ec17e45aa4..18ebe6d33de 100644 --- a/dependency-check-core/xref-test/org/owasp/dependencycheck/xml/pom/package-summary.html +++ b/dependency-check-core/xref-test/org/owasp/dependencycheck/xml/pom/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.xml.pom + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.xml.pom diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/xml/suppression/package-frame.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/xml/suppression/package-frame.html index 5289d67f92e..c7b45881470 100644 --- a/dependency-check-core/xref-test/org/owasp/dependencycheck/xml/suppression/package-frame.html +++ b/dependency-check-core/xref-test/org/owasp/dependencycheck/xml/suppression/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.xml.suppression + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.xml.suppression diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/xml/suppression/package-summary.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/xml/suppression/package-summary.html index 0c3426f7050..9506c6685a1 100644 --- a/dependency-check-core/xref-test/org/owasp/dependencycheck/xml/suppression/package-summary.html +++ b/dependency-check-core/xref-test/org/owasp/dependencycheck/xml/suppression/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.xml.suppression + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.xml.suppression diff --git a/dependency-check-core/xref-test/overview-frame.html b/dependency-check-core/xref-test/overview-frame.html index 7de2036818e..24e9b27d686 100644 --- a/dependency-check-core/xref-test/overview-frame.html +++ b/dependency-check-core/xref-test/overview-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference + Dependency-Check Core 9.0.5 Reference diff --git a/dependency-check-core/xref-test/overview-summary.html b/dependency-check-core/xref-test/overview-summary.html index ed1d672070f..1e0c6184e2d 100644 --- a/dependency-check-core/xref-test/overview-summary.html +++ b/dependency-check-core/xref-test/overview-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference + Dependency-Check Core 9.0.5 Reference @@ -24,7 +24,7 @@
  • -

    Dependency-Check Core 9.0.4 Reference

    +

    Dependency-Check Core 9.0.5 Reference

    diff --git a/dependency-check-core/xref/allclasses-frame.html b/dependency-check-core/xref/allclasses-frame.html index 3a2ef2dc79e..3a512ef9c82 100644 --- a/dependency-check-core/xref/allclasses-frame.html +++ b/dependency-check-core/xref/allclasses-frame.html @@ -706,6 +706,9 @@

    All Classes

  • UpdateService +
  • +
  • + UrlData
  • UrlEcosystemMapper diff --git a/dependency-check-core/xref/index.html b/dependency-check-core/xref/index.html index 4c7cd7b9fb1..4f4ec95d459 100644 --- a/dependency-check-core/xref/index.html +++ b/dependency-check-core/xref/index.html @@ -4,7 +4,7 @@ - Dependency-Check Core 9.0.4 Reference + Dependency-Check Core 9.0.5 Reference diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/agent/package-frame.html b/dependency-check-core/xref/org/owasp/dependencycheck/agent/package-frame.html index 851813eb6b2..ad8a7660dfd 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/agent/package-frame.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/agent/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.agent + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.agent diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/agent/package-summary.html b/dependency-check-core/xref/org/owasp/dependencycheck/agent/package-summary.html index c442c12ec10..1d91bdbdacc 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/agent/package-summary.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/agent/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.agent + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.agent diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/analyzer/exception/package-frame.html b/dependency-check-core/xref/org/owasp/dependencycheck/analyzer/exception/package-frame.html index 38f5b213d1b..5a3c160672a 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/analyzer/exception/package-frame.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/analyzer/exception/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.analyzer.exception + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.analyzer.exception diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/analyzer/exception/package-summary.html b/dependency-check-core/xref/org/owasp/dependencycheck/analyzer/exception/package-summary.html index 944fd842ae4..597577c5ade 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/analyzer/exception/package-summary.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/analyzer/exception/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.analyzer.exception + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.analyzer.exception diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/analyzer/package-frame.html b/dependency-check-core/xref/org/owasp/dependencycheck/analyzer/package-frame.html index 719fd93cc6e..2d80db9dbe9 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/analyzer/package-frame.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/analyzer/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.analyzer + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.analyzer diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/analyzer/package-summary.html b/dependency-check-core/xref/org/owasp/dependencycheck/analyzer/package-summary.html index 26c806afbbf..35f22f961ee 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/analyzer/package-summary.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/analyzer/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.analyzer + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.analyzer diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/data/artifactory/package-frame.html b/dependency-check-core/xref/org/owasp/dependencycheck/data/artifactory/package-frame.html index 8ba8e53df81..5984f764cef 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/data/artifactory/package-frame.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/data/artifactory/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.data.artifactory + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.data.artifactory diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/data/artifactory/package-summary.html b/dependency-check-core/xref/org/owasp/dependencycheck/data/artifactory/package-summary.html index 86ab903abca..565ffa34ad7 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/data/artifactory/package-summary.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/data/artifactory/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.data.artifactory + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.data.artifactory diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/data/cache/package-frame.html b/dependency-check-core/xref/org/owasp/dependencycheck/data/cache/package-frame.html index 4b7e2c05ba6..43606e49047 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/data/cache/package-frame.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/data/cache/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.data.cache + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.data.cache diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/data/cache/package-summary.html b/dependency-check-core/xref/org/owasp/dependencycheck/data/cache/package-summary.html index 194567128b5..6063d35f7f9 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/data/cache/package-summary.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/data/cache/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.data.cache + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.data.cache diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/data/central/package-frame.html b/dependency-check-core/xref/org/owasp/dependencycheck/data/central/package-frame.html index e886948017e..0b897d66f59 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/data/central/package-frame.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/data/central/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.data.central + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.data.central diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/data/central/package-summary.html b/dependency-check-core/xref/org/owasp/dependencycheck/data/central/package-summary.html index e9d43bc2ee0..99149989ac7 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/data/central/package-summary.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/data/central/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.data.central + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.data.central diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/data/composer/package-frame.html b/dependency-check-core/xref/org/owasp/dependencycheck/data/composer/package-frame.html index fdad0f6e16c..556f20b8d7f 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/data/composer/package-frame.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/data/composer/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.data.composer + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.data.composer diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/data/composer/package-summary.html b/dependency-check-core/xref/org/owasp/dependencycheck/data/composer/package-summary.html index cc7d53dfe34..102e3c8be7c 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/data/composer/package-summary.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/data/composer/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.data.composer + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.data.composer diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/data/cpe/package-frame.html b/dependency-check-core/xref/org/owasp/dependencycheck/data/cpe/package-frame.html index 39642ee30a2..83ad27712f6 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/data/cpe/package-frame.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/data/cpe/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.data.cpe + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.data.cpe diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/data/cpe/package-summary.html b/dependency-check-core/xref/org/owasp/dependencycheck/data/cpe/package-summary.html index fb3b466d4fb..7b3d051261e 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/data/cpe/package-summary.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/data/cpe/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.data.cpe + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.data.cpe diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/data/cwe/package-frame.html b/dependency-check-core/xref/org/owasp/dependencycheck/data/cwe/package-frame.html index 5326f2e9dcc..ce71ba0c1d1 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/data/cwe/package-frame.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/data/cwe/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.data.cwe + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.data.cwe diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/data/cwe/package-summary.html b/dependency-check-core/xref/org/owasp/dependencycheck/data/cwe/package-summary.html index c0a70a77ffa..7e087610139 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/data/cwe/package-summary.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/data/cwe/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.data.cwe + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.data.cwe diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/data/elixir/package-frame.html b/dependency-check-core/xref/org/owasp/dependencycheck/data/elixir/package-frame.html index c36559e8e6c..ccc63078684 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/data/elixir/package-frame.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/data/elixir/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.data.elixir + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.data.elixir diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/data/elixir/package-summary.html b/dependency-check-core/xref/org/owasp/dependencycheck/data/elixir/package-summary.html index 4c74e1f0666..dfe5dc9942b 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/data/elixir/package-summary.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/data/elixir/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.data.elixir + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.data.elixir diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/data/golang/package-frame.html b/dependency-check-core/xref/org/owasp/dependencycheck/data/golang/package-frame.html index c60c44e357a..5c394f72df9 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/data/golang/package-frame.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/data/golang/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.data.golang + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.data.golang diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/data/golang/package-summary.html b/dependency-check-core/xref/org/owasp/dependencycheck/data/golang/package-summary.html index 2f4a4a5e98d..739cde9bbb2 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/data/golang/package-summary.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/data/golang/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.data.golang + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.data.golang diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/data/knownexploited/json/package-frame.html b/dependency-check-core/xref/org/owasp/dependencycheck/data/knownexploited/json/package-frame.html index fd26f217b83..8cacda817f6 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/data/knownexploited/json/package-frame.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/data/knownexploited/json/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.data.knownexploited.json + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.data.knownexploited.json diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/data/knownexploited/json/package-summary.html b/dependency-check-core/xref/org/owasp/dependencycheck/data/knownexploited/json/package-summary.html index c91ec50e9a9..6fc28a903d8 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/data/knownexploited/json/package-summary.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/data/knownexploited/json/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.data.knownexploited.json + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.data.knownexploited.json diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/data/lucene/package-frame.html b/dependency-check-core/xref/org/owasp/dependencycheck/data/lucene/package-frame.html index 9b46560b2a7..b8008ec5f2d 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/data/lucene/package-frame.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/data/lucene/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.data.lucene + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.data.lucene diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/data/lucene/package-summary.html b/dependency-check-core/xref/org/owasp/dependencycheck/data/lucene/package-summary.html index b76c80ef44a..1bce4dddf58 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/data/lucene/package-summary.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/data/lucene/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.data.lucene + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.data.lucene diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/data/nexus/package-frame.html b/dependency-check-core/xref/org/owasp/dependencycheck/data/nexus/package-frame.html index 2a1efdc2409..dfd8be7898d 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/data/nexus/package-frame.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/data/nexus/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.data.nexus + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.data.nexus diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/data/nexus/package-summary.html b/dependency-check-core/xref/org/owasp/dependencycheck/data/nexus/package-summary.html index e960a8d000e..06d119c246f 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/data/nexus/package-summary.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/data/nexus/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.data.nexus + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.data.nexus diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/data/nodeaudit/package-frame.html b/dependency-check-core/xref/org/owasp/dependencycheck/data/nodeaudit/package-frame.html index 9cb6ee3e7ad..93decd7f9e6 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/data/nodeaudit/package-frame.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/data/nodeaudit/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.data.nodeaudit + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.data.nodeaudit diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/data/nodeaudit/package-summary.html b/dependency-check-core/xref/org/owasp/dependencycheck/data/nodeaudit/package-summary.html index 303330b9f7d..f0ae8ac7701 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/data/nodeaudit/package-summary.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/data/nodeaudit/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.data.nodeaudit + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.data.nodeaudit diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/data/nuget/package-frame.html b/dependency-check-core/xref/org/owasp/dependencycheck/data/nuget/package-frame.html index 426aac6295f..782e73690fe 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/data/nuget/package-frame.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/data/nuget/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.data.nuget + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.data.nuget diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/data/nuget/package-summary.html b/dependency-check-core/xref/org/owasp/dependencycheck/data/nuget/package-summary.html index 3c994707b82..e9bed0ecb8e 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/data/nuget/package-summary.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/data/nuget/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.data.nuget + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.data.nuget diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/data/nvd/ecosystem/package-frame.html b/dependency-check-core/xref/org/owasp/dependencycheck/data/nvd/ecosystem/package-frame.html index f66449c60ab..56e2b162c09 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/data/nvd/ecosystem/package-frame.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/data/nvd/ecosystem/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.data.nvd.ecosystem + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.data.nvd.ecosystem diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/data/nvd/ecosystem/package-summary.html b/dependency-check-core/xref/org/owasp/dependencycheck/data/nvd/ecosystem/package-summary.html index 5368eae70ea..b4e298fc3f5 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/data/nvd/ecosystem/package-summary.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/data/nvd/ecosystem/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.data.nvd.ecosystem + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.data.nvd.ecosystem diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/data/nvdcve/CveDB.html b/dependency-check-core/xref/org/owasp/dependencycheck/data/nvdcve/CveDB.html index 7979c6db3f8..ddc3bbb1544 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/data/nvdcve/CveDB.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/data/nvdcve/CveDB.html @@ -986,835 +986,850 @@ 978 callUpdate.setNull(4, java.sql.Types.DOUBLE); 979 callUpdate.setNull(5, java.sql.Types.DOUBLE); 980 callUpdate.setNull(6, java.sql.Types.VARCHAR); -981 callUpdate.setNull(7, java.sql.Types.BOOLEAN); -982 callUpdate.setNull(8, java.sql.Types.BOOLEAN); -983 callUpdate.setNull(9, java.sql.Types.BOOLEAN); -984 callUpdate.setNull(10, java.sql.Types.BOOLEAN); -985 callUpdate.setNull(11, java.sql.Types.DOUBLE); -986 callUpdate.setNull(12, java.sql.Types.VARCHAR); -987 callUpdate.setNull(13, java.sql.Types.VARCHAR); -988 callUpdate.setNull(14, java.sql.Types.VARCHAR); -989 callUpdate.setNull(15, java.sql.Types.VARCHAR); -990 callUpdate.setNull(16, java.sql.Types.VARCHAR); -991 callUpdate.setNull(17, java.sql.Types.VARCHAR); -992 callUpdate.setNull(18, java.sql.Types.VARCHAR); -993 } -994 Optional<CvssV3> optCvssv30 = Optional.empty(); -995 if (cve.getCve().getMetrics() != null && cve.getCve().getMetrics().getCvssMetricV30() != null) { -996 optCvssv30 = cve.getCve().getMetrics().getCvssMetricV30().stream().sorted(Comparator.comparing(CvssV3::getType)).findFirst(); -997 } -998 Optional<CvssV3> optCvssv31 = Optional.empty(); -999 if (cve.getCve().getMetrics() != null && cve.getCve().getMetrics().getCvssMetricV31() != null) { -1000 optCvssv31 = cve.getCve().getMetrics().getCvssMetricV31().stream().sorted(Comparator.comparing(CvssV3::getType)).findFirst(); -1001 } -1002 -1003 CvssV3 cvssv3 = null; -1004 if (optCvssv31.isPresent()) { -1005 cvssv3 = optCvssv31.get(); -1006 } else if (optCvssv30.isPresent()) { -1007 cvssv3 = optCvssv30.get(); -1008 } -1009 if (cvssv3 != null) { -1010 setUpdateColumn(callUpdate, 19, cvssv3.getExploitabilityScore()); -1011 setUpdateColumn(callUpdate, 20, cvssv3.getImpactScore()); -1012 setUpdateColumn(callUpdate, 21, cvssv3.getCvssData().getAttackVector()); -1013 setUpdateColumn(callUpdate, 22, cvssv3.getCvssData().getAttackComplexity()); -1014 setUpdateColumn(callUpdate, 23, cvssv3.getCvssData().getPrivilegesRequired()); -1015 setUpdateColumn(callUpdate, 24, cvssv3.getCvssData().getUserInteraction()); -1016 setUpdateColumn(callUpdate, 25, cvssv3.getCvssData().getScope()); -1017 setUpdateColumn(callUpdate, 26, cvssv3.getCvssData().getConfidentialityImpact()); -1018 setUpdateColumn(callUpdate, 27, cvssv3.getCvssData().getIntegrityImpact()); -1019 setUpdateColumn(callUpdate, 28, cvssv3.getCvssData().getAvailabilityImpact()); -1020 setUpdateColumn(callUpdate, 29, cvssv3.getCvssData().getBaseScore()); -1021 setUpdateColumn(callUpdate, 30, cvssv3.getCvssData().getBaseSeverity()); -1022 setUpdateColumn(callUpdate, 31, cvssv3.getCvssData().getVersion()); -1023 } else { -1024 callUpdate.setNull(19, java.sql.Types.DOUBLE); -1025 callUpdate.setNull(20, java.sql.Types.DOUBLE); -1026 callUpdate.setNull(21, java.sql.Types.VARCHAR); -1027 callUpdate.setNull(22, java.sql.Types.VARCHAR); -1028 callUpdate.setNull(23, java.sql.Types.VARCHAR); -1029 callUpdate.setNull(24, java.sql.Types.VARCHAR); -1030 callUpdate.setNull(25, java.sql.Types.VARCHAR); -1031 callUpdate.setNull(26, java.sql.Types.VARCHAR); -1032 callUpdate.setNull(27, java.sql.Types.VARCHAR); -1033 callUpdate.setNull(28, java.sql.Types.VARCHAR); -1034 callUpdate.setNull(29, java.sql.Types.DOUBLE); -1035 callUpdate.setNull(30, java.sql.Types.VARCHAR); -1036 callUpdate.setNull(31, java.sql.Types.VARCHAR); -1037 } -1038 if (isOracle) { -1039 try { -1040 final CallableStatement cs = (CallableStatement) callUpdate; -1041 cs.registerOutParameter(32, JDBCType.INTEGER); -1042 cs.executeUpdate(); -1043 vulnerabilityId = cs.getInt(32); -1044 } catch (SQLException ex) { -1045 final String msg = String.format("Unable to retrieve id for new vulnerability for '%s'", cve.getCve().getId()); -1046 throw new DatabaseException(msg, ex); -1047 } -1048 } else { -1049 try (ResultSet rs = callUpdate.executeQuery()) { -1050 rs.next(); -1051 vulnerabilityId = rs.getInt(1); -1052 } catch (SQLException ex) { -1053 final String msg = String.format("Unable to retrieve id for new vulnerability for '%s'", cve.getCve().getId()); -1054 throw new DatabaseException(msg, ex); -1055 } -1056 } -1057 } catch (SQLException ex) { -1058 throw new UnexpectedAnalysisException(ex); -1059 } -1060 return vulnerabilityId; -1061 } -1062 -1063 /** -1064 * Used when updating a vulnerability - this method inserts the CWE entries. -1065 * -1066 * @param vulnerabilityId the vulnerability ID -1067 * @param cve the CVE entry that contains the CWE entries to insert -1068 * @throws SQLException thrown if there is an error inserting the data -1069 */ -1070 private void updateVulnerabilityInsertCwe(int vulnerabilityId, DefCveItem cve) throws SQLException { -1071 if (cve.getCve() != null && cve.getCve().getWeaknesses() != null) { -1072 try (Connection conn = databaseManager.getConnection(); -1073 PreparedStatement insertCWE = getPreparedStatement(conn, INSERT_CWE, vulnerabilityId)) { -1074 for (Weakness weakness : cve.getCve().getWeaknesses()) { -1075 for (LangString desc : weakness.getDescription()) { -1076 if ("en".equals(desc.getLang())) { -1077 insertCWE.setString(2, desc.getValue()); -1078 if (isBatchInsertEnabled()) { -1079 insertCWE.addBatch(); -1080 } else { -1081 insertCWE.execute(); -1082 } -1083 } -1084 } -1085 } -1086 if (isBatchInsertEnabled()) { -1087 insertCWE.executeBatch(); -1088 } -1089 } -1090 } -1091 } -1092 -1093 /** -1094 * Used when updating a vulnerability - in some cases a CVE needs to be -1095 * removed. -1096 * -1097 * @param cve the vulnerability CVE -1098 * @throws SQLException thrown if there is an error deleting the -1099 * vulnerability -1100 */ -1101 private void deleteVulnerability(String cve) throws SQLException { -1102 try (Connection conn = databaseManager.getConnection(); -1103 PreparedStatement deleteVulnerability = getPreparedStatement(conn, DELETE_VULNERABILITY, cve)) { -1104 deleteVulnerability.executeUpdate(); -1105 } -1106 } -1107 -1108 /** -1109 * Merges the list of known exploited vulnerabilities into the database. -1110 * -1111 * @param vulnerabilities the list of known exploited vulnerabilities -1112 * @throws DatabaseException thrown if there is an exception... duh.. -1113 * @throws SQLException thrown if there is an exception... duh.. -1114 */ -1115 public void updateKnownExploitedVulnerabilities( -1116 List<org.owasp.dependencycheck.data.knownexploited.json.Vulnerability> vulnerabilities) -1117 throws DatabaseException, SQLException { -1118 try (Connection conn = databaseManager.getConnection(); -1119 PreparedStatement mergeKnownVulnerability = getPreparedStatement(conn, MERGE_KNOWN_EXPLOITED)) { -1120 int ctr = 0; -1121 for (org.owasp.dependencycheck.data.knownexploited.json.Vulnerability v : vulnerabilities) { -1122 mergeKnownVulnerability.setString(1, v.getCveID()); -1123 addNullableStringParameter(mergeKnownVulnerability, 2, v.getVendorProject()); -1124 addNullableStringParameter(mergeKnownVulnerability, 3, v.getProduct()); -1125 addNullableStringParameter(mergeKnownVulnerability, 4, v.getVulnerabilityName()); -1126 addNullableStringParameter(mergeKnownVulnerability, 5, v.getDateAdded()); -1127 addNullableStringParameter(mergeKnownVulnerability, 6, v.getShortDescription()); -1128 addNullableStringParameter(mergeKnownVulnerability, 7, v.getRequiredAction()); -1129 addNullableStringParameter(mergeKnownVulnerability, 8, v.getDueDate()); -1130 addNullableStringParameter(mergeKnownVulnerability, 9, v.getNotes()); -1131 if (isBatchInsertEnabled()) { -1132 mergeKnownVulnerability.addBatch(); -1133 ctr++; -1134 if (ctr >= getBatchSize()) { -1135 mergeKnownVulnerability.executeBatch(); -1136 ctr = 0; -1137 } -1138 } else { -1139 try { -1140 mergeKnownVulnerability.execute(); -1141 } catch (SQLException ex) { -1142 if (ex.getMessage().contains("Duplicate entry")) { -1143 final String msg = String.format("Duplicate known exploited vulnerability key identified in '%s'", v.getCveID()); -1144 LOGGER.info(msg, ex); -1145 } else { -1146 throw ex; -1147 } -1148 } -1149 } -1150 } -1151 if (isBatchInsertEnabled()) { -1152 mergeKnownVulnerability.executeBatch(); -1153 } -1154 } -1155 } -1156 -1157 /** -1158 * Used when updating a vulnerability - this method inserts the list of -1159 * vulnerable software. -1160 * -1161 * @param vulnerabilityId the vulnerability id -1162 * @param cveId the CVE ID - used for reporting -1163 * @param software the list of vulnerable software -1164 * @param baseEcosystem the ecosystem based off of the vulnerability -1165 * description -1166 * @throws DatabaseException thrown if there is an error inserting the data -1167 * @throws SQLException thrown if there is an error inserting the data -1168 */ -1169 private void updateVulnerabilityInsertSoftware(int vulnerabilityId, String cveId, -1170 List<VulnerableSoftware> software, String baseEcosystem) -1171 throws DatabaseException, SQLException { -1172 try (Connection conn = databaseManager.getConnection(); PreparedStatement insertSoftware = getPreparedStatement(conn, INSERT_SOFTWARE)) { -1173 for (VulnerableSoftware parsedCpe : software) { -1174 insertSoftware.setInt(1, vulnerabilityId); -1175 insertSoftware.setString(2, parsedCpe.getPart().getAbbreviation()); -1176 insertSoftware.setString(3, parsedCpe.getVendor()); -1177 insertSoftware.setString(4, parsedCpe.getProduct()); -1178 insertSoftware.setString(5, parsedCpe.getVersion()); -1179 insertSoftware.setString(6, parsedCpe.getUpdate()); -1180 insertSoftware.setString(7, parsedCpe.getEdition()); -1181 insertSoftware.setString(8, parsedCpe.getLanguage()); -1182 insertSoftware.setString(9, parsedCpe.getSwEdition()); -1183 insertSoftware.setString(10, parsedCpe.getTargetSw()); -1184 insertSoftware.setString(11, parsedCpe.getTargetHw()); -1185 insertSoftware.setString(12, parsedCpe.getOther()); -1186 final String ecosystem = CpeEcosystemCache.getEcosystem(parsedCpe.getVendor(), parsedCpe.getProduct(), -1187 cveItemConverter.extractEcosystem(baseEcosystem, parsedCpe)); -1188 -1189 addNullableStringParameter(insertSoftware, 13, ecosystem); -1190 addNullableStringParameter(insertSoftware, 14, parsedCpe.getVersionEndExcluding()); -1191 addNullableStringParameter(insertSoftware, 15, parsedCpe.getVersionEndIncluding()); -1192 addNullableStringParameter(insertSoftware, 16, parsedCpe.getVersionStartExcluding()); -1193 addNullableStringParameter(insertSoftware, 17, parsedCpe.getVersionStartIncluding()); -1194 insertSoftware.setBoolean(18, parsedCpe.isVulnerable()); -1195 -1196 if (isBatchInsertEnabled()) { -1197 insertSoftware.addBatch(); -1198 } else { -1199 try { -1200 insertSoftware.execute(); -1201 } catch (SQLException ex) { -1202 if (ex.getMessage().contains("Duplicate entry")) { -1203 final String msg = String.format("Duplicate software key identified in '%s'", cveId); -1204 LOGGER.info(msg, ex); -1205 } else { -1206 throw ex; -1207 } -1208 } -1209 } -1210 } -1211 if (isBatchInsertEnabled()) { -1212 executeBatch(cveId, insertSoftware); -1213 } -1214 } -1215 } -1216 -1217 /** -1218 * Used when updating a vulnerability - this method inserts the list of -1219 * references. -1220 * -1221 * @param vulnerabilityId the vulnerability id -1222 * @param cve the CVE entry that contains the list of references -1223 * @throws SQLException thrown if there is an error inserting the data -1224 */ -1225 private void updateVulnerabilityInsertReferences(int vulnerabilityId, DefCveItem cve) throws SQLException { -1226 try (Connection conn = databaseManager.getConnection(); PreparedStatement insertReference = getPreparedStatement(conn, INSERT_REFERENCE)) { -1227 if (cve.getCve().getReferences() != null) { -1228 for (Reference r : cve.getCve().getReferences()) { -1229 insertReference.setInt(1, vulnerabilityId); -1230 Optional<String> name = Optional.empty(); -1231 if (r.getTags() != null) { -1232 name = r.getTags().stream().sorted().findFirst(); -1233 } -1234 if (name.isPresent()) { -1235 insertReference.setString(2, name.get()); -1236 } else { -1237 insertReference.setNull(2, java.sql.Types.VARCHAR); -1238 } -1239 if (r.getUrl() != null && !r.getUrl().isEmpty()) { -1240 insertReference.setString(3, r.getUrl()); -1241 } else { -1242 insertReference.setNull(3, java.sql.Types.VARCHAR); -1243 } -1244 if (r.getSource() != null && !r.getSource().isEmpty()) { -1245 insertReference.setString(4, r.getSource()); -1246 } else { -1247 insertReference.setNull(4, java.sql.Types.VARCHAR); -1248 } -1249 if (isBatchInsertEnabled()) { -1250 insertReference.addBatch(); -1251 } else { -1252 insertReference.execute(); -1253 } -1254 } -1255 } -1256 if (isBatchInsertEnabled()) { -1257 insertReference.executeBatch(); -1258 } -1259 } -1260 } -1261 -1262 /** -1263 * Parses the configuration entries from the CVE entry into a list of -1264 * VulnerableSoftware objects. -1265 * -1266 * @param cve the CVE to parse the vulnerable software entries from -1267 * @return the list of vulnerable software -1268 * @throws CpeValidationException if an invalid CPE is present -1269 */ -1270 private List<VulnerableSoftware> parseCpes(DefCveItem cve) throws CpeValidationException { -1271 final List<VulnerableSoftware> software = new ArrayList<>(); -1272 -1273 final List<CpeMatch> cpeEntries = cve.getCve().getConfigurations().stream() -1274 .map(Config::getNodes) -1275 .flatMap(List::stream) -1276 .map(Node::getCpeMatch) -1277 .flatMap(List::stream) -1278 .filter(predicate -> predicate.getCriteria() != null) -1279 .filter(predicate -> predicate.getCriteria().startsWith(cpeStartsWithFilter)) -1280 //this single CPE entry causes nearly 100% FP - so filtering it at the source. -1281 .filter(entry -> !("CVE-2009-0754".equals(cve.getCve().getId()) -1282 && "cpe:2.3:a:apache:apache:*:*:*:*:*:*:*:*".equals(entry.getCriteria()))) -1283 .collect(Collectors.toList()); -1284 final VulnerableSoftwareBuilder builder = new VulnerableSoftwareBuilder(); -1285 -1286 try { -1287 cpeEntries.forEach(entry -> { -1288 builder.cpe(parseCpe(entry, cve.getCve().getId())) -1289 .versionEndExcluding(entry.getVersionEndExcluding()) -1290 .versionStartExcluding(entry.getVersionStartExcluding()) -1291 .versionEndIncluding(entry.getVersionEndIncluding()) -1292 .versionStartIncluding(entry.getVersionStartIncluding()) -1293 .vulnerable(entry.getVulnerable()); -1294 try { -1295 software.add(builder.build()); -1296 } catch (CpeValidationException ex) { -1297 throw new LambdaExceptionWrapper(ex); -1298 } -1299 }); -1300 } catch (LambdaExceptionWrapper ex) { -1301 throw (CpeValidationException) ex.getCause(); -1302 } -1303 return software; -1304 } -1305 -1306 /** -1307 * Helper method to convert a CpeMatch (generated code used in parsing the -1308 * NVD JSON) into a CPE object. -1309 * -1310 * @param cpe the CPE Match -1311 * @param cveId the CVE associated with the CPEMatch - used for error -1312 * reporting -1313 * @return the resulting CPE object -1314 * @throws DatabaseException thrown if there is an error converting the -1315 * CpeMatch into a CPE object -1316 */ -1317 private Cpe parseCpe(CpeMatch cpe, String cveId) throws DatabaseException { -1318 final Cpe parsedCpe; -1319 try { -1320 //the replace is a hack as the NVD does not properly escape backslashes in their JSON -1321 parsedCpe = CpeParser.parse(cpe.getCriteria(), true); -1322 } catch (CpeParsingException ex) { -1323 LOGGER.debug("NVD (" + cveId + ") contain an invalid 2.3 CPE: " + cpe.getCriteria()); -1324 throw new DatabaseException("Unable to parse CPE: " + cpe.getCriteria(), ex); -1325 } -1326 return parsedCpe; -1327 } -1328 -1329 /** -1330 * Returns the size of the batch. -1331 * -1332 * @return the size of the batch -1333 */ -1334 private int getBatchSize() { -1335 int max; -1336 try { -1337 max = settings.getInt(Settings.KEYS.MAX_BATCH_SIZE); -1338 } catch (InvalidSettingException pE) { -1339 max = 1000; -1340 } -1341 return max; -1342 } -1343 -1344 /** -1345 * Determines whether or not batch insert is enabled. -1346 * -1347 * @return <code>true</code> if batch insert is enabled; otherwise -1348 * <code>false</code> -1349 */ -1350 private boolean isBatchInsertEnabled() { -1351 boolean batch; -1352 try { -1353 batch = settings.getBoolean(Settings.KEYS.ENABLE_BATCH_UPDATES); -1354 } catch (InvalidSettingException pE) { -1355 //If there's no configuration, default is to not perform batch inserts -1356 batch = false; -1357 } -1358 return batch; -1359 } -1360 -1361 /** -1362 * Executes batch inserts of vulnerabilities when property -1363 * database.batchinsert.maxsize is reached. -1364 * -1365 * @param vulnId the vulnerability ID -1366 * @param statement the prepared statement to batch execute -1367 * @throws SQLException thrown when the batch cannot be executed -1368 */ -1369 private void executeBatch(String vulnId, PreparedStatement statement) -1370 throws SQLException { -1371 try { -1372 statement.executeBatch(); -1373 } catch (SQLException ex) { -1374 if (ex.getMessage().contains("Duplicate entry")) { -1375 final String msg = String.format("Duplicate software key identified in '%s'", -1376 vulnId); -1377 LOGGER.info(msg, ex); -1378 } else { -1379 throw ex; -1380 } -1381 } -1382 } -1383 -1384 /** -1385 * Checks to see if data exists so that analysis can be performed. -1386 * -1387 * @return <code>true</code> if data exists; otherwise <code>false</code> -1388 */ -1389 public boolean dataExists() { -1390 try (Connection conn = databaseManager.getConnection(); -1391 PreparedStatement cs = getPreparedStatement(conn, COUNT_CPE); -1392 ResultSet rs = cs.executeQuery()) { -1393 if (rs.next() && rs.getInt(1) > 0) { -1394 return true; -1395 } -1396 } catch (Exception ex) { -1397 String dd; -1398 try { -1399 dd = settings.getDataDirectory().getAbsolutePath(); -1400 } catch (IOException ex1) { -1401 dd = settings.getString(Settings.KEYS.DATA_DIRECTORY); -1402 } -1403 LOGGER.error("Unable to access the local database.\n\nEnsure that '{}' is a writable directory. " -1404 + "If the problem persist try deleting the files in '{}' and running {} again. If the problem continues, please " -1405 + "create a log file (see documentation at https://jeremylong.github.io/DependencyCheck/) and open a ticket at " -1406 + "https://github.com/jeremylong/DependencyCheck/issues and include the log file.\n\n", -1407 dd, dd, settings.getString(Settings.KEYS.APPLICATION_NAME)); -1408 LOGGER.debug("", ex); -1409 } -1410 return false; -1411 } -1412 -1413 /** -1414 * It is possible that orphaned rows may be generated during database -1415 * updates. This should be called after all updates have been completed to -1416 * ensure orphan entries are removed. -1417 */ -1418 public void cleanupDatabase() { -1419 LOGGER.info("Begin database maintenance"); -1420 final long start = System.currentTimeMillis(); -1421 try (Connection conn = databaseManager.getConnection(); -1422 PreparedStatement psOrphans = getPreparedStatement(conn, CLEANUP_ORPHANS); -1423 PreparedStatement psEcosystem = getPreparedStatement(conn, UPDATE_ECOSYSTEM); -1424 PreparedStatement psEcosystem2 = getPreparedStatement(conn, UPDATE_ECOSYSTEM2)) { -1425 if (psEcosystem != null) { -1426 final int count = psEcosystem.executeUpdate(); -1427 if (count > 0) { -1428 LOGGER.info("Updated the CPE ecosystem on {} NVD records", count); -1429 } -1430 } -1431 if (psEcosystem2 != null) { -1432 final int count = psEcosystem2.executeUpdate(); -1433 if (count > 0) { -1434 LOGGER.info("Removed the CPE ecosystem on {} NVD records", count); -1435 } -1436 } -1437 if (psOrphans != null) { -1438 final int count = psOrphans.executeUpdate(); -1439 if (count > 0) { -1440 LOGGER.info("Cleaned up {} orphaned NVD records", count); -1441 } -1442 } -1443 final long millis = System.currentTimeMillis() - start; -1444 //final long seconds = TimeUnit.MILLISECONDS.toSeconds(millis); -1445 LOGGER.info("End database maintenance ({} ms)", millis); -1446 } catch (SQLException ex) { -1447 LOGGER.error("An unexpected SQL Exception occurred; please see the verbose log for more details."); -1448 LOGGER.debug("", ex); -1449 throw new DatabaseException("Unexpected SQL Exception", ex); -1450 } -1451 } -1452 -1453 /** -1454 * Persist the EcosystemCache into the database. -1455 */ -1456 public void persistEcosystemCache() { -1457 saveCpeEcosystemCache(); -1458 clearCache(); -1459 } -1460 -1461 /** -1462 * If the database is using an H2 file based database calling -1463 * <code>defrag()</code> will de-fragment the database. +981 //TODO this is may also be an issue for MS SQL, if an issue is created we'll just need +982 // to create an isMsSQL flag. See todo below in setUpdateColum +983 if (isOracle) { +984 callUpdate.setNull(7, java.sql.Types.BIT); +985 callUpdate.setNull(8, java.sql.Types.BIT); +986 callUpdate.setNull(9, java.sql.Types.BIT); +987 callUpdate.setNull(10, java.sql.Types.BIT); +988 } else { +989 callUpdate.setNull(7, java.sql.Types.BOOLEAN); +990 callUpdate.setNull(8, java.sql.Types.BOOLEAN); +991 callUpdate.setNull(9, java.sql.Types.BOOLEAN); +992 callUpdate.setNull(10, java.sql.Types.BOOLEAN); +993 } +994 callUpdate.setNull(11, java.sql.Types.DOUBLE); +995 callUpdate.setNull(12, java.sql.Types.VARCHAR); +996 callUpdate.setNull(13, java.sql.Types.VARCHAR); +997 callUpdate.setNull(14, java.sql.Types.VARCHAR); +998 callUpdate.setNull(15, java.sql.Types.VARCHAR); +999 callUpdate.setNull(16, java.sql.Types.VARCHAR); +1000 callUpdate.setNull(17, java.sql.Types.VARCHAR); +1001 callUpdate.setNull(18, java.sql.Types.VARCHAR); +1002 } +1003 Optional<CvssV3> optCvssv30 = Optional.empty(); +1004 if (cve.getCve().getMetrics() != null && cve.getCve().getMetrics().getCvssMetricV30() != null) { +1005 optCvssv30 = cve.getCve().getMetrics().getCvssMetricV30().stream().sorted(Comparator.comparing(CvssV3::getType)).findFirst(); +1006 } +1007 Optional<CvssV3> optCvssv31 = Optional.empty(); +1008 if (cve.getCve().getMetrics() != null && cve.getCve().getMetrics().getCvssMetricV31() != null) { +1009 optCvssv31 = cve.getCve().getMetrics().getCvssMetricV31().stream().sorted(Comparator.comparing(CvssV3::getType)).findFirst(); +1010 } +1011 +1012 CvssV3 cvssv3 = null; +1013 if (optCvssv31.isPresent()) { +1014 cvssv3 = optCvssv31.get(); +1015 } else if (optCvssv30.isPresent()) { +1016 cvssv3 = optCvssv30.get(); +1017 } +1018 if (cvssv3 != null) { +1019 setUpdateColumn(callUpdate, 19, cvssv3.getExploitabilityScore()); +1020 setUpdateColumn(callUpdate, 20, cvssv3.getImpactScore()); +1021 setUpdateColumn(callUpdate, 21, cvssv3.getCvssData().getAttackVector()); +1022 setUpdateColumn(callUpdate, 22, cvssv3.getCvssData().getAttackComplexity()); +1023 setUpdateColumn(callUpdate, 23, cvssv3.getCvssData().getPrivilegesRequired()); +1024 setUpdateColumn(callUpdate, 24, cvssv3.getCvssData().getUserInteraction()); +1025 setUpdateColumn(callUpdate, 25, cvssv3.getCvssData().getScope()); +1026 setUpdateColumn(callUpdate, 26, cvssv3.getCvssData().getConfidentialityImpact()); +1027 setUpdateColumn(callUpdate, 27, cvssv3.getCvssData().getIntegrityImpact()); +1028 setUpdateColumn(callUpdate, 28, cvssv3.getCvssData().getAvailabilityImpact()); +1029 setUpdateColumn(callUpdate, 29, cvssv3.getCvssData().getBaseScore()); +1030 setUpdateColumn(callUpdate, 30, cvssv3.getCvssData().getBaseSeverity()); +1031 setUpdateColumn(callUpdate, 31, cvssv3.getCvssData().getVersion()); +1032 } else { +1033 callUpdate.setNull(19, java.sql.Types.DOUBLE); +1034 callUpdate.setNull(20, java.sql.Types.DOUBLE); +1035 callUpdate.setNull(21, java.sql.Types.VARCHAR); +1036 callUpdate.setNull(22, java.sql.Types.VARCHAR); +1037 callUpdate.setNull(23, java.sql.Types.VARCHAR); +1038 callUpdate.setNull(24, java.sql.Types.VARCHAR); +1039 callUpdate.setNull(25, java.sql.Types.VARCHAR); +1040 callUpdate.setNull(26, java.sql.Types.VARCHAR); +1041 callUpdate.setNull(27, java.sql.Types.VARCHAR); +1042 callUpdate.setNull(28, java.sql.Types.VARCHAR); +1043 callUpdate.setNull(29, java.sql.Types.DOUBLE); +1044 callUpdate.setNull(30, java.sql.Types.VARCHAR); +1045 callUpdate.setNull(31, java.sql.Types.VARCHAR); +1046 } +1047 if (isOracle) { +1048 try { +1049 final CallableStatement cs = (CallableStatement) callUpdate; +1050 cs.registerOutParameter(32, JDBCType.INTEGER); +1051 cs.executeUpdate(); +1052 vulnerabilityId = cs.getInt(32); +1053 } catch (SQLException ex) { +1054 final String msg = String.format("Unable to retrieve id for new vulnerability for '%s'", cve.getCve().getId()); +1055 throw new DatabaseException(msg, ex); +1056 } +1057 } else { +1058 try (ResultSet rs = callUpdate.executeQuery()) { +1059 rs.next(); +1060 vulnerabilityId = rs.getInt(1); +1061 } catch (SQLException ex) { +1062 final String msg = String.format("Unable to retrieve id for new vulnerability for '%s'", cve.getCve().getId()); +1063 throw new DatabaseException(msg, ex); +1064 } +1065 } +1066 } catch (SQLException ex) { +1067 throw new UnexpectedAnalysisException(ex); +1068 } +1069 return vulnerabilityId; +1070 } +1071 +1072 /** +1073 * Used when updating a vulnerability - this method inserts the CWE entries. +1074 * +1075 * @param vulnerabilityId the vulnerability ID +1076 * @param cve the CVE entry that contains the CWE entries to insert +1077 * @throws SQLException thrown if there is an error inserting the data +1078 */ +1079 private void updateVulnerabilityInsertCwe(int vulnerabilityId, DefCveItem cve) throws SQLException { +1080 if (cve.getCve() != null && cve.getCve().getWeaknesses() != null) { +1081 try (Connection conn = databaseManager.getConnection(); +1082 PreparedStatement insertCWE = getPreparedStatement(conn, INSERT_CWE, vulnerabilityId)) { +1083 for (Weakness weakness : cve.getCve().getWeaknesses()) { +1084 for (LangString desc : weakness.getDescription()) { +1085 if ("en".equals(desc.getLang())) { +1086 insertCWE.setString(2, desc.getValue()); +1087 if (isBatchInsertEnabled()) { +1088 insertCWE.addBatch(); +1089 } else { +1090 insertCWE.execute(); +1091 } +1092 } +1093 } +1094 } +1095 if (isBatchInsertEnabled()) { +1096 insertCWE.executeBatch(); +1097 } +1098 } +1099 } +1100 } +1101 +1102 /** +1103 * Used when updating a vulnerability - in some cases a CVE needs to be +1104 * removed. +1105 * +1106 * @param cve the vulnerability CVE +1107 * @throws SQLException thrown if there is an error deleting the +1108 * vulnerability +1109 */ +1110 private void deleteVulnerability(String cve) throws SQLException { +1111 try (Connection conn = databaseManager.getConnection(); +1112 PreparedStatement deleteVulnerability = getPreparedStatement(conn, DELETE_VULNERABILITY, cve)) { +1113 deleteVulnerability.executeUpdate(); +1114 } +1115 } +1116 +1117 /** +1118 * Merges the list of known exploited vulnerabilities into the database. +1119 * +1120 * @param vulnerabilities the list of known exploited vulnerabilities +1121 * @throws DatabaseException thrown if there is an exception... duh.. +1122 * @throws SQLException thrown if there is an exception... duh.. +1123 */ +1124 public void updateKnownExploitedVulnerabilities( +1125 List<org.owasp.dependencycheck.data.knownexploited.json.Vulnerability> vulnerabilities) +1126 throws DatabaseException, SQLException { +1127 try (Connection conn = databaseManager.getConnection(); +1128 PreparedStatement mergeKnownVulnerability = getPreparedStatement(conn, MERGE_KNOWN_EXPLOITED)) { +1129 int ctr = 0; +1130 for (org.owasp.dependencycheck.data.knownexploited.json.Vulnerability v : vulnerabilities) { +1131 mergeKnownVulnerability.setString(1, v.getCveID()); +1132 addNullableStringParameter(mergeKnownVulnerability, 2, v.getVendorProject()); +1133 addNullableStringParameter(mergeKnownVulnerability, 3, v.getProduct()); +1134 addNullableStringParameter(mergeKnownVulnerability, 4, v.getVulnerabilityName()); +1135 addNullableStringParameter(mergeKnownVulnerability, 5, v.getDateAdded()); +1136 addNullableStringParameter(mergeKnownVulnerability, 6, v.getShortDescription()); +1137 addNullableStringParameter(mergeKnownVulnerability, 7, v.getRequiredAction()); +1138 addNullableStringParameter(mergeKnownVulnerability, 8, v.getDueDate()); +1139 addNullableStringParameter(mergeKnownVulnerability, 9, v.getNotes()); +1140 if (isBatchInsertEnabled()) { +1141 mergeKnownVulnerability.addBatch(); +1142 ctr++; +1143 if (ctr >= getBatchSize()) { +1144 mergeKnownVulnerability.executeBatch(); +1145 ctr = 0; +1146 } +1147 } else { +1148 try { +1149 mergeKnownVulnerability.execute(); +1150 } catch (SQLException ex) { +1151 if (ex.getMessage().contains("Duplicate entry")) { +1152 final String msg = String.format("Duplicate known exploited vulnerability key identified in '%s'", v.getCveID()); +1153 LOGGER.info(msg, ex); +1154 } else { +1155 throw ex; +1156 } +1157 } +1158 } +1159 } +1160 if (isBatchInsertEnabled()) { +1161 mergeKnownVulnerability.executeBatch(); +1162 } +1163 } +1164 } +1165 +1166 /** +1167 * Used when updating a vulnerability - this method inserts the list of +1168 * vulnerable software. +1169 * +1170 * @param vulnerabilityId the vulnerability id +1171 * @param cveId the CVE ID - used for reporting +1172 * @param software the list of vulnerable software +1173 * @param baseEcosystem the ecosystem based off of the vulnerability +1174 * description +1175 * @throws DatabaseException thrown if there is an error inserting the data +1176 * @throws SQLException thrown if there is an error inserting the data +1177 */ +1178 private void updateVulnerabilityInsertSoftware(int vulnerabilityId, String cveId, +1179 List<VulnerableSoftware> software, String baseEcosystem) +1180 throws DatabaseException, SQLException { +1181 try (Connection conn = databaseManager.getConnection(); PreparedStatement insertSoftware = getPreparedStatement(conn, INSERT_SOFTWARE)) { +1182 for (VulnerableSoftware parsedCpe : software) { +1183 insertSoftware.setInt(1, vulnerabilityId); +1184 insertSoftware.setString(2, parsedCpe.getPart().getAbbreviation()); +1185 insertSoftware.setString(3, parsedCpe.getVendor()); +1186 insertSoftware.setString(4, parsedCpe.getProduct()); +1187 insertSoftware.setString(5, parsedCpe.getVersion()); +1188 insertSoftware.setString(6, parsedCpe.getUpdate()); +1189 insertSoftware.setString(7, parsedCpe.getEdition()); +1190 insertSoftware.setString(8, parsedCpe.getLanguage()); +1191 insertSoftware.setString(9, parsedCpe.getSwEdition()); +1192 insertSoftware.setString(10, parsedCpe.getTargetSw()); +1193 insertSoftware.setString(11, parsedCpe.getTargetHw()); +1194 insertSoftware.setString(12, parsedCpe.getOther()); +1195 final String ecosystem = CpeEcosystemCache.getEcosystem(parsedCpe.getVendor(), parsedCpe.getProduct(), +1196 cveItemConverter.extractEcosystem(baseEcosystem, parsedCpe)); +1197 +1198 addNullableStringParameter(insertSoftware, 13, ecosystem); +1199 addNullableStringParameter(insertSoftware, 14, parsedCpe.getVersionEndExcluding()); +1200 addNullableStringParameter(insertSoftware, 15, parsedCpe.getVersionEndIncluding()); +1201 addNullableStringParameter(insertSoftware, 16, parsedCpe.getVersionStartExcluding()); +1202 addNullableStringParameter(insertSoftware, 17, parsedCpe.getVersionStartIncluding()); +1203 insertSoftware.setBoolean(18, parsedCpe.isVulnerable()); +1204 +1205 if (isBatchInsertEnabled()) { +1206 insertSoftware.addBatch(); +1207 } else { +1208 try { +1209 insertSoftware.execute(); +1210 } catch (SQLException ex) { +1211 if (ex.getMessage().contains("Duplicate entry")) { +1212 final String msg = String.format("Duplicate software key identified in '%s'", cveId); +1213 LOGGER.info(msg, ex); +1214 } else { +1215 throw ex; +1216 } +1217 } +1218 } +1219 } +1220 if (isBatchInsertEnabled()) { +1221 executeBatch(cveId, insertSoftware); +1222 } +1223 } +1224 } +1225 +1226 /** +1227 * Used when updating a vulnerability - this method inserts the list of +1228 * references. +1229 * +1230 * @param vulnerabilityId the vulnerability id +1231 * @param cve the CVE entry that contains the list of references +1232 * @throws SQLException thrown if there is an error inserting the data +1233 */ +1234 private void updateVulnerabilityInsertReferences(int vulnerabilityId, DefCveItem cve) throws SQLException { +1235 try (Connection conn = databaseManager.getConnection(); PreparedStatement insertReference = getPreparedStatement(conn, INSERT_REFERENCE)) { +1236 if (cve.getCve().getReferences() != null) { +1237 for (Reference r : cve.getCve().getReferences()) { +1238 insertReference.setInt(1, vulnerabilityId); +1239 String name = null; +1240 if (r.getTags() != null) { +1241 name = r.getTags().stream().sorted().collect(Collectors.joining(",")).toUpperCase().replaceAll("\\s", "_"); +1242 } +1243 if (name != null) { +1244 insertReference.setString(2, name); +1245 } else { +1246 insertReference.setNull(2, java.sql.Types.VARCHAR); +1247 } +1248 if (r.getUrl() != null && !r.getUrl().isEmpty()) { +1249 insertReference.setString(3, r.getUrl()); +1250 } else { +1251 insertReference.setNull(3, java.sql.Types.VARCHAR); +1252 } +1253 if (r.getSource() != null && !r.getSource().isEmpty()) { +1254 insertReference.setString(4, r.getSource()); +1255 } else { +1256 insertReference.setNull(4, java.sql.Types.VARCHAR); +1257 } +1258 if (isBatchInsertEnabled()) { +1259 insertReference.addBatch(); +1260 } else { +1261 insertReference.execute(); +1262 } +1263 } +1264 } +1265 if (isBatchInsertEnabled()) { +1266 insertReference.executeBatch(); +1267 } +1268 } +1269 } +1270 +1271 /** +1272 * Parses the configuration entries from the CVE entry into a list of +1273 * VulnerableSoftware objects. +1274 * +1275 * @param cve the CVE to parse the vulnerable software entries from +1276 * @return the list of vulnerable software +1277 * @throws CpeValidationException if an invalid CPE is present +1278 */ +1279 private List<VulnerableSoftware> parseCpes(DefCveItem cve) throws CpeValidationException { +1280 final List<VulnerableSoftware> software = new ArrayList<>(); +1281 +1282 final List<CpeMatch> cpeEntries = cve.getCve().getConfigurations().stream() +1283 .map(Config::getNodes) +1284 .flatMap(List::stream) +1285 .map(Node::getCpeMatch) +1286 .flatMap(List::stream) +1287 .filter(predicate -> predicate.getCriteria() != null) +1288 .filter(predicate -> predicate.getCriteria().startsWith(cpeStartsWithFilter)) +1289 //this single CPE entry causes nearly 100% FP - so filtering it at the source. +1290 .filter(entry -> !("CVE-2009-0754".equals(cve.getCve().getId()) +1291 && "cpe:2.3:a:apache:apache:*:*:*:*:*:*:*:*".equals(entry.getCriteria()))) +1292 .collect(Collectors.toList()); +1293 final VulnerableSoftwareBuilder builder = new VulnerableSoftwareBuilder(); +1294 +1295 try { +1296 cpeEntries.forEach(entry -> { +1297 builder.cpe(parseCpe(entry, cve.getCve().getId())) +1298 .versionEndExcluding(entry.getVersionEndExcluding()) +1299 .versionStartExcluding(entry.getVersionStartExcluding()) +1300 .versionEndIncluding(entry.getVersionEndIncluding()) +1301 .versionStartIncluding(entry.getVersionStartIncluding()) +1302 .vulnerable(entry.getVulnerable()); +1303 try { +1304 software.add(builder.build()); +1305 } catch (CpeValidationException ex) { +1306 throw new LambdaExceptionWrapper(ex); +1307 } +1308 }); +1309 } catch (LambdaExceptionWrapper ex) { +1310 throw (CpeValidationException) ex.getCause(); +1311 } +1312 return software; +1313 } +1314 +1315 /** +1316 * Helper method to convert a CpeMatch (generated code used in parsing the +1317 * NVD JSON) into a CPE object. +1318 * +1319 * @param cpe the CPE Match +1320 * @param cveId the CVE associated with the CPEMatch - used for error +1321 * reporting +1322 * @return the resulting CPE object +1323 * @throws DatabaseException thrown if there is an error converting the +1324 * CpeMatch into a CPE object +1325 */ +1326 private Cpe parseCpe(CpeMatch cpe, String cveId) throws DatabaseException { +1327 final Cpe parsedCpe; +1328 try { +1329 //the replace is a hack as the NVD does not properly escape backslashes in their JSON +1330 parsedCpe = CpeParser.parse(cpe.getCriteria(), true); +1331 } catch (CpeParsingException ex) { +1332 LOGGER.debug("NVD (" + cveId + ") contain an invalid 2.3 CPE: " + cpe.getCriteria()); +1333 throw new DatabaseException("Unable to parse CPE: " + cpe.getCriteria(), ex); +1334 } +1335 return parsedCpe; +1336 } +1337 +1338 /** +1339 * Returns the size of the batch. +1340 * +1341 * @return the size of the batch +1342 */ +1343 private int getBatchSize() { +1344 int max; +1345 try { +1346 max = settings.getInt(Settings.KEYS.MAX_BATCH_SIZE); +1347 } catch (InvalidSettingException pE) { +1348 max = 1000; +1349 } +1350 return max; +1351 } +1352 +1353 /** +1354 * Determines whether or not batch insert is enabled. +1355 * +1356 * @return <code>true</code> if batch insert is enabled; otherwise +1357 * <code>false</code> +1358 */ +1359 private boolean isBatchInsertEnabled() { +1360 boolean batch; +1361 try { +1362 batch = settings.getBoolean(Settings.KEYS.ENABLE_BATCH_UPDATES); +1363 } catch (InvalidSettingException pE) { +1364 //If there's no configuration, default is to not perform batch inserts +1365 batch = false; +1366 } +1367 return batch; +1368 } +1369 +1370 /** +1371 * Executes batch inserts of vulnerabilities when property +1372 * database.batchinsert.maxsize is reached. +1373 * +1374 * @param vulnId the vulnerability ID +1375 * @param statement the prepared statement to batch execute +1376 * @throws SQLException thrown when the batch cannot be executed +1377 */ +1378 private void executeBatch(String vulnId, PreparedStatement statement) +1379 throws SQLException { +1380 try { +1381 statement.executeBatch(); +1382 } catch (SQLException ex) { +1383 if (ex.getMessage().contains("Duplicate entry")) { +1384 final String msg = String.format("Duplicate software key identified in '%s'", +1385 vulnId); +1386 LOGGER.info(msg, ex); +1387 } else { +1388 throw ex; +1389 } +1390 } +1391 } +1392 +1393 /** +1394 * Checks to see if data exists so that analysis can be performed. +1395 * +1396 * @return <code>true</code> if data exists; otherwise <code>false</code> +1397 */ +1398 public boolean dataExists() { +1399 try (Connection conn = databaseManager.getConnection(); +1400 PreparedStatement cs = getPreparedStatement(conn, COUNT_CPE); +1401 ResultSet rs = cs.executeQuery()) { +1402 if (rs.next() && rs.getInt(1) > 0) { +1403 return true; +1404 } +1405 } catch (Exception ex) { +1406 String dd; +1407 try { +1408 dd = settings.getDataDirectory().getAbsolutePath(); +1409 } catch (IOException ex1) { +1410 dd = settings.getString(Settings.KEYS.DATA_DIRECTORY); +1411 } +1412 LOGGER.error("Unable to access the local database.\n\nEnsure that '{}' is a writable directory. " +1413 + "If the problem persist try deleting the files in '{}' and running {} again. If the problem continues, please " +1414 + "create a log file (see documentation at https://jeremylong.github.io/DependencyCheck/) and open a ticket at " +1415 + "https://github.com/jeremylong/DependencyCheck/issues and include the log file.\n\n", +1416 dd, dd, settings.getString(Settings.KEYS.APPLICATION_NAME)); +1417 LOGGER.debug("", ex); +1418 } +1419 return false; +1420 } +1421 +1422 /** +1423 * It is possible that orphaned rows may be generated during database +1424 * updates. This should be called after all updates have been completed to +1425 * ensure orphan entries are removed. +1426 */ +1427 public void cleanupDatabase() { +1428 LOGGER.info("Begin database maintenance"); +1429 final long start = System.currentTimeMillis(); +1430 try (Connection conn = databaseManager.getConnection(); +1431 PreparedStatement psOrphans = getPreparedStatement(conn, CLEANUP_ORPHANS); +1432 PreparedStatement psEcosystem = getPreparedStatement(conn, UPDATE_ECOSYSTEM); +1433 PreparedStatement psEcosystem2 = getPreparedStatement(conn, UPDATE_ECOSYSTEM2)) { +1434 if (psEcosystem != null) { +1435 final int count = psEcosystem.executeUpdate(); +1436 if (count > 0) { +1437 LOGGER.info("Updated the CPE ecosystem on {} NVD records", count); +1438 } +1439 } +1440 if (psEcosystem2 != null) { +1441 final int count = psEcosystem2.executeUpdate(); +1442 if (count > 0) { +1443 LOGGER.info("Removed the CPE ecosystem on {} NVD records", count); +1444 } +1445 } +1446 if (psOrphans != null) { +1447 final int count = psOrphans.executeUpdate(); +1448 if (count > 0) { +1449 LOGGER.info("Cleaned up {} orphaned NVD records", count); +1450 } +1451 } +1452 final long millis = System.currentTimeMillis() - start; +1453 //final long seconds = TimeUnit.MILLISECONDS.toSeconds(millis); +1454 LOGGER.info("End database maintenance ({} ms)", millis); +1455 } catch (SQLException ex) { +1456 LOGGER.error("An unexpected SQL Exception occurred; please see the verbose log for more details."); +1457 LOGGER.debug("", ex); +1458 throw new DatabaseException("Unexpected SQL Exception", ex); +1459 } +1460 } +1461 +1462 /** +1463 * Persist the EcosystemCache into the database. 1464 */ -1465 public void defrag() { -1466 if (isH2) { -1467 final long start = System.currentTimeMillis(); -1468 try (Connection conn = databaseManager.getConnection(); CallableStatement psCompaxt = conn.prepareCall("SHUTDOWN DEFRAG")) { -1469 LOGGER.info("Begin database defrag"); -1470 psCompaxt.execute(); -1471 final long millis = System.currentTimeMillis() - start; -1472 //final long seconds = TimeUnit.MILLISECONDS.toSeconds(millis); -1473 LOGGER.info("End database defrag ({} ms)", millis); -1474 } catch (SQLException ex) { -1475 LOGGER.error("An unexpected SQL Exception occurred compacting the database; please see the verbose log for more details."); -1476 LOGGER.debug("", ex); -1477 } -1478 } -1479 } -1480 -1481 /** -1482 * Determines if the given identifiedVersion is affected by the given cpeId -1483 * and previous version flag. A non-null, non-empty string passed to the -1484 * previous version argument indicates that all previous versions are -1485 * affected. -1486 * -1487 * @param cpe the CPE for the given dependency -1488 * @param vulnerableSoftware a set of the vulnerable software -1489 * @return true if the identified version is affected, otherwise false -1490 */ -1491 VulnerableSoftware getMatchingSoftware(Cpe cpe, Set<VulnerableSoftware> vulnerableSoftware) { -1492 VulnerableSoftware matched = null; -1493 for (VulnerableSoftware vs : vulnerableSoftware) { -1494 if (vs.matches(cpe)) { -1495 if (matched == null) { -1496 matched = vs; -1497 } else { -1498 if ("*".equals(vs.getWellFormedUpdate()) && !"*".equals(matched.getWellFormedUpdate())) { -1499 matched = vs; -1500 } -1501 } -1502 } -1503 } -1504 return matched; -1505 } -1506 -1507 /** -1508 * This method is only referenced in unused code. -1509 * <p> -1510 * Deletes unused dictionary entries from the database. -1511 * </p> -1512 */ -1513 public void deleteUnusedCpe() { -1514 clearCache(); -1515 try (Connection conn = databaseManager.getConnection(); PreparedStatement ps = getPreparedStatement(conn, DELETE_UNUSED_DICT_CPE)) { -1516 ps.executeUpdate(); -1517 } catch (SQLException ex) { -1518 LOGGER.error("Unable to delete CPE dictionary entries", ex); -1519 } -1520 } -1521 -1522 /** -1523 * This method is only referenced in unused code and will likely break on -1524 * MySQL if ever used due to the MERGE statement. -1525 * <p> -1526 * Merges CPE entries into the database. -1527 * </p> -1528 * -1529 * @param cpe the CPE identifier -1530 * @param vendor the CPE vendor -1531 * @param product the CPE product -1532 */ -1533 public void addCpe(String cpe, String vendor, String product) { -1534 clearCache(); -1535 try (Connection conn = databaseManager.getConnection(); PreparedStatement ps = getPreparedStatement(conn, ADD_DICT_CPE)) { -1536 ps.setString(1, cpe); -1537 ps.setString(2, vendor); -1538 ps.setString(3, product); -1539 ps.executeUpdate(); -1540 } catch (SQLException ex) { -1541 LOGGER.error("Unable to add CPE dictionary entry", ex); -1542 } -1543 } -1544 -1545 /** -1546 * Returns a map of known exploited vulnerabilities. -1547 * -1548 * @return a map of known exploited vulnerabilities -1549 */ -1550 public Map<String, org.owasp.dependencycheck.data.knownexploited.json.Vulnerability> getknownExploitedVulnerabilities() { -1551 final Map<String, org.owasp.dependencycheck.data.knownexploited.json.Vulnerability> known = new HashMap<>(); -1552 -1553 try (Connection conn = databaseManager.getConnection(); -1554 PreparedStatement ps = getPreparedStatement(conn, SELECT_KNOWN_EXPLOITED_VULNERABILITIES); -1555 ResultSet rs = ps.executeQuery()) { -1556 -1557 while (rs.next()) { -1558 final org.owasp.dependencycheck.data.knownexploited.json.Vulnerability kev = -1559 new org.owasp.dependencycheck.data.knownexploited.json.Vulnerability(); -1560 kev.setCveID(rs.getString(1)); -1561 kev.setVendorProject(rs.getString(2)); -1562 kev.setProduct(rs.getString(3)); -1563 kev.setVulnerabilityName(rs.getString(4)); -1564 kev.setDateAdded(rs.getString(5)); -1565 kev.setShortDescription(rs.getString(6)); -1566 kev.setRequiredAction(rs.getString(7)); -1567 kev.setDueDate(rs.getString(8)); -1568 kev.setNotes(rs.getString(9)); -1569 known.put(kev.getCveID(), kev); -1570 } -1571 -1572 } catch (SQLException ex) { -1573 throw new DatabaseException(ex); -1574 } -1575 return known; -1576 } -1577 -1578 /** -1579 * Helper method to add a nullable string parameter. -1580 * -1581 * @param ps the prepared statement -1582 * @param pos the position of the parameter -1583 * @param value the value of the parameter -1584 * @throws SQLException thrown if there is an error setting the parameter. -1585 */ -1586 private void addNullableStringParameter(PreparedStatement ps, int pos, String value) throws SQLException { -1587 if (value == null || value.isEmpty()) { -1588 ps.setNull(pos, java.sql.Types.VARCHAR); -1589 } else { -1590 ps.setString(pos, value); -1591 } -1592 } -1593 -1594 private void setUpdateColumn(PreparedStatement ps, int i, Double value) throws SQLException { -1595 if (value == null) { -1596 ps.setNull(i, java.sql.Types.DOUBLE); -1597 } else { -1598 ps.setDouble(i, value); -1599 } -1600 } -1601 -1602 private void setUpdateColumn(PreparedStatement ps, int i, CvssV2Data.AuthenticationType value) throws SQLException { -1603 if (value == null) { -1604 ps.setNull(i, java.sql.Types.VARCHAR); -1605 } else { -1606 ps.setString(i, value.value()); -1607 } -1608 } -1609 -1610 private void setUpdateColumn(PreparedStatement ps, int i, CvssV2Data.CiaType value) throws SQLException { -1611 if (value == null) { -1612 ps.setNull(i, java.sql.Types.VARCHAR); -1613 } else { -1614 ps.setString(i, value.value()); -1615 } -1616 } -1617 -1618 private void setUpdateColumn(PreparedStatement ps, int i, CvssV2Data.Version value) throws SQLException { -1619 if (value == null) { -1620 ps.setNull(i, java.sql.Types.VARCHAR); -1621 } else { -1622 ps.setString(i, value.value()); -1623 } -1624 } -1625 -1626 private void setUpdateColumn(PreparedStatement ps, int i, CvssV2Data.AccessComplexityType value) throws SQLException { -1627 if (value == null) { -1628 ps.setNull(i, java.sql.Types.VARCHAR); -1629 } else { -1630 ps.setString(i, value.value()); -1631 } -1632 } -1633 -1634 private void setUpdateColumn(PreparedStatement ps, int i, CvssV2Data.AccessVectorType value) throws SQLException { -1635 if (value == null) { -1636 ps.setNull(i, java.sql.Types.VARCHAR); -1637 } else { -1638 ps.setString(i, value.value()); -1639 } -1640 } -1641 -1642 private void setUpdateColumn(PreparedStatement ps, int i, String value) throws SQLException { -1643 if (value == null) { -1644 ps.setNull(i, java.sql.Types.VARCHAR); -1645 } else { -1646 ps.setString(i, value); -1647 } -1648 } -1649 -1650 private void setUpdateColumn(PreparedStatement ps, int i, Boolean value) throws SQLException { -1651 if (value == null) { -1652 ps.setNull(i, java.sql.Types.BOOLEAN); -1653 } else { -1654 ps.setBoolean(i, value); -1655 } -1656 } -1657 -1658 private void setUpdateColumn(PreparedStatement ps, int i, CvssV3Data.AttackVectorType value) throws SQLException { -1659 if (value == null) { -1660 ps.setNull(i, java.sql.Types.VARCHAR); -1661 } else { -1662 ps.setString(i, value.value()); -1663 } -1664 } -1665 -1666 private void setUpdateColumn(PreparedStatement ps, int i, CvssV3Data.AttackComplexityType value) throws SQLException { -1667 if (value == null) { -1668 ps.setNull(i, java.sql.Types.VARCHAR); -1669 } else { -1670 ps.setString(i, value.value()); -1671 } -1672 } -1673 -1674 private void setUpdateColumn(PreparedStatement ps, int i, CvssV3Data.PrivilegesRequiredType value) throws SQLException { -1675 if (value == null) { -1676 ps.setNull(i, java.sql.Types.VARCHAR); -1677 } else { -1678 ps.setString(i, value.value()); -1679 } -1680 } -1681 -1682 private void setUpdateColumn(PreparedStatement ps, int i, CvssV3Data.UserInteractionType value) throws SQLException { -1683 if (value == null) { -1684 ps.setNull(i, java.sql.Types.VARCHAR); -1685 } else { -1686 ps.setString(i, value.value()); -1687 } -1688 } -1689 -1690 private void setUpdateColumn(PreparedStatement ps, int i, CvssV3Data.ScopeType value) throws SQLException { -1691 if (value == null) { -1692 ps.setNull(i, java.sql.Types.VARCHAR); -1693 } else { -1694 ps.setString(i, value.value()); -1695 } -1696 } -1697 -1698 private void setUpdateColumn(PreparedStatement ps, int i, CvssV3Data.SeverityType value) throws SQLException { -1699 if (value == null) { -1700 ps.setNull(i, java.sql.Types.VARCHAR); -1701 } else { -1702 ps.setString(i, value.value()); -1703 } -1704 } -1705 -1706 private void setUpdateColumn(PreparedStatement ps, int i, CvssV3Data.CiaType value) throws SQLException { -1707 if (value == null) { -1708 ps.setNull(i, java.sql.Types.VARCHAR); -1709 } else { -1710 ps.setString(i, value.value()); -1711 } -1712 } -1713 -1714 private void setUpdateColumn(PreparedStatement ps, int i, CvssV3Data.Version value) throws SQLException { -1715 if (value == null) { -1716 ps.setNull(i, java.sql.Types.VARCHAR); -1717 } else { -1718 ps.setString(i, value.value()); -1719 } -1720 } -1721 -1722 /** -1723 * Sets the float parameter on a prepared statement from a properties map. -1724 * -1725 * @param ps a prepared statement -1726 * @param i the index of the property -1727 * @param props the property collection -1728 * @param key the property key -1729 * @throws SQLException thrown if there is an error adding the property -1730 */ -1731 private void setFloatValue(PreparedStatement ps, int i, Map<String, Object> props, String key) throws SQLException { -1732 if (props != null && props.containsKey(key)) { -1733 try { -1734 ps.setFloat(i, Float.parseFloat(props.get(key).toString())); -1735 } catch (NumberFormatException nfe) { -1736 ps.setNull(i, java.sql.Types.FLOAT); -1737 } -1738 } else { -1739 ps.setNull(i, java.sql.Types.FLOAT); -1740 } -1741 } -1742 -1743 /** -1744 * Sets the string parameter on a prepared statement from a properties map. -1745 * -1746 * @param ps a prepared statement -1747 * @param i the index of the property -1748 * @param props the property collection -1749 * @param key the property key -1750 * @throws SQLException thrown if there is an error adding the property -1751 */ -1752 private void setStringValue(PreparedStatement ps, int i, Map<String, Object> props, String key) throws SQLException { -1753 if (props != null && props.containsKey(key)) { -1754 ps.setString(i, props.get(key).toString()); -1755 } else { -1756 ps.setNull(i, java.sql.Types.VARCHAR); -1757 } -1758 } -1759 -1760 /** -1761 * Sets the boolean parameter on a prepared statement from a properties map. -1762 * -1763 * @param ps a prepared statement -1764 * @param i the index of the property -1765 * @param props the property collection -1766 * @param key the property key -1767 * @throws SQLException thrown if there is an error adding the property -1768 */ -1769 private void setBooleanValue(PreparedStatement ps, int i, Map<String, Object> props, String key) throws SQLException { -1770 if (props != null && props.containsKey(key)) { -1771 ps.setBoolean(i, Boolean.parseBoolean(props.get(key).toString())); -1772 } else { -1773 ps.setNull(i, java.sql.Types.BOOLEAN); -1774 } -1775 } -1776 -1777 /** -1778 * Returns the Boolean value for the given index; if the value is null then -1779 * null is returned. -1780 * -1781 * @param rs the record set -1782 * @param index the parameter index -1783 * @return the Boolean value; or null -1784 * @throws SQLException thrown if there is an error obtaining the value -1785 */ -1786 @SuppressFBWarnings("NP_BOOLEAN_RETURN_NULL") -1787 private Boolean getBooleanValue(ResultSet rs, int index) throws SQLException { -1788 if (rs.getObject(index) == null) { -1789 return null; -1790 } -1791 return rs.getBoolean(index); -1792 } -1793 -1794 /** -1795 * Returns the Float value for the given index; if the value is null then -1796 * null is returned. -1797 * -1798 * @param rs the record set -1799 * @param index the parameter index -1800 * @return the Float value; or null -1801 * @throws SQLException thrown if there is an error obtaining the value -1802 */ -1803 private Float getFloatValue(ResultSet rs, int index) throws SQLException { -1804 if (rs.getObject(index) == null) { -1805 return null; -1806 } -1807 return rs.getFloat(index); -1808 } -1809 } +1465 public void persistEcosystemCache() { +1466 saveCpeEcosystemCache(); +1467 clearCache(); +1468 } +1469 +1470 /** +1471 * If the database is using an H2 file based database calling +1472 * <code>defrag()</code> will de-fragment the database. +1473 */ +1474 public void defrag() { +1475 if (isH2) { +1476 final long start = System.currentTimeMillis(); +1477 try (Connection conn = databaseManager.getConnection(); CallableStatement psCompaxt = conn.prepareCall("SHUTDOWN DEFRAG")) { +1478 LOGGER.info("Begin database defrag"); +1479 psCompaxt.execute(); +1480 final long millis = System.currentTimeMillis() - start; +1481 //final long seconds = TimeUnit.MILLISECONDS.toSeconds(millis); +1482 LOGGER.info("End database defrag ({} ms)", millis); +1483 } catch (SQLException ex) { +1484 LOGGER.error("An unexpected SQL Exception occurred compacting the database; please see the verbose log for more details."); +1485 LOGGER.debug("", ex); +1486 } +1487 } +1488 } +1489 +1490 /** +1491 * Determines if the given identifiedVersion is affected by the given cpeId +1492 * and previous version flag. A non-null, non-empty string passed to the +1493 * previous version argument indicates that all previous versions are +1494 * affected. +1495 * +1496 * @param cpe the CPE for the given dependency +1497 * @param vulnerableSoftware a set of the vulnerable software +1498 * @return true if the identified version is affected, otherwise false +1499 */ +1500 VulnerableSoftware getMatchingSoftware(Cpe cpe, Set<VulnerableSoftware> vulnerableSoftware) { +1501 VulnerableSoftware matched = null; +1502 for (VulnerableSoftware vs : vulnerableSoftware) { +1503 if (vs.matches(cpe)) { +1504 if (matched == null) { +1505 matched = vs; +1506 } else { +1507 if ("*".equals(vs.getWellFormedUpdate()) && !"*".equals(matched.getWellFormedUpdate())) { +1508 matched = vs; +1509 } +1510 } +1511 } +1512 } +1513 return matched; +1514 } +1515 +1516 /** +1517 * This method is only referenced in unused code. +1518 * <p> +1519 * Deletes unused dictionary entries from the database. +1520 * </p> +1521 */ +1522 public void deleteUnusedCpe() { +1523 clearCache(); +1524 try (Connection conn = databaseManager.getConnection(); PreparedStatement ps = getPreparedStatement(conn, DELETE_UNUSED_DICT_CPE)) { +1525 ps.executeUpdate(); +1526 } catch (SQLException ex) { +1527 LOGGER.error("Unable to delete CPE dictionary entries", ex); +1528 } +1529 } +1530 +1531 /** +1532 * This method is only referenced in unused code and will likely break on +1533 * MySQL if ever used due to the MERGE statement. +1534 * <p> +1535 * Merges CPE entries into the database. +1536 * </p> +1537 * +1538 * @param cpe the CPE identifier +1539 * @param vendor the CPE vendor +1540 * @param product the CPE product +1541 */ +1542 public void addCpe(String cpe, String vendor, String product) { +1543 clearCache(); +1544 try (Connection conn = databaseManager.getConnection(); PreparedStatement ps = getPreparedStatement(conn, ADD_DICT_CPE)) { +1545 ps.setString(1, cpe); +1546 ps.setString(2, vendor); +1547 ps.setString(3, product); +1548 ps.executeUpdate(); +1549 } catch (SQLException ex) { +1550 LOGGER.error("Unable to add CPE dictionary entry", ex); +1551 } +1552 } +1553 +1554 /** +1555 * Returns a map of known exploited vulnerabilities. +1556 * +1557 * @return a map of known exploited vulnerabilities +1558 */ +1559 public Map<String, org.owasp.dependencycheck.data.knownexploited.json.Vulnerability> getknownExploitedVulnerabilities() { +1560 final Map<String, org.owasp.dependencycheck.data.knownexploited.json.Vulnerability> known = new HashMap<>(); +1561 +1562 try (Connection conn = databaseManager.getConnection(); +1563 PreparedStatement ps = getPreparedStatement(conn, SELECT_KNOWN_EXPLOITED_VULNERABILITIES); +1564 ResultSet rs = ps.executeQuery()) { +1565 +1566 while (rs.next()) { +1567 final org.owasp.dependencycheck.data.knownexploited.json.Vulnerability kev = +1568 new org.owasp.dependencycheck.data.knownexploited.json.Vulnerability(); +1569 kev.setCveID(rs.getString(1)); +1570 kev.setVendorProject(rs.getString(2)); +1571 kev.setProduct(rs.getString(3)); +1572 kev.setVulnerabilityName(rs.getString(4)); +1573 kev.setDateAdded(rs.getString(5)); +1574 kev.setShortDescription(rs.getString(6)); +1575 kev.setRequiredAction(rs.getString(7)); +1576 kev.setDueDate(rs.getString(8)); +1577 kev.setNotes(rs.getString(9)); +1578 known.put(kev.getCveID(), kev); +1579 } +1580 +1581 } catch (SQLException ex) { +1582 throw new DatabaseException(ex); +1583 } +1584 return known; +1585 } +1586 +1587 /** +1588 * Helper method to add a nullable string parameter. +1589 * +1590 * @param ps the prepared statement +1591 * @param pos the position of the parameter +1592 * @param value the value of the parameter +1593 * @throws SQLException thrown if there is an error setting the parameter. +1594 */ +1595 private void addNullableStringParameter(PreparedStatement ps, int pos, String value) throws SQLException { +1596 if (value == null || value.isEmpty()) { +1597 ps.setNull(pos, java.sql.Types.VARCHAR); +1598 } else { +1599 ps.setString(pos, value); +1600 } +1601 } +1602 +1603 private void setUpdateColumn(PreparedStatement ps, int i, Double value) throws SQLException { +1604 if (value == null) { +1605 ps.setNull(i, java.sql.Types.DOUBLE); +1606 } else { +1607 ps.setDouble(i, value); +1608 } +1609 } +1610 +1611 private void setUpdateColumn(PreparedStatement ps, int i, CvssV2Data.AuthenticationType value) throws SQLException { +1612 if (value == null) { +1613 ps.setNull(i, java.sql.Types.VARCHAR); +1614 } else { +1615 ps.setString(i, value.value()); +1616 } +1617 } +1618 +1619 private void setUpdateColumn(PreparedStatement ps, int i, CvssV2Data.CiaType value) throws SQLException { +1620 if (value == null) { +1621 ps.setNull(i, java.sql.Types.VARCHAR); +1622 } else { +1623 ps.setString(i, value.value()); +1624 } +1625 } +1626 +1627 private void setUpdateColumn(PreparedStatement ps, int i, CvssV2Data.Version value) throws SQLException { +1628 if (value == null) { +1629 ps.setNull(i, java.sql.Types.VARCHAR); +1630 } else { +1631 ps.setString(i, value.value()); +1632 } +1633 } +1634 +1635 private void setUpdateColumn(PreparedStatement ps, int i, CvssV2Data.AccessComplexityType value) throws SQLException { +1636 if (value == null) { +1637 ps.setNull(i, java.sql.Types.VARCHAR); +1638 } else { +1639 ps.setString(i, value.value()); +1640 } +1641 } +1642 +1643 private void setUpdateColumn(PreparedStatement ps, int i, CvssV2Data.AccessVectorType value) throws SQLException { +1644 if (value == null) { +1645 ps.setNull(i, java.sql.Types.VARCHAR); +1646 } else { +1647 ps.setString(i, value.value()); +1648 } +1649 } +1650 +1651 private void setUpdateColumn(PreparedStatement ps, int i, String value) throws SQLException { +1652 if (value == null) { +1653 ps.setNull(i, java.sql.Types.VARCHAR); +1654 } else { +1655 ps.setString(i, value); +1656 } +1657 } +1658 +1659 private void setUpdateColumn(PreparedStatement ps, int i, Boolean value) throws SQLException { +1660 if (value == null) { +1661 //TODO this is may also be an issue for MS SQL, if an issue is created we'll just need +1662 // to create an isMsSQL flag. See todo above in updateOrInsertVulnerability. +1663 if (isOracle) { +1664 ps.setNull(i, java.sql.Types.BIT); +1665 } else { +1666 ps.setNull(i, java.sql.Types.BOOLEAN); +1667 } +1668 } else { +1669 ps.setBoolean(i, value); +1670 } +1671 } +1672 +1673 private void setUpdateColumn(PreparedStatement ps, int i, CvssV3Data.AttackVectorType value) throws SQLException { +1674 if (value == null) { +1675 ps.setNull(i, java.sql.Types.VARCHAR); +1676 } else { +1677 ps.setString(i, value.value()); +1678 } +1679 } +1680 +1681 private void setUpdateColumn(PreparedStatement ps, int i, CvssV3Data.AttackComplexityType value) throws SQLException { +1682 if (value == null) { +1683 ps.setNull(i, java.sql.Types.VARCHAR); +1684 } else { +1685 ps.setString(i, value.value()); +1686 } +1687 } +1688 +1689 private void setUpdateColumn(PreparedStatement ps, int i, CvssV3Data.PrivilegesRequiredType value) throws SQLException { +1690 if (value == null) { +1691 ps.setNull(i, java.sql.Types.VARCHAR); +1692 } else { +1693 ps.setString(i, value.value()); +1694 } +1695 } +1696 +1697 private void setUpdateColumn(PreparedStatement ps, int i, CvssV3Data.UserInteractionType value) throws SQLException { +1698 if (value == null) { +1699 ps.setNull(i, java.sql.Types.VARCHAR); +1700 } else { +1701 ps.setString(i, value.value()); +1702 } +1703 } +1704 +1705 private void setUpdateColumn(PreparedStatement ps, int i, CvssV3Data.ScopeType value) throws SQLException { +1706 if (value == null) { +1707 ps.setNull(i, java.sql.Types.VARCHAR); +1708 } else { +1709 ps.setString(i, value.value()); +1710 } +1711 } +1712 +1713 private void setUpdateColumn(PreparedStatement ps, int i, CvssV3Data.SeverityType value) throws SQLException { +1714 if (value == null) { +1715 ps.setNull(i, java.sql.Types.VARCHAR); +1716 } else { +1717 ps.setString(i, value.value()); +1718 } +1719 } +1720 +1721 private void setUpdateColumn(PreparedStatement ps, int i, CvssV3Data.CiaType value) throws SQLException { +1722 if (value == null) { +1723 ps.setNull(i, java.sql.Types.VARCHAR); +1724 } else { +1725 ps.setString(i, value.value()); +1726 } +1727 } +1728 +1729 private void setUpdateColumn(PreparedStatement ps, int i, CvssV3Data.Version value) throws SQLException { +1730 if (value == null) { +1731 ps.setNull(i, java.sql.Types.VARCHAR); +1732 } else { +1733 ps.setString(i, value.value()); +1734 } +1735 } +1736 +1737 /** +1738 * Sets the float parameter on a prepared statement from a properties map. +1739 * +1740 * @param ps a prepared statement +1741 * @param i the index of the property +1742 * @param props the property collection +1743 * @param key the property key +1744 * @throws SQLException thrown if there is an error adding the property +1745 */ +1746 private void setFloatValue(PreparedStatement ps, int i, Map<String, Object> props, String key) throws SQLException { +1747 if (props != null && props.containsKey(key)) { +1748 try { +1749 ps.setFloat(i, Float.parseFloat(props.get(key).toString())); +1750 } catch (NumberFormatException nfe) { +1751 ps.setNull(i, java.sql.Types.FLOAT); +1752 } +1753 } else { +1754 ps.setNull(i, java.sql.Types.FLOAT); +1755 } +1756 } +1757 +1758 /** +1759 * Sets the string parameter on a prepared statement from a properties map. +1760 * +1761 * @param ps a prepared statement +1762 * @param i the index of the property +1763 * @param props the property collection +1764 * @param key the property key +1765 * @throws SQLException thrown if there is an error adding the property +1766 */ +1767 private void setStringValue(PreparedStatement ps, int i, Map<String, Object> props, String key) throws SQLException { +1768 if (props != null && props.containsKey(key)) { +1769 ps.setString(i, props.get(key).toString()); +1770 } else { +1771 ps.setNull(i, java.sql.Types.VARCHAR); +1772 } +1773 } +1774 +1775 /** +1776 * Sets the boolean parameter on a prepared statement from a properties map. +1777 * +1778 * @param ps a prepared statement +1779 * @param i the index of the property +1780 * @param props the property collection +1781 * @param key the property key +1782 * @throws SQLException thrown if there is an error adding the property +1783 */ +1784 private void setBooleanValue(PreparedStatement ps, int i, Map<String, Object> props, String key) throws SQLException { +1785 if (props != null && props.containsKey(key)) { +1786 ps.setBoolean(i, Boolean.parseBoolean(props.get(key).toString())); +1787 } else { +1788 ps.setNull(i, java.sql.Types.BOOLEAN); +1789 } +1790 } +1791 +1792 /** +1793 * Returns the Boolean value for the given index; if the value is null then +1794 * null is returned. +1795 * +1796 * @param rs the record set +1797 * @param index the parameter index +1798 * @return the Boolean value; or null +1799 * @throws SQLException thrown if there is an error obtaining the value +1800 */ +1801 @SuppressFBWarnings("NP_BOOLEAN_RETURN_NULL") +1802 private Boolean getBooleanValue(ResultSet rs, int index) throws SQLException { +1803 if (rs.getObject(index) == null) { +1804 return null; +1805 } +1806 return rs.getBoolean(index); +1807 } +1808 +1809 /** +1810 * Returns the Float value for the given index; if the value is null then +1811 * null is returned. +1812 * +1813 * @param rs the record set +1814 * @param index the parameter index +1815 * @return the Float value; or null +1816 * @throws SQLException thrown if there is an error obtaining the value +1817 */ +1818 private Float getFloatValue(ResultSet rs, int index) throws SQLException { +1819 if (rs.getObject(index) == null) { +1820 return null; +1821 } +1822 return rs.getFloat(index); +1823 } +1824 }
    diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/data/nvdcve/DatabaseProperties.html b/dependency-check-core/xref/org/owasp/dependencycheck/data/nvdcve/DatabaseProperties.html index 39822fb783b..4d798097d4d 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/data/nvdcve/DatabaseProperties.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/data/nvdcve/DatabaseProperties.html @@ -36,194 +36,244 @@ 28 import javax.annotation.concurrent.ThreadSafe; 29 30 import org.owasp.dependencycheck.data.update.exception.UpdateException; -31 import org.slf4j.Logger; -32 import org.slf4j.LoggerFactory; -33 -34 /** -35 * This is a wrapper around a set of properties that are stored in the database. -36 * This class is safe to be accessed from multiple threads in parallel. -37 * -38 * @author Jeremy Long -39 */ -40 @ThreadSafe -41 public class DatabaseProperties { -42 -43 /** -44 * The Logger. -45 */ -46 private static final Logger LOGGER = LoggerFactory.getLogger(DatabaseProperties.class); -47 /** -48 * The last modified request data for the NVD API. -49 */ -50 public static final String NVD_API_LAST_MODIFIED = "nvd.api.last.modified"; -51 /** -52 * The date the NVD API was last checked for an update. -53 */ -54 public static final String NVD_API_LAST_CHECKED = "nvd.api.last.checked"; -55 /** -56 * The date the NVD cache was last checked for an update. -57 */ -58 public static final String NVD_CACHE_LAST_CHECKED = "nvd.cache.last.checked"; -59 /** -60 * The date the NVD cache data was last modified/updated. -61 */ -62 public static final String NVD_CACHE_LAST_MODIFIED = "nvd.cache.last.modified"; -63 /** -64 * The key for the last time the CPE data was updated. -65 */ -66 public static final String LAST_CPE_UPDATE = "LAST_CPE_UPDATE"; -67 /** -68 * The key for the database schema version. -69 */ -70 public static final String VERSION = "version"; -71 /** -72 * The key for the last check time for the Known Exploited Vulnerabilities. -73 */ -74 public static final String KEV_LAST_CHECKED = "kev.checked"; -75 /** -76 * The key for the version the Known Exploited Vulnerabilities. -77 */ -78 public static final String KEV_VERSION = "kev.version"; -79 /** -80 * A collection of properties about the data. -81 */ -82 private final Properties properties; -83 /** -84 * A reference to the database. -85 */ -86 private final CveDB cveDB; -87 +31 import org.owasp.dependencycheck.utils.DateUtil; +32 import org.slf4j.Logger; +33 import org.slf4j.LoggerFactory; +34 +35 /** +36 * This is a wrapper around a set of properties that are stored in the database. +37 * This class is safe to be accessed from multiple threads in parallel. +38 * +39 * @author Jeremy Long +40 */ +41 @ThreadSafe +42 public class DatabaseProperties { +43 +44 /** +45 * The Logger. +46 */ +47 private static final Logger LOGGER = LoggerFactory.getLogger(DatabaseProperties.class); +48 /** +49 * The last modified request data for the NVD API. +50 */ +51 public static final String NVD_API_LAST_MODIFIED = "nvd.api.last.modified"; +52 /** +53 * The date the NVD API was last checked for an update. +54 */ +55 public static final String NVD_API_LAST_CHECKED = "nvd.api.last.checked"; +56 /** +57 * The date the NVD cache was last checked for an update. +58 */ +59 public static final String NVD_CACHE_LAST_CHECKED = "nvd.cache.last.checked"; +60 /** +61 * The date the NVD cache data was last modified/updated. +62 */ +63 public static final String NVD_CACHE_LAST_MODIFIED = "nvd.cache.last.modified"; +64 /** +65 * The key for the last time the CPE data was updated. +66 */ +67 public static final String LAST_CPE_UPDATE = "LAST_CPE_UPDATE"; +68 /** +69 * The key for the database schema version. +70 */ +71 public static final String VERSION = "version"; +72 /** +73 * The key for the last check time for the Known Exploited Vulnerabilities. +74 */ +75 public static final String KEV_LAST_CHECKED = "kev.checked"; +76 /** +77 * The key for the last check time for the Retire JS repository. +78 */ +79 public static final String RETIRE_LAST_CHECKED = "retirejs.checked"; +80 /** +81 * The key for the last check time for the hosted suppression file. +82 */ +83 public static final String HOSTED_SUPPRESSION_LAST_CHECKED = "hosted.suppression.checked"; +84 /** +85 * The key for the version the Known Exploited Vulnerabilities. +86 */ +87 public static final String KEV_VERSION = "kev.version"; 88 /** -89 * Constructs a new data properties object. -90 * -91 * @param cveDB the database object holding the properties -92 */ -93 DatabaseProperties(CveDB cveDB) { -94 this.cveDB = cveDB; -95 this.properties = cveDB.getProperties(); -96 } -97 -98 /** -99 * Returns whether or not any properties are set. -100 * -101 * @return whether or not any properties are set -102 */ -103 public synchronized boolean isEmpty() { -104 return properties == null || properties.isEmpty(); +89 * A collection of properties about the data. +90 */ +91 private final Properties properties; +92 /** +93 * A reference to the database. +94 */ +95 private final CveDB cveDB; +96 +97 /** +98 * Constructs a new data properties object. +99 * +100 * @param cveDB the database object holding the properties +101 */ +102 DatabaseProperties(CveDB cveDB) { +103 this.cveDB = cveDB; +104 this.properties = cveDB.getProperties(); 105 } 106 107 /** -108 * Saves the key value pair to the properties store. +108 * Returns whether or not any properties are set. 109 * -110 * @param key the property key -111 * @param value the property value -112 * @throws UpdateException is thrown if there is an update exception -113 */ -114 public synchronized void save(String key, String value) throws UpdateException { -115 properties.put(key, value); -116 cveDB.saveProperty(key, value); -117 } -118 -119 /** -120 * Returns the property value for the given key. If the key is not contained -121 * in the underlying properties null is returned. -122 * -123 * @param key the property key -124 * @return the value of the property -125 */ -126 public synchronized String getProperty(String key) { -127 return properties.getProperty(key); -128 } -129 -130 /** -131 * Returns the property value for the given key. If the key is not contained -132 * in the underlying properties the default value is returned. -133 * -134 * @param key the property key -135 * @param defaultValue the default value -136 * @return the value of the property -137 */ -138 public synchronized String getProperty(String key, String defaultValue) { -139 return properties.getProperty(key, defaultValue); -140 } -141 -142 /** -143 * Returns the collection of Database Properties as a properties collection. -144 * -145 * @return the collection of Database Properties +110 * @return whether or not any properties are set +111 */ +112 public synchronized boolean isEmpty() { +113 return properties == null || properties.isEmpty(); +114 } +115 +116 /** +117 * Saves the key value pair to the properties store. +118 * +119 * @param key the property key +120 * @param value the property value +121 * @throws UpdateException is thrown if there is an update exception +122 */ +123 public synchronized void save(String key, String value) throws UpdateException { +124 properties.put(key, value); +125 cveDB.saveProperty(key, value); +126 } +127 +128 /** +129 * Returns the property value for the given key. If the key is not contained +130 * in the underlying properties null is returned. +131 * +132 * @param key the property key +133 * @return the value of the property +134 */ +135 public synchronized String getProperty(String key) { +136 return properties.getProperty(key); +137 } +138 +139 /** +140 * Returns the property value for the given key. If the key is not contained +141 * in the underlying properties the default value is returned. +142 * +143 * @param key the property key +144 * @param defaultValue the default value +145 * @return the value of the property 146 */ -147 public synchronized Properties getProperties() { -148 return properties; +147 public synchronized String getProperty(String key, String defaultValue) { +148 return properties.getProperty(key, defaultValue); 149 } 150 151 /** -152 * Returns a map of the meta data from the database properties. This -153 * primarily contains timestamps of when the NVD CVE information was last -154 * updated. -155 * -156 * @return a map of the database meta data -157 */ -158 public synchronized Map<String, String> getMetaData() { -159 final Map<String, String> map = new TreeMap<>(); -160 for (Entry<Object, Object> entry : properties.entrySet()) { -161 final String key = (String) entry.getKey(); -162 if (!"version".equals(key)) { -163 if (DatabaseProperties.NVD_API_LAST_CHECKED.equals(key)) { -164 map.put("NVD API Last Checked", entry.getValue().toString()); -165 -166 } else if (DatabaseProperties.NVD_API_LAST_MODIFIED.equals(key)) { -167 map.put("NVD API Last Modified", entry.getValue().toString()); -168 -169 } else if (DatabaseProperties.NVD_CACHE_LAST_CHECKED.equals(key)) { -170 map.put("NVD Cache Last Checked", entry.getValue().toString()); -171 -172 } else if (DatabaseProperties.NVD_CACHE_LAST_MODIFIED.equals(key)) { -173 map.put("NVD Cache Last Modified", entry.getValue().toString()); -174 } -175 } -176 } -177 return map; -178 } -179 -180 /** -181 * Retrieves a zoned date time. -182 * -183 * @param key the property key -184 * @return the zoned date time -185 */ -186 public ZonedDateTime getTimestamp(String key) { -187 return DatabaseProperties.getTimestamp(properties, key); -188 } -189 -190 /** -191 * Stores a timestamp. -192 * -193 * @param key the property key -194 * @param timestamp the zoned date time -195 */ -196 public void save(String key, ZonedDateTime timestamp) throws UpdateException { -197 final DateTimeFormatter dtf = DateTimeFormatter.ofPattern("uuuu-MM-dd'T'HH:mm:ssX"); -198 save(key, dtf.format(timestamp)); -199 } -200 -201 /** -202 * Retrieves a zoned date time. -203 * -204 * @param properties the properties file containing the date time -205 * @param key the property key -206 * @return the zoned date time -207 */ -208 public static ZonedDateTime getTimestamp(Properties properties, String key) { -209 final DateTimeFormatter dtf = DateTimeFormatter.ofPattern("uuuu-MM-dd'T'HH:mm:ssX"); -210 final String val = properties.getProperty(key); -211 if (val != null) { -212 final String value = properties.getProperty(key); -213 return ZonedDateTime.parse(value, dtf); -214 } -215 return null; -216 } -217 -218 } +152 * Returns the collection of Database Properties as a properties collection. +153 * +154 * @return the collection of Database Properties +155 */ +156 public synchronized Properties getProperties() { +157 return properties; +158 } +159 +160 /** +161 * Returns a map of the meta data from the database properties. This +162 * primarily contains timestamps of when the NVD CVE information was last +163 * updated. +164 * +165 * @return a map of the database meta data +166 */ +167 public synchronized Map<String, String> getMetaData() { +168 final Map<String, String> map = new TreeMap<>(); +169 for (Entry<Object, Object> entry : properties.entrySet()) { +170 final String key = (String) entry.getKey(); +171 if (!"version".equals(key)) { +172 if (DatabaseProperties.NVD_API_LAST_CHECKED.equals(key)) { +173 map.put("NVD API Last Checked", entry.getValue().toString()); +174 +175 } else if (DatabaseProperties.NVD_API_LAST_MODIFIED.equals(key)) { +176 map.put("NVD API Last Modified", entry.getValue().toString()); +177 +178 } else if (DatabaseProperties.NVD_CACHE_LAST_CHECKED.equals(key)) { +179 map.put("NVD Cache Last Checked", entry.getValue().toString()); +180 +181 } else if (DatabaseProperties.NVD_CACHE_LAST_MODIFIED.equals(key)) { +182 map.put("NVD Cache Last Modified", entry.getValue().toString()); +183 } +184 } +185 } +186 return map; +187 } +188 +189 /** +190 * Retrieves a zoned date time. +191 * +192 * @param key the property key +193 * @return the zoned date time +194 */ +195 public ZonedDateTime getTimestamp(String key) { +196 return DatabaseProperties.getTimestamp(properties, key); +197 } +198 +199 /** +200 * Stores a timestamp. +201 * +202 * @param key the property key +203 * @param timestamp the zoned date time +204 */ +205 public void save(String key, ZonedDateTime timestamp) throws UpdateException { +206 final DateTimeFormatter dtf = DateTimeFormatter.ofPattern("uuuu-MM-dd'T'HH:mm:ssX"); +207 save(key, dtf.format(timestamp)); +208 } +209 +210 /** +211 * Stores a timestamp in the properties file. +212 * +213 * @param properties the properties to store the timestamp +214 * @param key the property key +215 * @param timestamp the zoned date time +216 */ +217 public static void setTimestamp(Properties properties, String key, ZonedDateTime timestamp) throws UpdateException { +218 final DateTimeFormatter dtf = DateTimeFormatter.ofPattern("uuuu-MM-dd'T'HH:mm:ssX"); +219 properties.put(key, dtf.format(timestamp)); +220 } +221 +222 /** +223 * Retrieves a zoned date time. +224 * +225 * @param properties the properties file containing the date time +226 * @param key the property key +227 * @return the zoned date time +228 */ +229 public static ZonedDateTime getTimestamp(Properties properties, String key) { +230 final DateTimeFormatter dtf = DateTimeFormatter.ofPattern("uuuu-MM-dd'T'HH:mm:ssX"); +231 final String val = properties.getProperty(key); +232 if (val != null) { +233 final String value = properties.getProperty(key); +234 return ZonedDateTime.parse(value, dtf); +235 } +236 return null; +237 } +238 +239 /** +240 * Retrieves a zoned date time. +241 * +242 * @param properties the properties file containing the date time +243 * @param key the property key +244 * @return the zoned date time +245 */ +246 public static ZonedDateTime getIsoTimestamp(Properties properties, String key) { +247 //final DateTimeFormatter dtf = DateTimeFormatter.ofPattern("uuuu-MM-dd'T'HH:mm:ssX"); +248 final DateTimeFormatter dtf = DateTimeFormatter.ISO_DATE_TIME; +249 final String val = properties.getProperty(key); +250 if (val != null) { +251 final String value = properties.getProperty(key); +252 return ZonedDateTime.parse(value, dtf); +253 } +254 return null; +255 } +256 +257 /** +258 * Returns the database property value in seconds. +259 * +260 * @param key the key to the property +261 * @return the property value in seconds +262 */ +263 public long getPropertyInSeconds(String key) { +264 final String value = getProperty(key, "0"); +265 return DateUtil.getEpochValueInSeconds(value); +266 } +267 +268 }
    diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/data/nvdcve/package-frame.html b/dependency-check-core/xref/org/owasp/dependencycheck/data/nvdcve/package-frame.html index 92cc0560ef3..6396cb8011d 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/data/nvdcve/package-frame.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/data/nvdcve/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.data.nvdcve + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.data.nvdcve diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/data/nvdcve/package-summary.html b/dependency-check-core/xref/org/owasp/dependencycheck/data/nvdcve/package-summary.html index b5feb7ab65b..a559f4f4f89 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/data/nvdcve/package-summary.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/data/nvdcve/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.data.nvdcve + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.data.nvdcve diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/data/ossindex/package-frame.html b/dependency-check-core/xref/org/owasp/dependencycheck/data/ossindex/package-frame.html index 65b1c71e25e..79c4db41bc0 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/data/ossindex/package-frame.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/data/ossindex/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.data.ossindex + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.data.ossindex diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/data/ossindex/package-summary.html b/dependency-check-core/xref/org/owasp/dependencycheck/data/ossindex/package-summary.html index 2926da2b6c1..1c273ee83bc 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/data/ossindex/package-summary.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/data/ossindex/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.data.ossindex + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.data.ossindex diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/data/update/HostedSuppressionsDataSource.html b/dependency-check-core/xref/org/owasp/dependencycheck/data/update/HostedSuppressionsDataSource.html index c366e29e306..e9e4a2bcd08 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/data/update/HostedSuppressionsDataSource.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/data/update/HostedSuppressionsDataSource.html @@ -41,144 +41,164 @@ 33 import java.net.MalformedURLException; 34 import java.net.URL; 35 import java.nio.file.Files; -36 -37 public class HostedSuppressionsDataSource implements CachedWebDataSource { -38 -39 /** -40 * Static logger. -41 */ -42 private static final Logger LOGGER = LoggerFactory.getLogger(HostedSuppressionsDataSource.class); -43 -44 /** -45 * The configured settings. -46 */ -47 private Settings settings; -48 +36 import org.owasp.dependencycheck.data.nvdcve.DatabaseProperties; +37 +38 public class HostedSuppressionsDataSource implements CachedWebDataSource { +39 +40 /** +41 * Static logger. +42 */ +43 private static final Logger LOGGER = LoggerFactory.getLogger(HostedSuppressionsDataSource.class); +44 +45 /** +46 * The configured settings. +47 */ +48 private Settings settings; 49 /** -50 * The default URL to the Hosted Suppressions file. +50 * The properties obtained from the database. 51 */ -52 public static final String DEFAULT_SUPPRESSIONS_URL = "https://jeremylong.github.io/DependencyCheck/suppressions/publishedSuppressions.xml"; -53 -54 /** -55 * Downloads the current Hosted suppressions file. -56 * -57 * @param engine a reference to the ODC Engine -58 * @return returns false as no updates are made to the database, just web resources cached locally -59 * @throws UpdateException thrown if the update encountered fatal errors -60 */ -61 @Override -62 public boolean update(Engine engine) throws UpdateException { -63 this.settings = engine.getSettings(); -64 final String configuredUrl = settings.getString(Settings.KEYS.HOSTED_SUPPRESSIONS_URL, DEFAULT_SUPPRESSIONS_URL); -65 final boolean autoupdate = settings.getBoolean(Settings.KEYS.AUTO_UPDATE, true); -66 final boolean forceupdate = settings.getBoolean(Settings.KEYS.HOSTED_SUPPRESSIONS_FORCEUPDATE, false); -67 final boolean cpeSuppressionEnabled = settings.getBoolean(Settings.KEYS.ANALYZER_CPE_SUPPRESSION_ENABLED, true); -68 final boolean vulnSuppressionEnabled = settings.getBoolean(Settings.KEYS.ANALYZER_VULNERABILITY_SUPPRESSION_ENABLED, true); -69 boolean enabled = settings.getBoolean(Settings.KEYS.HOSTED_SUPPRESSIONS_ENABLED, true); -70 enabled = enabled && (cpeSuppressionEnabled || vulnSuppressionEnabled); -71 try { -72 final URL url = new URL(configuredUrl); -73 final File filepath = new File(url.getPath()); -74 final File repoFile = new File(settings.getDataDirectory(), filepath.getName()); -75 final boolean proceed = enabled && (forceupdate || (autoupdate && shouldUpdate(repoFile))); -76 if (proceed) { -77 LOGGER.debug("Begin Hosted Suppressions file update"); -78 fetchHostedSuppressions(settings, url, repoFile); -79 } -80 } catch (UpdateException ex) { -81 // only emit a warning, DependencyCheck will continue without taking the latest hosted suppressions into account. -82 LOGGER.warn("Failed to update hosted suppressions file, results may contain false positives already resolved by the " -83 + "DependencyCheck project", ex); -84 } catch (MalformedURLException ex) { -85 throw new UpdateException(String.format("Invalid URL for Hosted Suppressions file (%s)", configuredUrl), ex); -86 } catch (IOException ex) { -87 throw new UpdateException("Unable to get the data directory", ex); -88 } -89 return false; -90 } -91 -92 /** -93 * Determines if the we should update the Hosted Suppressions file. -94 * -95 * @param repo the Hosted Suppressions file. -96 * @return <code>true</code> if an update to the Hosted Suppressions file should -97 * be performed; otherwise <code>false</code> -98 * @throws NumberFormatException thrown if an invalid value is contained in -99 * the database properties -100 */ -101 protected boolean shouldUpdate(File repo) throws NumberFormatException { -102 boolean proceed = true; -103 if (repo != null && repo.isFile()) { -104 final int validForHours = settings.getInt(Settings.KEYS.HOSTED_SUPPRESSIONS_VALID_FOR_HOURS, 2); -105 final long lastUpdatedOn = repo.lastModified(); -106 final long now = System.currentTimeMillis(); -107 LOGGER.debug("Last updated: {}", lastUpdatedOn); -108 LOGGER.debug("Now: {}", now); -109 final long msValid = validForHours * 60L * 60L * 1000L; -110 proceed = (now - lastUpdatedOn) > msValid; -111 if (!proceed) { -112 LOGGER.info("Skipping Hosted Suppressions file update since last update was within {} hours.", validForHours); -113 } -114 } -115 return proceed; -116 } -117 -118 /** -119 * Fetches the hosted suppressions file -120 * -121 * @param settings a reference to the dependency-check settings -122 * @param repoUrl the URL to the hosted suppressions file to use -123 * @param repoFile the local file where the hosted suppressions file is to be placed -124 * @throws UpdateException thrown if there is an exception during -125 * initialization -126 */ -127 @SuppressWarnings("try") -128 private void fetchHostedSuppressions(Settings settings, URL repoUrl, File repoFile) throws UpdateException { -129 try (WriteLock ignored = new WriteLock(settings, true, repoFile.getName() + ".lock")) { -130 if (LOGGER.isDebugEnabled()) { -131 LOGGER.debug("Hosted Suppressions URL: {}", repoUrl.toExternalForm()); +52 private DatabaseProperties dbProperties = null; +53 /** +54 * The default URL to the Hosted Suppressions file. +55 */ +56 public static final String DEFAULT_SUPPRESSIONS_URL = "https://jeremylong.github.io/DependencyCheck/suppressions/publishedSuppressions.xml"; +57 +58 /** +59 * Downloads the current Hosted suppressions file. +60 * +61 * @param engine a reference to the ODC Engine +62 * @return returns false as no updates are made to the database, just web +63 * resources cached locally +64 * @throws UpdateException thrown if the update encountered fatal errors +65 */ +66 @Override +67 public boolean update(Engine engine) throws UpdateException { +68 this.settings = engine.getSettings(); +69 if (engine.getMode() != Engine.Mode.EVIDENCE_COLLECTION) { +70 //note this conditional is only to support test cases. +71 this.dbProperties = engine.getDatabase().getDatabaseProperties(); +72 } +73 final String configuredUrl = settings.getString(Settings.KEYS.HOSTED_SUPPRESSIONS_URL, DEFAULT_SUPPRESSIONS_URL); +74 final boolean autoupdate = settings.getBoolean(Settings.KEYS.AUTO_UPDATE, true); +75 final boolean forceupdate = settings.getBoolean(Settings.KEYS.HOSTED_SUPPRESSIONS_FORCEUPDATE, false); +76 final boolean cpeSuppressionEnabled = settings.getBoolean(Settings.KEYS.ANALYZER_CPE_SUPPRESSION_ENABLED, true); +77 final boolean vulnSuppressionEnabled = settings.getBoolean(Settings.KEYS.ANALYZER_VULNERABILITY_SUPPRESSION_ENABLED, true); +78 boolean enabled = settings.getBoolean(Settings.KEYS.HOSTED_SUPPRESSIONS_ENABLED, true); +79 enabled = enabled && (cpeSuppressionEnabled || vulnSuppressionEnabled); +80 try { +81 final URL url = new URL(configuredUrl); +82 final File filepath = new File(url.getPath()); +83 final File repoFile = new File(settings.getDataDirectory(), filepath.getName()); +84 final boolean proceed = enabled && (forceupdate || (autoupdate && shouldUpdate(repoFile))); +85 if (proceed) { +86 LOGGER.debug("Begin Hosted Suppressions file update"); +87 fetchHostedSuppressions(settings, url, repoFile); +88 if (dbProperties != null) { +89 dbProperties.save(DatabaseProperties.HOSTED_SUPPRESSION_LAST_CHECKED, Long.toString(System.currentTimeMillis() / 1000)); +90 } +91 } +92 } catch (UpdateException ex) { +93 // only emit a warning, DependencyCheck will continue without taking the latest hosted suppressions into account. +94 LOGGER.warn("Failed to update hosted suppressions file, results may contain false positives already resolved by the " +95 + "DependencyCheck project", ex); +96 } catch (MalformedURLException ex) { +97 throw new UpdateException(String.format("Invalid URL for Hosted Suppressions file (%s)", configuredUrl), ex); +98 } catch (IOException ex) { +99 throw new UpdateException("Unable to get the data directory", ex); +100 } +101 return false; +102 } +103 +104 /** +105 * Determines if the we should update the Hosted Suppressions file. +106 * +107 * @param repo the Hosted Suppressions file. +108 * @return <code>true</code> if an update to the Hosted Suppressions file +109 * should be performed; otherwise <code>false</code> +110 * @throws NumberFormatException thrown if an invalid value is contained in +111 * the database properties +112 */ +113 protected boolean shouldUpdate(File repo) throws NumberFormatException { +114 boolean proceed = true; +115 if (repo != null && repo.isFile()) { +116 final int validForHours = settings.getInt(Settings.KEYS.HOSTED_SUPPRESSIONS_VALID_FOR_HOURS, 2); +117 long lastUpdatedOn = 0; +118 if (dbProperties != null) { +119 lastUpdatedOn = dbProperties.getPropertyInSeconds(DatabaseProperties.HOSTED_SUPPRESSION_LAST_CHECKED); +120 } +121 if (lastUpdatedOn <= 0) { +122 //fall back on conversion from file last modified to storing in the db. +123 lastUpdatedOn = repo.lastModified(); +124 } +125 final long now = System.currentTimeMillis(); +126 LOGGER.debug("Last updated: {}", lastUpdatedOn); +127 LOGGER.debug("Now: {}", now); +128 final long msValid = validForHours * 60L * 60L * 1000L; +129 proceed = (now - lastUpdatedOn) > msValid; +130 if (!proceed) { +131 LOGGER.info("Skipping Hosted Suppressions file update since last update was within {} hours.", validForHours); 132 } -133 final Downloader downloader = new Downloader(settings); -134 downloader.fetchFile(repoUrl, repoFile); -135 } catch (IOException | TooManyRequestsException | ResourceNotFoundException | WriteLockException ex) { -136 throw new UpdateException("Failed to update the hosted suppressions file", ex); -137 } -138 } -139 -140 @Override -141 @SuppressWarnings("try") -142 public boolean purge(Engine engine) { -143 this.settings = engine.getSettings(); -144 boolean result = true; -145 try { -146 final URL repoUrl = new URL(settings.getString(Settings.KEYS.HOSTED_SUPPRESSIONS_URL, -147 DEFAULT_SUPPRESSIONS_URL)); -148 final String filename = new File(repoUrl.getPath()).getName(); -149 final File repo = new File(settings.getDataDirectory(), filename); -150 if (repo.exists()) { -151 try (WriteLock ignored = new WriteLock(settings, true, filename + ".lock")) { -152 result = deleteCachedFile(repo); -153 } -154 } -155 } catch (WriteLockException | IOException ex) { -156 LOGGER.error("Unable to delete the Hosted suppression file - invalid configuration"); -157 result = false; -158 } -159 return result; -160 } -161 -162 private boolean deleteCachedFile(final File repo) { -163 boolean deleted = true; -164 try { -165 Files.delete(repo.toPath()); -166 LOGGER.info("Hosted suppression file removed successfully"); -167 } catch (IOException ex) { -168 LOGGER.error("Unable to delete '{}'; please delete the file manually", repo.getAbsolutePath(), ex); -169 deleted = false; -170 } -171 return deleted; -172 } -173 } +133 } +134 return proceed; +135 } +136 +137 /** +138 * Fetches the hosted suppressions file +139 * +140 * @param settings a reference to the dependency-check settings +141 * @param repoUrl the URL to the hosted suppressions file to use +142 * @param repoFile the local file where the hosted suppressions file is to +143 * be placed +144 * @throws UpdateException thrown if there is an exception during +145 * initialization +146 */ +147 @SuppressWarnings("try") +148 private void fetchHostedSuppressions(Settings settings, URL repoUrl, File repoFile) throws UpdateException { +149 try (WriteLock ignored = new WriteLock(settings, true, repoFile.getName() + ".lock")) { +150 if (LOGGER.isDebugEnabled()) { +151 LOGGER.debug("Hosted Suppressions URL: {}", repoUrl.toExternalForm()); +152 } +153 final Downloader downloader = new Downloader(settings); +154 downloader.fetchFile(repoUrl, repoFile); +155 } catch (IOException | TooManyRequestsException | ResourceNotFoundException | WriteLockException ex) { +156 throw new UpdateException("Failed to update the hosted suppressions file", ex); +157 } +158 } +159 +160 @Override +161 @SuppressWarnings("try") +162 public boolean purge(Engine engine) { +163 this.settings = engine.getSettings(); +164 boolean result = true; +165 try { +166 final URL repoUrl = new URL(settings.getString(Settings.KEYS.HOSTED_SUPPRESSIONS_URL, +167 DEFAULT_SUPPRESSIONS_URL)); +168 final String filename = new File(repoUrl.getPath()).getName(); +169 final File repo = new File(settings.getDataDirectory(), filename); +170 if (repo.exists()) { +171 try (WriteLock ignored = new WriteLock(settings, true, filename + ".lock")) { +172 result = deleteCachedFile(repo); +173 } +174 } +175 } catch (WriteLockException | IOException ex) { +176 LOGGER.error("Unable to delete the Hosted suppression file - invalid configuration"); +177 result = false; +178 } +179 return result; +180 } +181 +182 private boolean deleteCachedFile(final File repo) { +183 boolean deleted = true; +184 try { +185 Files.delete(repo.toPath()); +186 LOGGER.info("Hosted suppression file removed successfully"); +187 } catch (IOException ex) { +188 LOGGER.error("Unable to delete '{}'; please delete the file manually", repo.getAbsolutePath(), ex); +189 deleted = false; +190 } +191 return deleted; +192 } +193 }
    diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/data/update/KnownExploitedDataSource.html b/dependency-check-core/xref/org/owasp/dependencycheck/data/update/KnownExploitedDataSource.html index e408fd967cc..0889589c0ac 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/data/update/KnownExploitedDataSource.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/data/update/KnownExploitedDataSource.html @@ -128,7 +128,7 @@ 120 if (cveDB.dataExists() && 0 < validForHours) { 121 // ms Valid = valid (hours) x 60 min/hour x 60 sec/min x 1000 ms/sec 122 final long validForSeconds = validForHours * 60L * 60L; -123 final long lastChecked = getPropertyInSeconds(DatabaseProperties.KEV_LAST_CHECKED); +123 final long lastChecked = dbProperties.getPropertyInSeconds(DatabaseProperties.KEV_LAST_CHECKED); 124 final long now = System.currentTimeMillis() / 1000; 125 proceed = (now - lastChecked) > validForSeconds; 126 if (!proceed) { @@ -138,18 +138,7 @@ 130 return proceed; 131 } 132 -133 /** -134 * Returns the database property value in seconds. -135 * -136 * @param key the key to the property -137 * @return the property value in seconds -138 */ -139 private long getPropertyInSeconds(String key) { -140 final String value = dbProperties.getProperty(key, "0"); -141 return DateUtil.getEpochValueInSeconds(value); -142 } -143 -144 } +133 }
    diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/data/update/NvdApiDataSource.html b/dependency-check-core/xref/org/owasp/dependencycheck/data/update/NvdApiDataSource.html index 652c830d943..a442a128d74 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/data/update/NvdApiDataSource.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/data/update/NvdApiDataSource.html @@ -25,550 +25,639 @@ 17 */ 18 package org.owasp.dependencycheck.data.update; 19 -20 import io.github.jeremylong.openvulnerability.client.nvd.DefCveItem; -21 import io.github.jeremylong.openvulnerability.client.nvd.NvdCveClient; -22 import io.github.jeremylong.openvulnerability.client.nvd.NvdCveClientBuilder; -23 import java.io.File; -24 import java.io.IOException; -25 import java.io.StringReader; -26 import java.net.MalformedURLException; -27 import java.net.URL; -28 import java.text.MessageFormat; -29 import java.time.Duration; -30 import java.time.ZoneId; -31 import java.time.ZonedDateTime; -32 import java.util.ArrayList; -33 import java.util.Collection; -34 import java.util.HashMap; -35 import java.util.HashSet; -36 import java.util.List; -37 import java.util.Map; -38 import java.util.Properties; -39 import java.util.Set; -40 import java.util.concurrent.ExecutionException; -41 import java.util.concurrent.ExecutorService; -42 import java.util.concurrent.Executors; -43 import java.util.concurrent.Future; -44 import org.owasp.dependencycheck.Engine; -45 import org.owasp.dependencycheck.data.nvdcve.CveDB; -46 import org.owasp.dependencycheck.data.nvdcve.DatabaseException; -47 import org.owasp.dependencycheck.data.nvdcve.DatabaseProperties; -48 import org.owasp.dependencycheck.data.update.exception.UpdateException; -49 import org.owasp.dependencycheck.data.update.nvd.api.DownloadTask; -50 import org.owasp.dependencycheck.data.update.nvd.api.NvdApiProcessor; -51 import org.owasp.dependencycheck.utils.DateUtil; -52 import org.owasp.dependencycheck.utils.DownloadFailedException; -53 import org.owasp.dependencycheck.utils.Downloader; -54 import org.owasp.dependencycheck.utils.InvalidSettingException; -55 import org.owasp.dependencycheck.utils.ResourceNotFoundException; -56 import org.owasp.dependencycheck.utils.Settings; -57 import org.owasp.dependencycheck.utils.TooManyRequestsException; -58 import org.slf4j.Logger; -59 import org.slf4j.LoggerFactory; -60 -61 /** -62 * -63 * @author Jeremy Long -64 */ -65 public class NvdApiDataSource implements CachedWebDataSource { -66 -67 /** -68 * The logger. -69 */ -70 private static final Logger LOGGER = LoggerFactory.getLogger(NvdApiDataSource.class); -71 /** -72 * The thread pool size to use for CPU-intense tasks. -73 */ -74 private static final int PROCESSING_THREAD_POOL_SIZE = Runtime.getRuntime().availableProcessors(); -75 /** -76 * The configured settings. -77 */ -78 private Settings settings; -79 /** -80 * Reference to the DAO. -81 */ -82 private CveDB cveDb = null; -83 /** -84 * The properties obtained from the database. -85 */ -86 private DatabaseProperties dbProperties = null; -87 /** -88 * The key for the NVD API cache properties file's last modified date. -89 */ -90 private static final String NVD_API_CACHE_MODIFIED_DATE = "lastModifiedDate"; -91 /** -92 * The number of results per page from the NVD API. The default is 2000; we -93 * are setting the value to be explicit. +20 import com.fasterxml.jackson.databind.ObjectMapper; +21 import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; +22 import io.github.jeremylong.openvulnerability.client.nvd.DefCveItem; +23 import io.github.jeremylong.openvulnerability.client.nvd.NvdCveClient; +24 import io.github.jeremylong.openvulnerability.client.nvd.NvdCveClientBuilder; +25 import java.io.File; +26 import java.io.FileOutputStream; +27 import java.io.IOException; +28 import java.io.StringReader; +29 import java.net.URI; +30 import java.net.URISyntaxException; +31 import java.net.URL; +32 import java.text.MessageFormat; +33 import java.time.Duration; +34 import java.time.ZoneId; +35 import java.time.ZonedDateTime; +36 import java.util.ArrayList; +37 import java.util.Collection; +38 import java.util.HashMap; +39 import java.util.HashSet; +40 import java.util.List; +41 import java.util.Map; +42 import java.util.Properties; +43 import java.util.Set; +44 import java.util.concurrent.ExecutionException; +45 import java.util.concurrent.ExecutorService; +46 import java.util.concurrent.Executors; +47 import java.util.concurrent.Future; +48 import java.util.zip.GZIPOutputStream; +49 import org.owasp.dependencycheck.Engine; +50 import org.owasp.dependencycheck.data.nvdcve.CveDB; +51 import org.owasp.dependencycheck.data.nvdcve.DatabaseException; +52 import org.owasp.dependencycheck.data.nvdcve.DatabaseProperties; +53 import org.owasp.dependencycheck.data.update.exception.UpdateException; +54 import org.owasp.dependencycheck.data.update.nvd.api.DownloadTask; +55 import org.owasp.dependencycheck.data.update.nvd.api.NvdApiProcessor; +56 import org.owasp.dependencycheck.utils.DateUtil; +57 import org.owasp.dependencycheck.utils.DownloadFailedException; +58 import org.owasp.dependencycheck.utils.Downloader; +59 import org.owasp.dependencycheck.utils.InvalidSettingException; +60 import org.owasp.dependencycheck.utils.ResourceNotFoundException; +61 import org.owasp.dependencycheck.utils.Settings; +62 import org.owasp.dependencycheck.utils.TooManyRequestsException; +63 import org.slf4j.Logger; +64 import org.slf4j.LoggerFactory; +65 +66 /** +67 * +68 * @author Jeremy Long +69 */ +70 public class NvdApiDataSource implements CachedWebDataSource { +71 +72 /** +73 * The logger. +74 */ +75 private static final Logger LOGGER = LoggerFactory.getLogger(NvdApiDataSource.class); +76 /** +77 * The thread pool size to use for CPU-intense tasks. +78 */ +79 private static final int PROCESSING_THREAD_POOL_SIZE = Runtime.getRuntime().availableProcessors(); +80 /** +81 * The configured settings. +82 */ +83 private Settings settings; +84 /** +85 * Reference to the DAO. +86 */ +87 private CveDB cveDb = null; +88 /** +89 * The properties obtained from the database. +90 */ +91 private DatabaseProperties dbProperties = null; +92 /** +93 * The key for the NVD API cache properties file's last modified date. 94 */ -95 private static final int RESULTS_PER_PAGE = 2000; -96 -97 @Override -98 public boolean update(Engine engine) throws UpdateException { -99 this.settings = engine.getSettings(); -100 this.cveDb = engine.getDatabase(); -101 if (isUpdateConfiguredFalse()) { -102 return false; -103 } -104 dbProperties = cveDb.getDatabaseProperties(); -105 -106 final String nvdDataFeedUrl = settings.getString(Settings.KEYS.NVD_API_DATAFEED_URL); -107 if (nvdDataFeedUrl != null) { -108 return processDatafeed(nvdDataFeedUrl); -109 } -110 return processApi(); -111 } -112 -113 private boolean processDatafeed(String nvdDataFeedUrl) throws UpdateException { -114 boolean updatesMade = false; -115 try { -116 dbProperties = cveDb.getDatabaseProperties(); -117 if (checkUpdate()) { -118 String url; -119 String pattern = null; -120 if (nvdDataFeedUrl.endsWith(".json.gz")) { -121 final int lio = nvdDataFeedUrl.lastIndexOf("/"); -122 pattern = nvdDataFeedUrl.substring(lio + 1); -123 url = nvdDataFeedUrl.substring(0, lio); -124 } else { -125 url = nvdDataFeedUrl; -126 } -127 if (!url.endsWith("/")) { -128 url += "/"; -129 } -130 final Properties cacheProperties = getRemoteCacheProperties(url); -131 if (pattern == null) { -132 final String prefix = cacheProperties.getProperty("prefix", "nvdcve-"); -133 pattern = prefix + "{0}.json.gz"; -134 } -135 -136 final ZonedDateTime now = ZonedDateTime.now(ZoneId.of("UTC")); -137 final Map<String, String> updateable = getUpdatesNeeded(url, pattern, cacheProperties, now); -138 if (!updateable.isEmpty()) { -139 final int downloadPoolSize; -140 final int max = settings.getInt(Settings.KEYS.MAX_DOWNLOAD_THREAD_POOL_SIZE, 1); -141 downloadPoolSize = Math.min(Runtime.getRuntime().availableProcessors(), max); -142 -143 ExecutorService processingExecutorService = null; -144 ExecutorService downloadExecutorService = null; -145 try { -146 downloadExecutorService = Executors.newFixedThreadPool(downloadPoolSize); -147 processingExecutorService = Executors.newFixedThreadPool(PROCESSING_THREAD_POOL_SIZE); -148 -149 DownloadTask runLast = null; -150 final Set<Future<Future<NvdApiProcessor>>> downloadFutures = new HashSet<>(updateable.size()); -151 runLast = startDownloads(updateable, processingExecutorService, runLast, downloadFutures, downloadExecutorService); -152 -153 //complete downloads -154 final Set<Future<NvdApiProcessor>> processFutures = new HashSet<>(updateable.size()); -155 for (Future<Future<NvdApiProcessor>> future : downloadFutures) { -156 processDownload(future, processFutures); -157 } -158 //process the data -159 processFuture(processFutures); -160 processFutures.clear(); -161 -162 //download and process the modified as the last entry -163 if (runLast != null) { -164 final Future<Future<NvdApiProcessor>> modified = downloadExecutorService.submit(runLast); -165 processDownload(modified, processFutures); -166 processFuture(processFutures); -167 } -168 -169 } finally { -170 if (processingExecutorService != null) { -171 processingExecutorService.shutdownNow(); -172 } -173 if (downloadExecutorService != null) { -174 downloadExecutorService.shutdownNow(); -175 } -176 } -177 updatesMade = true; -178 } -179 storeLastModifiedDates(now, cacheProperties, updateable); -180 if (updatesMade) { -181 cveDb.persistEcosystemCache(); -182 } -183 final int updateCount = cveDb.updateEcosystemCache(); -184 LOGGER.debug("Corrected the ecosystem for {} ecoSystemCache entries", updateCount); -185 if (updatesMade || updateCount > 0) { -186 cveDb.cleanupDatabase(); -187 } -188 } -189 } catch (UpdateException ex) { -190 if (ex.getCause() != null && ex.getCause() instanceof DownloadFailedException) { -191 final String jre = System.getProperty("java.version"); -192 if (jre == null || jre.startsWith("1.4") || jre.startsWith("1.5") || jre.startsWith("1.6") || jre.startsWith("1.7")) { -193 LOGGER.error("An old JRE is being used ({} {}), and likely does not have the correct root certificates or algorithms " -194 + "to connect to the NVD - consider upgrading your JRE.", System.getProperty("java.vendor"), jre); -195 } -196 } -197 throw ex; -198 } catch (DatabaseException ex) { -199 throw new UpdateException("Database Exception, unable to update the data to use the most current data.", ex); -200 } -201 return updatesMade; -202 } -203 -204 private void storeLastModifiedDates(final ZonedDateTime now, final Properties cacheProperties, -205 final Map<String, String> updateable) throws UpdateException { -206 dbProperties.save(DatabaseProperties.NVD_CACHE_LAST_CHECKED, now); -207 dbProperties.save(DatabaseProperties.NVD_CACHE_LAST_MODIFIED, DatabaseProperties.getTimestamp(cacheProperties, -208 NVD_API_CACHE_MODIFIED_DATE + ".modified")); -209 for (String entry : updateable.keySet()) { -210 final ZonedDateTime date = DatabaseProperties.getTimestamp(cacheProperties, NVD_API_CACHE_MODIFIED_DATE + "." + entry); -211 dbProperties.save(DatabaseProperties.NVD_CACHE_LAST_MODIFIED + "." + entry, date); +95 private static final String NVD_API_CACHE_MODIFIED_DATE = "lastModifiedDate"; +96 /** +97 * The number of results per page from the NVD API. The default is 2000; we +98 * are setting the value to be explicit. +99 */ +100 private static final int RESULTS_PER_PAGE = 2000; +101 +102 @Override +103 public boolean update(Engine engine) throws UpdateException { +104 this.settings = engine.getSettings(); +105 this.cveDb = engine.getDatabase(); +106 if (isUpdateConfiguredFalse()) { +107 return false; +108 } +109 dbProperties = cveDb.getDatabaseProperties(); +110 +111 final String nvdDataFeedUrl = settings.getString(Settings.KEYS.NVD_API_DATAFEED_URL); +112 if (nvdDataFeedUrl != null) { +113 return processDatafeed(nvdDataFeedUrl); +114 } +115 return processApi(); +116 } +117 +118 protected UrlData extractUrlData(String nvdDataFeedUrl) { +119 String url; +120 String pattern = null; +121 if (nvdDataFeedUrl.endsWith(".json.gz")) { +122 final int lio = nvdDataFeedUrl.lastIndexOf("/"); +123 pattern = nvdDataFeedUrl.substring(lio + 1); +124 url = nvdDataFeedUrl.substring(0, lio); +125 } else { +126 url = nvdDataFeedUrl; +127 } +128 if (!url.endsWith("/")) { +129 url += "/"; +130 } +131 return new UrlData(url, pattern); +132 } +133 +134 private boolean processDatafeed(String nvdDataFeedUrl) throws UpdateException { +135 boolean updatesMade = false; +136 try { +137 dbProperties = cveDb.getDatabaseProperties(); +138 if (checkUpdate()) { +139 final UrlData data = extractUrlData(nvdDataFeedUrl); +140 String url = data.getUrl(); +141 String pattern = data.getPattern(); +142 final Properties cacheProperties = getRemoteCacheProperties(url, pattern); +143 if (pattern == null) { +144 final String prefix = cacheProperties.getProperty("prefix", "nvdcve-"); +145 pattern = prefix + "{0}.json.gz"; +146 } +147 +148 final ZonedDateTime now = ZonedDateTime.now(ZoneId.of("UTC")); +149 final Map<String, String> updateable = getUpdatesNeeded(url, pattern, cacheProperties, now); +150 if (!updateable.isEmpty()) { +151 final int downloadPoolSize; +152 final int max = settings.getInt(Settings.KEYS.MAX_DOWNLOAD_THREAD_POOL_SIZE, 1); +153 downloadPoolSize = Math.min(Runtime.getRuntime().availableProcessors(), max); +154 +155 ExecutorService processingExecutorService = null; +156 ExecutorService downloadExecutorService = null; +157 try { +158 downloadExecutorService = Executors.newFixedThreadPool(downloadPoolSize); +159 processingExecutorService = Executors.newFixedThreadPool(PROCESSING_THREAD_POOL_SIZE); +160 +161 DownloadTask runLast = null; +162 final Set<Future<Future<NvdApiProcessor>>> downloadFutures = new HashSet<>(updateable.size()); +163 runLast = startDownloads(updateable, processingExecutorService, runLast, downloadFutures, downloadExecutorService); +164 +165 //complete downloads +166 final Set<Future<NvdApiProcessor>> processFutures = new HashSet<>(updateable.size()); +167 for (Future<Future<NvdApiProcessor>> future : downloadFutures) { +168 processDownload(future, processFutures); +169 } +170 //process the data +171 processFuture(processFutures); +172 processFutures.clear(); +173 +174 //download and process the modified as the last entry +175 if (runLast != null) { +176 final Future<Future<NvdApiProcessor>> modified = downloadExecutorService.submit(runLast); +177 processDownload(modified, processFutures); +178 processFuture(processFutures); +179 } +180 +181 } finally { +182 if (processingExecutorService != null) { +183 processingExecutorService.shutdownNow(); +184 } +185 if (downloadExecutorService != null) { +186 downloadExecutorService.shutdownNow(); +187 } +188 } +189 updatesMade = true; +190 } +191 storeLastModifiedDates(now, cacheProperties, updateable); +192 if (updatesMade) { +193 cveDb.persistEcosystemCache(); +194 } +195 final int updateCount = cveDb.updateEcosystemCache(); +196 LOGGER.debug("Corrected the ecosystem for {} ecoSystemCache entries", updateCount); +197 if (updatesMade || updateCount > 0) { +198 cveDb.cleanupDatabase(); +199 } +200 } +201 } catch (UpdateException ex) { +202 if (ex.getCause() != null && ex.getCause() instanceof DownloadFailedException) { +203 final String jre = System.getProperty("java.version"); +204 if (jre == null || jre.startsWith("1.4") || jre.startsWith("1.5") || jre.startsWith("1.6") || jre.startsWith("1.7")) { +205 LOGGER.error("An old JRE is being used ({} {}), and likely does not have the correct root certificates or algorithms " +206 + "to connect to the NVD - consider upgrading your JRE.", System.getProperty("java.vendor"), jre); +207 } +208 } +209 throw ex; +210 } catch (DatabaseException ex) { +211 throw new UpdateException("Database Exception, unable to update the data to use the most current data.", ex); 212 } -213 } -214 -215 private DownloadTask startDownloads(final Map<String, String> updateable, ExecutorService processingExecutorService, DownloadTask runLast, -216 final Set<Future<Future<NvdApiProcessor>>> downloadFutures, ExecutorService downloadExecutorService) throws UpdateException { -217 DownloadTask lastCall = runLast; -218 for (Map.Entry<String, String> cve : updateable.entrySet()) { -219 final DownloadTask call = new DownloadTask(cve.getValue(), processingExecutorService, cveDb, settings); -220 if (call.isModified()) { -221 lastCall = call; -222 } else { -223 final boolean added = downloadFutures.add(downloadExecutorService.submit(call)); -224 if (!added) { -225 throw new UpdateException("Unable to add the download task for " + cve); -226 } -227 } -228 } -229 return lastCall; -230 } -231 -232 private void processFuture(final Set<Future<NvdApiProcessor>> processFutures) throws UpdateException { -233 //complete processing -234 for (Future<NvdApiProcessor> future : processFutures) { -235 try { -236 final NvdApiProcessor task = future.get(); -237 } catch (InterruptedException ex) { -238 LOGGER.debug("Thread was interrupted during processing", ex); -239 Thread.currentThread().interrupt(); -240 throw new UpdateException(ex); -241 } catch (ExecutionException ex) { -242 LOGGER.debug("Execution Exception during process", ex); -243 throw new UpdateException(ex); -244 } -245 } -246 } -247 -248 private void processDownload(Future<Future<NvdApiProcessor>> future, final Set<Future<NvdApiProcessor>> processFutures) throws UpdateException { -249 final Future<NvdApiProcessor> task; -250 try { -251 task = future.get(); -252 if (task != null) { -253 processFutures.add(task); -254 } -255 } catch (InterruptedException ex) { -256 LOGGER.debug("Thread was interrupted during download", ex); -257 Thread.currentThread().interrupt(); -258 throw new UpdateException("The download was interrupted", ex); -259 } catch (ExecutionException ex) { -260 LOGGER.debug("Thread was interrupted during download execution", ex); -261 throw new UpdateException("The execution of the download was interrupted", ex); -262 } -263 } -264 -265 private boolean processApi() throws UpdateException { -266 final ZonedDateTime lastChecked = dbProperties.getTimestamp(DatabaseProperties.NVD_API_LAST_CHECKED); -267 final int validForHours = settings.getInt(Settings.KEYS.NVD_API_VALID_FOR_HOURS, 0); -268 if (cveDb.dataExists() && lastChecked != null && validForHours>0) { -269 // ms Valid = valid (hours) x 60 min/hour x 60 sec/min x 1000 ms/sec -270 final long validForSeconds = validForHours * 60L * 60L; -271 final ZonedDateTime now = ZonedDateTime.now(ZoneId.of("UTC")); -272 final Duration duration = Duration.between(lastChecked, now); -273 final long difference = duration.getSeconds(); -274 if (difference < validForSeconds) { -275 LOGGER.info("Skipping the NVD API Update as it was completed within the last {} minutes", validForSeconds/60); -276 return false; -277 } -278 } -279 -280 ZonedDateTime lastModifiedRequest = dbProperties.getTimestamp(DatabaseProperties.NVD_API_LAST_MODIFIED); -281 final NvdCveClientBuilder builder = NvdCveClientBuilder.aNvdCveApi(); -282 if (lastModifiedRequest != null) { -283 final ZonedDateTime end = lastModifiedRequest.minusDays(-120); -284 builder.withLastModifiedFilter(lastModifiedRequest, end); -285 } -286 final String key = settings.getString(Settings.KEYS.NVD_API_KEY); -287 if (key != null) { -288 //using a higher delay as the system may not be able to process these faster. -289 builder.withApiKey(key) -290 .withDelay(2000) -291 .withThreadCount(4); -292 } else { -293 LOGGER.warn("An NVD API Key was not provided - it is highly recommended to use " -294 + "an NVD API key as the update can take a VERY long time without an API Key"); -295 builder.withDelay(8000); +213 return updatesMade; +214 } +215 +216 private void storeLastModifiedDates(final ZonedDateTime now, final Properties cacheProperties, +217 final Map<String, String> updateable) throws UpdateException { +218 +219 ZonedDateTime lastModifiedRequest = DatabaseProperties.getTimestamp(cacheProperties, +220 NVD_API_CACHE_MODIFIED_DATE + ".modified"); +221 dbProperties.save(DatabaseProperties.NVD_CACHE_LAST_CHECKED, now); +222 dbProperties.save(DatabaseProperties.NVD_CACHE_LAST_MODIFIED, lastModifiedRequest); +223 //allow users to initially load from a cache but then use the API - this may happen with the GH Action +224 dbProperties.save(DatabaseProperties.NVD_API_LAST_CHECKED, now); +225 dbProperties.save(DatabaseProperties.NVD_API_LAST_MODIFIED, lastModifiedRequest); +226 +227 for (String entry : updateable.keySet()) { +228 final ZonedDateTime date = DatabaseProperties.getTimestamp(cacheProperties, NVD_API_CACHE_MODIFIED_DATE + "." + entry); +229 dbProperties.save(DatabaseProperties.NVD_CACHE_LAST_MODIFIED + "." + entry, date); +230 } +231 } +232 +233 private DownloadTask startDownloads(final Map<String, String> updateable, ExecutorService processingExecutorService, DownloadTask runLast, +234 final Set<Future<Future<NvdApiProcessor>>> downloadFutures, ExecutorService downloadExecutorService) throws UpdateException { +235 DownloadTask lastCall = runLast; +236 for (Map.Entry<String, String> cve : updateable.entrySet()) { +237 final DownloadTask call = new DownloadTask(cve.getValue(), processingExecutorService, cveDb, settings); +238 if (call.isModified()) { +239 lastCall = call; +240 } else { +241 final boolean added = downloadFutures.add(downloadExecutorService.submit(call)); +242 if (!added) { +243 throw new UpdateException("Unable to add the download task for " + cve); +244 } +245 } +246 } +247 return lastCall; +248 } +249 +250 private void processFuture(final Set<Future<NvdApiProcessor>> processFutures) throws UpdateException { +251 //complete processing +252 for (Future<NvdApiProcessor> future : processFutures) { +253 try { +254 final NvdApiProcessor task = future.get(); +255 } catch (InterruptedException ex) { +256 LOGGER.debug("Thread was interrupted during processing", ex); +257 Thread.currentThread().interrupt(); +258 throw new UpdateException(ex); +259 } catch (ExecutionException ex) { +260 LOGGER.debug("Execution Exception during process", ex); +261 throw new UpdateException(ex); +262 } +263 } +264 } +265 +266 private void processDownload(Future<Future<NvdApiProcessor>> future, final Set<Future<NvdApiProcessor>> processFutures) throws UpdateException { +267 final Future<NvdApiProcessor> task; +268 try { +269 task = future.get(); +270 if (task != null) { +271 processFutures.add(task); +272 } +273 } catch (InterruptedException ex) { +274 LOGGER.debug("Thread was interrupted during download", ex); +275 Thread.currentThread().interrupt(); +276 throw new UpdateException("The download was interrupted", ex); +277 } catch (ExecutionException ex) { +278 LOGGER.debug("Thread was interrupted during download execution", ex); +279 throw new UpdateException("The execution of the download was interrupted", ex); +280 } +281 } +282 +283 private boolean processApi() throws UpdateException { +284 final ZonedDateTime lastChecked = dbProperties.getTimestamp(DatabaseProperties.NVD_API_LAST_CHECKED); +285 final int validForHours = settings.getInt(Settings.KEYS.NVD_API_VALID_FOR_HOURS, 0); +286 if (cveDb.dataExists() && lastChecked != null && validForHours > 0) { +287 // ms Valid = valid (hours) x 60 min/hour x 60 sec/min x 1000 ms/sec +288 final long validForSeconds = validForHours * 60L * 60L; +289 final ZonedDateTime now = ZonedDateTime.now(ZoneId.of("UTC")); +290 final Duration duration = Duration.between(lastChecked, now); +291 final long difference = duration.getSeconds(); +292 if (difference < validForSeconds) { +293 LOGGER.info("Skipping the NVD API Update as it was completed within the last {} minutes", validForSeconds / 60); +294 return false; +295 } 296 } -297 builder.withResultsPerPage(RESULTS_PER_PAGE); -298 //removed due to the virtualMatch filter causing overhead with the NVD API -299 //final String virtualMatch = settings.getString(Settings.KEYS.CVE_CPE_STARTS_WITH_FILTER); -300 //if (virtualMatch != null) { -301 // builder.withVirtualMatchString(virtualMatch); -302 //} -303 -304 final int retryCount = settings.getInt(Settings.KEYS.NVD_API_MAX_RETRY_COUNT, 10); -305 builder.withMaxRetryCount(retryCount); -306 long delay = 0; -307 try { -308 delay = settings.getLong(Settings.KEYS.NVD_API_DELAY); -309 } catch (InvalidSettingException ex) { -310 LOGGER.warn("Invalid setting `NVD_API_DELAY`? ({}), using default delay", settings.getString(Settings.KEYS.NVD_API_DELAY)); -311 } -312 if (delay > 0) { -313 builder.withDelay(delay); -314 } -315 -316 ExecutorService processingExecutorService = null; -317 try { -318 processingExecutorService = Executors.newFixedThreadPool(PROCESSING_THREAD_POOL_SIZE); -319 final List<Future<NvdApiProcessor>> submitted = new ArrayList<>(); -320 int max = -1; -321 int ctr = 0; -322 try (NvdCveClient api = builder.build()) { -323 while (api.hasNext()) { -324 final Collection<DefCveItem> items = api.next(); -325 max = api.getTotalAvailable(); -326 if (ctr == 0) { -327 LOGGER.info(String.format("NVD API has %,d records in this update", max)); -328 } -329 if (items != null && !items.isEmpty()) { -330 final Future<NvdApiProcessor> f = processingExecutorService.submit(new NvdApiProcessor(cveDb, items)); -331 submitted.add(f); -332 ctr += 1; -333 if ((ctr % 5) == 0) { -334 final double percent = (double) (ctr * RESULTS_PER_PAGE) / max * 100; -335 LOGGER.info(String.format("Downloaded %,d/%,d (%.0f%%)", ctr * RESULTS_PER_PAGE, max, percent)); -336 } -337 } -338 final ZonedDateTime last = api.getLastUpdated(); -339 if (last != null && (lastModifiedRequest == null || lastModifiedRequest.compareTo(last) < 0)) { -340 lastModifiedRequest = last; -341 } -342 } -343 -344 } catch (Exception e) { -345 throw new UpdateException("Error updating the NVD Data", e); -346 } -347 LOGGER.info(String.format("Downloaded %,d/%,d (%.0f%%)", max, max, 100f)); -348 max = submitted.size(); -349 final boolean updated = max > 0; -350 ctr = 0; -351 for (Future<NvdApiProcessor> f : submitted) { -352 try { -353 final NvdApiProcessor proc = f.get(); -354 ctr += 1; -355 final double percent = (double) ctr / max * 100; -356 LOGGER.info(String.format("Completed processing batch %d/%d (%.0f%%) in %,dms", ctr, max, percent, proc.getDurationMillis())); -357 } catch (InterruptedException ex) { -358 Thread.currentThread().interrupt(); -359 throw new RuntimeException(ex); -360 } catch (ExecutionException ex) { -361 LOGGER.error("Exception processing NVD API Results", ex); -362 throw new RuntimeException(ex); -363 } -364 } -365 if (lastModifiedRequest != null) { -366 dbProperties.save(DatabaseProperties.NVD_API_LAST_CHECKED, ZonedDateTime.now()); -367 dbProperties.save(DatabaseProperties.NVD_API_LAST_MODIFIED, lastModifiedRequest); -368 } -369 return updated; -370 } finally { -371 if (processingExecutorService != null) { -372 processingExecutorService.shutdownNow(); -373 } -374 } -375 } -376 -377 /** -378 * Checks if the system is configured NOT to update. -379 * -380 * @return false if the system is configured to perform an update; otherwise -381 * true -382 */ -383 private boolean isUpdateConfiguredFalse() { -384 if (!settings.getBoolean(Settings.KEYS.UPDATE_NVDCVE_ENABLED, true)) { -385 return true; -386 } -387 boolean autoUpdate = true; -388 try { -389 autoUpdate = settings.getBoolean(Settings.KEYS.AUTO_UPDATE); -390 } catch (InvalidSettingException ex) { -391 LOGGER.debug("Invalid setting for auto-update; using true."); -392 } -393 return !autoUpdate; -394 } -395 -396 @Override -397 public boolean purge(Engine engine) { -398 boolean result = true; -399 try { -400 final File dataDir = engine.getSettings().getDataDirectory(); -401 final File db = new File(dataDir, engine.getSettings().getString(Settings.KEYS.DB_FILE_NAME, "odc.mv.db")); -402 if (db.exists()) { -403 if (db.delete()) { -404 LOGGER.info("Database file purged; local copy of the NVD has been removed"); -405 } else { -406 LOGGER.error("Unable to delete '{}'; please delete the file manually", db.getAbsolutePath()); -407 result = false; -408 } -409 } else { -410 LOGGER.info("Unable to purge database; the database file does not exist: {}", db.getAbsolutePath()); -411 result = false; -412 } -413 final File traceFile = new File(dataDir, "odc.trace.db"); -414 if (traceFile.exists() && !traceFile.delete()) { -415 LOGGER.error("Unable to delete '{}'; please delete the file manually", traceFile.getAbsolutePath()); -416 result = false; -417 } -418 final File lockFile = new File(dataDir, "odc.update.lock"); -419 if (lockFile.exists() && !lockFile.delete()) { -420 LOGGER.error("Unable to delete '{}'; please delete the file manually", lockFile.getAbsolutePath()); -421 result = false; -422 } -423 } catch (IOException ex) { -424 final String msg = "Unable to delete the database"; -425 LOGGER.error(msg, ex); -426 result = false; -427 } -428 return result; -429 } -430 -431 /** -432 * Checks if the NVD API Cache JSON files were last checked recently. As an -433 * optimization, we can avoid repetitive checks against the NVD cache. -434 * -435 * @return true to proceed with the check, or false to skip -436 * @throws UpdateException thrown when there is an issue checking for -437 * updates -438 */ -439 private boolean checkUpdate() throws UpdateException { -440 boolean proceed = true; -441 // If the valid setting has not been specified, then we proceed to check... -442 final int validForHours = settings.getInt(Settings.KEYS.NVD_API_VALID_FOR_HOURS, 0); -443 if (dataExists() && 0 < validForHours) { -444 // ms Valid = valid (hours) x 60 min/hour x 60 sec/min x 1000 ms/sec -445 final long validForSeconds = validForHours * 60L * 60L; -446 final ZonedDateTime lastChecked = dbProperties.getTimestamp(DatabaseProperties.NVD_CACHE_LAST_CHECKED); -447 if (lastChecked != null) { -448 final ZonedDateTime now = ZonedDateTime.now(ZoneId.of("UTC")); -449 final Duration duration = Duration.between(lastChecked, now); -450 final long difference = duration.getSeconds(); -451 proceed = difference > validForSeconds; -452 if (!proceed) { -453 LOGGER.info("Skipping NVD API Cache check since last check was within {} hours.", validForHours); -454 LOGGER.debug("Last NVD API was at {}, and now {} is within {} s.", lastChecked, now, validForSeconds); -455 } -456 } else { -457 LOGGER.warn("NVD cache last checked not present; updating the entire database. This could occur if you are " -458 + "switching back and forth from using the API vs a datafeed or if you are using a database created prior to ODC 9.x"); -459 } -460 } -461 return proceed; -462 } -463 -464 /** -465 * Checks the CVE Index to ensure data exists and analysis can continue. -466 * -467 * @return true if the database contains data -468 */ -469 private boolean dataExists() { -470 return cveDb.dataExists(); -471 } -472 -473 /** -474 * Determines if the index needs to be updated. This is done by fetching the -475 * NVD CVE meta data and checking the last update date. If the data needs to -476 * be refreshed this method will return the NvdCveUrl for the files that -477 * need to be updated. -478 * -479 * @param url the URL of the NVD API cache -480 * @param filePattern the string format pattern for the cached files (e.g. -481 * "nvdcve-{0}.json.gz") -482 * @param cacheProperties the properties from the remote NVD API cache -483 * @param now the start time of the update process -484 * @return the map of key to URLs - where the key is the year or `modified` -485 * @throws UpdateException Is thrown if there is an issue with the last -486 * updated properties file -487 */ -488 protected final Map<String, String> getUpdatesNeeded(String url, String filePattern, -489 Properties cacheProperties, ZonedDateTime now) throws UpdateException { -490 LOGGER.debug("starting getUpdatesNeeded() ..."); -491 final Map<String, String> updates = new HashMap<>(); -492 if (dbProperties != null && !dbProperties.isEmpty()) { -493 final int startYear = settings.getInt(Settings.KEYS.NVD_API_DATAFEED_START_YEAR, 2002); -494 // for establishing the current year use the timezone where the new year starts first -495 // as from that moment on CNAs might start assigning CVEs with the new year depending -496 // on the CNA's timezone -497 final int endYear = now.withZoneSameInstant(ZoneId.of("UTC+14:00")).getYear(); -498 boolean needsFullUpdate = false; -499 for (int y = startYear; y <= endYear; y++) { -500 final ZonedDateTime val = dbProperties.getTimestamp(DatabaseProperties.NVD_CACHE_LAST_MODIFIED + "." + y); -501 if (val == null) { -502 needsFullUpdate = true; -503 break; -504 } -505 } -506 final ZonedDateTime lastUpdated = dbProperties.getTimestamp(DatabaseProperties.NVD_CACHE_LAST_MODIFIED); -507 final int days = settings.getInt(Settings.KEYS.NVD_API_DATAFEED_VALID_FOR_DAYS, 7); -508 -509 if (!needsFullUpdate && lastUpdated.equals(DatabaseProperties.getTimestamp(cacheProperties, NVD_API_CACHE_MODIFIED_DATE))) { -510 return updates; -511 } else { -512 updates.put("modified", url + MessageFormat.format(filePattern, "modified")); -513 if (needsFullUpdate) { -514 for (int i = startYear; i <= endYear; i++) { -515 if (cacheProperties.containsKey(NVD_API_CACHE_MODIFIED_DATE + "." + i)) { -516 updates.put(String.valueOf(i), url + MessageFormat.format(filePattern, String.valueOf(i))); -517 } -518 } -519 } else if (!DateUtil.withinDateRange(lastUpdated, now, days)) { -520 for (int i = startYear; i <= endYear; i++) { -521 if (cacheProperties.containsKey(NVD_API_CACHE_MODIFIED_DATE + "." + i)) { -522 final ZonedDateTime lastModifiedCache = DatabaseProperties.getTimestamp(cacheProperties, -523 NVD_API_CACHE_MODIFIED_DATE + "." + i); -524 final ZonedDateTime lastModifiedDB = dbProperties.getTimestamp(DatabaseProperties.NVD_CACHE_LAST_MODIFIED + "." + i); -525 if (lastModifiedDB == null || lastModifiedCache.compareTo(lastModifiedDB) > 0) { -526 updates.put(String.valueOf(i), url + MessageFormat.format(filePattern, String.valueOf(i))); -527 } -528 } -529 } -530 } -531 } -532 } -533 if (updates.size() > 3) { -534 LOGGER.info("NVD API Cache requires several updates; this could take a couple of minutes."); -535 } -536 return updates; -537 } -538 -539 /** -540 * Downloads the metadata properties of the NVD API cache. -541 * -542 * @param url the URL to the NVD API cache -543 * @return the cache properties -544 * @throws UpdateException thrown if the properties file could not be -545 * downloaded -546 */ -547 protected final Properties getRemoteCacheProperties(String url) throws UpdateException { -548 try { -549 final URL u = new URL(url + "cache.properties"); -550 final Downloader d = new Downloader(settings); -551 final String content = d.fetchContent(u, true, Settings.KEYS.NVD_API_DATAFEED_USER, Settings.KEYS.NVD_API_DATAFEED_PASSWORD); -552 final Properties properties = new Properties(); -553 properties.load(new StringReader(content)); -554 return properties; -555 } catch (MalformedURLException ex) { -556 throw new UpdateException("Invalid NVD Cache URL", ex); -557 } catch (DownloadFailedException | TooManyRequestsException | ResourceNotFoundException ex) { -558 throw new UpdateException("Unable to download the NVD API cache.properties", ex); -559 } catch (IOException ex) { -560 throw new UpdateException("Invalid NVD Cache Properties file contents", ex); -561 } -562 } -563 } +297 +298 ZonedDateTime lastModifiedRequest = dbProperties.getTimestamp(DatabaseProperties.NVD_API_LAST_MODIFIED); +299 final NvdCveClientBuilder builder = NvdCveClientBuilder.aNvdCveApi(); +300 final String endpoint = settings.getString(Settings.KEYS.NVD_API_ENDPOINT); +301 if (endpoint != null) { +302 builder.withEndpoint(endpoint); +303 } +304 if (lastModifiedRequest != null) { +305 final ZonedDateTime end = lastModifiedRequest.minusDays(-120); +306 builder.withLastModifiedFilter(lastModifiedRequest, end); +307 } +308 final String key = settings.getString(Settings.KEYS.NVD_API_KEY); +309 if (key != null) { +310 //using a higher delay as the system may not be able to process these faster. +311 builder.withApiKey(key) +312 .withDelay(2000) +313 .withThreadCount(4); +314 } else { +315 LOGGER.warn("An NVD API Key was not provided - it is highly recommended to use " +316 + "an NVD API key as the update can take a VERY long time without an API Key"); +317 builder.withDelay(8000); +318 } +319 builder.withResultsPerPage(RESULTS_PER_PAGE); +320 //removed due to the virtualMatch filter causing overhead with the NVD API +321 //final String virtualMatch = settings.getString(Settings.KEYS.CVE_CPE_STARTS_WITH_FILTER); +322 //if (virtualMatch != null) { +323 // builder.withVirtualMatchString(virtualMatch); +324 //} +325 +326 final int retryCount = settings.getInt(Settings.KEYS.NVD_API_MAX_RETRY_COUNT, 10); +327 builder.withMaxRetryCount(retryCount); +328 long delay = 0; +329 try { +330 delay = settings.getLong(Settings.KEYS.NVD_API_DELAY); +331 } catch (InvalidSettingException ex) { +332 LOGGER.warn("Invalid setting `NVD_API_DELAY`? ({}), using default delay", settings.getString(Settings.KEYS.NVD_API_DELAY)); +333 } +334 if (delay > 0) { +335 builder.withDelay(delay); +336 } +337 +338 ExecutorService processingExecutorService = null; +339 try { +340 processingExecutorService = Executors.newFixedThreadPool(PROCESSING_THREAD_POOL_SIZE); +341 final List<Future<NvdApiProcessor>> submitted = new ArrayList<>(); +342 int max = -1; +343 int ctr = 0; +344 try (NvdCveClient api = builder.build()) { +345 while (api.hasNext()) { +346 Collection<DefCveItem> items = api.next(); +347 max = api.getTotalAvailable(); +348 if (ctr == 0) { +349 LOGGER.info(String.format("NVD API has %,d records in this update", max)); +350 } +351 if (items != null && !items.isEmpty()) { +352 final ObjectMapper objectMapper = new ObjectMapper(); +353 objectMapper.registerModule(new JavaTimeModule()); +354 final File outputFile = settings.getTempFile("nvd-data-", ".jsonarray.gz"); +355 try (FileOutputStream fos = new FileOutputStream(outputFile); GZIPOutputStream out = new GZIPOutputStream(fos);) { +356 objectMapper.writeValue(out, items); +357 final Future<NvdApiProcessor> f = processingExecutorService.submit(new NvdApiProcessor(cveDb, outputFile)); +358 submitted.add(f); +359 } +360 ctr += 1; +361 if ((ctr % 5) == 0) { +362 final double percent = (double) (ctr * RESULTS_PER_PAGE) / max * 100; +363 LOGGER.info(String.format("Downloaded %,d/%,d (%.0f%%)", ctr * RESULTS_PER_PAGE, max, percent)); +364 } +365 } +366 final ZonedDateTime last = api.getLastUpdated(); +367 if (last != null && (lastModifiedRequest == null || lastModifiedRequest.compareTo(last) < 0)) { +368 lastModifiedRequest = last; +369 } +370 } +371 +372 } catch (Exception e) { +373 throw new UpdateException("Error updating the NVD Data", e); +374 } +375 LOGGER.info(String.format("Downloaded %,d/%,d (%.0f%%)", max, max, 100f)); +376 max = submitted.size(); +377 final boolean updated = max > 0; +378 ctr = 0; +379 for (Future<NvdApiProcessor> f : submitted) { +380 try { +381 final NvdApiProcessor proc = f.get(); +382 ctr += 1; +383 final double percent = (double) ctr / max * 100; +384 LOGGER.info(String.format("Completed processing batch %d/%d (%.0f%%) in %,dms", ctr, max, percent, proc.getDurationMillis())); +385 } catch (InterruptedException ex) { +386 Thread.currentThread().interrupt(); +387 throw new RuntimeException(ex); +388 } catch (ExecutionException ex) { +389 LOGGER.error("Exception processing NVD API Results", ex); +390 throw new RuntimeException(ex); +391 } +392 } +393 if (lastModifiedRequest != null) { +394 dbProperties.save(DatabaseProperties.NVD_API_LAST_CHECKED, ZonedDateTime.now()); +395 dbProperties.save(DatabaseProperties.NVD_API_LAST_MODIFIED, lastModifiedRequest); +396 } +397 return updated; +398 } finally { +399 if (processingExecutorService != null) { +400 processingExecutorService.shutdownNow(); +401 } +402 } +403 } +404 +405 /** +406 * Checks if the system is configured NOT to update. +407 * +408 * @return false if the system is configured to perform an update; otherwise +409 * true +410 */ +411 private boolean isUpdateConfiguredFalse() { +412 if (!settings.getBoolean(Settings.KEYS.UPDATE_NVDCVE_ENABLED, true)) { +413 return true; +414 } +415 boolean autoUpdate = true; +416 try { +417 autoUpdate = settings.getBoolean(Settings.KEYS.AUTO_UPDATE); +418 } catch (InvalidSettingException ex) { +419 LOGGER.debug("Invalid setting for auto-update; using true."); +420 } +421 return !autoUpdate; +422 } +423 +424 @Override +425 public boolean purge(Engine engine) { +426 boolean result = true; +427 try { +428 final File dataDir = engine.getSettings().getDataDirectory(); +429 final File db = new File(dataDir, engine.getSettings().getString(Settings.KEYS.DB_FILE_NAME, "odc.mv.db")); +430 if (db.exists()) { +431 if (db.delete()) { +432 LOGGER.info("Database file purged; local copy of the NVD has been removed"); +433 } else { +434 LOGGER.error("Unable to delete '{}'; please delete the file manually", db.getAbsolutePath()); +435 result = false; +436 } +437 } else { +438 LOGGER.info("Unable to purge database; the database file does not exist: {}", db.getAbsolutePath()); +439 result = false; +440 } +441 final File traceFile = new File(dataDir, "odc.trace.db"); +442 if (traceFile.exists() && !traceFile.delete()) { +443 LOGGER.error("Unable to delete '{}'; please delete the file manually", traceFile.getAbsolutePath()); +444 result = false; +445 } +446 final File lockFile = new File(dataDir, "odc.update.lock"); +447 if (lockFile.exists() && !lockFile.delete()) { +448 LOGGER.error("Unable to delete '{}'; please delete the file manually", lockFile.getAbsolutePath()); +449 result = false; +450 } +451 } catch (IOException ex) { +452 final String msg = "Unable to delete the database"; +453 LOGGER.error(msg, ex); +454 result = false; +455 } +456 return result; +457 } +458 +459 /** +460 * Checks if the NVD API Cache JSON files were last checked recently. As an +461 * optimization, we can avoid repetitive checks against the NVD cache. +462 * +463 * @return true to proceed with the check, or false to skip +464 * @throws UpdateException thrown when there is an issue checking for +465 * updates +466 */ +467 private boolean checkUpdate() throws UpdateException { +468 boolean proceed = true; +469 // If the valid setting has not been specified, then we proceed to check... +470 final int validForHours = settings.getInt(Settings.KEYS.NVD_API_VALID_FOR_HOURS, 0); +471 if (dataExists() && 0 < validForHours) { +472 // ms Valid = valid (hours) x 60 min/hour x 60 sec/min x 1000 ms/sec +473 final long validForSeconds = validForHours * 60L * 60L; +474 final ZonedDateTime lastChecked = dbProperties.getTimestamp(DatabaseProperties.NVD_CACHE_LAST_CHECKED); +475 if (lastChecked != null) { +476 final ZonedDateTime now = ZonedDateTime.now(ZoneId.of("UTC")); +477 final Duration duration = Duration.between(lastChecked, now); +478 final long difference = duration.getSeconds(); +479 proceed = difference > validForSeconds; +480 if (!proceed) { +481 LOGGER.info("Skipping NVD API Cache check since last check was within {} hours.", validForHours); +482 LOGGER.debug("Last NVD API was at {}, and now {} is within {} s.", lastChecked, now, validForSeconds); +483 } +484 } else { +485 LOGGER.warn("NVD cache last checked not present; updating the entire database. This could occur if you are " +486 + "switching back and forth from using the API vs a datafeed or if you are using a database created prior to ODC 9.x"); +487 } +488 } +489 return proceed; +490 } +491 +492 /** +493 * Checks the CVE Index to ensure data exists and analysis can continue. +494 * +495 * @return true if the database contains data +496 */ +497 private boolean dataExists() { +498 return cveDb.dataExists(); +499 } +500 +501 /** +502 * Determines if the index needs to be updated. This is done by fetching the +503 * NVD CVE meta data and checking the last update date. If the data needs to +504 * be refreshed this method will return the NvdCveUrl for the files that +505 * need to be updated. +506 * +507 * @param url the URL of the NVD API cache +508 * @param filePattern the string format pattern for the cached files (e.g. +509 * "nvdcve-{0}.json.gz") +510 * @param cacheProperties the properties from the remote NVD API cache +511 * @param now the start time of the update process +512 * @return the map of key to URLs - where the key is the year or `modified` +513 * @throws UpdateException Is thrown if there is an issue with the last +514 * updated properties file +515 */ +516 protected final Map<String, String> getUpdatesNeeded(String url, String filePattern, +517 Properties cacheProperties, ZonedDateTime now) throws UpdateException { +518 LOGGER.debug("starting getUpdatesNeeded() ..."); +519 final Map<String, String> updates = new HashMap<>(); +520 if (dbProperties != null && !dbProperties.isEmpty()) { +521 final int startYear = settings.getInt(Settings.KEYS.NVD_API_DATAFEED_START_YEAR, 2002); +522 // for establishing the current year use the timezone where the new year starts first +523 // as from that moment on CNAs might start assigning CVEs with the new year depending +524 // on the CNA's timezone +525 final int endYear = now.withZoneSameInstant(ZoneId.of("UTC+14:00")).getYear(); +526 boolean needsFullUpdate = false; +527 for (int y = startYear; y <= endYear; y++) { +528 final ZonedDateTime val = dbProperties.getTimestamp(DatabaseProperties.NVD_CACHE_LAST_MODIFIED + "." + y); +529 if (val == null) { +530 needsFullUpdate = true; +531 break; +532 } +533 } +534 final ZonedDateTime lastUpdated = dbProperties.getTimestamp(DatabaseProperties.NVD_CACHE_LAST_MODIFIED); +535 final int days = settings.getInt(Settings.KEYS.NVD_API_DATAFEED_VALID_FOR_DAYS, 7); +536 +537 if (!needsFullUpdate && lastUpdated.equals(DatabaseProperties.getTimestamp(cacheProperties, NVD_API_CACHE_MODIFIED_DATE))) { +538 return updates; +539 } else { +540 updates.put("modified", url + MessageFormat.format(filePattern, "modified")); +541 if (needsFullUpdate) { +542 for (int i = startYear; i <= endYear; i++) { +543 if (cacheProperties.containsKey(NVD_API_CACHE_MODIFIED_DATE + "." + i)) { +544 updates.put(String.valueOf(i), url + MessageFormat.format(filePattern, String.valueOf(i))); +545 } +546 } +547 } else if (!DateUtil.withinDateRange(lastUpdated, now, days)) { +548 for (int i = startYear; i <= endYear; i++) { +549 if (cacheProperties.containsKey(NVD_API_CACHE_MODIFIED_DATE + "." + i)) { +550 final ZonedDateTime lastModifiedCache = DatabaseProperties.getTimestamp(cacheProperties, +551 NVD_API_CACHE_MODIFIED_DATE + "." + i); +552 final ZonedDateTime lastModifiedDB = dbProperties.getTimestamp(DatabaseProperties.NVD_CACHE_LAST_MODIFIED + "." + i); +553 if (lastModifiedDB == null || lastModifiedCache.compareTo(lastModifiedDB) > 0) { +554 updates.put(String.valueOf(i), url + MessageFormat.format(filePattern, String.valueOf(i))); +555 } +556 } +557 } +558 } +559 } +560 } +561 if (updates.size() > 3) { +562 LOGGER.info("NVD API Cache requires several updates; this could take a couple of minutes."); +563 } +564 return updates; +565 } +566 +567 /** +568 * Downloads the metadata properties of the NVD API cache. +569 * +570 * @param url the URL to the NVD API cache +571 * @return the cache properties +572 * @throws UpdateException thrown if the properties file could not be +573 * downloaded +574 */ +575 protected final Properties getRemoteCacheProperties(String url, String pattern) throws UpdateException { +576 final Downloader d = new Downloader(settings); +577 final Properties properties = new Properties(); +578 try { +579 final URL u = new URI(url + "cache.properties").toURL(); +580 final String content = d.fetchContent(u, true, Settings.KEYS.NVD_API_DATAFEED_USER, Settings.KEYS.NVD_API_DATAFEED_PASSWORD); +581 properties.load(new StringReader(content)); +582 +583 } catch (URISyntaxException ex) { +584 throw new UpdateException("Invalid NVD Cache URL", ex); +585 } catch (DownloadFailedException | ResourceNotFoundException ex) { +586 String metaPattern; +587 if (pattern == null) { +588 metaPattern = "nvdcve-{0}.meta"; +589 } else { +590 metaPattern = pattern.replace(".json.gz", ".meta"); +591 } +592 try { +593 URL metaUrl = new URI(url + MessageFormat.format(metaPattern, "modified")).toURL(); +594 String content = d.fetchContent(metaUrl, true, Settings.KEYS.NVD_API_DATAFEED_USER, Settings.KEYS.NVD_API_DATAFEED_PASSWORD); +595 Properties props = new Properties(); +596 props.load(new StringReader(content)); +597 ZonedDateTime lmd = DatabaseProperties.getIsoTimestamp(props, "lastModifiedDate"); +598 DatabaseProperties.setTimestamp(properties,"lastModifiedDate.modified", lmd); +599 DatabaseProperties.setTimestamp(properties,"lastModifiedDate", lmd); +600 final int startYear = settings.getInt(Settings.KEYS.NVD_API_DATAFEED_START_YEAR, 2002); +601 final ZonedDateTime now = ZonedDateTime.now(ZoneId.of("UTC")); +602 final int endYear = now.withZoneSameInstant(ZoneId.of("UTC+14:00")).getYear(); +603 for (int y = startYear; y <= endYear; y++) { +604 metaUrl = new URI(url + MessageFormat.format(metaPattern, String.valueOf(y))).toURL(); +605 content = d.fetchContent(metaUrl, true, Settings.KEYS.NVD_API_DATAFEED_USER, Settings.KEYS.NVD_API_DATAFEED_PASSWORD); +606 props.clear(); +607 props.load(new StringReader(content)); +608 lmd = DatabaseProperties.getIsoTimestamp(props, "lastModifiedDate"); +609 DatabaseProperties.setTimestamp(properties, "lastModifiedDate." + String.valueOf(y), lmd); +610 } +611 } catch (URISyntaxException | TooManyRequestsException | ResourceNotFoundException | IOException ex1) { +612 throw new UpdateException("Unable to download the data feed META files", ex); +613 } +614 } catch ( TooManyRequestsException ex) { +615 throw new UpdateException("Unable to download the NVD API cache.properties", ex); +616 } catch (IOException ex) { +617 throw new UpdateException("Invalid NVD Cache Properties file contents", ex); +618 } +619 return properties; +620 } +621 +622 protected static class UrlData { +623 +624 private final String url; +625 +626 private final String pattern; +627 +628 public UrlData(String url, String pattern) { +629 this.url = url; +630 this.pattern = pattern; +631 } +632 +633 /** +634 * Get the value of pattern +635 * +636 * @return the value of pattern +637 */ +638 public String getPattern() { +639 return pattern; +640 } +641 +642 /** +643 * Get the value of url +644 * +645 * @return the value of url +646 */ +647 public String getUrl() { +648 return url; +649 } +650 +651 } +652 }
    diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/data/update/RetireJSDataSource.html b/dependency-check-core/xref/org/owasp/dependencycheck/data/update/RetireJSDataSource.html index 48062acee50..bcbd74ce820 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/data/update/RetireJSDataSource.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/data/update/RetireJSDataSource.html @@ -32,151 +32,162 @@ 24 import javax.annotation.concurrent.ThreadSafe; 25 26 import org.owasp.dependencycheck.Engine; -27 import org.owasp.dependencycheck.data.update.exception.UpdateException; -28 import org.owasp.dependencycheck.exception.WriteLockException; -29 import org.owasp.dependencycheck.utils.Downloader; -30 import org.owasp.dependencycheck.utils.ResourceNotFoundException; -31 import org.owasp.dependencycheck.utils.Settings; -32 import org.owasp.dependencycheck.utils.TooManyRequestsException; -33 import org.owasp.dependencycheck.utils.WriteLock; -34 import org.slf4j.Logger; -35 import org.slf4j.LoggerFactory; -36 -37 /** -38 * Downloads a local copy of the RetireJS repository. -39 * -40 * @author Jeremy Long -41 */ -42 @ThreadSafe -43 public class RetireJSDataSource implements CachedWebDataSource { -44 -45 /** -46 * Static logger. -47 */ -48 private static final Logger LOGGER = LoggerFactory.getLogger(RetireJSDataSource.class); -49 /** -50 * The property key indicating when the last update occurred. -51 */ -52 public static final String RETIREJS_UPDATED_ON = "RetireJSUpdatedOn"; -53 /** -54 * The configured settings. -55 */ -56 private Settings settings; -57 /** -58 * The default URL to the RetireJS JavaScript repository. -59 */ -60 public static final String DEFAULT_JS_URL = "https://raw.githubusercontent.com/Retirejs/retire.js/master/repository/jsrepository.json"; -61 +27 import org.owasp.dependencycheck.data.nvdcve.DatabaseProperties; +28 import org.owasp.dependencycheck.data.update.exception.UpdateException; +29 import org.owasp.dependencycheck.exception.WriteLockException; +30 import org.owasp.dependencycheck.utils.Downloader; +31 import org.owasp.dependencycheck.utils.ResourceNotFoundException; +32 import org.owasp.dependencycheck.utils.Settings; +33 import org.owasp.dependencycheck.utils.TooManyRequestsException; +34 import org.owasp.dependencycheck.utils.WriteLock; +35 import org.slf4j.Logger; +36 import org.slf4j.LoggerFactory; +37 +38 /** +39 * Downloads a local copy of the RetireJS repository. +40 * +41 * @author Jeremy Long +42 */ +43 @ThreadSafe +44 public class RetireJSDataSource implements CachedWebDataSource { +45 +46 /** +47 * Static logger. +48 */ +49 private static final Logger LOGGER = LoggerFactory.getLogger(RetireJSDataSource.class); +50 /** +51 * The property key indicating when the last update occurred. +52 */ +53 public static final String RETIREJS_UPDATED_ON = "RetireJSUpdatedOn"; +54 /** +55 * The configured settings. +56 */ +57 private Settings settings; +58 /** +59 * The properties obtained from the database. +60 */ +61 private DatabaseProperties dbProperties = null; 62 /** -63 * Constructs a new engine version check utility. +63 * The default URL to the RetireJS JavaScript repository. 64 */ -65 public RetireJSDataSource() { -66 } -67 -68 /** -69 * Downloads the current RetireJS data source. -70 * -71 * @param engine a reference to the ODC Engine -72 * @return returns false as no updates are made to the database -73 * @throws UpdateException thrown if the update failed -74 */ -75 @Override -76 public boolean update(Engine engine) throws UpdateException { -77 this.settings = engine.getSettings(); -78 final String configuredUrl = settings.getString(Settings.KEYS.ANALYZER_RETIREJS_REPO_JS_URL, DEFAULT_JS_URL); -79 final boolean autoupdate = settings.getBoolean(Settings.KEYS.AUTO_UPDATE, true); -80 final boolean forceupdate = settings.getBoolean(Settings.KEYS.ANALYZER_RETIREJS_FORCEUPDATE, false); -81 final boolean enabled = settings.getBoolean(Settings.KEYS.ANALYZER_RETIREJS_ENABLED, true); -82 try { -83 final URL url = new URL(configuredUrl); -84 final File filepath = new File(url.getPath()); -85 final File repoFile = new File(settings.getDataDirectory(), filepath.getName()); -86 final boolean proceed = enabled && (forceupdate || (autoupdate && shouldUpdate(repoFile))); -87 if (proceed) { -88 LOGGER.debug("Begin RetireJS Update"); -89 initializeRetireJsRepo(settings, url, repoFile); -90 } -91 } catch (MalformedURLException ex) { -92 throw new UpdateException(String.format("Invalid URL for RetireJS repository (%s)", configuredUrl), ex); -93 } catch (IOException ex) { -94 throw new UpdateException("Unable to get the data directory", ex); -95 } -96 return false; -97 } -98 -99 /** -100 * Determines if the we should update the RetireJS database. -101 * -102 * @param repo the retire JS repository. -103 * @return <code>true</code> if an updated to the RetireJS database should -104 * be performed; otherwise <code>false</code> -105 * @throws NumberFormatException thrown if an invalid value is contained in -106 * the database properties -107 */ -108 protected boolean shouldUpdate(File repo) throws NumberFormatException { -109 boolean proceed = true; -110 if (repo != null && repo.isFile()) { -111 final int validForHours = settings.getInt(Settings.KEYS.ANALYZER_RETIREJS_REPO_VALID_FOR_HOURS, 0); -112 final long lastUpdatedOn = repo.lastModified(); -113 final long now = System.currentTimeMillis(); -114 LOGGER.debug("Last updated: {}", lastUpdatedOn); -115 LOGGER.debug("Now: {}", now); -116 final long msValid = validForHours * 60L * 60L * 1000L; -117 proceed = (now - lastUpdatedOn) > msValid; -118 if (!proceed) { -119 LOGGER.info("Skipping RetireJS update since last update was within {} hours.", validForHours); -120 } -121 } -122 return proceed; -123 } -124 -125 /** -126 * Initializes the local RetireJS repository -127 * -128 * @param settings a reference to the dependency-check settings -129 * @param repoUrl the URL to the RetireJS repository to use -130 * @param repoFile the filename to use for the RetireJS repository -131 * @throws UpdateException thrown if there is an exception during -132 * initialization -133 */ -134 @SuppressWarnings("try") -135 private void initializeRetireJsRepo(Settings settings, URL repoUrl, File repoFile) throws UpdateException { -136 try (WriteLock lock = new WriteLock(settings, true, repoFile.getName() + ".lock")) { -137 LOGGER.debug("RetireJS Repo URL: {}", repoUrl.toExternalForm()); -138 final Downloader downloader = new Downloader(settings); -139 downloader.fetchFile(repoUrl, repoFile, Settings.KEYS.ANALYZER_RETIREJS_REPO_JS_USER, Settings.KEYS.ANALYZER_RETIREJS_REPO_JS_PASSWORD); -140 } catch (IOException | TooManyRequestsException | ResourceNotFoundException | WriteLockException ex) { -141 throw new UpdateException("Failed to initialize the RetireJS repo", ex); -142 } -143 } -144 -145 @Override -146 @SuppressWarnings("try") -147 public boolean purge(Engine engine) { -148 this.settings = engine.getSettings(); -149 boolean result = true; -150 try { -151 final File dataDir = engine.getSettings().getDataDirectory(); -152 final URL repoUrl = new URL(engine.getSettings().getString(Settings.KEYS.ANALYZER_RETIREJS_REPO_JS_URL, DEFAULT_JS_URL)); -153 final String filename = repoUrl.getFile().substring(repoUrl.getFile().lastIndexOf("/") + 1); -154 final File repo = new File(dataDir, filename); -155 if (repo.exists()) { -156 try (WriteLock lock = new WriteLock(settings, true, filename + ".lock")) { -157 if (repo.delete()) { -158 LOGGER.info("RetireJS repo removed successfully"); -159 } else { -160 LOGGER.error("Unable to delete '{}'; please delete the file manually", repo.getAbsolutePath()); -161 result = false; -162 } -163 } -164 } -165 } catch (WriteLockException | IOException ex) { -166 LOGGER.error("Unable to delete the RetireJS repo - invalid configuration"); -167 result = false; -168 } -169 return result; -170 } -171 } +65 public static final String DEFAULT_JS_URL = "https://raw.githubusercontent.com/Retirejs/retire.js/master/repository/jsrepository.json"; +66 +67 /** +68 * Constructs a new engine version check utility. +69 */ +70 public RetireJSDataSource() { +71 } +72 +73 /** +74 * Downloads the current RetireJS data source. +75 * +76 * @param engine a reference to the ODC Engine +77 * @return returns false as no updates are made to the database +78 * @throws UpdateException thrown if the update failed +79 */ +80 @Override +81 public boolean update(Engine engine) throws UpdateException { +82 this.settings = engine.getSettings(); +83 this.dbProperties = engine.getDatabase().getDatabaseProperties(); +84 final String configuredUrl = settings.getString(Settings.KEYS.ANALYZER_RETIREJS_REPO_JS_URL, DEFAULT_JS_URL); +85 final boolean autoupdate = settings.getBoolean(Settings.KEYS.AUTO_UPDATE, true); +86 final boolean forceupdate = settings.getBoolean(Settings.KEYS.ANALYZER_RETIREJS_FORCEUPDATE, false); +87 final boolean enabled = settings.getBoolean(Settings.KEYS.ANALYZER_RETIREJS_ENABLED, true); +88 try { +89 final URL url = new URL(configuredUrl); +90 final File filepath = new File(url.getPath()); +91 final File repoFile = new File(settings.getDataDirectory(), filepath.getName()); +92 final boolean proceed = enabled && (forceupdate || (autoupdate && shouldUpdate(repoFile))); +93 if (proceed) { +94 LOGGER.debug("Begin RetireJS Update"); +95 initializeRetireJsRepo(settings, url, repoFile); +96 dbProperties.save(DatabaseProperties.RETIRE_LAST_CHECKED, Long.toString(System.currentTimeMillis() / 1000)); +97 } +98 } catch (MalformedURLException ex) { +99 throw new UpdateException(String.format("Invalid URL for RetireJS repository (%s)", configuredUrl), ex); +100 } catch (IOException ex) { +101 throw new UpdateException("Unable to get the data directory", ex); +102 } +103 return false; +104 } +105 +106 /** +107 * Determines if the we should update the RetireJS database. +108 * +109 * @param repo the retire JS repository. +110 * @return <code>true</code> if an updated to the RetireJS database should +111 * be performed; otherwise <code>false</code> +112 * @throws NumberFormatException thrown if an invalid value is contained in +113 * the database properties +114 */ +115 protected boolean shouldUpdate(File repo) throws NumberFormatException { +116 boolean proceed = true; +117 if (repo != null && repo.isFile()) { +118 final int validForHours = settings.getInt(Settings.KEYS.ANALYZER_RETIREJS_REPO_VALID_FOR_HOURS, 0); +119 long lastUpdatedOn = dbProperties.getPropertyInSeconds(DatabaseProperties.RETIRE_LAST_CHECKED); +120 if (lastUpdatedOn <= 0) { +121 //fall back on conversion from file last modified to storing in the db. +122 lastUpdatedOn = repo.lastModified(); +123 } +124 final long now = System.currentTimeMillis(); +125 LOGGER.debug("Last updated: {}", lastUpdatedOn); +126 LOGGER.debug("Now: {}", now); +127 final long msValid = validForHours * 60L * 60L * 1000L; +128 proceed = (now - lastUpdatedOn) > msValid; +129 if (!proceed) { +130 LOGGER.info("Skipping RetireJS update since last update was within {} hours.", validForHours); +131 } +132 } +133 return proceed; +134 } +135 +136 /** +137 * Initializes the local RetireJS repository +138 * +139 * @param settings a reference to the dependency-check settings +140 * @param repoUrl the URL to the RetireJS repository to use +141 * @param repoFile the filename to use for the RetireJS repository +142 * @throws UpdateException thrown if there is an exception during +143 * initialization +144 */ +145 @SuppressWarnings("try") +146 private void initializeRetireJsRepo(Settings settings, URL repoUrl, File repoFile) throws UpdateException { +147 try (WriteLock lock = new WriteLock(settings, true, repoFile.getName() + ".lock")) { +148 LOGGER.debug("RetireJS Repo URL: {}", repoUrl.toExternalForm()); +149 final Downloader downloader = new Downloader(settings); +150 downloader.fetchFile(repoUrl, repoFile, Settings.KEYS.ANALYZER_RETIREJS_REPO_JS_USER, Settings.KEYS.ANALYZER_RETIREJS_REPO_JS_PASSWORD); +151 } catch (IOException | TooManyRequestsException | ResourceNotFoundException | WriteLockException ex) { +152 throw new UpdateException("Failed to initialize the RetireJS repo", ex); +153 } +154 } +155 +156 @Override +157 @SuppressWarnings("try") +158 public boolean purge(Engine engine) { +159 this.settings = engine.getSettings(); +160 boolean result = true; +161 try { +162 final File dataDir = engine.getSettings().getDataDirectory(); +163 final URL repoUrl = new URL(engine.getSettings().getString(Settings.KEYS.ANALYZER_RETIREJS_REPO_JS_URL, DEFAULT_JS_URL)); +164 final String filename = repoUrl.getFile().substring(repoUrl.getFile().lastIndexOf("/") + 1); +165 final File repo = new File(dataDir, filename); +166 if (repo.exists()) { +167 try (WriteLock lock = new WriteLock(settings, true, filename + ".lock")) { +168 if (repo.delete()) { +169 LOGGER.info("RetireJS repo removed successfully"); +170 } else { +171 LOGGER.error("Unable to delete '{}'; please delete the file manually", repo.getAbsolutePath()); +172 result = false; +173 } +174 } +175 } +176 } catch (WriteLockException | IOException ex) { +177 LOGGER.error("Unable to delete the RetireJS repo - invalid configuration"); +178 result = false; +179 } +180 return result; +181 } +182 }
    diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/data/update/cisa/package-frame.html b/dependency-check-core/xref/org/owasp/dependencycheck/data/update/cisa/package-frame.html index 737eb020ad2..5afe8284d65 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/data/update/cisa/package-frame.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/data/update/cisa/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.data.update.cisa + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.data.update.cisa diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/data/update/cisa/package-summary.html b/dependency-check-core/xref/org/owasp/dependencycheck/data/update/cisa/package-summary.html index 52f34d0698a..60215773890 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/data/update/cisa/package-summary.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/data/update/cisa/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.data.update.cisa + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.data.update.cisa diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/data/update/cpe/package-frame.html b/dependency-check-core/xref/org/owasp/dependencycheck/data/update/cpe/package-frame.html index 6db85293860..4f50a16079c 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/data/update/cpe/package-frame.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/data/update/cpe/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.data.update.cpe + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.data.update.cpe diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/data/update/cpe/package-summary.html b/dependency-check-core/xref/org/owasp/dependencycheck/data/update/cpe/package-summary.html index 9dd5aabf30f..ca8431a7d57 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/data/update/cpe/package-summary.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/data/update/cpe/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.data.update.cpe + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.data.update.cpe diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/data/update/exception/package-frame.html b/dependency-check-core/xref/org/owasp/dependencycheck/data/update/exception/package-frame.html index 0eaaeeabd7c..21a703ced14 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/data/update/exception/package-frame.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/data/update/exception/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.data.update.exception + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.data.update.exception diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/data/update/exception/package-summary.html b/dependency-check-core/xref/org/owasp/dependencycheck/data/update/exception/package-summary.html index b15d7a97d02..a9f012db543 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/data/update/exception/package-summary.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/data/update/exception/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.data.update.exception + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.data.update.exception diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/data/update/nvd/api/DownloadTask.html b/dependency-check-core/xref/org/owasp/dependencycheck/data/update/nvd/api/DownloadTask.html index 006b37eabf0..882c04d6a57 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/data/update/nvd/api/DownloadTask.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/data/update/nvd/api/DownloadTask.html @@ -25,108 +25,101 @@ 17 */ 18 package org.owasp.dependencycheck.data.update.nvd.api; 19 -20 import com.fasterxml.jackson.databind.ObjectMapper; -21 import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; -22 import io.github.jeremylong.openvulnerability.client.nvd.CveApiJson20; -23 import java.net.URL; -24 import java.util.concurrent.Callable; -25 import java.util.concurrent.ExecutorService; -26 import java.util.concurrent.Future; -27 import javax.annotation.concurrent.ThreadSafe; -28 import org.apache.commons.lang3.StringUtils; -29 import org.owasp.dependencycheck.data.nvdcve.CveDB; -30 import org.owasp.dependencycheck.data.update.exception.UpdateException; -31 import org.owasp.dependencycheck.utils.Downloader; -32 import org.owasp.dependencycheck.utils.Settings; -33 import org.slf4j.Logger; -34 import org.slf4j.LoggerFactory; -35 -36 /** -37 * A callable object to download the NVD API cache files and start the -38 * NvdApiProcessor. -39 * -40 * @author Jeremy Long -41 */ -42 @ThreadSafe -43 public class DownloadTask implements Callable<Future<NvdApiProcessor>> { -44 -45 /** -46 * The Logger. -47 */ -48 private static final Logger LOGGER = LoggerFactory.getLogger(DownloadTask.class); -49 /** -50 * The CVE DB to use when processing the files. -51 */ -52 private final CveDB cveDB; -53 /** -54 * The processor service to pass the results of the download to. -55 */ -56 private final ExecutorService processorService; -57 /** -58 * The NVD API Cache file URL. -59 */ -60 private final String url; -61 /** -62 * A reference to the global settings object. -63 */ -64 private final Settings settings; -65 -66 /** -67 * Simple constructor for the callable download task. -68 * -69 * @param url the file to download -70 * @param processor the processor service to submit the downloaded files to -71 * @param cveDB the CVE DB to use to store the vulnerability data -72 * @param settings a reference to the global settings object; this is -73 * necessary so that when the thread is started the dependencies have a -74 * correct reference to the global settings. -75 * @throws UpdateException thrown if temporary files could not be created -76 */ -77 public DownloadTask(String url, ExecutorService processor, CveDB cveDB, Settings settings) { -78 this.url = url; -79 this.processorService = processor; -80 this.cveDB = cveDB; -81 this.settings = settings; -82 } -83 -84 @SuppressWarnings("BusyWait") -85 @Override -86 public Future<NvdApiProcessor> call() throws Exception { -87 try { -88 final URL u = new URL(url); -89 LOGGER.info("Download Started for NVD Cache - {}", url); -90 final long startDownload = System.currentTimeMillis(); -91 final Downloader d = new Downloader(settings); -92 final String content = d.fetchGzContent(u, true, Settings.KEYS.NVD_API_DATAFEED_USER, Settings.KEYS.NVD_API_DATAFEED_PASSWORD); -93 final ObjectMapper objectMapper = new ObjectMapper(); -94 objectMapper.registerModule(new JavaTimeModule()); -95 final CveApiJson20 data = objectMapper.readValue(content, CveApiJson20.class); -96 -97 if (this.processorService == null) { -98 return null; -99 } -100 final NvdApiProcessor task = new NvdApiProcessor(cveDB, data.getVulnerabilities(), startDownload); -101 final Future<NvdApiProcessor> val = this.processorService.submit(task); -102 return val; -103 } catch (Throwable ex) { -104 LOGGER.error("Error downloading NVD CVE - {} Reason: {}", url, ex.getMessage()); -105 throw ex; -106 } finally { -107 settings.cleanup(false); -108 } -109 } -110 -111 /** -112 * Returns true if the process task is for the modified json file from the -113 * NVD API Cache. -114 * -115 * @return <code>true</code> if the process task is for the modified data; -116 * otherwise <code>false</code> -117 */ -118 public boolean isModified() { -119 return StringUtils.containsIgnoreCase(url, "modified"); -120 } -121 } +20 import java.io.File; +21 import java.net.URL; +22 import java.util.concurrent.Callable; +23 import java.util.concurrent.ExecutorService; +24 import java.util.concurrent.Future; +25 import javax.annotation.concurrent.ThreadSafe; +26 import org.apache.commons.lang3.StringUtils; +27 import org.owasp.dependencycheck.data.nvdcve.CveDB; +28 import org.owasp.dependencycheck.utils.Downloader; +29 import org.owasp.dependencycheck.utils.Settings; +30 import org.slf4j.Logger; +31 import org.slf4j.LoggerFactory; +32 +33 /** +34 * A callable object to download the NVD API cache files and start the +35 * NvdApiProcessor. +36 * +37 * @author Jeremy Long +38 */ +39 @ThreadSafe +40 public class DownloadTask implements Callable<Future<NvdApiProcessor>> { +41 +42 /** +43 * The Logger. +44 */ +45 private static final Logger LOGGER = LoggerFactory.getLogger(DownloadTask.class); +46 /** +47 * The CVE DB to use when processing the files. +48 */ +49 private final CveDB cveDB; +50 /** +51 * The processor service to pass the results of the download to. +52 */ +53 private final ExecutorService processorService; +54 /** +55 * The NVD API Cache file URL. +56 */ +57 private final String url; +58 /** +59 * A reference to the global settings object. +60 */ +61 private final Settings settings; +62 +63 /** +64 * Simple constructor for the callable download task. +65 * +66 * @param url the file to download +67 * @param processor the processor service to submit the downloaded files to +68 * @param cveDB the CVE DB to use to store the vulnerability data +69 * @param settings a reference to the global settings object; this is +70 * necessary so that when the thread is started the dependencies have a +71 * correct reference to the global settings. +72 */ +73 public DownloadTask(String url, ExecutorService processor, CveDB cveDB, Settings settings) { +74 this.url = url; +75 this.processorService = processor; +76 this.cveDB = cveDB; +77 this.settings = settings; +78 } +79 +80 @SuppressWarnings("BusyWait") +81 @Override +82 public Future<NvdApiProcessor> call() throws Exception { +83 try { +84 final URL u = new URL(url); +85 LOGGER.info("Download Started for NVD Cache - {}", url); +86 final long startDownload = System.currentTimeMillis(); +87 final Downloader d = new Downloader(settings); +88 final File outputFile = settings.getTempFile("nvd-datafeed-", "json.gz"); +89 d.fetchFile(u, outputFile, true, Settings.KEYS.NVD_API_DATAFEED_USER, Settings.KEYS.NVD_API_DATAFEED_PASSWORD); +90 if (this.processorService == null) { +91 return null; +92 } +93 final NvdApiProcessor task = new NvdApiProcessor(cveDB, outputFile, startDownload); +94 final Future<NvdApiProcessor> val = this.processorService.submit(task); +95 return val; +96 } catch (Throwable ex) { +97 LOGGER.error("Error downloading NVD CVE - {} Reason: {}", url, ex.getMessage()); +98 throw ex; +99 } finally { +100 settings.cleanup(false); +101 } +102 } +103 +104 /** +105 * Returns true if the process task is for the modified json file from the +106 * NVD API Cache. +107 * +108 * @return <code>true</code> if the process task is for the modified data; +109 * otherwise <code>false</code> +110 */ +111 public boolean isModified() { +112 return StringUtils.containsIgnoreCase(url, "modified"); +113 } +114 }
    diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/data/update/nvd/api/NvdApiProcessor.html b/dependency-check-core/xref/org/owasp/dependencycheck/data/update/nvd/api/NvdApiProcessor.html index b5dd157e6dc..81cab50e4c0 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/data/update/nvd/api/NvdApiProcessor.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/data/update/nvd/api/NvdApiProcessor.html @@ -25,92 +25,126 @@ 17 */ 18 package org.owasp.dependencycheck.data.update.nvd.api; 19 -20 import io.github.jeremylong.openvulnerability.client.nvd.DefCveItem; -21 import java.util.Collection; -22 import java.util.concurrent.Callable; -23 import org.owasp.dependencycheck.data.nvd.ecosystem.CveEcosystemMapper; -24 import org.owasp.dependencycheck.data.nvdcve.CveDB; -25 import org.slf4j.Logger; -26 import org.slf4j.LoggerFactory; -27 -28 /** -29 * Stores a collection of NVD CVE Data from the NVD API into the database. -30 * -31 * @author Jeremy Long -32 */ -33 public class NvdApiProcessor implements Callable<NvdApiProcessor> { -34 -35 /** -36 * The Logger for use throughout the class. -37 */ -38 private static final Logger LOGGER = LoggerFactory.getLogger(NvdApiProcessor.class); -39 /** -40 * A reference to the database. -41 */ -42 private final CveDB cveDB; -43 /** -44 * The collection of NVD API data to add to the database. -45 */ -46 private Collection<DefCveItem> data; -47 /** -48 * Reference to the CVE Ecosystem Mapper object. -49 */ -50 private final CveEcosystemMapper mapper = new CveEcosystemMapper(); -51 /** -52 * The start time. -53 */ -54 private final long startTime; -55 /** -56 * The end time. -57 */ -58 private long endTime = 0; -59 +20 import com.fasterxml.jackson.core.type.TypeReference; +21 import com.fasterxml.jackson.databind.ObjectMapper; +22 import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; +23 import io.github.jeremylong.openvulnerability.client.nvd.CveApiJson20; +24 import io.github.jeremylong.openvulnerability.client.nvd.DefCveItem; +25 import java.io.File; +26 import java.io.FileInputStream; +27 import java.io.IOException; +28 import java.util.Collection; +29 import java.util.concurrent.Callable; +30 import java.util.zip.GZIPInputStream; +31 import org.owasp.dependencycheck.data.nvd.ecosystem.CveEcosystemMapper; +32 import org.owasp.dependencycheck.data.nvdcve.CveDB; +33 import org.owasp.dependencycheck.data.update.exception.UpdateException; +34 import org.slf4j.Logger; +35 import org.slf4j.LoggerFactory; +36 +37 /** +38 * Stores a collection of NVD CVE Data from the NVD API into the database. +39 * +40 * @author Jeremy Long +41 */ +42 public class NvdApiProcessor implements Callable<NvdApiProcessor> { +43 +44 /** +45 * The Logger for use throughout the class. +46 */ +47 private static final Logger LOGGER = LoggerFactory.getLogger(NvdApiProcessor.class); +48 /** +49 * A reference to the database. +50 */ +51 private final CveDB cveDB; +52 /** +53 * The file containing the data to inject. +54 */ +55 private File jsonFile; +56 /** +57 * Reference to the CVE Ecosystem Mapper object. +58 */ +59 private final CveEcosystemMapper mapper = new CveEcosystemMapper(); 60 /** -61 * Create a new processor to put the NVD data into the database. -62 * -63 * @param cveDB a reference to the database -64 * @param data the data to add to the database -65 * @param startTime the start time of the update process. +61 * The start time. +62 */ +63 private final long startTime; +64 /** +65 * The end time. 66 */ -67 public NvdApiProcessor(final CveDB cveDB, Collection<DefCveItem> data, long startTime) { -68 this.cveDB = cveDB; -69 this.data = data; -70 this.startTime = startTime; -71 } -72 -73 /** -74 * Create a new processor to put the NVD data into the database. -75 * -76 * @param cveDB a reference to the database -77 * @param data the data to add to the database -78 */ -79 public NvdApiProcessor(final CveDB cveDB, Collection<DefCveItem> data) { -80 this(cveDB, data, System.currentTimeMillis()); -81 } -82 -83 @Override -84 public NvdApiProcessor call() throws Exception { -85 for (DefCveItem entry : data) { -86 try { -87 cveDB.updateVulnerability(entry, mapper.getEcosystem(entry)); -88 } catch (Exception ex) { -89 LOGGER.error("Failed to process " + entry.getCve().getId(), ex); -90 } -91 } -92 endTime = System.currentTimeMillis(); -93 data = null; -94 return this; -95 } -96 -97 /** -98 * Calculates how long the update process took. -99 * -100 * @return the number of milliseconds that the update process took -101 */ -102 public long getDurationMillis() { -103 return endTime - startTime; -104 } -105 } +67 private long endTime = 0; +68 +69 /** +70 * Create a new processor to put the NVD data into the database. +71 * +72 * @param cveDB a reference to the database. +73 * @param jsonFile the JSON data file to inject. +74 * @param startTime the start time of the update process. +75 */ +76 public NvdApiProcessor(final CveDB cveDB, File jsonFile, long startTime) { +77 this.cveDB = cveDB; +78 this.jsonFile = jsonFile; +79 this.startTime = startTime; +80 } +81 +82 /** +83 * Create a new processor to put the NVD data into the database. +84 * +85 * @param cveDB a reference to the database +86 * @param jsonFile the JSON data file to inject. +87 */ +88 public NvdApiProcessor(final CveDB cveDB, File jsonFile) { +89 this(cveDB, jsonFile, System.currentTimeMillis()); +90 } +91 +92 @Override +93 public NvdApiProcessor call() throws Exception { +94 final ObjectMapper objectMapper = new ObjectMapper(); +95 objectMapper.registerModule(new JavaTimeModule()); +96 Collection<DefCveItem> data = null; +97 +98 if (jsonFile.getName().endsWith(".jsonarray.gz")) { +99 try (FileInputStream fileInputStream = new FileInputStream(jsonFile); +100 GZIPInputStream gzipInputStream = new GZIPInputStream(fileInputStream);) { +101 data = objectMapper.readValue(gzipInputStream, new TypeReference<Collection<DefCveItem>>(){}); +102 } catch (IOException exception) { +103 throw new UpdateException("Unable to read downloaded json data: " + jsonFile, exception); +104 } +105 } else if (jsonFile.getName().endsWith(".gz")) { +106 try (FileInputStream fileInputStream = new FileInputStream(jsonFile); +107 GZIPInputStream gzipInputStream = new GZIPInputStream(fileInputStream);) { +108 CveApiJson20 cveData = objectMapper.readValue(gzipInputStream, CveApiJson20.class); +109 if (cveData != null) { +110 data = cveData.getVulnerabilities(); +111 } +112 } catch (IOException exception) { +113 throw new UpdateException("Unable to read downloaded json data: " + jsonFile, exception); +114 } +115 } else { +116 data = objectMapper.readValue(jsonFile, new TypeReference<Collection<DefCveItem>>(){}); +117 } +118 if (data != null ) { +119 for (DefCveItem entry : data) { +120 try { +121 cveDB.updateVulnerability(entry, mapper.getEcosystem(entry)); +122 } catch (Exception ex) { +123 LOGGER.error("Failed to process " + entry.getCve().getId(), ex); +124 } +125 } +126 } +127 endTime = System.currentTimeMillis(); +128 return this; +129 } +130 +131 /** +132 * Calculates how long the update process took. +133 * +134 * @return the number of milliseconds that the update process took +135 */ +136 public long getDurationMillis() { +137 return endTime - startTime; +138 } +139 }
    diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/data/update/nvd/api/package-frame.html b/dependency-check-core/xref/org/owasp/dependencycheck/data/update/nvd/api/package-frame.html index 2ed17627949..dbb92ccb4b1 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/data/update/nvd/api/package-frame.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/data/update/nvd/api/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.data.update.nvd.api + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.data.update.nvd.api diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/data/update/nvd/api/package-summary.html b/dependency-check-core/xref/org/owasp/dependencycheck/data/update/nvd/api/package-summary.html index 10dc784094e..9b2a5eb6884 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/data/update/nvd/api/package-summary.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/data/update/nvd/api/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.data.update.nvd.api + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.data.update.nvd.api diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/data/update/package-frame.html b/dependency-check-core/xref/org/owasp/dependencycheck/data/update/package-frame.html index da638bdce1b..bbd44b1b1a4 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/data/update/package-frame.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/data/update/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.data.update + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.data.update @@ -35,6 +35,9 @@

    Classes

  • UpdateService +
  • +
  • + UrlData
  • diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/data/update/package-summary.html b/dependency-check-core/xref/org/owasp/dependencycheck/data/update/package-summary.html index ce58237846d..0cbb13a556c 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/data/update/package-summary.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/data/update/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.data.update + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.data.update @@ -69,6 +69,11 @@

    Package org.owasp.dependencycheck.data.update

    + + +
    UpdateService
    + UrlData +
    diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/dependency/naming/package-frame.html b/dependency-check-core/xref/org/owasp/dependencycheck/dependency/naming/package-frame.html index 0ae3f6d960d..a0bd6aedaaa 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/dependency/naming/package-frame.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/dependency/naming/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.dependency.naming + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.dependency.naming diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/dependency/naming/package-summary.html b/dependency-check-core/xref/org/owasp/dependencycheck/dependency/naming/package-summary.html index 7885301466a..2796833160d 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/dependency/naming/package-summary.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/dependency/naming/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.dependency.naming + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.dependency.naming diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/dependency/package-frame.html b/dependency-check-core/xref/org/owasp/dependencycheck/dependency/package-frame.html index 5b56378dc1a..d20b8b150bc 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/dependency/package-frame.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/dependency/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.dependency + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.dependency diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/dependency/package-summary.html b/dependency-check-core/xref/org/owasp/dependencycheck/dependency/package-summary.html index e0f7806d3ce..6016ae26789 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/dependency/package-summary.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/dependency/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.dependency + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.dependency diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/exception/package-frame.html b/dependency-check-core/xref/org/owasp/dependencycheck/exception/package-frame.html index 60ce0b5e96b..3cde2891756 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/exception/package-frame.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/exception/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.exception + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.exception diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/exception/package-summary.html b/dependency-check-core/xref/org/owasp/dependencycheck/exception/package-summary.html index b41193b7360..3ed2b2adb7b 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/exception/package-summary.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/exception/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.exception + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.exception diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/package-frame.html b/dependency-check-core/xref/org/owasp/dependencycheck/package-frame.html index 4ab67915d81..49d5b16c83e 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/package-frame.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/package-summary.html b/dependency-check-core/xref/org/owasp/dependencycheck/package-summary.html index 81dee52ac1a..c843d955259 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/package-summary.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/processing/package-frame.html b/dependency-check-core/xref/org/owasp/dependencycheck/processing/package-frame.html index bda57bb9f8b..4153af6f34d 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/processing/package-frame.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/processing/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.processing + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.processing diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/processing/package-summary.html b/dependency-check-core/xref/org/owasp/dependencycheck/processing/package-summary.html index 790da08c0d9..ef58d8bf086 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/processing/package-summary.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/processing/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.processing + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.processing diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/reporting/package-frame.html b/dependency-check-core/xref/org/owasp/dependencycheck/reporting/package-frame.html index 1b848edbe7d..1bba3cd4e6c 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/reporting/package-frame.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/reporting/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.reporting + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.reporting diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/reporting/package-summary.html b/dependency-check-core/xref/org/owasp/dependencycheck/reporting/package-summary.html index d20808f4f31..a62c8026f9d 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/reporting/package-summary.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/reporting/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.reporting + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.reporting diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/utils/package-frame.html b/dependency-check-core/xref/org/owasp/dependencycheck/utils/package-frame.html index 98f5b61a6ce..6ddd36f42d7 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/utils/package-frame.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/utils/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.utils + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.utils diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/utils/package-summary.html b/dependency-check-core/xref/org/owasp/dependencycheck/utils/package-summary.html index e5f28b2ae74..b39c3c4289a 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/utils/package-summary.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/utils/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.utils + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.utils diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/xml/assembly/package-frame.html b/dependency-check-core/xref/org/owasp/dependencycheck/xml/assembly/package-frame.html index 59325607e3e..2524dfb6265 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/xml/assembly/package-frame.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/xml/assembly/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.xml.assembly + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.xml.assembly diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/xml/assembly/package-summary.html b/dependency-check-core/xref/org/owasp/dependencycheck/xml/assembly/package-summary.html index ae4a7258d43..21aff4dbc74 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/xml/assembly/package-summary.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/xml/assembly/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.xml.assembly + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.xml.assembly diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/xml/hints/package-frame.html b/dependency-check-core/xref/org/owasp/dependencycheck/xml/hints/package-frame.html index b50eb2c4d78..32ad0ca64dc 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/xml/hints/package-frame.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/xml/hints/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.xml.hints + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.xml.hints diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/xml/hints/package-summary.html b/dependency-check-core/xref/org/owasp/dependencycheck/xml/hints/package-summary.html index 9b0d65746b6..1e7163e2ddc 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/xml/hints/package-summary.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/xml/hints/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.xml.hints + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.xml.hints diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/xml/package-frame.html b/dependency-check-core/xref/org/owasp/dependencycheck/xml/package-frame.html index 2547b808897..1de9b0df07e 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/xml/package-frame.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/xml/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.xml + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.xml diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/xml/package-summary.html b/dependency-check-core/xref/org/owasp/dependencycheck/xml/package-summary.html index 8af9cd4d471..bc0247acaed 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/xml/package-summary.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/xml/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.xml + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.xml diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/xml/pom/package-frame.html b/dependency-check-core/xref/org/owasp/dependencycheck/xml/pom/package-frame.html index e45135afebc..b99b40a029e 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/xml/pom/package-frame.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/xml/pom/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.xml.pom + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.xml.pom diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/xml/pom/package-summary.html b/dependency-check-core/xref/org/owasp/dependencycheck/xml/pom/package-summary.html index 7a648538d21..74f6bca7977 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/xml/pom/package-summary.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/xml/pom/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.xml.pom + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.xml.pom diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/xml/suppression/package-frame.html b/dependency-check-core/xref/org/owasp/dependencycheck/xml/suppression/package-frame.html index 04a25c77a6f..16fee593c55 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/xml/suppression/package-frame.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/xml/suppression/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.xml.suppression + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.xml.suppression diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/xml/suppression/package-summary.html b/dependency-check-core/xref/org/owasp/dependencycheck/xml/suppression/package-summary.html index 269d0ee9e70..4dd63a1f987 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/xml/suppression/package-summary.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/xml/suppression/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference Package org.owasp.dependencycheck.xml.suppression + Dependency-Check Core 9.0.5 Reference Package org.owasp.dependencycheck.xml.suppression diff --git a/dependency-check-core/xref/overview-frame.html b/dependency-check-core/xref/overview-frame.html index 47023ab01fd..60e03a9eb90 100644 --- a/dependency-check-core/xref/overview-frame.html +++ b/dependency-check-core/xref/overview-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference + Dependency-Check Core 9.0.5 Reference diff --git a/dependency-check-core/xref/overview-summary.html b/dependency-check-core/xref/overview-summary.html index 83e085dce32..2f851da9d1e 100644 --- a/dependency-check-core/xref/overview-summary.html +++ b/dependency-check-core/xref/overview-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Core 9.0.4 Reference + Dependency-Check Core 9.0.5 Reference @@ -24,7 +24,7 @@ -

    Dependency-Check Core 9.0.4 Reference

    +

    Dependency-Check Core 9.0.5 Reference

    diff --git a/dependency-check-gradle/configuration-aggregate.html b/dependency-check-gradle/configuration-aggregate.html index a0ee303bc13..80ef846f0f4 100644 --- a/dependency-check-gradle/configuration-aggregate.html +++ b/dependency-check-gradle/configuration-aggregate.html @@ -1,13 +1,13 @@ - + dependency-check – Tasks @@ -40,8 +40,8 @@
  • Dependency-Check/
  • documentation/
  • Tasks
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • @@ -278,60 +278,65 @@

    Advanced Configuration

    + + + + + - + - + - + - + - + - + - + - + - + - + - + diff --git a/dependency-check-gradle/configuration-purge.html b/dependency-check-gradle/configuration-purge.html index 16f8eb3c3e0..3d4d59bc138 100644 --- a/dependency-check-gradle/configuration-purge.html +++ b/dependency-check-gradle/configuration-purge.html @@ -1,13 +1,13 @@ - + dependency-check – Tasks @@ -40,8 +40,8 @@
  • Dependency-Check/
  • documentation/
  • Tasks
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • diff --git a/dependency-check-gradle/configuration-update.html b/dependency-check-gradle/configuration-update.html index ee7e84e63ec..fc198eddbe4 100644 --- a/dependency-check-gradle/configuration-update.html +++ b/dependency-check-gradle/configuration-update.html @@ -1,13 +1,13 @@ - + dependency-check – Tasks @@ -40,8 +40,8 @@
  • Dependency-Check/
  • documentation/
  • Tasks
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • @@ -216,80 +216,85 @@

    Advanced Configuration

    + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + diff --git a/dependency-check-gradle/configuration.html b/dependency-check-gradle/configuration.html index dc7272189c3..e0866f7b5ed 100644 --- a/dependency-check-gradle/configuration.html +++ b/dependency-check-gradle/configuration.html @@ -1,13 +1,13 @@ - + dependency-check – Tasks @@ -40,8 +40,8 @@
  • Dependency-Check/
  • documentation/
  • Tasks
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • @@ -249,60 +249,65 @@

    Advanced Configuration

    + + + + + - + - + - + - + - + - + - + - + - + - + - + diff --git a/dependency-check-gradle/index.html b/dependency-check-gradle/index.html index 0c3a77e32e5..f5faf232020 100644 --- a/dependency-check-gradle/index.html +++ b/dependency-check-gradle/index.html @@ -1,13 +1,13 @@ - + dependency-check – Usage @@ -40,8 +40,8 @@
  • Dependency-Check/
  • documentation/
  • Usage
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • @@ -109,7 +109,7 @@

    Step 1, Apply d mavenCentral() } dependencies { - classpath 'org.owasp:dependency-check-gradle:9.0.4' + classpath 'org.owasp:dependency-check-gradle:9.0.5' } } diff --git a/dependency-check-jenkins/index.html b/dependency-check-jenkins/index.html index 1230cfc9954..8aa8d916f06 100644 --- a/dependency-check-jenkins/index.html +++ b/dependency-check-jenkins/index.html @@ -1,13 +1,13 @@ - + dependency-check – Dependency-Check Jenkins Plugin @@ -40,8 +40,8 @@
  • Dependency-Check/
  • documentation/
  • Dependency-Check Jenkins Plugin
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • diff --git a/dependency-check-maven/aggregate-mojo.html b/dependency-check-maven/aggregate-mojo.html index caf83e97a39..27927aecfe9 100644 --- a/dependency-check-maven/aggregate-mojo.html +++ b/dependency-check-maven/aggregate-mojo.html @@ -1,13 +1,13 @@ - + dependency-check-maven – dependency-check:aggregate @@ -41,8 +41,8 @@
  • documentation/
  • dependency-check/
  • dependency-check:aggregate
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • @@ -80,7 +80,7 @@

    dependency-check:aggregate

    Note:

    This goal should be used as a Maven report.

    Full name:

    -

    org.owasp:dependency-check-maven:9.0.4:aggregate

    +

    org.owasp:dependency-check-maven:9.0.5:aggregate

    Description:

    Maven Plugin that checks project dependencies and the dependencies of all child modules to see if they have any known published vulnerabilities.

    Attributes:

    @@ -461,141 +461,146 @@

    Optional Parameters

    +
    + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -611,157 +616,157 @@

    Optional Parameters

    + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -1195,7 +1200,13 @@

    <nvdApiDelay>

    +
  • User Property: nvdApiDelay

  • +

    <nvdApiEndpoint>

    +
    The NVD API Endpoint; setting this is uncommon.
    +

    <nvdApiKey>

    The NVD API Key.
     
    nvdendpointThe NVD API endpoint URL; setting this is uncommon.https://services.nvd.nist.gov/rest/json/cves/2.0
    nvd maxRetryCount The maximum number of retry requests for a single call to the NVD API. 10
    nvd delay The number of milliseconds to wait between calls to the NVD API. 2000 with an NVD API Key or 8000 without an API Key
    nvd datafeedUrl The URL for the NVD API Data feed that can be generated using https://github.com/jeremylong/Open-Vulnerability-Project/tree/main/vulnz#caching-the-nvd-cve-data  
    nvd datafeedUser Credentials used for basic authentication for the NVD API Data feed.  
    nvd datafeedPassword Credentials used for basic authentication for the NVD API Data feed.  
    nvd validForHours The number of hours to wait before checking for new updates from the NVD. The default is 4 hours. 4
    data directory Sets the data directory to hold SQL CVEs contents. This should generally not be changed.  
    data driver The name of the database driver. Example: org.h2.Driver.  
    data driverPath The path to the database driver JAR file; only used if the driver is not in the class path.  
    data connectionString The connection string used to connect to the database. See using a database server.  
    data username The username used when connecting to the database.  
    data password The password used when connecting to the database.  
    nvdendpointThe NVD API endpoint URL; setting this is uncommon.https://services.nvd.nist.gov/rest/json/cves/2.0
    nvd maxRetryCount The maximum number of retry requests for a single call to the NVD API. 10
    nvd delay The number of milliseconds to wait between calls to the NVD API. 2000 with an NVD API Key or 8000 without an API Key .
    nvd datafeedUrl The URL for the NVD API Data feed that can be generated using https://github.com/jeremylong/Open-Vulnerability-Project/tree/main/vulnz#caching-the-nvd-cve-data  
    nvd datafeedUser Credentials used for basic authentication for the NVD API Data feed.  
    nvd datafeedPassword Credentials used for basic authentication for the NVD API Data feed.  
    nvd validForHours The number of hours to wait before checking for new updates from the NVD. The default is 4 hours. 4
    data directory Sets the data directory to hold SQL CVEs contents. This should generally not be changed.  
    data driver The name of the database driver. Example: org.h2.Driver.  
    data driverPath The path to the database driver JAR file; only used if the driver is not in the class path.  
    data connectionString The connection string used to connect to the database. See using a database server.  
    data username The username used when connecting to the database.  
    data password The password used when connecting to the database.  
    hostedSuppressions enabled Whether the hosted suppressions file will be used. true
    hostedSuppressions forceupdate Sets whether hosted suppressions file will update regardless of the autoupdate setting. false
    hostedSuppressions url The URL to the Retire JS repository. https://jeremylong.github.io/DependencyCheck/suppressions/publishedSuppressions.xml
    hostedSuppressions validForHours The number of hours to wait before checking for new updates of the hosted suppressions file .  
    nvdendpointThe NVD API endpoint URL; setting this is uncommon.https://services.nvd.nist.gov/rest/json/cves/2.0
    nvd maxRetryCount The maximum number of retry requests for a single call to the NVD API. 10
    nvd delay The number of milliseconds to wait between calls to the NVD API. 2000 with an NVD API Key or 8000 without an API Key
    nvd datafeedUrl The URL for the NVD API Data feed that can be generated using https://github.com/jeremylong/Open-Vulnerability-Project/tree/main/vulnz#caching-the-nvd-cve-data  
    nvd datafeedUser Credentials used for basic authentication for the NVD API Data feed.  
    nvd datafeedPassword Credentials used for basic authentication for the NVD API Data feed.  
    nvd validForHours The number of hours to wait before checking for new updates from the NVD. The default is 4 hours. 4
    data directory Sets the data directory to hold SQL CVEs contents. This should generally not be changed.  
    data driver The name of the database driver. Example: org.h2.Driver.  
    data driverPath The path to the database driver JAR file; only used if the driver is not in the class path.  
    data connectionString The connection string used to connect to the database. See using a database server.  
    data username The username used when connecting to the database.  
    data password The password used when connecting to the database. <nvdApiEndpoint>String-The NVD API Endpoint; setting this is uncommon.
    User Property: nvdApiEndpoint
    <nvdApiKey> String - The NVD API Key.
    User Property: nvdApiKey
    <nvdApiServerId> String - The server id in the settings.xml; used to retrieve encrypted API Key from the settings.xml for the NVD API Key. Note that the password is used as the API Key
    User Property: nvdApiServerId
    <nvdDatafeedServerId> String - The server id in the settings.xml; used to retrieve encrypted passwords from the settings.xml for the NVD Data Feed.
    User Property: nvdDatafeedServerId
    <nvdDatafeedUrl> String - The NVD API Data Feed URL.
    User Property: nvdDatafeedUrl
    <nvdMaxRetryCount> Integer - The maximum number of retry requests for a single call to the NVD API.
    User Property: nvdMaxRetryCount
    <nvdPassword> String - The password for basic auth to the NVD Data Feed.
    User Property: nvdPassword
    <nvdUser> String - The username for basic auth to the NVD Data Feed.
    User Property: nvdUser
    <nvdValidForHours> Integer - The number of hours to wait before checking for new updates from the NVD.
    User Property: nvdValidForHours
    <opensslAnalyzerEnabled> Boolean - Sets whether or not the openssl Analyzer should be used.
    User Property: opensslAnalyzerEnabled
    <ossindexAnalyzerEnabled> Boolean - Whether or not the Sonatype OSS Index analyzer is enabled.
    User Property: ossindexAnalyzerEnabled
    <ossindexAnalyzerUrl> String - URL of the Sonatype OSS Index service.
    User Property: ossindexAnalyzerUrl
    <ossindexAnalyzerUseCache> Boolean - Whether or not the Sonatype OSS Index analyzer should cache results.
    User Property: ossindexAnalyzerUseCache
    <ossIndexServerId> String - The id of a server defined in the settings.xml that configures the credentials (username and password) for a OSS Index service.
    User Property: ossIndexServerId
    <ossIndexWarnOnlyOnRemoteErrors> Boolean - Whether we should only warn about Sonatype OSS Index remote errors instead of failing the goal completely.
    User Property: ossIndexWarnOnlyOnRemoteErrors
    <pathToCore> String - The path to dotnet core.
    User Property: pathToCore
    <pathToGo> String - Sets the path to `go`.
    User Property: pathToGo
    <pathToPnpm> String - Sets the path to `pnpm`.
    User Property: pathToPnpm
    <pathToYarn> String - Sets the path to `yarn`.
    User Property: pathToYarn
    <pipAnalyzerEnabled> Boolean - Sets whether or not the pip Analyzer should be used.
    User Property: pipAnalyzerEnabled
    <pipfileAnalyzerEnabled> Boolean - Sets whether or not the pipfile Analyzer should be used.
    User Property: pipfileAnalyzerEnabled
    <pnpmAuditAnalyzerEnabled> Boolean - Sets whether or not the Pnpm Audit Analyzer should be used.
    User Property: pnpmAuditAnalyzerEnabled
    <poetryAnalyzerEnabled> Boolean - Sets whether or not the poetry Analyzer should be used.
    User Property: poetryAnalyzerEnabled
    <prettyPrint> Boolean - Whether or not the XML and JSON report formats should be pretty printed. The default is false.
    User Property: prettyPrint
    <proxy> ProxyConfig - The proxy configuration.
    <pyDistributionAnalyzerEnabled> Boolean - Sets whether the Python Distribution Analyzer will be used.
    User Property: pyDistributionAnalyzerEnabled
    <pyPackageAnalyzerEnabled> Boolean - Sets whether the Python Package Analyzer will be used.
    User Property: pyPackageAnalyzerEnabled
    <readTimeout> String - The Read Timeout.
    User Property: readTimeout
    <retirejs> Retirejs -
    <retireJsAnalyzerEnabled> Boolean - Sets whether or not the Retirejs Analyzer should be used.
    User Property: retireJsAnalyzerEnabled
    <retireJsForceUpdate> Boolean - Whether the Retire JS repository will be updated regardless of the `autoupdate` settings.
    User Property: retireJsForceUpdate
    <retireJsPassword> String - The password to authenticate to the CVE-URL.
    User Property: retireJsPassword
    <retireJsUrl> String - The Retire JS repository URL.
    User Property: retireJsUrl
    <retireJsUrlServerId> String - The server id in the settings.xml; used to retrieve encrypted passwords from the settings.xml for cve-URLs.
    User Property: retireJsUrlServerId
    <retireJsUser> String - The username to use when connecting to the CVE-URL.
    User Property: retireJsUser
    <rubygemsAnalyzerEnabled> Boolean - Sets whether the Ruby Gemspec Analyzer will be used.
    User Property: rubygemsAnalyzerEnabled
    <scanDependencies> boolean - Whether the project's dependencies should also be scanned.
    Default: true
    User Property: odc.dependencies.scan
    <scanDirectory> List<String> - A list of directories to scan. Note, this should only be used via the command line - if configuring the directories to scan consider using the `scanSet` instead.
    User Property: scanDirectory
    <scanPlugins> boolean - Whether the project's plugins should also be scanned.
    Default: false
    User Property: odc.plugins.scan
    <scanSet> List<FileSet> - An collection of fileSets that specify additional files and/or directories (from the basedir) to analyze as part of the scan. If not specified, defaults to Maven conventions of: src/main/resources, src/main/filters, and src/main/webapp. Note, this cannot be set via the command line - use `scanDirectory` instead.
    <serverId> String - The server id in the settings.xml; used to retrieve encrypted passwords from the settings.xml. This is used for the database username and password.
    User Property: serverId
    <showSummary> boolean - Flag indicating whether or not to show a summary in the output.
    Default: true
    User Property: showSummary
    <skip> boolean - Skip Dependency Check altogether.
    Default: false
    User Property: dependency-check.skip
    <skipArtifactType> String - Skip analysis for dependencies which type matches this regular expression. This filters on the `type` of dependency as defined in the dependency section: jar, pom, test-jar, etc.
    User Property: skipArtifactType
    <skipDependencyManagement> boolean - Skip Analysis for dependencyManagement section.
    Default: true
    User Property: skipDependencyManagement
    <skipProvidedScope> boolean - Skip Analysis for Provided Scope Dependencies.
    Default: false
    User Property: skipProvidedScope
    <skipRuntimeScope> boolean - Skip Analysis for Runtime Scope Dependencies.
    Default: false
    User Property: skipRuntimeScope
    <skipSystemScope> boolean - Skip Analysis for System Scope Dependencies.
    Default: false
    User Property: skipSystemScope
    <skipTestScope> boolean - Skip Analysis for Test Scope Dependencies.
    Default: true
    User Property: skipTestScope
    <suppressionFile> String - The paths to the suppression file. The parameter value can be a local file path, a URL to a suppression file, or even a reference to a file on the class path (see https://github.com/jeremylong/DependencyCheck/issues/1878#issuecomment-487533799)
    User Property: suppressionFile
    <suppressionFilePassword> String - The password used when connecting to the suppressionFiles.
    User Property: suppressionFilePassword
    <suppressionFiles> String[] - The paths to the suppression files. The parameter value can be a local file path, a URL to a suppression file, or even a reference to a file on the class path (see https://github.com/jeremylong/DependencyCheck/issues/1878#issuecomment-487533799)
    User Property: suppressionFiles
    <suppressionFileServerId> String - The server id in the settings.xml; used to retrieve encrypted passwords from the settings.xml for suppressionFile(s).
    User Property: suppressionFileServerId
    <suppressionFileUser> String - The username used when connecting to the suppressionFiles.
    User Property: suppressionFileUser
    <swiftPackageManagerAnalyzerEnabled> Boolean - Whether or not the Swift package Analyzer is enabled.
    User Property: swiftPackageManagerAnalyzerEnabled
    <swiftPackageResolvedAnalyzerEnabled> Boolean - Whether or not the Swift package resolved Analyzer is enabled.
    User Property: swiftPackageResolvedAnalyzerEnabled
    <versionCheckEnabled> boolean - Sets whether dependency-check should check if there is a new version available.
    Default: true
    User Property: versionCheckEnabled
    <virtualSnapshotsFromReactor> Boolean - Use pom dependency information for snapshot dependencies that are part of the Maven reactor while aggregate scanning a multi-module project.
    Default: true
    User Property: dependency-check.virtualSnapshotsFromReactor
    <yarnAuditAnalyzerEnabled> Boolean - Sets whether or not the Yarn Audit Analyzer should be used.
    User Property: yarnAuditAnalyzerEnabled
    <zipExtensions> String -
    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethodsMissedClasses
    Total3,217 of 6,52350%498 of 75433%3715166561,33760139314
    org.owasp.dependencycheck.maven2,3513,30658%38625639%2994445001,18144123213
    org.owasp.dependency_check_maven8660%1120%7272156156161611
    \ No newline at end of file +Dependency-Check Maven Plugin

    Dependency-Check Maven Plugin

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethodsMissedClasses
    Total3,217 of 6,56350%498 of 75634%3715176561,34160139314
    org.owasp.dependencycheck.maven2,3513,34658%38625840%2994455001,18544123213
    org.owasp.dependency_check_maven8660%1120%7272156156161611
    \ No newline at end of file diff --git a/dependency-check-maven/jacoco/jacoco-sessions.html b/dependency-check-maven/jacoco/jacoco-sessions.html index dff3433d791..e6d33132f72 100644 --- a/dependency-check-maven/jacoco/jacoco-sessions.html +++ b/dependency-check-maven/jacoco/jacoco-sessions.html @@ -1 +1 @@ -Sessions

    Sessions

    This coverage report is based on execution data from the following sessions:

    SessionStart TimeDump Time
    fv-az773-600-46bfa852Dec 8, 2023 11:26:52 AMDec 8, 2023 11:26:54 AM
    fv-az773-600-42c5ff03Dec 8, 2023 11:27:26 AMDec 8, 2023 11:27:44 AM
    fv-az773-600-9a64925eDec 8, 2023 11:27:26 AMDec 8, 2023 11:27:55 AM
    fv-az773-600-2c7c480dDec 8, 2023 11:27:55 AMDec 8, 2023 11:28:04 AM
    fv-az773-600-61e5417fDec 8, 2023 11:27:44 AMDec 8, 2023 11:28:10 AM
    fv-az773-600-b974cc10Dec 8, 2023 11:28:04 AMDec 8, 2023 11:28:16 AM
    fv-az773-600-dc0d0f4dDec 8, 2023 11:27:26 AMDec 8, 2023 11:28:20 AM
    fv-az773-600-819d16cDec 8, 2023 11:28:11 AMDec 8, 2023 11:28:26 AM
    fv-az773-600-9b2bb411Dec 8, 2023 11:27:26 AMDec 8, 2023 11:28:42 AM
    fv-az773-600-603ee6d7Dec 8, 2023 11:28:21 AMDec 8, 2023 11:28:43 AM
    fv-az773-600-91f23d2fDec 8, 2023 11:28:27 AMDec 8, 2023 11:28:48 AM
    fv-az773-600-65983518Dec 8, 2023 11:28:17 AMDec 8, 2023 11:29:00 AM
    fv-az773-600-47fdd424Dec 8, 2023 11:28:44 AMDec 8, 2023 11:29:04 AM
    fv-az773-600-7c13efa8Dec 8, 2023 11:28:48 AMDec 8, 2023 11:29:10 AM
    fv-az773-600-6455deb6Dec 8, 2023 11:28:43 AMDec 8, 2023 11:29:27 AM
    fv-az773-600-3d3a82acDec 8, 2023 11:29:05 AMDec 8, 2023 11:29:28 AM
    fv-az773-600-9ca5273aDec 8, 2023 11:29:10 AMDec 8, 2023 11:29:30 AM
    fv-az773-600-c7945691Dec 8, 2023 11:29:28 AMDec 8, 2023 11:29:44 AM
    fv-az773-600-b2b2fdf4Dec 8, 2023 11:29:30 AMDec 8, 2023 11:29:47 AM
    fv-az773-600-ddf2333aDec 8, 2023 11:29:44 AMDec 8, 2023 11:29:53 AM
    fv-az773-600-4799b2b3Dec 8, 2023 11:29:28 AMDec 8, 2023 11:30:02 AM
    fv-az773-600-eb9558c2Dec 8, 2023 11:30:02 AMDec 8, 2023 11:30:12 AM
    fv-az773-600-a65745eaDec 8, 2023 11:29:01 AMDec 8, 2023 11:30:14 AM
    fv-az773-600-184b3009Dec 8, 2023 11:29:47 AMDec 8, 2023 11:30:44 AM

    Execution data for the following classes is considered in this report:

    ClassId
    com.esotericsoftware.minlog.Logc05158d5e66d9c02
    com.esotericsoftware.minlog.Log.Logger349e3e9c35cef91b
    com.fasterxml.jackson.annotation.JsonAutoDetect.16be52ec71dcf28a2
    com.fasterxml.jackson.annotation.JsonAutoDetect.Visibilitye56bcd385626eead
    com.fasterxml.jackson.annotation.JsonCreator.Mode5e1d947ef261f336
    com.fasterxml.jackson.annotation.JsonFormat.Featuree632f8db525e6519
    com.fasterxml.jackson.annotation.JsonFormat.Features75fb2eb9717dc62a
    com.fasterxml.jackson.annotation.JsonFormat.Shapec19c22f9661f3b7d
    com.fasterxml.jackson.annotation.JsonFormat.Value0eb8231d09bfd09a
    com.fasterxml.jackson.annotation.JsonIgnoreProperties.Value4f0da3cf85f6ca76
    com.fasterxml.jackson.annotation.JsonInclude.Include30ab0a782ad08747
    com.fasterxml.jackson.annotation.JsonInclude.Valuea558d9f40414e748
    com.fasterxml.jackson.annotation.JsonIncludeProperties.Value7ed084480a07ee84
    com.fasterxml.jackson.annotation.JsonProperty.Accessb5322e85ff85e8b9
    com.fasterxml.jackson.annotation.JsonSetter.Value6ee26ce006658a00
    com.fasterxml.jackson.annotation.Nulls724f990ec72b618f
    com.fasterxml.jackson.annotation.OptBoolean19b18410e5837c9e
    com.fasterxml.jackson.annotation.PropertyAccessora506c0b4a9292088
    com.fasterxml.jackson.core.Base64Variant820db952b2ce1918
    com.fasterxml.jackson.core.Base64Variant.PaddingReadBehaviourdd0e63a614fe004b
    com.fasterxml.jackson.core.Base64Variantse646bbe091ae79c0
    com.fasterxml.jackson.core.ErrorReportConfiguration6ae7b9c14364f861
    com.fasterxml.jackson.core.JsonFactory4b6dbe517dc74f05
    com.fasterxml.jackson.core.JsonFactory.Feature6053a66ef91d8599
    com.fasterxml.jackson.core.JsonGenerator8a53f1394a871e41
    com.fasterxml.jackson.core.JsonGenerator.Featuredca43627a1b1d378
    com.fasterxml.jackson.core.JsonParserbfa2b2aaf45dbdaf
    com.fasterxml.jackson.core.JsonParser.Feature7e095b73debaa45f
    com.fasterxml.jackson.core.JsonParser.NumberType88e7ccc17e76b9de
    com.fasterxml.jackson.core.JsonStreamContext369abe89770bcf3d
    com.fasterxml.jackson.core.JsonTokeneed63a6e4a8e9120
    com.fasterxml.jackson.core.ObjectCodec4de1a295d9dc31ca
    com.fasterxml.jackson.core.PrettyPrinterf27d5528a26794c9
    com.fasterxml.jackson.core.StreamReadCapabilitya4c561ff4de25114
    com.fasterxml.jackson.core.StreamReadConstraintsfef85c00a0df6225
    com.fasterxml.jackson.core.StreamReadFeature9a2e8953e3d6037c
    com.fasterxml.jackson.core.StreamWriteCapability20b236b266d25323
    com.fasterxml.jackson.core.StreamWriteConstraintsf2bb5b3756dacf82
    com.fasterxml.jackson.core.TokenStreamFactory41de330f27eca392
    com.fasterxml.jackson.core.TreeCodec18594f8a8dcec6a2
    com.fasterxml.jackson.core.Version9e2d74f157825603
    com.fasterxml.jackson.core.base.GeneratorBase769b434d47814ead
    com.fasterxml.jackson.core.base.ParserBase7ea5c57b85e68f85
    com.fasterxml.jackson.core.base.ParserMinimalBasedafc6c7b6eb27cb5
    com.fasterxml.jackson.core.io.CharTypes07a8747913d8e991
    com.fasterxml.jackson.core.io.ContentReferencec1bf9547a5b31574
    com.fasterxml.jackson.core.io.IOContext92f945a4db96d4d1
    com.fasterxml.jackson.core.io.JsonStringEncodercaf3b669acbbe223
    com.fasterxml.jackson.core.io.NumberInput6b34a37c1fb6a484
    com.fasterxml.jackson.core.io.SegmentedStringWriteraf9b17af11ce151f
    com.fasterxml.jackson.core.io.SerializedStringde06c047872018ad
    com.fasterxml.jackson.core.json.JsonGeneratorImpl62f7e0732a7b3f16
    com.fasterxml.jackson.core.json.JsonReadContext7fe93ff4dfcd910a
    com.fasterxml.jackson.core.json.JsonWriteContext80adf9bb4918112e
    com.fasterxml.jackson.core.json.ReaderBasedJsonParser5a748aacc97cbeaf
    com.fasterxml.jackson.core.json.WriterBasedJsonGenerator4c9c68d95ea16405
    com.fasterxml.jackson.core.sym.ByteQuadsCanonicalizer5054f4087e115bac
    com.fasterxml.jackson.core.sym.ByteQuadsCanonicalizer.TableInfoeb0211d6faa23d01
    com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer098437effe93aab8
    com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer.Bucket7c0255c4c5f898c2
    com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer.TableInfo7f8a1e78ae4259c6
    com.fasterxml.jackson.core.type.ResolvedType8a4589ad9960ed59
    com.fasterxml.jackson.core.util.BufferRecycler130f2ce298e329d8
    com.fasterxml.jackson.core.util.BufferRecyclers4e7bee8eece90b3a
    com.fasterxml.jackson.core.util.DefaultIndenter18913563e8366f39
    com.fasterxml.jackson.core.util.DefaultPrettyPrinterdffce786178e5ff1
    com.fasterxml.jackson.core.util.DefaultPrettyPrinter.FixedSpaceIndenter418687d575a4f083
    com.fasterxml.jackson.core.util.DefaultPrettyPrinter.NopIndenter110c0bf83e5c079c
    com.fasterxml.jackson.core.util.InternCacheb55c4c122f488f2e
    com.fasterxml.jackson.core.util.JacksonFeatureSet69b6b3d8af7f13b3
    com.fasterxml.jackson.core.util.JsonRecyclerPoolsbb15cd8e45e37fee
    com.fasterxml.jackson.core.util.JsonRecyclerPools.ThreadLocalPoolb47528b0197c08e2
    com.fasterxml.jackson.core.util.ReadConstrainedTextBuffer23fc9ce24061d845
    com.fasterxml.jackson.core.util.RecyclerPool.ThreadLocalPoolBase23bd83512f98e1cd
    com.fasterxml.jackson.core.util.Separatorsdb601d3f3bad91c2
    com.fasterxml.jackson.core.util.Separators.Spacing511422cc9db17520
    com.fasterxml.jackson.core.util.TextBuffere0024e1d666b4905
    com.fasterxml.jackson.core.util.VersionUtil665fa94b3d0b07a9
    com.fasterxml.jackson.databind.AnnotationIntrospector905eb800c47f61a4
    com.fasterxml.jackson.databind.AnnotationIntrospector.ReferenceProperty09f92466c78dd697
    com.fasterxml.jackson.databind.AnnotationIntrospector.ReferenceProperty.Typed90a083248c5b3dc
    com.fasterxml.jackson.databind.BeanDescriptionb72f4d814c7d9796
    com.fasterxml.jackson.databind.BeanProperty.Std1dc3c0a141338eba
    com.fasterxml.jackson.databind.DatabindContext190fc61056492212
    com.fasterxml.jackson.databind.DeserializationConfiga66abddaffd0eeda
    com.fasterxml.jackson.databind.DeserializationContexte42cf81978826049
    com.fasterxml.jackson.databind.DeserializationFeaturee8c5e101ec4650d4
    com.fasterxml.jackson.databind.JavaType4b4e8dfd897d7a79
    com.fasterxml.jackson.databind.JsonDeserializerf155d5de89ce5a60
    com.fasterxml.jackson.databind.JsonSerializeradb9d1fae01b02c7
    com.fasterxml.jackson.databind.KeyDeserializer57c3ce9990767641
    com.fasterxml.jackson.databind.MapperFeatured7d85f4bfd3cff7a
    com.fasterxml.jackson.databind.MappingJsonFactory65cdd9294dfaf29a
    com.fasterxml.jackson.databind.Modulebb66b81d910dbd05
    com.fasterxml.jackson.databind.ObjectMapper1267d692f0f6e0ba
    com.fasterxml.jackson.databind.ObjectMapper.10b9220e9c1bc2c47
    com.fasterxml.jackson.databind.ObjectReader1d24d1af08075eb3
    com.fasterxml.jackson.databind.PropertyMetadata56620abf8cdd07c8
    com.fasterxml.jackson.databind.PropertyName217cf81be2326911
    com.fasterxml.jackson.databind.SerializationConfig40620b2ae2347380
    com.fasterxml.jackson.databind.SerializationFeature9609ec0ec1e8bc2a
    com.fasterxml.jackson.databind.SerializerProvider10f427a250ca2427
    com.fasterxml.jackson.databind.cfg.BaseSettings74949427e8604cd4
    com.fasterxml.jackson.databind.cfg.CoercionAction9e15561f16680f97
    com.fasterxml.jackson.databind.cfg.CoercionConfigffad61191adeb87e
    com.fasterxml.jackson.databind.cfg.CoercionConfigs8937a55c926c734f
    com.fasterxml.jackson.databind.cfg.CoercionInputShape90aad4e377b3dccd
    com.fasterxml.jackson.databind.cfg.ConfigOverridef1771a0d408303c8
    com.fasterxml.jackson.databind.cfg.ConfigOverride.Empty3372ed519d9bafb4
    com.fasterxml.jackson.databind.cfg.ConfigOverrides7943101710d9f910
    com.fasterxml.jackson.databind.cfg.ConstructorDetector9af1c9a41cb4b83d
    com.fasterxml.jackson.databind.cfg.ConstructorDetector.SingleArgConstructorb0c67222cebc30be
    com.fasterxml.jackson.databind.cfg.ContextAttributes216e6db5a97ae48a
    com.fasterxml.jackson.databind.cfg.ContextAttributes.Implede427cff276c0b8
    com.fasterxml.jackson.databind.cfg.DatatypeFeaturesf4893ef156575441
    com.fasterxml.jackson.databind.cfg.DatatypeFeatures.DefaultHolder81838084595fa0c8
    com.fasterxml.jackson.databind.cfg.DefaultCacheProvider6bbb2aa855b50726
    com.fasterxml.jackson.databind.cfg.DeserializerFactoryConfig7861ff22cec5640b
    com.fasterxml.jackson.databind.cfg.EnumFeature16e95ce7a3f1f1ee
    com.fasterxml.jackson.databind.cfg.JsonNodeFeature93b45511772e9fc3
    com.fasterxml.jackson.databind.cfg.MapperConfigc7b0b1bb3bc6f9f1
    com.fasterxml.jackson.databind.cfg.MapperConfigBase5bb7b8ef48c720d7
    com.fasterxml.jackson.databind.cfg.MutableCoercionConfig262e6b36c9ca989e
    com.fasterxml.jackson.databind.cfg.SerializerFactoryConfigd93f22d3258ee4c0
    com.fasterxml.jackson.databind.deser.BasicDeserializerFactory3944ee9b76fde7a2
    com.fasterxml.jackson.databind.deser.BasicDeserializerFactory.1e3f0f2b5bb60e211
    com.fasterxml.jackson.databind.deser.BasicDeserializerFactory.ContainerDefaultMappingsdf7805e17fdc7522
    com.fasterxml.jackson.databind.deser.BasicDeserializerFactory.CreatorCollectionStatef0dbb90499e14fa4
    com.fasterxml.jackson.databind.deser.BeanDeserializer51262781f5e28489
    com.fasterxml.jackson.databind.deser.BeanDeserializerBasedf7ad1189a3b508b
    com.fasterxml.jackson.databind.deser.BeanDeserializerBuilderd5bdf1bb9953f729
    com.fasterxml.jackson.databind.deser.BeanDeserializerFactory65809d9bdea9493b
    com.fasterxml.jackson.databind.deser.BeanDeserializerModifier184167b49d96ae56
    com.fasterxml.jackson.databind.deser.DefaultDeserializationContext5756779a22fd7d68
    com.fasterxml.jackson.databind.deser.DefaultDeserializationContext.Impl8057860fe47eb5da
    com.fasterxml.jackson.databind.deser.DeserializerCache7d85f058f583e5dd
    com.fasterxml.jackson.databind.deser.DeserializerFactory2ebdf24d93849f1a
    com.fasterxml.jackson.databind.deser.Deserializers.Basea3b8086adb6ca320
    com.fasterxml.jackson.databind.deser.SettableAnyPropertyaad043facc07e3e1
    com.fasterxml.jackson.databind.deser.SettableAnyProperty.MethodAnyProperty9e6e2416f9612c30
    com.fasterxml.jackson.databind.deser.SettableBeanPropertye32815b47681953f
    com.fasterxml.jackson.databind.deser.SettableBeanProperty.Delegating9a42268c2af26ce4
    com.fasterxml.jackson.databind.deser.ValueInstantiator500a74eea26ebb5d
    com.fasterxml.jackson.databind.deser.ValueInstantiator.Base56fce65bc9fdb762
    com.fasterxml.jackson.databind.deser.ValueInstantiators.Base409ddb33d4295a19
    com.fasterxml.jackson.databind.deser.impl.BeanPropertyMapabab716eded67ac2
    com.fasterxml.jackson.databind.deser.impl.CreatorCandidate3ec9d7560819c0da
    com.fasterxml.jackson.databind.deser.impl.CreatorCandidate.Paramc635ef4a61409ee4
    com.fasterxml.jackson.databind.deser.impl.CreatorCollector0f8b3def4682a020
    com.fasterxml.jackson.databind.deser.impl.FailingDeserializer4904d8577f214eb3
    com.fasterxml.jackson.databind.deser.impl.FieldProperty79a77498e066a15d
    com.fasterxml.jackson.databind.deser.impl.JDKValueInstantiators008ddf7a64eb2d4a
    com.fasterxml.jackson.databind.deser.impl.JDKValueInstantiators.ArrayListInstantiator187a1232f1bf2643
    com.fasterxml.jackson.databind.deser.impl.JDKValueInstantiators.LinkedHashMapInstantiator8e9a27c2b9ea0809
    com.fasterxml.jackson.databind.deser.impl.MethodPropertydf95398e08d528a0
    com.fasterxml.jackson.databind.deser.impl.NullsConstantProvider83cd716157aa0f9a
    com.fasterxml.jackson.databind.deser.std.CollectionDeserializer264403aa8c0a30f7
    com.fasterxml.jackson.databind.deser.std.ContainerDeserializerBase0f7cf99ff0b0c8a0
    com.fasterxml.jackson.databind.deser.std.DateDeserializers9e6826e9538c1d95
    com.fasterxml.jackson.databind.deser.std.DateDeserializers.DateBasedDeserializera724948d8fa77410
    com.fasterxml.jackson.databind.deser.std.DateDeserializers.DateDeserializer15a9d57b22e2ade2
    com.fasterxml.jackson.databind.deser.std.EnumDeserializerc3ad157384d2680f
    com.fasterxml.jackson.databind.deser.std.FactoryBasedEnumDeserializer49f0456ec9536a9a
    com.fasterxml.jackson.databind.deser.std.FromStringDeserializerb5093028e19eaf91
    com.fasterxml.jackson.databind.deser.std.JdkDeserializersa7ac27fec28e8de9
    com.fasterxml.jackson.databind.deser.std.MapDeserializerb32eea18a36cb24a
    com.fasterxml.jackson.databind.deser.std.NumberDeserializersaf4aa96d306dfbb7
    com.fasterxml.jackson.databind.deser.std.NumberDeserializers.BooleanDeserializer30e8686ef1609fb9
    com.fasterxml.jackson.databind.deser.std.NumberDeserializers.DoubleDeserializer5ed3821dd4db75a5
    com.fasterxml.jackson.databind.deser.std.NumberDeserializers.IntegerDeserializercb695275ccadb732
    com.fasterxml.jackson.databind.deser.std.NumberDeserializers.NumberDeserializer24d7e253adbe49ba
    com.fasterxml.jackson.databind.deser.std.NumberDeserializers.PrimitiveOrWrapperDeserializer467caf19a87c057e
    com.fasterxml.jackson.databind.deser.std.StdDeserializer2122bf750d1b5b89
    com.fasterxml.jackson.databind.deser.std.StdKeyDeserializera4a518bbbaf161f0
    com.fasterxml.jackson.databind.deser.std.StdKeyDeserializer.StringKDf39c6c872cbaa313
    com.fasterxml.jackson.databind.deser.std.StdKeyDeserializers2ca4ab5d0f0b71dd
    com.fasterxml.jackson.databind.deser.std.StdScalarDeserializer25286f364997b846
    com.fasterxml.jackson.databind.deser.std.StdValueInstantiator34181f4c11253cc9
    com.fasterxml.jackson.databind.deser.std.StringArrayDeserializerdbeac8e57a8a807e
    com.fasterxml.jackson.databind.deser.std.StringCollectionDeserializerea68b80c909c4561
    com.fasterxml.jackson.databind.deser.std.StringDeserializer36ba9f92a53b7892
    com.fasterxml.jackson.databind.deser.std.UntypedObjectDeserializerd9dd77561d0b2427
    com.fasterxml.jackson.databind.deser.std.UntypedObjectDeserializerNRe1ad05bf432fcba5
    com.fasterxml.jackson.databind.ext.Java7Handlers31410c423d95a2d0
    com.fasterxml.jackson.databind.ext.Java7HandlersImpl423b0b9d126fb382
    com.fasterxml.jackson.databind.ext.Java7Support4b7557784caa415a
    com.fasterxml.jackson.databind.ext.Java7SupportImpl94a94fc44678f7e9
    com.fasterxml.jackson.databind.ext.OptionalHandlerFactorya873be98e8f52009
    com.fasterxml.jackson.databind.introspect.AccessorNamingStrategy3d3b7f563f5ca70a
    com.fasterxml.jackson.databind.introspect.AccessorNamingStrategy.Provider6026222786456f26
    com.fasterxml.jackson.databind.introspect.Annotated47d3d49f2b832d54
    com.fasterxml.jackson.databind.introspect.AnnotatedClass208d1216b93f97d9
    com.fasterxml.jackson.databind.introspect.AnnotatedClass.Creatorsecbba5a1c87c995f
    com.fasterxml.jackson.databind.introspect.AnnotatedClassResolver9c1435b88f5e9e91
    com.fasterxml.jackson.databind.introspect.AnnotatedConstructoreaf946db37898a44
    com.fasterxml.jackson.databind.introspect.AnnotatedCreatorCollectorf1dbd789d7b2161e
    com.fasterxml.jackson.databind.introspect.AnnotatedFielde6e45b21b9cdeda3
    com.fasterxml.jackson.databind.introspect.AnnotatedFieldCollectord6830919dea39e8f
    com.fasterxml.jackson.databind.introspect.AnnotatedFieldCollector.FieldBuilder571d9e7fb561d385
    com.fasterxml.jackson.databind.introspect.AnnotatedMember5879537c033bd580
    com.fasterxml.jackson.databind.introspect.AnnotatedMethodad2f0bf303d90ae0
    com.fasterxml.jackson.databind.introspect.AnnotatedMethodCollectore8e34bff5e47f125
    com.fasterxml.jackson.databind.introspect.AnnotatedMethodCollector.MethodBuilderb522d96f88a7ade4
    com.fasterxml.jackson.databind.introspect.AnnotatedMethodMapd69be24a07cecf16
    com.fasterxml.jackson.databind.introspect.AnnotatedParameter05eab262cf202b22
    com.fasterxml.jackson.databind.introspect.AnnotatedWithParams54f7d4537c15cfdb
    com.fasterxml.jackson.databind.introspect.AnnotationCollectorc389709d2ffbb364
    com.fasterxml.jackson.databind.introspect.AnnotationCollector.EmptyCollectora87b6b2439611ec7
    com.fasterxml.jackson.databind.introspect.AnnotationCollector.NCollector9e3f6012728d8752
    com.fasterxml.jackson.databind.introspect.AnnotationCollector.NoAnnotations9173d7167a075d90
    com.fasterxml.jackson.databind.introspect.AnnotationCollector.OneAnnotation5d638a47b9878df4
    com.fasterxml.jackson.databind.introspect.AnnotationCollector.OneCollector4d7ed4cd12d6011c
    com.fasterxml.jackson.databind.introspect.AnnotationCollector.TwoAnnotationscfd34e461249c2a8
    com.fasterxml.jackson.databind.introspect.AnnotationMap78aa63dcada1ee05
    com.fasterxml.jackson.databind.introspect.BasicBeanDescription4f0d484434fb6325
    com.fasterxml.jackson.databind.introspect.BasicClassIntrospectorfcecadfe75a5c2af
    com.fasterxml.jackson.databind.introspect.BeanPropertyDefinitiond3bbcf006607ecb0
    com.fasterxml.jackson.databind.introspect.ClassIntrospectorb20a1133edfcf6b5
    com.fasterxml.jackson.databind.introspect.CollectorBasefec0f38373f479ba
    com.fasterxml.jackson.databind.introspect.ConcreteBeanPropertyBasefa5bde6be1d392b1
    com.fasterxml.jackson.databind.introspect.DefaultAccessorNamingStrategyefc1568392fc0098
    com.fasterxml.jackson.databind.introspect.DefaultAccessorNamingStrategy.Provider9679bb882d2d354f
    com.fasterxml.jackson.databind.introspect.JacksonAnnotationIntrospector9d54114155341c05
    com.fasterxml.jackson.databind.introspect.MemberKey0e604899c13122c4
    com.fasterxml.jackson.databind.introspect.MethodGenericTypeResolver61e8e0d7412c1d92
    com.fasterxml.jackson.databind.introspect.POJOPropertiesCollector1821e69f144ab189
    com.fasterxml.jackson.databind.introspect.POJOPropertyBuilder87b50c8168df5d0b
    com.fasterxml.jackson.databind.introspect.POJOPropertyBuilder.1925ffe3a324d008c
    com.fasterxml.jackson.databind.introspect.POJOPropertyBuilder.2f9f5816009560a85
    com.fasterxml.jackson.databind.introspect.POJOPropertyBuilder.4ccfa1b83e27ecd92
    com.fasterxml.jackson.databind.introspect.POJOPropertyBuilder.58bc5c843a115ba34
    com.fasterxml.jackson.databind.introspect.POJOPropertyBuilder.6a2d5a4cee9bda8de
    com.fasterxml.jackson.databind.introspect.POJOPropertyBuilder.Linkedef62b5db9e7546d6
    com.fasterxml.jackson.databind.introspect.SimpleMixInResolver6a0721d817cbf413
    com.fasterxml.jackson.databind.introspect.TypeResolutionContext.Basic09190ef225acb240
    com.fasterxml.jackson.databind.introspect.VisibilityChecker.Std86f77996bd544f4e
    com.fasterxml.jackson.databind.jsontype.PolymorphicTypeValidatorff1c7cc76de984ce
    com.fasterxml.jackson.databind.jsontype.PolymorphicTypeValidator.Baseea9ae0e64ce11069
    com.fasterxml.jackson.databind.jsontype.SubtypeResolverb2ed8bc0e5fe669c
    com.fasterxml.jackson.databind.jsontype.impl.LaissezFaireSubTypeValidatord02dab29b87ed521
    com.fasterxml.jackson.databind.jsontype.impl.StdSubtypeResolver342823e6800eb76b
    com.fasterxml.jackson.databind.jsontype.impl.SubTypeValidatora7ad2f19c2210a88
    com.fasterxml.jackson.databind.module.SimpleDeserializers53107227f2e2423e
    com.fasterxml.jackson.databind.module.SimpleKeyDeserializersa819432235e4437e
    com.fasterxml.jackson.databind.module.SimpleModulea21183dcf70aba53
    com.fasterxml.jackson.databind.module.SimpleSerializers946800aa77be606d
    com.fasterxml.jackson.databind.node.JsonNodeFactoryb407554ab061d84d
    com.fasterxml.jackson.databind.ser.BasicSerializerFactoryda909c46cb0d91a4
    com.fasterxml.jackson.databind.ser.BeanSerializerFactory16faed09cf6c52b8
    com.fasterxml.jackson.databind.ser.BeanSerializerModifier67661ad652d96db0
    com.fasterxml.jackson.databind.ser.ContainerSerializer67b35562bf415143
    com.fasterxml.jackson.databind.ser.DefaultSerializerProvider7081bda43dcfcb52
    com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.Implbb7a481d8d11e37e
    com.fasterxml.jackson.databind.ser.SerializerCache05a580ec11f5621f
    com.fasterxml.jackson.databind.ser.SerializerFactorya96ec5a87f2a9dec
    com.fasterxml.jackson.databind.ser.Serializers.Base443d0df59bde7b26
    com.fasterxml.jackson.databind.ser.impl.FailingSerializer96696f091a076f00
    com.fasterxml.jackson.databind.ser.impl.ReadOnlyClassToSerializerMapf7673b78d4dbb21a
    com.fasterxml.jackson.databind.ser.impl.StringArraySerializere460ddec25a8c614
    com.fasterxml.jackson.databind.ser.impl.UnknownSerializer0f0b100c24ae521b
    com.fasterxml.jackson.databind.ser.std.ArraySerializerBasec8c6410977eb572f
    com.fasterxml.jackson.databind.ser.std.BooleanSerializera5e7ba6f955baf41
    com.fasterxml.jackson.databind.ser.std.CalendarSerializerda6df272674c3c19
    com.fasterxml.jackson.databind.ser.std.DateSerializerdcf355b20d60965d
    com.fasterxml.jackson.databind.ser.std.DateTimeSerializerBasefb1c17ba4f02cbe0
    com.fasterxml.jackson.databind.ser.std.NullSerializer55885eb24739c250
    com.fasterxml.jackson.databind.ser.std.NumberSerializer2b09bf235752694e
    com.fasterxml.jackson.databind.ser.std.NumberSerializersdfe8936a5bca95d8
    com.fasterxml.jackson.databind.ser.std.NumberSerializers.Base243c88192bb86ee4
    com.fasterxml.jackson.databind.ser.std.NumberSerializers.DoubleSerializer5b65fb8c8ea04f02
    com.fasterxml.jackson.databind.ser.std.NumberSerializers.FloatSerializer0849cda863777be8
    com.fasterxml.jackson.databind.ser.std.NumberSerializers.IntLikeSerializer37f949791419da14
    com.fasterxml.jackson.databind.ser.std.NumberSerializers.IntegerSerializer8572ad7f464034dd
    com.fasterxml.jackson.databind.ser.std.NumberSerializers.LongSerializer1bcc67c140cfbe03
    com.fasterxml.jackson.databind.ser.std.NumberSerializers.ShortSerializera678b068eca9e8b6
    com.fasterxml.jackson.databind.ser.std.StdJdkSerializersb1d950d41858d3ba
    com.fasterxml.jackson.databind.ser.std.StdScalarSerializer294ce690d4fde5d1
    com.fasterxml.jackson.databind.ser.std.StdSerializer2eb989e3aa9ebf8b
    com.fasterxml.jackson.databind.ser.std.StringSerializerb6342c9e6a90d477
    com.fasterxml.jackson.databind.ser.std.ToEmptyObjectSerializerdcbbfaf250568a42
    com.fasterxml.jackson.databind.ser.std.ToStringSerializerb965af9d2adb22d7
    com.fasterxml.jackson.databind.ser.std.ToStringSerializerBase4df4671bce83caa1
    com.fasterxml.jackson.databind.ser.std.UUIDSerializer9825ed90a3a1ea38
    com.fasterxml.jackson.databind.type.ArrayTypeada34943c659785c
    com.fasterxml.jackson.databind.type.ClassKeyc92de6eb0295e1ea
    com.fasterxml.jackson.databind.type.ClassStackb4e39752aaaff8ce
    com.fasterxml.jackson.databind.type.CollectionLikeTypefdca9c74891003b6
    com.fasterxml.jackson.databind.type.CollectionType754ccfd8e93b2fdd
    com.fasterxml.jackson.databind.type.LogicalTypee0e08cb4c4d717b1
    com.fasterxml.jackson.databind.type.MapLikeType84a6b76ead78268b
    com.fasterxml.jackson.databind.type.MapTypee4c0bbd455f37026
    com.fasterxml.jackson.databind.type.SimpleType9bf726d4e15bb139
    com.fasterxml.jackson.databind.type.TypeBase84e347a8123ba86e
    com.fasterxml.jackson.databind.type.TypeBindings69af78e44b169d2b
    com.fasterxml.jackson.databind.type.TypeBindings.AsKey3cf63795dd54b8b7
    com.fasterxml.jackson.databind.type.TypeBindings.TypeParamStashc0b0ab8001879ee4
    com.fasterxml.jackson.databind.type.TypeFactory3596cbf80365f39f
    com.fasterxml.jackson.databind.type.TypeParser539ac466374b5334
    com.fasterxml.jackson.databind.util.AccessPattern44bf82acd8a3fffc
    com.fasterxml.jackson.databind.util.ArrayBuildersc14a06ce657aa67b
    com.fasterxml.jackson.databind.util.ArrayIteratore4c9e4d38ac21c90
    com.fasterxml.jackson.databind.util.BeanUtilaca352d66ffbab01
    com.fasterxml.jackson.databind.util.ClassUtil7a2a6f716f5500a1
    com.fasterxml.jackson.databind.util.ClassUtil.Ctor1fd4710f90ff53de
    com.fasterxml.jackson.databind.util.IgnorePropertiesUtil81001725c2203f99
    com.fasterxml.jackson.databind.util.LRUMapc487e14750ddd25e
    com.fasterxml.jackson.databind.util.LinkedNode73ca05873e25cb2e
    com.fasterxml.jackson.databind.util.NativeImageUtilb8f4495279426166
    com.fasterxml.jackson.databind.util.ObjectBuffer14fbae37b93a957b
    com.fasterxml.jackson.databind.util.RootNameLookupadd4d1fb1a084862
    com.fasterxml.jackson.databind.util.StdDateFormatc6d4539431425f11
    com.fasterxml.jackson.databind.util.TypeKey32162ed128b7bbbd
    com.fasterxml.jackson.databind.util.internal.LinkedDeque9bfc4fbb2b0b1196
    com.fasterxml.jackson.databind.util.internal.PrivateMaxEntriesMap3f0ff22fe5779861
    com.fasterxml.jackson.databind.util.internal.PrivateMaxEntriesMap.AddTask866aec97a77c2650
    com.fasterxml.jackson.databind.util.internal.PrivateMaxEntriesMap.Builderdcc244062522bdc6
    com.fasterxml.jackson.databind.util.internal.PrivateMaxEntriesMap.DrainStatusa1e26b7a083af651
    com.fasterxml.jackson.databind.util.internal.PrivateMaxEntriesMap.DrainStatus.12de09d3a3bfcdca6
    com.fasterxml.jackson.databind.util.internal.PrivateMaxEntriesMap.DrainStatus.22928516020b2e91a
    com.fasterxml.jackson.databind.util.internal.PrivateMaxEntriesMap.DrainStatus.326e6a18539bc3d80
    com.fasterxml.jackson.databind.util.internal.PrivateMaxEntriesMap.EntryIterator86fc40b47b6d46b6
    com.fasterxml.jackson.databind.util.internal.PrivateMaxEntriesMap.EntrySet69a473f3bfd1c6f1
    com.fasterxml.jackson.databind.util.internal.PrivateMaxEntriesMap.Node2dc3669c077d2e56
    com.fasterxml.jackson.databind.util.internal.PrivateMaxEntriesMap.WeightedValuec5874d009c2eaa54
    com.fasterxml.jackson.datatype.jsr310.JavaTimeFeature11ebf8abc1c4f906
    com.fasterxml.jackson.datatype.jsr310.JavaTimeModule336759599f630d91
    com.fasterxml.jackson.datatype.jsr310.JavaTimeModule.1327c369d7a207d22
    com.fasterxml.jackson.datatype.jsr310.PackageVersion52634a35b9f96fcd
    com.fasterxml.jackson.datatype.jsr310.deser.DurationDeserializerb86657917c64cb85
    com.fasterxml.jackson.datatype.jsr310.deser.InstantDeserializer8193d32aba73cf61
    com.fasterxml.jackson.datatype.jsr310.deser.JSR310DateTimeDeserializerBase0366d6b796957250
    com.fasterxml.jackson.datatype.jsr310.deser.JSR310DeserializerBasea42a100eb3db5063
    com.fasterxml.jackson.datatype.jsr310.deser.JSR310StringParsableDeserializerec40549afa8898ca
    com.fasterxml.jackson.datatype.jsr310.deser.LocalDateDeserializer7c3dc32f44a8a7d2
    com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializerdd6bef5ff411966a
    com.fasterxml.jackson.datatype.jsr310.deser.LocalTimeDeserializer1bffe9367f89358b
    com.fasterxml.jackson.datatype.jsr310.deser.MonthDayDeserializer295fd92b5b65742e
    com.fasterxml.jackson.datatype.jsr310.deser.OffsetTimeDeserializer00fa8a1b15dfd0d9
    com.fasterxml.jackson.datatype.jsr310.deser.YearDeserializer0679c75311d6e905
    com.fasterxml.jackson.datatype.jsr310.deser.YearMonthDeserializeraf642fd7b5a7e4e8
    com.fasterxml.jackson.datatype.jsr310.deser.key.DurationKeyDeserializer86dee43d5fd8de58
    com.fasterxml.jackson.datatype.jsr310.deser.key.InstantKeyDeserializerc323cc187e10bdcd
    com.fasterxml.jackson.datatype.jsr310.deser.key.Jsr310KeyDeserializer64893f60684210d1
    com.fasterxml.jackson.datatype.jsr310.deser.key.LocalDateKeyDeserializer3639e2ff55da7fa1
    com.fasterxml.jackson.datatype.jsr310.deser.key.LocalDateTimeKeyDeserializered7e026ffd090c77
    com.fasterxml.jackson.datatype.jsr310.deser.key.LocalTimeKeyDeserializerc058ad0a221814f2
    com.fasterxml.jackson.datatype.jsr310.deser.key.MonthDayKeyDeserializerfe54a17b388e76da
    com.fasterxml.jackson.datatype.jsr310.deser.key.OffsetDateTimeKeyDeserializer1bfce89e8c6142a4
    com.fasterxml.jackson.datatype.jsr310.deser.key.OffsetTimeKeyDeserializer7e7c73d8f28d4c13
    com.fasterxml.jackson.datatype.jsr310.deser.key.PeriodKeyDeserializer1fb27ade4fa213e5
    com.fasterxml.jackson.datatype.jsr310.deser.key.YearKeyDeserializerded209cf80f75df6
    com.fasterxml.jackson.datatype.jsr310.deser.key.YearMonthKeyDeserializerbbb3a607d3512540
    com.fasterxml.jackson.datatype.jsr310.deser.key.ZoneIdKeyDeserializer010f3e4e2802434d
    com.fasterxml.jackson.datatype.jsr310.deser.key.ZoneOffsetKeyDeserializerb8b591cfa6cb7be9
    com.fasterxml.jackson.datatype.jsr310.deser.key.ZonedDateTimeKeyDeserializerc3b6fe868b1396e4
    com.fasterxml.jackson.datatype.jsr310.ser.DurationSerializer763bc2b5571c26d7
    com.fasterxml.jackson.datatype.jsr310.ser.InstantSerializerdbba40957e9eaf5e
    com.fasterxml.jackson.datatype.jsr310.ser.InstantSerializerBaseff15c4b9316eba9e
    com.fasterxml.jackson.datatype.jsr310.ser.JSR310FormattedSerializerBasebd4e59d7380ca96c
    com.fasterxml.jackson.datatype.jsr310.ser.JSR310SerializerBase2ad341990e9021dc
    com.fasterxml.jackson.datatype.jsr310.ser.LocalDateSerializer8f84db74e8d2427f
    com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializerc68b8abca15216a4
    com.fasterxml.jackson.datatype.jsr310.ser.LocalTimeSerializer30ef053f4ce38983
    com.fasterxml.jackson.datatype.jsr310.ser.MonthDaySerializer99c8e56bc8812c47
    com.fasterxml.jackson.datatype.jsr310.ser.OffsetDateTimeSerializer9ad79a2ff3bec6bd
    com.fasterxml.jackson.datatype.jsr310.ser.OffsetTimeSerializerff84bad2852f3bf7
    com.fasterxml.jackson.datatype.jsr310.ser.YearMonthSerializerb9428592c48c4dbc
    com.fasterxml.jackson.datatype.jsr310.ser.YearSerializer0f06fc30937c7746
    com.fasterxml.jackson.datatype.jsr310.ser.ZoneIdSerializer04f155c4ebbe4db1
    com.fasterxml.jackson.datatype.jsr310.ser.ZonedDateTimeSerializer6a697e11675f3119
    com.fasterxml.jackson.datatype.jsr310.ser.key.ZonedDateTimeKeySerializer244ed33273b7bb0f
    com.fasterxml.jackson.module.afterburner.AfterburnerModule199d238f356edc15
    com.fasterxml.jackson.module.afterburner.PackageVersionfbb919d8d00a45fe
    com.fasterxml.jackson.module.afterburner.asm.AnnotationWriter26e3f2a9d5189a44
    com.fasterxml.jackson.module.afterburner.asm.Attribute2efab23372ecfa18
    com.fasterxml.jackson.module.afterburner.asm.ByteVector468fd5dee16f6f94
    com.fasterxml.jackson.module.afterburner.asm.ClassVisitor388846e4960febe3
    com.fasterxml.jackson.module.afterburner.asm.ClassWriter7a3ec1cd43411b75
    com.fasterxml.jackson.module.afterburner.asm.Edgef5aa419176534f91
    com.fasterxml.jackson.module.afterburner.asm.Handler2b61e7f54f039d20
    com.fasterxml.jackson.module.afterburner.asm.Label90eefbf66285b8b1
    com.fasterxml.jackson.module.afterburner.asm.MethodVisitor7f2af2bb098c6f8e
    com.fasterxml.jackson.module.afterburner.asm.MethodWriteree2650d838332d42
    com.fasterxml.jackson.module.afterburner.asm.Symbolcefaf3084e73060d
    com.fasterxml.jackson.module.afterburner.asm.SymbolTable6cf9d3ecd897faab
    com.fasterxml.jackson.module.afterburner.asm.SymbolTable.Entry993e8bf5b40e2a91
    com.fasterxml.jackson.module.afterburner.asm.Typefe8b4208cc440f98
    com.fasterxml.jackson.module.afterburner.deser.BeanPropertyMutator09cd3d9e6eec535b
    com.fasterxml.jackson.module.afterburner.deser.CreatorOptimizer0d78c5502066de2c
    com.fasterxml.jackson.module.afterburner.deser.DeserializerModifier186576b3d88ebe97
    com.fasterxml.jackson.module.afterburner.deser.OptimizedSettableBeanPropertyb0c47b39c874bdb4
    com.fasterxml.jackson.module.afterburner.deser.OptimizedValueInstantiator8e6517b1726f0473
    com.fasterxml.jackson.module.afterburner.deser.PropertyMutatorCollector1e09436de9cc8c21
    com.fasterxml.jackson.module.afterburner.deser.SettableObjectMethodProperty155fd5d16e22fb45
    com.fasterxml.jackson.module.afterburner.deser.SettableStringMethodProperty4457db5f3a904ed7
    com.fasterxml.jackson.module.afterburner.deser.SuperSonicBeanDeserializer50615d83c69a1adc
    com.fasterxml.jackson.module.afterburner.deser.SuperSonicDeserializerBuilderbbe0324c14e17af7
    com.fasterxml.jackson.module.afterburner.ser.SerializerModifier744fe03e232889f5
    com.fasterxml.jackson.module.afterburner.util.ClassName8e6fab406db350e7
    com.fasterxml.jackson.module.afterburner.util.DynamicPropertyAccessorBase8391a4ac810e01cf
    com.fasterxml.jackson.module.afterburner.util.MyClassLoaderb2d336f342ed1563
    com.github.packageurl.PackageURLc010d37d9eb81e63
    com.github.packageurl.PackageURLBuilder6e21230bb11d0b1b
    com.google.common.base.Absentde1298f27b4c0693
    com.google.common.base.Equivalence0bf1466041c0dfd1
    com.google.common.base.Equivalence.Equals99e02f2d7426f15b
    com.google.common.base.Equivalence.Identityd3541a3d66584b0c
    com.google.common.base.Joinerf7734bc0b59882d0
    com.google.common.base.Joiner.MapJoinere84bf3880512edf3
    com.google.common.base.MoreObjects2565f99d2ba4b7cf
    com.google.common.base.MoreObjects9b5d20ad987c1190
    com.google.common.base.Objectsf83aec262177d9aa
    com.google.common.base.Optionala4c1dc586be5462d
    com.google.common.base.Platforma8753559da3e0a37
    com.google.common.base.Platform2b3efbd613b2b3e9
    com.google.common.base.Platform.JdkPatternCompiler75a4a171cdb3ba4d
    com.google.common.base.Platform.JdkPatternCompiler4259946d36f73bee
    com.google.common.base.Preconditionsa5fabd1b8022b288
    com.google.common.base.Preconditions78865bbccc679bdd
    com.google.common.base.Stopwatch05184a11703fbe52
    com.google.common.base.Stringsbea92ea6583d7b26
    com.google.common.base.Supplierse04b55ce8caee2c6
    com.google.common.base.Suppliers.SupplierOfInstance279b85f5d20fb7ff
    com.google.common.base.Ticker1eb4cb71b04e9998
    com.google.common.base.Ticker.17d34a2ff08e95f4d
    com.google.common.cache.CacheBuilderd60000d5d0529fd8
    com.google.common.cache.CacheBuilder.158c3368be284850f
    com.google.common.cache.CacheBuilder.27c357ee2c9d1b97a
    com.google.common.cache.CacheBuilder.317b754e6ec300e0c
    com.google.common.cache.CacheBuilder.NullListener503af51cc80a19a7
    com.google.common.cache.CacheBuilder.OneWeigheref3f36446ee581bb
    com.google.common.cache.CacheLoader6f7a86763a4e1f37
    com.google.common.cache.CacheStats6888465021ef8c98
    com.google.common.cache.LocalCachebfd7122d08a5097e
    com.google.common.cache.LocalCache.1981f61d2277bbf2f
    com.google.common.cache.LocalCache.22e1057e4f2ef9f44
    com.google.common.cache.LocalCache.AbstractReferenceEntry9fbba5526ddf3d29
    com.google.common.cache.LocalCache.EntryFactory3c778b132077268b
    com.google.common.cache.LocalCache.EntryFactory.1149c2b40f72ace96
    com.google.common.cache.LocalCache.EntryFactory.23cdf5e3e49798817
    com.google.common.cache.LocalCache.EntryFactory.357a4b308f97bdf8b
    com.google.common.cache.LocalCache.EntryFactory.465a255b2421326a9
    com.google.common.cache.LocalCache.EntryFactory.5d13cf77b76c19fac
    com.google.common.cache.LocalCache.EntryFactory.6352bac56b12c9164
    com.google.common.cache.LocalCache.EntryFactory.7a65f56428b1b75c1
    com.google.common.cache.LocalCache.EntryFactory.86ddfe334f3d0a08d
    com.google.common.cache.LocalCache.LoadingValueReference17525edd3724fb0d
    com.google.common.cache.LocalCache.LocalLoadingCache41c81875c9974a45
    com.google.common.cache.LocalCache.LocalManualCache702e311a3ac7cee2
    com.google.common.cache.LocalCache.Segment975583621694620d
    com.google.common.cache.LocalCache.Strength71c0b78c42fc3cfd
    com.google.common.cache.LocalCache.Strength.1f87ab93993ce0cfb
    com.google.common.cache.LocalCache.Strength.2a0d931afd02b1c61
    com.google.common.cache.LocalCache.Strength.31b059ec95b7526ed
    com.google.common.cache.LocalCache.StrongEntryb6d275e34352488f
    com.google.common.cache.LocalCache.StrongValueReferencea8e7d4f21909e98f
    com.google.common.cache.LocalCache.WeakEntry3221f3dcd2f63ca7
    com.google.common.collect.AbstractIndexedListIterator681b38a5712f8db6
    com.google.common.collect.AbstractListMultimap312de40f33376bbc
    com.google.common.collect.AbstractMapBasedMultimap939b9fff0416506a
    com.google.common.collect.AbstractMapBasedMultimap.AsMap7414a1c1e94a09d2
    com.google.common.collect.AbstractMapBasedMultimap.AsMap.AsMapEntries6e3224f5c4f51c3c
    com.google.common.collect.AbstractMapBasedMultimap.AsMap.AsMapIterator94141e97ec1f5921
    com.google.common.collect.AbstractMapBasedMultimap.RandomAccessWrappedListc70c2a8584e17735
    com.google.common.collect.AbstractMapBasedMultimap.WrappedCollection0f08a0cdbe4a9425
    com.google.common.collect.AbstractMapBasedMultimap.WrappedListf183ed23835ad1a5
    com.google.common.collect.AbstractMapBasedMultimap.WrappedSet2c20ba636ae757db
    com.google.common.collect.AbstractMapEntrydbfb81dc94c25da1
    com.google.common.collect.AbstractMultimap0c12e0135e63f563
    com.google.common.collect.AbstractMultimap.Values963515ea800ac28a
    com.google.common.collect.AbstractSetMultimap85ce6238149179d1
    com.google.common.collect.ArrayListMultimap4ed890b97e150048
    com.google.common.collect.ArrayListMultimapGwtSerializationDependencies9aa6680cc681a058
    com.google.common.collect.CollectPreconditions48a105cd927d0de0
    com.google.common.collect.Collections2d392cc2a4fa1733a
    com.google.common.collect.CompactHashMapc39acbdfe76023e9
    com.google.common.collect.CompactHashMap.24e360226fc3d3183
    com.google.common.collect.CompactHashMap.EntrySetViewa441af57d96c8aa6
    com.google.common.collect.CompactHashMap.Itr13b43c975c02d3a0
    com.google.common.collect.CompactHashMap.MapEntryb21f7fd0c88a9662
    com.google.common.collect.CompactLinkedHashMapeeda290835ff9354
    com.google.common.collect.ComparisonChain89fcc9877304a4ad
    com.google.common.collect.ComparisonChain.11e3506aaa4ea12f3
    com.google.common.collect.ComparisonChain.InactiveComparisonChain47c6db79a230019d
    com.google.common.collect.EmptyImmutableListMultimap2f6c110dc1395aaa
    com.google.common.collect.Hashingc3b0a4b68c9a6665
    com.google.common.collect.ImmutableCollection939fad738865be35
    com.google.common.collect.ImmutableCollection.ArrayBasedBuilderbd17a40ffa31759e
    com.google.common.collect.ImmutableCollection.Builder0bac89f39a1608ee
    com.google.common.collect.ImmutableEntrya7ef3010d5c9c32c
    com.google.common.collect.ImmutableListcf3b6b9123283dc2
    com.google.common.collect.ImmutableList.Itr82c6830322cc9a7b
    com.google.common.collect.ImmutableListMultimapc8911767d0e0693c
    com.google.common.collect.ImmutableMapca4d2348f3587d10
    com.google.common.collect.ImmutableMap.Buildere7ac2c7fad634bf9
    com.google.common.collect.ImmutableMultimap835b9923424ddccc
    com.google.common.collect.ImmutableSet23674c788f0e80a7
    com.google.common.collect.ImmutableSet.Builderce95ea2a04779f0c
    com.google.common.collect.Iterablesd07c9d0475515f3e
    com.google.common.collect.Iterators0780cce6dbf321f2
    com.google.common.collect.Iterators.947a46c01e539ad3b
    com.google.common.collect.LexicographicalOrdering2542283ea863b634
    com.google.common.collect.LinkedHashMultimapb2f5b863d4d1335a
    com.google.common.collect.LinkedHashMultimap.ValueEntryd6c8ae403c1e9526
    com.google.common.collect.LinkedHashMultimap.ValueSetc53b2f607eaaaf47
    com.google.common.collect.LinkedHashMultimapGwtSerializationDependencies7cd5bcea445c7bc5
    com.google.common.collect.Listsc1b0d519d968b679
    com.google.common.collect.Listsc2633c96ba6cb82e
    com.google.common.collect.Maps914c59ab81f82703
    com.google.common.collect.Maps.2a328c6c55e58f7f8
    com.google.common.collect.Maps.EntrySetf24aa2b3d26bf4cb
    com.google.common.collect.Maps.Values510e6f45106e84ea
    com.google.common.collect.Maps.ViewCachingAbstractMapa967ab35a874064c
    com.google.common.collect.ObjectArraysd8257440a2bc2acd
    com.google.common.collect.Orderinga45dbe1e38c7795c
    com.google.common.collect.Platform22be06cb854791c4
    com.google.common.collect.RegularImmutableListb82706c13561fa2c
    com.google.common.collect.RegularImmutableMap4a7860724d1398f5
    com.google.common.collect.RegularImmutableSet441d430081987836
    com.google.common.collect.Sets3c3b1a78c9a401e9
    com.google.common.collect.Sets.ImprovedAbstractSet1c1761f9c721ae9e
    com.google.common.collect.SingletonImmutableSet492998af47b9b5cb
    com.google.common.collect.TransformedIterator23bedb8d7be64a7d
    com.google.common.collect.UnmodifiableIteratorfea3df35d0b50982
    com.google.common.collect.UnmodifiableListIterator1c1dc7f9f4d2eca9
    com.google.common.io.ByteSource68686fa428221aec
    com.google.common.io.ByteSource.AsCharSource181f8e24cb6711f8
    com.google.common.io.ByteStreams54fcce135598266c
    com.google.common.io.ByteStreams.12b43e9d0abf526aa
    com.google.common.io.CharSourcebc0c0f9fc3e87ec6
    com.google.common.io.CharStreamsa4ac0d1fb66d2450
    com.google.common.io.Closerf172748005764c91
    com.google.common.io.Closer.SuppressingSuppressore6d89820611fa8e8
    com.google.common.io.Java8Compatibility68dd20d772b60565
    com.google.common.io.LineBufferbde984eba6102e2f
    com.google.common.io.LineReader63a3ae8f0ba01e1b
    com.google.common.io.LineReader.1e0b0395dc1efa331
    com.google.common.io.Resourcesf568e92af131e150
    com.google.common.io.Resources.1f43de1784f771e62
    com.google.common.io.Resources.UrlByteSource3abc3d7530912c7f
    com.google.common.math.IntMathe5dfbae9828a34c5
    com.google.common.primitives.Intsc5ac9c1a28bb42ab
    com.google.common.primitives.Primitives4059f7a7f89742bd
    com.google.common.util.concurrent.AbstractFuture0d3542023b3d0f3a
    com.google.common.util.concurrent.AbstractFuture.AtomicHelpera21d59d34003666c
    com.google.common.util.concurrent.AbstractFuture.Listenerca39d3d4670f00ab
    com.google.common.util.concurrent.AbstractFuture.TrustedFuture8b909dd08f212679
    com.google.common.util.concurrent.AbstractFuture.UnsafeAtomicHelperbaac73531cc8d9a5
    com.google.common.util.concurrent.AbstractFuture.UnsafeAtomicHelper.1dd2e06e2a2d5d952
    com.google.common.util.concurrent.AbstractFuture.Waiter68e908b3520e181d
    com.google.common.util.concurrent.FluentFuture454a49193727f5de
    com.google.common.util.concurrent.GwtFluentFutureCatchingSpecialization2aa1403fcf0db7c3
    com.google.common.util.concurrent.SettableFuture65da3802aad1800c
    com.google.common.util.concurrent.Uninterruptiblesedfd21622bee93b9
    com.google.inject.AbstractModule6b45a54d50aad9da
    com.google.inject.ConfigurationException1a8a824bc0d2e8d5
    com.google.inject.Guice38355e53f04cec38
    com.google.inject.Key392ae4c95fe3ee18
    com.google.inject.Key.AnnotationInstanceStrategyd8fe57c793d708ef
    com.google.inject.Key.AnnotationTypeStrategy92543206d997ac72
    com.google.inject.Key.NullAnnotationStrategy700e076acab99a47
    com.google.inject.Scopes713260a40c1be234
    com.google.inject.Scopes.170d15ffb82f62999
    com.google.inject.Scopes.2a6166378724c3440
    com.google.inject.Stage0c68124687617697
    com.google.inject.TypeLiteral942d6924e18736df
    com.google.inject.internal.AbstractBindingBuilder6d25963ba1200932
    com.google.inject.internal.AbstractBindingProcessor06f94cd981aa5734
    com.google.inject.internal.AbstractBindingProcessor.Processorb4aa6da9795cc4c8
    com.google.inject.internal.AbstractBindingProcessor.Processor.13b4e430549cff6ed
    com.google.inject.internal.AbstractProcessor4431a9a38bf80a4f
    com.google.inject.internal.Annotations4a9946c347f51476
    com.google.inject.internal.Annotations.1c3e15dafb8ca4348
    com.google.inject.internal.Annotations.3ccc4c1d27f728a58
    com.google.inject.internal.Annotations.AnnotationChecker43190eac17847987
    com.google.inject.internal.Annotations.AnnotationChecker.19e780df5c366c37a
    com.google.inject.internal.BindingBuilder2933b74d46304420
    com.google.inject.internal.BindingImpl8968b675fea439fc
    com.google.inject.internal.BindingProcessor55302d434fe61da8
    com.google.inject.internal.BindingProcessor.1096321d693cc0dc7
    com.google.inject.internal.BoundProviderFactory06f7023c0d914c16
    com.google.inject.internal.BytecodeGena2220ac907336cf7
    com.google.inject.internal.BytecodeGen.1d974ccf1df85f715
    com.google.inject.internal.ConstantFactory6cf2b2f236574f33
    com.google.inject.internal.ConstructionContext99c513fd0b92784a
    com.google.inject.internal.ConstructorBindingImpl2eff14c0aa633fd6
    com.google.inject.internal.ConstructorBindingImpl.Factoryd34039f7d44ae811
    com.google.inject.internal.ConstructorInjectorb305081f63cef419
    com.google.inject.internal.ConstructorInjector.1d472f1a1c765f10c
    com.google.inject.internal.ConstructorInjectorStored42478bd5d160f89
    com.google.inject.internal.ConstructorInjectorStore.109e7e5188acef3ff
    com.google.inject.internal.CycleDetectingLock.CycleDetectingLockFactory14a08ea8585fc33b
    com.google.inject.internal.CycleDetectingLock.CycleDetectingLockFactory.ReentrantCycleDetectingLock32ce1685eab9d79b
    com.google.inject.internal.DefaultConstructionProxyFactory780b0ae5b9a7ff2c
    com.google.inject.internal.DefaultConstructionProxyFactory.ReflectiveProxy75afe1a6a9857e2e
    com.google.inject.internal.DeferredLookupsd21568c1a917ac9f
    com.google.inject.internal.DelegatingInvocationHandler0a60aa30b0f67cb6
    com.google.inject.internal.EncounterImpl4c9b36365736b707
    com.google.inject.internal.Errors0a73d018d27724f7
    com.google.inject.internal.Errors.1a5896f886f103035
    com.google.inject.internal.FactoryProxy3e1b0bf2893ceb0c
    com.google.inject.internal.FailableCachee4410b48843c2f1d
    com.google.inject.internal.FailableCache.100a61ff0bf8adf78
    com.google.inject.internal.InheritingStatec74bdb9e0e93e49c
    com.google.inject.internal.Initializables518acef32fef2c93
    com.google.inject.internal.Initializables.1c178252432602883
    com.google.inject.internal.Initializer9c5c3dfc748636aa
    com.google.inject.internal.Initializer.163160b0684bfe906
    com.google.inject.internal.Initializer.InjectableReference3728fdf5c6d2afc1
    com.google.inject.internal.Initializer.InjectableReferenceState42047fec38b61b55
    com.google.inject.internal.InjectionRequestProcessor467ef2d7c767d1b1
    com.google.inject.internal.InjectorImpl9b3cab9b01abfc0c
    com.google.inject.internal.InjectorImpl.1a3ce443d8705e94d
    com.google.inject.internal.InjectorImpl.InjectorOptionseb23159c5190bd9a
    com.google.inject.internal.InjectorImpl.JitLimitation44c9d29cbc8d9623
    com.google.inject.internal.InjectorImpl.ProviderBindingImplefe9b6e862312e16
    com.google.inject.internal.InjectorImpl.ProviderBindingImpl.163a6ad2a009ed446
    com.google.inject.internal.InjectorOptionsProcessor19c5f730ee6118bb
    com.google.inject.internal.InjectorShell9dee27226bdb2f4b
    com.google.inject.internal.InjectorShell.Builder469cbc20722af461
    com.google.inject.internal.InjectorShell.InjectorFactoryfeb68cbd9bae3035
    com.google.inject.internal.InjectorShell.LoggerFactoryd870ba685b5b65d3
    com.google.inject.internal.InjectorShell.RootModule28973b9aa91f61df
    com.google.inject.internal.InstanceBindingImpl4a96087986381abd
    com.google.inject.internal.InternalContexta4e3ecb519a9c736
    com.google.inject.internal.InternalFactoryToInitializableAdapterc67b7348dd055ea0
    com.google.inject.internal.InternalFactoryToProviderAdapter5850503e368e4adc
    com.google.inject.internal.InternalFlagsa24f5d2d7ed38e41
    com.google.inject.internal.InternalFlags.1c8387062acaa56c3
    com.google.inject.internal.InternalFlags.CustomClassLoadingOptionac5fc3e3c7ffad84
    com.google.inject.internal.InternalFlags.IncludeStackTraceOption9293f3a52c79a224
    com.google.inject.internal.InternalFlags.NullableProvidesOption59c15779e9c66310
    com.google.inject.internal.InternalInjectorCreator61f4d099d669edc9
    com.google.inject.internal.LinkedBindingImpl78720e8a6031a6aa
    com.google.inject.internal.LinkedProviderBindingImpla1fd43942d07cf2c
    com.google.inject.internal.ListenerBindingProcessorf9b0773d0debca09
    com.google.inject.internal.LookupProcessore7e39c534c25fe25
    com.google.inject.internal.MembersInjectorImpl26c7d4cafb376f58
    com.google.inject.internal.MembersInjectorImpl.18746a01aa8505ad3
    com.google.inject.internal.MembersInjectorStore5cbc70d1f8c005a0
    com.google.inject.internal.MembersInjectorStore.12d14f816d9430ab1
    com.google.inject.internal.MessageProcessor63acb3a46ec4da4a
    com.google.inject.internal.Messages8dc7d3664ddd9f4e
    com.google.inject.internal.Messages.18c9773583e74fbb4
    com.google.inject.internal.Messages.24ba02846621e07d3
    com.google.inject.internal.Messages.3b015233845533af7
    com.google.inject.internal.Messages.Converter9bb26167f6561138
    com.google.inject.internal.ModuleAnnotatedMethodScannerProcessor8a232af92a43b6ad
    com.google.inject.internal.MoreTypes795516ec2679615e
    com.google.inject.internal.MoreTypes.GenericArrayTypeImplb8dc649e4764f3c6
    com.google.inject.internal.MoreTypes.ParameterizedTypeImpl10e134e5c5e9d815
    com.google.inject.internal.Nullability6931c0ec3ff0387c
    com.google.inject.internal.PrivateElementProcessord55c7802e5be4aae
    com.google.inject.internal.ProcessedBindingData3d1d5ce20338fe20
    com.google.inject.internal.ProviderInstanceBindingImplf3d0e6df8fa03b7c
    com.google.inject.internal.ProviderInternalFactorybf39f7cb08dbbc39
    com.google.inject.internal.ProviderInternalFactory.10092750f4aca8ca3
    com.google.inject.internal.ProviderMethodsModulea3261709311d1d06
    com.google.inject.internal.ProviderToInternalFactoryAdapter27f08cb71760046d
    com.google.inject.internal.ProvidesMethodScanner19345282271bfc97
    com.google.inject.internal.ProvisionListenerCallbackStore5c880dc6861db7a8
    com.google.inject.internal.ProvisionListenerCallbackStore.12b595ea344d25121
    com.google.inject.internal.ProvisionListenerCallbackStore.KeyBinding3f5d39fd162e968e
    com.google.inject.internal.ProvisionListenerStackCallback38996f21b7c57b5a
    com.google.inject.internal.ProvisionListenerStackCallback.Provisiond9a4576897069aa6
    com.google.inject.internal.ScopeBindingProcessor80bb34aa390e8021
    com.google.inject.internal.Scoping4a4dd9ab08520ee6
    com.google.inject.internal.Scoping.158139689ae619771
    com.google.inject.internal.Scoping.2069664bb8e387d06
    com.google.inject.internal.Scoping.35f75b624fa4151c6
    com.google.inject.internal.Scoping.4eac6e6985f9e2e63
    com.google.inject.internal.Scoping.56c3c3ab91742bd3f
    com.google.inject.internal.Scoping.652358f43454e8cff
    com.google.inject.internal.Scoping.7a351cf4a19a7770d
    com.google.inject.internal.SingleFieldInjector90dd918cf204646c
    com.google.inject.internal.SingleMethodInjector00810da0ec5a2280
    com.google.inject.internal.SingleMethodInjector.110fb01244c5e4c2d
    com.google.inject.internal.SingleParameterInjectora0e6ad1e69e6479b
    com.google.inject.internal.SingletonScope0f090965d9774f64
    com.google.inject.internal.SingletonScope.1ebe9780388b0e815
    com.google.inject.internal.Statee73bf033d6b6977c
    com.google.inject.internal.State.172999414e9156425
    com.google.inject.internal.TypeConverterBindingProcessor1af3e862ea953c63
    com.google.inject.internal.TypeConverterBindingProcessor.1052954897d317197
    com.google.inject.internal.TypeConverterBindingProcessor.282d4912124f3746d
    com.google.inject.internal.TypeConverterBindingProcessor.3c53f9cc1aeb5d27e
    com.google.inject.internal.TypeConverterBindingProcessor.48e6fb3ca9ccd6885
    com.google.inject.internal.TypeConverterBindingProcessor.517500896e83299ed
    com.google.inject.internal.TypeConverterBindingProcessor.65ec5367830d1df80
    com.google.inject.internal.UntargettedBindingImpl91f1598e5524fc84
    com.google.inject.internal.UntargettedBindingProcessore071cf9f5332d554
    com.google.inject.internal.UntargettedBindingProcessor.158c43c65c6e64999
    com.google.inject.internal.WeakKeySetd04d8eae2374a5e6
    com.google.inject.internal.WeakKeySet.14d19a6714fe78a47
    com.google.inject.internal.util.Classes53af707180c1b5c9
    com.google.inject.internal.util.SourceProviderf5c8015c02b0ac8c
    com.google.inject.internal.util.StackTraceElements9055de884e91a0c1
    com.google.inject.internal.util.Stopwatchfdf0682531ad84e2
    com.google.inject.matcher.AbstractMatcher78fc826c6b16746f
    com.google.inject.matcher.Matcherse53c1f9564abd4ad
    com.google.inject.matcher.Matchers.Any049ea79de98fd6dc
    com.google.inject.matcher.Matchers.IdenticalTof0c6db6a24b5e65b
    com.google.inject.matcher.Matchers.Only9f459594bcb994d8
    com.google.inject.matcher.Matchers.SubclassesOf88ee942f7a6aa49b
    com.google.inject.name.NamedImpl6ffbda9a3ee43b59
    com.google.inject.name.Namesb653416fcb9a5ca5
    com.google.inject.spi.DefaultBindingScopingVisitor9992e97acd56a906
    com.google.inject.spi.DefaultBindingTargetVisitor4c8f3e8b8bea89c1
    com.google.inject.spi.DefaultElementVisitor6c61065d18174485
    com.google.inject.spi.Dependencyb4af523b3dfc400d
    com.google.inject.spi.ElementSource503bec5a8992aee0
    com.google.inject.spi.Elements08d7f0b9db11cd45
    com.google.inject.spi.Elements.1f2554635c84eb58b
    com.google.inject.spi.Elements.ModuleInfo7b0a7b167e995a8f
    com.google.inject.spi.Elements.RecordingBinderc2267a4779968b62
    com.google.inject.spi.InjectionPointcd7c983491f13462
    com.google.inject.spi.InjectionPoint.1025ec51c054b349b
    com.google.inject.spi.InjectionPoint.2e4edad2eeb401901
    com.google.inject.spi.InjectionPoint.3e707026da5153103
    com.google.inject.spi.InjectionPoint.InjectableField3aed6f3f73d3c299
    com.google.inject.spi.InjectionPoint.InjectableMember554947c30f41305f
    com.google.inject.spi.InjectionPoint.InjectableMembersd474b67f9419836f
    com.google.inject.spi.InjectionPoint.InjectableMethod9e669c3a9943e229
    com.google.inject.spi.InjectionPoint.OverrideIndexf5519ea4b196741d
    com.google.inject.spi.InjectionPoint.Positiondee87e394e7bf715
    com.google.inject.spi.InjectionRequest35a722364b80270e
    com.google.inject.spi.Message30dc99c97f2b6cfe
    com.google.inject.spi.ModuleAnnotatedMethodScanner6086f82f757b0c53
    com.google.inject.spi.ModuleSource573533e7985dfc2b
    com.google.inject.spi.ProviderLookup4cfd5a568d57aac8
    com.google.inject.spi.ProviderLookup.1473955be9bc1e1b6
    com.google.inject.spi.ProvisionListener.ProvisionInvocationc0f9ffe33d8c0daa
    com.google.inject.spi.ProvisionListenerBindinge3940984d1b684cb
    com.google.inject.spi.ScopeBinding559767e86a6e2a02
    com.google.inject.spi.TypeConverterBinding994f62e43aec9864
    com.google.inject.spi.TypeListenerBindingfa4b546e2accb3d8
    com.google.inject.util.Modulesa9ee1e95ab29c9e8
    com.google.inject.util.Modules.EmptyModule2cccd41580f3829c
    com.google.inject.util.Providers652c0ef4e9aa3fcd
    com.google.inject.util.Providers.ConstantProviderc4b3c1df57f41c69
    com.google.inject.util.Typesb3184bf503a488ce
    com.h3xstream.retirejs.repo.JsLibrary5d11b317102303f5
    com.h3xstream.retirejs.repo.JsVulnerabilityf4bb1cfa90e6e469
    com.h3xstream.retirejs.repo.ScannerFacade01c9c1db2838e35a
    com.h3xstream.retirejs.repo.VulnerabilitiesRepositoryb739f5ef8899977b
    com.h3xstream.retirejs.repo.VulnerabilitiesRepositoryLoader010000276d5c65ec
    com.h3xstream.retirejs.util.HashUtil1304965382179e56
    com.h3xstream.retirejs.util.RegexUtil916e0c9c88baca5b
    com.hankcs.algorithm.AhoCorasickDoubleArrayTriecef76a3b8583c0d8
    com.hankcs.algorithm.AhoCorasickDoubleArrayTrie.Buildere116cc2ef4f3bf95
    com.hankcs.algorithm.AhoCorasickDoubleArrayTrie.Hitb4d44553d9d45bc2
    com.hankcs.algorithm.State8219f5343445a01f
    com.ibm.icu.impl.ICUDebugb1fb488b90146a5f
    com.ibm.icu.text.Collator197ef57045074ff3
    com.ibm.icu.util.VersionInfoa1c3efc805dde1b8
    com.sun.crypto.provider.AESCipher9379cbb969dccdab
    com.sun.crypto.provider.AESCipher.Generaldd25667a734d67f2
    com.sun.crypto.provider.AESConstantsff56ec558b5f24b2
    com.sun.crypto.provider.AESCrypt8f74d327e3757900
    com.sun.crypto.provider.CipherCorea719a438faf0a701
    com.sun.crypto.provider.CounterModefab22112699963b8
    com.sun.crypto.provider.DHParameters16f962dbaa27c76a
    com.sun.crypto.provider.ElectronicCodeBook55bee70106027943
    com.sun.crypto.provider.FeedbackCipherfe3b493a4f1f3358
    com.sun.crypto.provider.GCTR363ef00c8e464985
    com.sun.crypto.provider.GHASHe2e4c8ed73293545
    com.sun.crypto.provider.GaloisCounterModed5653e4b1d135ece
    com.sun.crypto.provider.HmacCored10e0726d0a7a75b
    com.sun.crypto.provider.HmacCore.HmacSHA256e51d50e772714011
    com.sun.crypto.provider.PKCS5Padding2f576a81eac7847f
    com.sun.crypto.provider.Preconditionsfd7e7c3ada235a9b
    com.sun.crypto.provider.Preconditions.168fa2261aa6363f8
    com.sun.crypto.provider.RangeUtil83f9533ae557ea46
    com.sun.crypto.provider.SunJCE33c998c6ba77d73e
    com.sun.crypto.provider.SymmetricCipher67e05752931ac6b4
    com.sun.crypto.provider.TlsKeyMaterialGenerator9a670d07119f980e
    com.sun.crypto.provider.TlsMasterSecretGeneratorb5bb91b132a7e1ed
    com.sun.crypto.provider.TlsMasterSecretGenerator.TlsMasterSecretKey47a2de5eed80bb69
    com.sun.crypto.provider.TlsPrfGenerator7f3cc07aa4e0ef26
    com.sun.crypto.provider.TlsPrfGenerator.V12854f82e423bf885a
    com.thoughtworks.xstream.XStreambfe6c7b8abd16494
    com.thoughtworks.xstream.converters.SingleValueConverterWrapperb9b2d8cb9a421d68
    com.thoughtworks.xstream.converters.basic.AbstractSingleValueConverter84044953c3299278
    com.thoughtworks.xstream.converters.basic.BigDecimalConverter9b2c05a436972ba0
    com.thoughtworks.xstream.converters.basic.BigIntegerConverter15dc95e32d763587
    com.thoughtworks.xstream.converters.basic.BooleanConverter7d93dec44d9f781c
    com.thoughtworks.xstream.converters.basic.ByteConverter561f20f2712c1152
    com.thoughtworks.xstream.converters.basic.CharConverter47bb160151d7205b
    com.thoughtworks.xstream.converters.basic.DateConverter050d7d7887e74987
    com.thoughtworks.xstream.converters.basic.DoubleConverter3951c4de27ff3c2c
    com.thoughtworks.xstream.converters.basic.FloatConvertercaf2a97d77afaa09
    com.thoughtworks.xstream.converters.basic.IntConverterc584c9c1f9a429c6
    com.thoughtworks.xstream.converters.basic.LongConverter7513b842f6bff1c2
    com.thoughtworks.xstream.converters.basic.NullConverter09cfba2f1adf847b
    com.thoughtworks.xstream.converters.basic.ShortConverter6acb6fb856f09e0a
    com.thoughtworks.xstream.converters.basic.StringBufferConverterfce9668bd68142e1
    com.thoughtworks.xstream.converters.basic.StringBuilderConvertereab7002c6724bd07
    com.thoughtworks.xstream.converters.basic.StringConverterdeaa266316364db7
    com.thoughtworks.xstream.converters.basic.URLConverterb3465fd50d99f8df
    com.thoughtworks.xstream.converters.basic.UUIDConverterb5c4cef1dd08d09d
    com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter128ad324af544e79
    com.thoughtworks.xstream.converters.collections.ArrayConverterb3cffbd5b2281391
    com.thoughtworks.xstream.converters.collections.BitSetConverter598df4917aa3afcb
    com.thoughtworks.xstream.converters.collections.CharArrayConverterddb233031f753e96
    com.thoughtworks.xstream.converters.collections.CollectionConvertere2b9125a45d263af
    com.thoughtworks.xstream.converters.collections.MapConverterc29c8c372b484632
    com.thoughtworks.xstream.converters.collections.PropertiesConverterbe037ae26965e1fc
    com.thoughtworks.xstream.converters.collections.TreeMapConverterd0d036cfb7e7632a
    com.thoughtworks.xstream.converters.collections.TreeSetConverter99790a8927adc549
    com.thoughtworks.xstream.converters.enums.EnumConverter1b08c26c07332a26
    com.thoughtworks.xstream.converters.enums.EnumMapConverter657036539a290e94
    com.thoughtworks.xstream.converters.enums.EnumSetConverter838bccf2b32aa485
    com.thoughtworks.xstream.converters.extended.CharsetConvertercb9a567556efc2b4
    com.thoughtworks.xstream.converters.extended.ColorConverterd7a63cd47646634c
    com.thoughtworks.xstream.converters.extended.CurrencyConvertera8a5e1252adf3686
    com.thoughtworks.xstream.converters.extended.DurationConverterd2357641eb1fa6d1
    com.thoughtworks.xstream.converters.extended.DynamicProxyConverter687dbeaf8fd6be66
    com.thoughtworks.xstream.converters.extended.EncodedByteArrayConvertercd2d0308e1b2c9d8
    com.thoughtworks.xstream.converters.extended.FileConverterd210288b5d4b69ff
    com.thoughtworks.xstream.converters.extended.FontConverterd19a95481cc621f6
    com.thoughtworks.xstream.converters.extended.GregorianCalendarConverter9ce731e5393c5001
    com.thoughtworks.xstream.converters.extended.JavaClassConverter6dd9bd05d481dccc
    com.thoughtworks.xstream.converters.extended.JavaMethodConverter973443530f814ae5
    com.thoughtworks.xstream.converters.extended.LocaleConverterfa25efbb0dc3f151
    com.thoughtworks.xstream.converters.extended.LookAndFeelConverterb8d4073c58c4d873
    com.thoughtworks.xstream.converters.extended.RegexPatternConverterc535c8c533311b17
    com.thoughtworks.xstream.converters.extended.SqlDateConverterd51217e6bb5dba7b
    com.thoughtworks.xstream.converters.extended.SqlTimeConverter4e5dcabf30b593ad
    com.thoughtworks.xstream.converters.extended.SqlTimestampConvertere030d2e822eea826
    com.thoughtworks.xstream.converters.extended.StackTraceElementConverterd131ddb1ef2d22f5
    com.thoughtworks.xstream.converters.extended.StackTraceElementFactorybde78c230717f85b
    com.thoughtworks.xstream.converters.extended.SubjectConverter0add781cac5b5925
    com.thoughtworks.xstream.converters.extended.TextAttributeConverter718f872ffe9706c9
    com.thoughtworks.xstream.converters.extended.ThrowableConverterf6fa802a116f6457
    com.thoughtworks.xstream.converters.reflection.AbstractAttributedCharacterIteratorAttributeConvertera9a128f9cbcb7835
    com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter213192589af32d4c
    com.thoughtworks.xstream.converters.reflection.ExternalizableConverter366b83cb8250e1fc
    com.thoughtworks.xstream.converters.reflection.FieldDictionary14c0497972785acb
    com.thoughtworks.xstream.converters.reflection.FieldKey354e2cfbd0ad028a
    com.thoughtworks.xstream.converters.reflection.ImmutableFieldKeySorterd9b107548d84e59e
    com.thoughtworks.xstream.converters.reflection.PureJavaReflectionProvider978e3a81b7b0ec42
    com.thoughtworks.xstream.converters.reflection.ReflectionConverterca04cf4add08f6c1
    com.thoughtworks.xstream.converters.reflection.ReflectionProviderWrapper4db1c446e2c0844d
    com.thoughtworks.xstream.converters.reflection.SelfStreamingInstanceChecker3a9df39e5f3467e8
    com.thoughtworks.xstream.converters.reflection.SerializableConverter0bab3f2731497a32
    com.thoughtworks.xstream.converters.reflection.SerializableConverter.UnserializableParentsReflectionProvider89c34f408dc615f7
    com.thoughtworks.xstream.converters.reflection.SerializationMethodInvokere9bb17476b02383e
    com.thoughtworks.xstream.core.AbstractTreeMarshallingStrategye70a67345c8bb178
    com.thoughtworks.xstream.core.DefaultConverterLookup50df211c8ebe088f
    com.thoughtworks.xstream.core.JVMa2416b7cdc788ed7
    com.thoughtworks.xstream.core.ReferenceByXPathMarshallingStrategya774e278a0eabf47
    com.thoughtworks.xstream.core.util.Base64Encoder2196aaf016e60bf6
    com.thoughtworks.xstream.core.util.ClassLoaderReference4f3e64a1180e6537
    com.thoughtworks.xstream.core.util.CompositeClassLoaderfb1a8bb02e86d3cb
    com.thoughtworks.xstream.core.util.Fieldsd531f801b027b58b
    com.thoughtworks.xstream.core.util.OrderRetainingMap0c9d2665a01650bc
    com.thoughtworks.xstream.core.util.OrderRetainingMap.ArraySetdfcff3e0f9ded5b1
    com.thoughtworks.xstream.core.util.Poolc163350ab754255f
    com.thoughtworks.xstream.core.util.PrioritizedList204dce3eeb665f22
    com.thoughtworks.xstream.core.util.PrioritizedList.PrioritizedItem36e50180ae16301d
    com.thoughtworks.xstream.core.util.ThreadSafeSimpleDateFormat70a7fa98c03c421e
    com.thoughtworks.xstream.core.util.ThreadSafeSimpleDateFormat.1d5b727c41f57e7fe
    com.thoughtworks.xstream.io.xml.AbstractXmlDriver3cc7c703fce31782
    com.thoughtworks.xstream.io.xml.DomDriver68091f2486e5b177
    com.thoughtworks.xstream.io.xml.XmlFriendlyReplacerd26e5bcec1a1d522
    com.thoughtworks.xstream.mapper.AbstractAttributeAliasingMapper17f4a44b0b4989f9
    com.thoughtworks.xstream.mapper.AnnotationMapper366f2fd6f248fc18
    com.thoughtworks.xstream.mapper.AnnotationMapper.WeakHashSet90996677aafc2949
    com.thoughtworks.xstream.mapper.ArrayMappera5d349ae47b250cd
    com.thoughtworks.xstream.mapper.AttributeAliasingMappere006dedeb521935b
    com.thoughtworks.xstream.mapper.AttributeMappercea176b34fe59d63
    com.thoughtworks.xstream.mapper.CachingMapper0c6fe2e047c8c859
    com.thoughtworks.xstream.mapper.ClassAliasingMapperba40d460577cbe5b
    com.thoughtworks.xstream.mapper.DefaultImplementationsMapperf194346570a7ca9e
    com.thoughtworks.xstream.mapper.DefaultMapper4e2951ba926e19df
    com.thoughtworks.xstream.mapper.DynamicProxyMapper025e57458ad92dcc
    com.thoughtworks.xstream.mapper.EnumMapperb76a8b90e1d8b765
    com.thoughtworks.xstream.mapper.FieldAliasingMapper11ee08a71277e716
    com.thoughtworks.xstream.mapper.ImmutableTypesMapper8c44da77e6889496
    com.thoughtworks.xstream.mapper.ImplicitCollectionMapper9729e4403392618c
    com.thoughtworks.xstream.mapper.LocalConversionMappere03bffd7c4db67d3
    com.thoughtworks.xstream.mapper.MapperWrapper1a6b408c6bab05b7
    com.thoughtworks.xstream.mapper.OuterClassMapper0aebc77c7cf76801
    com.thoughtworks.xstream.mapper.PackageAliasingMapper2d7b380d1d2615dc
    com.thoughtworks.xstream.mapper.PackageAliasingMapper.1f87a4f1b7899b68f
    com.thoughtworks.xstream.mapper.SystemAttributeAliasingMapper828a74da8421bbb2
    io.github.jeremylong.jcs3.slf4j.Slf4jAdapter6faeb93da707d61c
    io.github.jeremylong.jcs3.slf4j.Slf4jLogFactoryf96607e602f6e2af
    io.github.jeremylong.openvulnerability.client.nvd.Configf3beb84a109d4b1d
    io.github.jeremylong.openvulnerability.client.nvd.Config.Operator59d33ed4ecb93d1a
    io.github.jeremylong.openvulnerability.client.nvd.CpeMatch054f2076c10d37d5
    io.github.jeremylong.openvulnerability.client.nvd.CveApiJson2047708523e87058c9
    io.github.jeremylong.openvulnerability.client.nvd.CveItem44167ef95eadee21
    io.github.jeremylong.openvulnerability.client.nvd.CvssV2c598dccdeb0796d4
    io.github.jeremylong.openvulnerability.client.nvd.CvssV2.Typec8a5f42e14588744
    io.github.jeremylong.openvulnerability.client.nvd.CvssV2Data46cf1489bdb16e2c
    io.github.jeremylong.openvulnerability.client.nvd.CvssV2Data.AccessComplexityType4b727756fd7afc8f
    io.github.jeremylong.openvulnerability.client.nvd.CvssV2Data.AccessVectorType9be7812343637a98
    io.github.jeremylong.openvulnerability.client.nvd.CvssV2Data.AuthenticationTypef9e66c082b7d5b7f
    io.github.jeremylong.openvulnerability.client.nvd.CvssV2Data.CiaType6825e093146ac4fd
    io.github.jeremylong.openvulnerability.client.nvd.CvssV2Data.Version29d3f3d317564b7c
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3bed953eb3208b3b5
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3.Type4ffc8b69f1ebf953
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3Data5b1476d2f8696d14
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3Data.AttackComplexityType0c7b7fa26bb8364e
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3Data.AttackVectorTypef9692d23fc4d0814
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3Data.CiaRequirementTypee25b27974539d0e2
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3Data.CiaType65b3e0a08371ce41
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3Data.ConfidenceTypefe24e867fbd6445d
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3Data.ExploitCodeMaturityTyped0c528d24ff9be40
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3Data.ModifiedAttackComplexityTypeb9c63569c8d42c4f
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3Data.ModifiedAttackVectorTypee055d6e53e32180d
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3Data.ModifiedCiaTypedafe385378718922
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3Data.ModifiedPrivilegesRequiredType8e153d53da7dbccb
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3Data.ModifiedScopeTypeeac977b8fdb58555
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3Data.ModifiedUserInteractionTyped0242304dffe7c2c
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3Data.PrivilegesRequiredTypec6b3e30c55fedb48
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3Data.RemediationLevelType5bfb96dfad679414
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3Data.ScopeTyped521a47d32508edc
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3Data.SeverityType7dba5f64a6708bdf
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3Data.UserInteractionTypee65ee421331e824b
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3Data.Versiondb94623c16eb505c
    io.github.jeremylong.openvulnerability.client.nvd.DefCveItem9ad305442ad670bb
    io.github.jeremylong.openvulnerability.client.nvd.LangString2adbe707e58eb9bf
    io.github.jeremylong.openvulnerability.client.nvd.Metrics4e7732dce645d124
    io.github.jeremylong.openvulnerability.client.nvd.Node0f06cf05a91a1603
    io.github.jeremylong.openvulnerability.client.nvd.Node.Operatorff1e145b9c081100
    io.github.jeremylong.openvulnerability.client.nvd.Reference32347bbabaad713b
    io.github.jeremylong.openvulnerability.client.nvd.Weakness9da09a66fcb44e81
    mockit.Invocationa96336e1f386171f
    mockit.MockUpe8171f437ed496ae
    mockit.asm.AnnotatedReadercd282e0a5a53baea
    mockit.asm.BaseWriter582f5e60cf7a7aa4
    mockit.asm.SignatureWriterdf63ed411efbf4b6
    mockit.asm.annotations.AnnotationReader1a8efb95d77d1cc4
    mockit.asm.classes.ClassInfo373729acd80f0ac2
    mockit.asm.classes.ClassReader35b19ee242b52e68
    mockit.asm.classes.ClassVisitorecc8c148efb1fb05
    mockit.asm.classes.ClassWriter138f6d9fdc880f33
    mockit.asm.classes.ConstantPoolCopyinge69830abde6594e3
    mockit.asm.classes.InnerClassesWriter161eb63681ff89cf
    mockit.asm.classes.InterfaceWriter50ed3e595493fede
    mockit.asm.classes.SourceFileWritere8fc300748dc0805
    mockit.asm.classes.WrappingClassVisitor05ea9f6f99307be6
    mockit.asm.constantPool.AttributeWriter14f301dde0efc458
    mockit.asm.constantPool.ClassMemberItemaa126e5329780a07
    mockit.asm.constantPool.ConstantPoolGeneration0fa17a48409c3309
    mockit.asm.constantPool.DoubleItem34f414546b36c4df
    mockit.asm.constantPool.DynamicItem3cea8c55017846c0
    mockit.asm.constantPool.FloatItembd61b107266c3b95
    mockit.asm.constantPool.IntItemd97e2f1dc717a13e
    mockit.asm.constantPool.IntValueItem98e99f11b2caca0e
    mockit.asm.constantPool.Itemd068fa4ff3fcee61
    mockit.asm.constantPool.LongItem6b22c746ea1433c1
    mockit.asm.constantPool.LongValueItem2ccc0f1c20cad69e
    mockit.asm.constantPool.MergedTypeTableItem0d0b1da6270fd88c
    mockit.asm.constantPool.MethodHandleItem39bcee524a8a7b98
    mockit.asm.constantPool.NameAndTypeItemb7bb836a0ec0d51d
    mockit.asm.constantPool.NormalTypeTableItem0f252ab8f9880312
    mockit.asm.constantPool.StringItem88ca5a93ae8a30e1
    mockit.asm.constantPool.TypeOrMemberItemdab75af23a47e2b1
    mockit.asm.constantPool.TypeTableItemd8a8ef64ff3ac452
    mockit.asm.constantPool.UninitializedTypeTableItem370461ef51a65392
    mockit.asm.controlFlow.CFGAnalysisa06e124c809928c9
    mockit.asm.controlFlow.Edge5d83111f9538c66f
    mockit.asm.controlFlow.Frame386d35773c19369a
    mockit.asm.controlFlow.Label5bca527bd719557c
    mockit.asm.controlFlow.StackMapTableWriter7bcdf022caa20775
    mockit.asm.exceptionHandling.ExceptionHandling286f458f00be3947
    mockit.asm.fields.FieldReader053ae610f8947b76
    mockit.asm.fields.FieldVisitor6c321d4980a2d7f3
    mockit.asm.jvmConstants.Access642ded812da66040
    mockit.asm.jvmConstants.JVMInstructiondeeb476cf4f7665b
    mockit.asm.metadata.ClassMetadataReader86fe7615054981b5
    mockit.asm.metadata.ClassMetadataReader.AnnotationInfobc09c40a0f38e185
    mockit.asm.metadata.ClassMetadataReader.Attribute6d901176eb06252c
    mockit.asm.metadata.ClassMetadataReader.ConstantPoolTag83ba5ffd57f73b11
    mockit.asm.metadata.ClassMetadataReader.MemberInfodd16bea0c59df08f
    mockit.asm.metadata.ClassMetadataReader.MethodInfo3e1c9829877de254
    mockit.asm.metadata.ObjectWithAttributese089abe59f8ade12
    mockit.asm.methods.ExceptionsWritere5e41e85406ed2b8
    mockit.asm.methods.LineNumberTableWriter7fa755996e63e0b5
    mockit.asm.methods.LocalVariableTableWriter0ff2250f9d363442
    mockit.asm.methods.MethodReader0d46bdb10e1cb567
    mockit.asm.methods.MethodVisitor6aafdb0e0bd9f04d
    mockit.asm.methods.MethodWriterc77ca17c110fc381
    mockit.asm.methods.WrappingMethodVisitorfe2114a373ed09e3
    mockit.asm.types.ArrayType3897ad248dad3058
    mockit.asm.types.JavaType6a617aca55015b96
    mockit.asm.types.ObjectType439dacb2d6b69467
    mockit.asm.types.PrimitiveType9907457aea9de70c
    mockit.asm.types.ReferenceTypec3a32354b2fe0c85
    mockit.asm.util.ByteVectoradf5209dcdaf01d5
    mockit.asm.util.BytecodeReaderad4c2af17a40d4d0
    mockit.coverage.CodeCoverage57c4b93cf9705048
    mockit.coverage.Configuration0f191cfcb58e3996
    mockit.coverage.testRedundancy.TestCoveragee7294c8646aeb601
    mockit.integration.TestRunnerDecorator10c6d4d07e4bb526
    mockit.integration.junit4.FakeFrameworkMethod202fa832304031cd
    mockit.integration.junit4.FakeRunNotifierf2d8e332a2590c60
    mockit.integration.junit4.JUnit4TestRunnerDecoratorc2eadb5bf6beaf6c
    mockit.internal.BaseClassModifiere801aefb4d7fd037
    mockit.internal.BaseClassModifier.1cd1242b388012ca6
    mockit.internal.BaseClassModifier.DynamicModifierc5d17ff8720815cc
    mockit.internal.BaseInvocationf7de466f17f4adbb
    mockit.internal.ClassFile41b638065ae166a7
    mockit.internal.ClassLoadingBridgee658793228cc4a49
    mockit.internal.expectations.RecordAndReplayExecutionf879ec0212b83007
    mockit.internal.expectations.mocking.FieldTypeRedefinitionsc4cb3bcb5359dd6a
    mockit.internal.expectations.mocking.MockedBridge331090874886c8c7
    mockit.internal.expectations.mocking.MockedTypeb261d998676dfb65
    mockit.internal.expectations.mocking.TypeRedefinitions055dc33e135fb36a
    mockit.internal.expectations.state.CascadingTypesb9acfb27aa4a8790
    mockit.internal.expectations.state.ExecutingTestacf34225777d2f3b
    mockit.internal.expectations.state.ExecutingTest.13b09910b1e29a191
    mockit.internal.expectations.transformation.ExpectationsTransformereaac4e9336d5ca40
    mockit.internal.faking.FakeBridgeda78f19ce898d263
    mockit.internal.faking.FakeClassSetupe4606a4618ad323c
    mockit.internal.faking.FakeClasses3cd46eb6591366cb
    mockit.internal.faking.FakeClasses.SavePointfecc58d760c6ed06
    mockit.internal.faking.FakeInvocatione3e355bfb78d2072
    mockit.internal.faking.FakeMethodBridge2fd5b959860f5d53
    mockit.internal.faking.FakeMethodCollectoraa97db550361bc87
    mockit.internal.faking.FakeMethods471e51097727667e
    mockit.internal.faking.FakeMethods.FakeMethodb5d99f462770e149
    mockit.internal.faking.FakeState01259986b514ed46
    mockit.internal.faking.FakeStatese760ab91481812c0
    mockit.internal.faking.FakedClassModifier28fa1e02ea9dd34f
    mockit.internal.injection.InjectionPoint872aa5b219261f64
    mockit.internal.injection.InjectionPoint.KindOfInjectionPoint041b00ce689e65c0
    mockit.internal.injection.InjectionProvider1076f7e808be8615
    mockit.internal.injection.InjectionProviders62b38f89bfedb6c7
    mockit.internal.injection.InjectionState6e9537644e97642f
    mockit.internal.injection.Injector4ff47fa912f63618
    mockit.internal.injection.InterfaceResolutionc5428bf18cac5f85
    mockit.internal.injection.InterfaceResolution.130a49c92c2d8b04f
    mockit.internal.injection.LifecycleMethodsed1a5aaae6cf42e3
    mockit.internal.injection.TestedClassd76cf885566451d1
    mockit.internal.injection.TestedClassInstantiationsbfc9ebb0ae421152
    mockit.internal.injection.TestedField9aacd38abc210052
    mockit.internal.injection.TestedObjectbdd0e59488a17cbb
    mockit.internal.injection.TestedObjectCreation48c6d6a50501e864
    mockit.internal.injection.constructor.ConstructorInjection960b7bb54a98707e
    mockit.internal.injection.constructor.ConstructorSearch7ff788771021cb2c
    mockit.internal.injection.constructor.ConstructorSearch.13853d0031525a038
    mockit.internal.injection.field.FieldInjection0337d293a6ebe59a
    mockit.internal.injection.field.FieldToInject7ef0966a4aee5a45
    mockit.internal.reflection.ConstructorReflection9b22876825249d28
    mockit.internal.reflection.FieldReflection9bc5ffc5070fbac5
    mockit.internal.reflection.GenericTypeReflectiona556abe88b104f52
    mockit.internal.reflection.MethodReflection1dbef6dbfa2e952c
    mockit.internal.reflection.ParameterReflectionbcce5f023dd0cd1c
    mockit.internal.startup.ClassLoadingBridgeFields29d0d6d7f507fa33
    mockit.internal.startup.ClassLoadingBridgeFields.FieldAdditionTransformer682a4d5236ea1c37
    mockit.internal.startup.ClassLoadingBridgeFields.FieldAdditionTransformer.12e9fd2fdf39cd8c3
    mockit.internal.startup.JMockitInitialization1f5ea374ed1901b8
    mockit.internal.startup.Startup177b14c50aa68246
    mockit.internal.state.CachedClassfiles231a21c71ced4214
    mockit.internal.state.MockFixture394c3264450f978b
    mockit.internal.state.ParameterNames9f70a2910daf7cd7
    mockit.internal.state.SavePointda4c7e434f406431
    mockit.internal.state.TestRun6409fd3c8b761b63
    mockit.internal.state.TestRun.17d6ccf983062f278
    mockit.internal.util.AutoBoxingc40175661b1ad22a
    mockit.internal.util.ClassLoad5bd538d4254708e6
    mockit.internal.util.ClassNaming53e8188d1e80d2e0
    mockit.internal.util.DefaultValuesef05257af12a99c9
    mockit.internal.util.DefaultValues.162f4d730e55d8be8
    mockit.internal.util.DefaultValues.2621af0a0fceb45db
    mockit.internal.util.DefaultValues.31d048754f5398a62
    mockit.internal.util.GeneratedClassesd6753b83268ef779
    mockit.internal.util.ParameterNameExtractor23af23efb21b6d24
    mockit.internal.util.TypeConversione064dff353fc3c14
    mockit.internal.util.TypeDescriptor24a81b29cb32532c
    mockit.internal.util.Utilitiesd7b5e7b685099df9
    org.apache.commons.beanutils.converters.BooleanConverter9f89ec58883cffbd
    org.apache.commons.beanutils.converters.StringConvertercaa9cd635fd2eef4
    org.apache.commons.cli.CommandLine898519779c1a0659
    org.apache.commons.cli.GnuParser0063b94644c4f6c5
    org.apache.commons.cli.Option5a5a90ec35947640
    org.apache.commons.cli.Option.Builder2bd9841ab4ebfb96
    org.apache.commons.cli.OptionValidator8460ae0c519233e9
    org.apache.commons.cli.Optionsff6d868f12d157b7
    org.apache.commons.cli.Parserc8dbca9206c0ef5d
    org.apache.commons.cli.Util41c582299b209f90
    org.apache.commons.collections.ExtendedProperties7ac18e1d5423c71e
    org.apache.commons.collections.ExtendedProperties.PropertiesReader9b945c4174dc8b84
    org.apache.commons.collections.ExtendedProperties.PropertiesTokenizera27ba406f43af743
    org.apache.commons.collections.map.AbstractHashedMap0ffd2ece819fe2bb
    org.apache.commons.collections.map.AbstractHashedMap0e5cf5a1e742538a
    org.apache.commons.collections.map.AbstractHashedMap.HashEntryf4c34a83588fece9
    org.apache.commons.collections.map.AbstractHashedMap.HashEntry06168f711b5d9f03
    org.apache.commons.collections.map.AbstractLinkedMapac943871a5016f97
    org.apache.commons.collections.map.AbstractLinkedMap.LinkEntryd5ea79246ae99cb8
    org.apache.commons.collections.map.AbstractReferenceMap24c5cfa48d1b3dc0
    org.apache.commons.collections.map.AbstractReferenceMap.ReferenceEntry527d4048e51dfc8b
    org.apache.commons.collections.map.AbstractReferenceMap.SoftRef87effea5a7f83649
    org.apache.commons.collections.map.LRUMape559c522101aeb13
    org.apache.commons.collections.map.ReferenceMapde0ddfb544d7f809
    org.apache.commons.compress.utils.IOUtils1bbef919f9fe90cf
    org.apache.commons.dbcp2.AbandonedTraceca6d746e5eecfa26
    org.apache.commons.dbcp2.BasicDataSource8f01e6e1f3426242
    org.apache.commons.dbcp2.ConnectionFactoryFactory5ee86737323f033e
    org.apache.commons.dbcp2.DataSourceMXBeanaef3515de3dd4cd7
    org.apache.commons.dbcp2.DelegatingCallableStatement02e1cdadfc5ac1b0
    org.apache.commons.dbcp2.DelegatingConnection4ce1222f6c8b1f43
    org.apache.commons.dbcp2.DelegatingPreparedStatement2577746074f2a300
    org.apache.commons.dbcp2.DelegatingResultSet3e7d628a34a233d5
    org.apache.commons.dbcp2.DelegatingStatement3eececad9c1f49a4
    org.apache.commons.dbcp2.DriverConnectionFactory587516231985bd76
    org.apache.commons.dbcp2.DriverFactory2e2b684de502c2b5
    org.apache.commons.dbcp2.ObjectNameWrapper60e6f7ddb2d7e6c9
    org.apache.commons.dbcp2.PoolableConnectionbaf5bf7087e41b95
    org.apache.commons.dbcp2.PoolableConnectionFactoryb8db125bd27adcfb
    org.apache.commons.dbcp2.PoolingDataSource4006b0952a9497bf
    org.apache.commons.dbcp2.PoolingDataSource.PoolGuardConnectionWrapper231a4e4e28d22d6c
    org.apache.commons.dbcp2.SwallowedExceptionLogger169d551a035fbaac
    org.apache.commons.dbcp2.Utilsee3a6af61d9672d1
    org.apache.commons.io.ByteOrderMark72bc2458d6ae539e
    org.apache.commons.io.Charsets8ae1973f359dec29
    org.apache.commons.io.FileSystem01b6ca84e51e84c9
    org.apache.commons.io.FileUtilsb05a09ee270979e9
    org.apache.commons.io.FilenameUtils3144089e135875ac
    org.apache.commons.io.IOCaseeb2adab60f66048e
    org.apache.commons.io.IOUtils6ee4556e7885ab91
    org.apache.commons.io.StandardLineSeparator40b593b9edc3531e
    org.apache.commons.io.build.AbstractOriginSupplierb96822d8a43fddbd
    org.apache.commons.io.build.AbstractStreamBuilder57c8b0ea90b8d3a8
    org.apache.commons.io.build.AbstractSupplier21e479bcc7c6d9d4
    org.apache.commons.io.file.Counters3347b40442150325
    org.apache.commons.io.file.Counters.AbstractPathCountersf029129367b66185
    org.apache.commons.io.file.Counters.LongCounter8a0e15c3b7aab6f0
    org.apache.commons.io.file.Counters.LongPathCounters4d05a3ec2389a891
    org.apache.commons.io.file.CountingPathVisitor1a0297f6692d68b7
    org.apache.commons.io.file.DeletingPathVisitor380d01f344f0b03a
    org.apache.commons.io.file.PathUtilsc186f18e4d52fa5b
    org.apache.commons.io.file.SimplePathVisitor42930704cb1f97c1
    org.apache.commons.io.file.StandardDeleteOption670e1c1e2863e0b5
    org.apache.commons.io.filefilter.AbstractFileFilter92dd8bb7f7b80944
    org.apache.commons.io.filefilter.IOFileFilter4896a5eee1f88d05
    org.apache.commons.io.filefilter.NameFileFilterc5f07e722b3a2343
    org.apache.commons.io.filefilter.OrFileFilter6742278773fc9137
    org.apache.commons.io.filefilter.SuffixFileFilterd8b318786a82151d
    org.apache.commons.io.filefilter.SymbolicLinkFileFilterd7784b41fab5d1af
    org.apache.commons.io.filefilter.TrueFileFilterfabf6490458c9b57
    org.apache.commons.io.function.IOConsumer7aab5cab2aee4ea3
    org.apache.commons.io.input.BOMInputStream6b5d217ef3da5d6c
    org.apache.commons.io.input.BOMInputStream.Builderefe9786c70781fac
    org.apache.commons.io.input.ProxyInputStream76d45bc21d35b3af
    org.apache.commons.io.output.AbstractByteArrayOutputStream4d87285f56eadbde
    org.apache.commons.io.output.StringBuilderWriter56db39b128a95142
    org.apache.commons.io.output.ThresholdingOutputStream6ee432e618670fc2
    org.apache.commons.io.output.UnsynchronizedByteArrayOutputStream9536e30200253d9c
    org.apache.commons.io.output.UnsynchronizedByteArrayOutputStream.Builder13c61069da7ce3e3
    org.apache.commons.jcs3.JCS8f519401d676cf6b
    org.apache.commons.jcs3.access.AbstractCacheAccesse81ba2880f7423d5
    org.apache.commons.jcs3.access.CacheAccess60fee977c9a4f6ef
    org.apache.commons.jcs3.admin.JCSAdminBean335bac09272c6ddd
    org.apache.commons.jcs3.auxiliary.AbstractAuxiliaryCachec3b435f52c91e41d
    org.apache.commons.jcs3.auxiliary.AbstractAuxiliaryCacheAttributesc42716886bb512ba
    org.apache.commons.jcs3.auxiliary.AbstractAuxiliaryCacheEventLogginga78f5b7138667460
    org.apache.commons.jcs3.auxiliary.AbstractAuxiliaryCacheFactory79d59581986a1bdd
    org.apache.commons.jcs3.auxiliary.AuxiliaryCacheConfigurator4f03af1ec3db3c06
    org.apache.commons.jcs3.auxiliary.AuxiliaryCacheFactory0321a405678228d2
    org.apache.commons.jcs3.auxiliary.disk.AbstractDiskCache67671715de055295
    org.apache.commons.jcs3.auxiliary.disk.AbstractDiskCache.MyCacheListenerc9cbc2ab7af25ca4
    org.apache.commons.jcs3.auxiliary.disk.AbstractDiskCacheAttributesedebc5b24fc7e7ec
    org.apache.commons.jcs3.auxiliary.disk.behavior.IDiskCacheAttributes.DiskLimitType9c89d487ae2639b0
    org.apache.commons.jcs3.auxiliary.disk.indexed.IndexedDisk3159cf09ae265a44
    org.apache.commons.jcs3.auxiliary.disk.indexed.IndexedDiskCachedb85afec6bd28591
    org.apache.commons.jcs3.auxiliary.disk.indexed.IndexedDiskCache.LRUMapCountLimited3e0dcede1f60ced6
    org.apache.commons.jcs3.auxiliary.disk.indexed.IndexedDiskCache.PositionComparator6a375a20224a6491
    org.apache.commons.jcs3.auxiliary.disk.indexed.IndexedDiskCacheAttributes3e721f210f5f73d7
    org.apache.commons.jcs3.auxiliary.disk.indexed.IndexedDiskCacheFactoryf3d2fd9bfe5fcbcc
    org.apache.commons.jcs3.engine.AbstractCacheEventQueue1dd87bdda01b32c9
    org.apache.commons.jcs3.engine.CacheEventQueueFactoryd47896e66d68cd29
    org.apache.commons.jcs3.engine.CacheInfodc3fc0a57a91cc16
    org.apache.commons.jcs3.engine.CacheStatus9e643f244bdbedd6
    org.apache.commons.jcs3.engine.CompositeCacheAttributesdc56debe6e362ccc
    org.apache.commons.jcs3.engine.ElementAttributesc298365f45057415
    org.apache.commons.jcs3.engine.PooledCacheEventQueue1f5b5ca7363a76c5
    org.apache.commons.jcs3.engine.behavior.ICacheEventQueue.QueueTyped36e1adea94244a8
    org.apache.commons.jcs3.engine.behavior.ICacheType.CacheTypee15e922fbbc521a9
    org.apache.commons.jcs3.engine.behavior.ICompositeCacheAttributes.DiskUsagePattern065fe6118e459fb8
    org.apache.commons.jcs3.engine.behavior.IElementSerializer4e17fbd8ff5fa2eb
    org.apache.commons.jcs3.engine.behavior.IElementSerializer.153d5ac924a980857
    org.apache.commons.jcs3.engine.control.CompositeCache2f4c41ef1df85706
    org.apache.commons.jcs3.engine.control.CompositeCacheConfiguratorda10a9e1882f0a7e
    org.apache.commons.jcs3.engine.control.CompositeCacheManager7a43e45c9078f783
    org.apache.commons.jcs3.engine.control.event.ElementEventQueuecb2c41edee90aabe
    org.apache.commons.jcs3.engine.logging.CacheEvente10345bb4afea3ce
    org.apache.commons.jcs3.engine.match.KeyMatcherPatternImpl06d95d21fd7250d0
    org.apache.commons.jcs3.engine.memory.AbstractDoubleLinkedListMemoryCachee3eb93db1ef1802e
    org.apache.commons.jcs3.engine.memory.AbstractMemoryCachebf41e6296592d86a
    org.apache.commons.jcs3.engine.memory.lru.LRUMemoryCachea13109c445649a8d
    org.apache.commons.jcs3.log.JulLogAdapterc4b31a7fd59500b5
    org.apache.commons.jcs3.log.JulLogFactorya8b084a513d8f2ac
    org.apache.commons.jcs3.log.LogManager0cd6d34c5624f85e
    org.apache.commons.jcs3.log.LogManager.LogFactoryHolder99d60610207d179b
    org.apache.commons.jcs3.log.MessageFormatter905aee8d53c43735
    org.apache.commons.jcs3.utils.config.OptionConverterb6be9d611cb399e3
    org.apache.commons.jcs3.utils.config.PropertySetter9ce8929e58315d98
    org.apache.commons.jcs3.utils.serialization.StandardSerializerc3182262f045cc00
    org.apache.commons.jcs3.utils.struct.AbstractLRUMap8710b38b6376d281
    org.apache.commons.jcs3.utils.struct.DoubleLinkedList96b73a167e3dd555
    org.apache.commons.jcs3.utils.struct.LRUMap134ebdccaf71b63a
    org.apache.commons.jcs3.utils.threadpool.DaemonThreadFactory90fe18bad604a2e0
    org.apache.commons.jcs3.utils.threadpool.PoolConfiguratione30c6c5b19e2121a
    org.apache.commons.jcs3.utils.threadpool.PoolConfiguration.WhenBlockedPolicyebdbc72499040e4a
    org.apache.commons.jcs3.utils.threadpool.ThreadPoolManagerce4c901d54ed755c
    org.apache.commons.jcs3.utils.threadpool.ThreadPoolManager.101b790dc167d2bc8
    org.apache.commons.jcs3.utils.threadpool.ThreadPoolManager.ThreadPoolManagerHolder6d5c097ee63ac3ce
    org.apache.commons.jcs3.utils.timing.ElapsedTimeredfda6ab2faf0ae5
    org.apache.commons.lang.ArrayUtils0434d75d5c23136d
    org.apache.commons.lang.StringUtilse5fe358e1ff7bddf
    org.apache.commons.lang.text.StrBuilder97bf18c01728d011
    org.apache.commons.lang3.ArrayUtils55cd090cc4afae67
    org.apache.commons.lang3.CharSequenceUtils34f2613940096184
    org.apache.commons.lang3.JavaVersion7945ce1bf92a4f0f
    org.apache.commons.lang3.ObjectUtils1c157e9ecfc781f4
    org.apache.commons.lang3.ObjectUtils.Nullbc56db2ba4a397f4
    org.apache.commons.lang3.Range7a388bd8ca7c6565
    org.apache.commons.lang3.Range.ComparableComparator31209bc50fe79100
    org.apache.commons.lang3.StringUtilsfc322170295e44d0
    org.apache.commons.lang3.StringUtilsb53e9ceb7cab46c1
    org.apache.commons.lang3.SystemUtils504844ce7a097cad
    org.apache.commons.lang3.Validate783f8386602de97d
    org.apache.commons.lang3.Validate1641aabfdb381324
    org.apache.commons.lang3.builder.CompareToBuilder0535d4fc6cf3c03f
    org.apache.commons.lang3.builder.EqualsBuilderaa8ad870ff53852c
    org.apache.commons.lang3.builder.HashCodeBuilder2143ccbdbc7e1ea5
    org.apache.commons.lang3.math.NumberUtils9afcd6909b261d69
    org.apache.commons.lang3.mutable.MutableInt69453bf70a893014
    org.apache.commons.lang3.reflect.TypeUtilsdf817998efe361cb
    org.apache.commons.lang3.reflect.TypeUtils.WildcardTypeBuilder5936e9c8d409a438
    org.apache.commons.lang3.reflect.TypeUtils.WildcardTypeImpl5c07c9d0130a96a3
    org.apache.commons.lang3.stream.LangCollectors3ea5549a7ed3c3d7
    org.apache.commons.lang3.stream.LangCollectors.SimpleCollector91fc89bcf302c34b
    org.apache.commons.lang3.stream.Streams954246a3678faf93
    org.apache.commons.lang3.tuple.ImmutablePairea1fdd387104f342
    org.apache.commons.lang3.tuple.Pair24fcf8d25a997dff
    org.apache.commons.logging.LogFactorye2b26f2f6d64e2e1
    org.apache.commons.logging.LogFactory5c9b6286a0ecaeeb
    org.apache.commons.logging.LogFactory.135cd3441e691f91d
    org.apache.commons.logging.LogFactory.2f1244e6e80ab4e4c
    org.apache.commons.logging.LogFactory.308e35df1f60483aa
    org.apache.commons.logging.LogFactory.4fb4611c54b1bc610
    org.apache.commons.logging.LogFactory.6367c055e3172a33e
    org.apache.commons.logging.impl.SLF4JLogce165f20e303ae60
    org.apache.commons.logging.impl.SLF4JLogFactoryd78e8c8092c84bef
    org.apache.commons.logging.impl.WeakHashtablebda06549392c232d
    org.apache.commons.logging.impl.WeakHashtable.Referenced7e6bd0a967376754
    org.apache.commons.logging.impl.WeakHashtable.WeakKey3c62431e0d7eba54
    org.apache.commons.pool2.BaseObjecta9dd39289abe1d31
    org.apache.commons.pool2.DestroyMode5d1105fc83d83c0d
    org.apache.commons.pool2.ObjectPoolccb6589e8f774501
    org.apache.commons.pool2.PooledObject726d4666486bb8f9
    org.apache.commons.pool2.PooledObjectStatefb0e5d346be6cd55
    org.apache.commons.pool2.impl.BaseGenericObjectPool070a5acff5535437
    org.apache.commons.pool2.impl.BaseGenericObjectPool.IdentityWrapper434e773f29c6ef0b
    org.apache.commons.pool2.impl.BaseGenericObjectPool.StatsStore514c54abe01e16c7
    org.apache.commons.pool2.impl.BaseObjectPoolConfig9bee83eab719802c
    org.apache.commons.pool2.impl.DefaultEvictionPolicy56c4bc556e98d1be
    org.apache.commons.pool2.impl.DefaultPooledObjectddc5b9974a86b680
    org.apache.commons.pool2.impl.GenericObjectPoolfe1a47c0c894e580
    org.apache.commons.pool2.impl.GenericObjectPoolConfig2215008ece83d1da
    org.apache.commons.pool2.impl.InterruptibleReentrantLockef01e1d3943b5184
    org.apache.commons.pool2.impl.LinkedBlockingDequebb1a4d70c6b14c3f
    org.apache.commons.pool2.impl.LinkedBlockingDeque.Node78ac878c7ddd5998
    org.apache.commons.pool2.impl.NoOpCallStacke7f11c61124edc8b
    org.apache.commons.pool2.impl.PoolImplUtils65b544d8439b4d9e
    org.apache.commons.text.StringEscapeUtils5bc5b74e30d7e8bf
    org.apache.commons.text.StringEscapeUtils.XsiUnescaper5a061ee95766f1d3
    org.apache.commons.text.StringSubstitutor3074045dbff7aefd
    org.apache.commons.text.StringSubstitutor.Resultd1377d718b9a4b29
    org.apache.commons.text.TextStringBuilder53129701a3631326
    org.apache.commons.text.WordUtilsf85094830885a3dc
    org.apache.commons.text.matcher.AbstractStringMatcher5f2d66c0bac903d1
    org.apache.commons.text.matcher.AbstractStringMatcher.CharArrayMatcherbc3ea03e56f01c0e
    org.apache.commons.text.matcher.AbstractStringMatcher.CharMatcherb83862079330a0a0
    org.apache.commons.text.matcher.AbstractStringMatcher.CharSetMatcherdef2ef72cf33ffd3
    org.apache.commons.text.matcher.AbstractStringMatcher.NoneMatcher63ccdfd44061b0b4
    org.apache.commons.text.matcher.AbstractStringMatcher.TrimMatcher6399c16c90b1dc79
    org.apache.commons.text.matcher.StringMatcherFactory3355efa06769e538
    org.apache.commons.text.translate.AggregateTranslator9e2a5e3e1c4ed249
    org.apache.commons.text.translate.CharSequenceTranslator84c8f5343c402da6
    org.apache.commons.text.translate.CodePointTranslatorea9fcdc7e5c87a70
    org.apache.commons.text.translate.CsvTranslators.CsvEscaperbe76c35fab7f3dc3
    org.apache.commons.text.translate.CsvTranslators.CsvUnescaper09ac0d4ea60a4c5a
    org.apache.commons.text.translate.EntityArrayseff4bd7528ae958b
    org.apache.commons.text.translate.JavaUnicodeEscaperba174f1a55a33368
    org.apache.commons.text.translate.LookupTranslatorb47bcb49ef353b91
    org.apache.commons.text.translate.NumericEntityEscaperfed36f3c6d451e6b
    org.apache.commons.text.translate.NumericEntityUnescapercca6054255a84ade
    org.apache.commons.text.translate.NumericEntityUnescaper.OPTIONcd3ec6bfbd85a55d
    org.apache.commons.text.translate.OctalUnescaperc72a48b363be373d
    org.apache.commons.text.translate.SinglePassTranslator49d6016a555b6c1a
    org.apache.commons.text.translate.UnicodeEscaper9dad545c5206284f
    org.apache.commons.text.translate.UnicodeUnescapere15b1cf1266b58bf
    org.apache.commons.text.translate.UnicodeUnpairedSurrogateRemover678cce4230e90a18
    org.apache.lucene.analysis.Analyzerb3fbc3d4c894fea4
    org.apache.lucene.analysis.Analyzer.12588c4a52a03d489
    org.apache.lucene.analysis.Analyzer.2b11ec0b046fb0739
    org.apache.lucene.analysis.Analyzer.ReuseStrategy373c30afd7c4e7e0
    org.apache.lucene.analysis.Analyzer.TokenStreamComponents07ec7e6a7685910d
    org.apache.lucene.analysis.AnalyzerWrapperfea68ba019e933f5
    org.apache.lucene.analysis.CachingTokenFilter7948742bc70cfc8a
    org.apache.lucene.analysis.CharArrayMap5b74a1ab488fac15
    org.apache.lucene.analysis.CharArrayMap.EmptyCharArrayMap6ce1b3c28f6c4a11
    org.apache.lucene.analysis.CharArrayMap.EntryIteratora87ee307a838f240
    org.apache.lucene.analysis.CharArrayMap.EntrySet2025bc28ce5f11cc
    org.apache.lucene.analysis.CharArrayMap.MapEntry73ae6df3a549c4af
    org.apache.lucene.analysis.CharArrayMap.UnmodifiableCharArrayMap8bab8a3a7f9cd4a6
    org.apache.lucene.analysis.CharArraySet111b4a78749d9f46
    org.apache.lucene.analysis.CharacterUtilsb8ca5cbf25fdfeed
    org.apache.lucene.analysis.CharacterUtils.CharacterBuffer18d395cdbdb60911
    org.apache.lucene.analysis.DelegatingAnalyzerWrapper9c301ae9d9f5cd8a
    org.apache.lucene.analysis.DelegatingAnalyzerWrapper.DelegatingReuseStrategy76fa58dd625c2849
    org.apache.lucene.analysis.FilteringTokenFilterf403409105fbb533
    org.apache.lucene.analysis.LowerCaseFilterbcfd3a6a56a4fadf
    org.apache.lucene.analysis.ReusableStringReaderc9f6ec8eb7023f1c
    org.apache.lucene.analysis.StopFilter4230021c4e77a6d7
    org.apache.lucene.analysis.TokenFilter9e43d230548551cf
    org.apache.lucene.analysis.TokenStream184dbe299c64e6c6
    org.apache.lucene.analysis.Tokenizer7379ed627ab2912a
    org.apache.lucene.analysis.Tokenizer.1bc547a7b9c0cc19f
    org.apache.lucene.analysis.core.KeywordAnalyzer698cf9e1f8021717
    org.apache.lucene.analysis.core.LowerCaseFilterba2c1b7980c14a72
    org.apache.lucene.analysis.core.StopFilter8641c6193f901c17
    org.apache.lucene.analysis.core.WhitespaceTokenizer115580a151439e88
    org.apache.lucene.analysis.en.EnglishAnalyzercc688ebf7db7d878
    org.apache.lucene.analysis.miscellaneous.PerFieldAnalyzerWrapperdad7892fd718e4df
    org.apache.lucene.analysis.miscellaneous.WordDelimiterGraphFilterbc9fe7a967fdcfa0
    org.apache.lucene.analysis.miscellaneous.WordDelimiterGraphFilter.PositionSorter2cd32a2ee34c7dce
    org.apache.lucene.analysis.miscellaneous.WordDelimiterGraphFilter.WordDelimiterConcatenation460ee77062ef67d3
    org.apache.lucene.analysis.miscellaneous.WordDelimiterIterator28629af5aededfc5
    org.apache.lucene.analysis.tokenattributes.CharTermAttributeImpl6f123fa71f95b8a2
    org.apache.lucene.analysis.tokenattributes.KeywordAttributeImpl1407e968afc08f38
    org.apache.lucene.analysis.tokenattributes.PackedTokenAttributeImplc920cac0bdae9098
    org.apache.lucene.analysis.util.CharTokenizer6ca65685e9be18b0
    org.apache.lucene.codecs.BlockTermStateae9ca3d409bef070
    org.apache.lucene.codecs.Codec7d385f022790e396
    org.apache.lucene.codecs.Codec.Holder954feab31b29306c
    org.apache.lucene.codecs.CodecUtil157ab3df291cad53
    org.apache.lucene.codecs.CompetitiveImpactAccumulator3313639ea91339f0
    org.apache.lucene.codecs.CompetitiveImpactAccumulator.1cbf4c621aff70903
    org.apache.lucene.codecs.CompoundDirectory105adc33fae31203
    org.apache.lucene.codecs.CompoundFormatb6f7adfa57db14e8
    org.apache.lucene.codecs.DocValuesFormat59fc29b0272a381d
    org.apache.lucene.codecs.FieldInfosFormatbbc25871d2052537
    org.apache.lucene.codecs.FieldsConsumer8ac90826db599118
    org.apache.lucene.codecs.FieldsProducer5414d54969b0a428
    org.apache.lucene.codecs.LiveDocsFormat37ab5fda48936c8e
    org.apache.lucene.codecs.MultiLevelSkipListWriter271c1c2a90febec5
    org.apache.lucene.codecs.NormsFormat666a4c99b55172f0
    org.apache.lucene.codecs.PointsFormat893fa9d6f57ed303
    org.apache.lucene.codecs.PointsFormat.1b7e29ffebcefbee5
    org.apache.lucene.codecs.PostingsFormat5c5d51d1200cda53
    org.apache.lucene.codecs.PostingsFormat.Holdercd21b5e5af08083b
    org.apache.lucene.codecs.PostingsReaderBase69fbc8d7a772c1ba
    org.apache.lucene.codecs.PostingsWriterBase70833c5afb411658
    org.apache.lucene.codecs.PushPostingsWriterBase09459ba2fcc66071
    org.apache.lucene.codecs.SegmentInfoFormat186f50b8ba40fe34
    org.apache.lucene.codecs.StoredFieldsFormatf0635529da3f816b
    org.apache.lucene.codecs.StoredFieldsReader44377ce9cabec7b7
    org.apache.lucene.codecs.StoredFieldsWriter18287965dde32b41
    org.apache.lucene.codecs.TermVectorsFormatabae86cbdd868241
    org.apache.lucene.codecs.blocktree.BlockTreeTermsReader4a5eb3e67f7fa9f7
    org.apache.lucene.codecs.blocktree.BlockTreeTermsWriterb036adb9f5245c23
    org.apache.lucene.codecs.blocktree.BlockTreeTermsWriter.PendingBlockc6f4f170bf8bd277
    org.apache.lucene.codecs.blocktree.BlockTreeTermsWriter.PendingEntryf940bc41257f9ec1
    org.apache.lucene.codecs.blocktree.BlockTreeTermsWriter.PendingTerm6e393f062014fa45
    org.apache.lucene.codecs.blocktree.BlockTreeTermsWriter.StatsWriteradd454e2523a11b5
    org.apache.lucene.codecs.blocktree.BlockTreeTermsWriter.TermsWriter0fc215d15cf4d2ff
    org.apache.lucene.codecs.blocktree.CompressionAlgorithmcd5f2e1bcb83ac78
    org.apache.lucene.codecs.blocktree.CompressionAlgorithm.1b89067b1068100c6
    org.apache.lucene.codecs.blocktree.CompressionAlgorithm.25d39130de56dffa9
    org.apache.lucene.codecs.blocktree.CompressionAlgorithm.373218b346be9521d
    org.apache.lucene.codecs.blocktree.FieldReader9ffc10d155e4863b
    org.apache.lucene.codecs.blocktree.SegmentTermsEnumce57a3db048cb9ef
    org.apache.lucene.codecs.blocktree.SegmentTermsEnumFramedcfdb1defbeb4bf6
    org.apache.lucene.codecs.compressing.CompressingStoredFieldsFormat896fa678ffe81c92
    org.apache.lucene.codecs.compressing.CompressingStoredFieldsReaderfed51f9077208bb6
    org.apache.lucene.codecs.compressing.CompressingStoredFieldsReader.17bddfb5935f04284
    org.apache.lucene.codecs.compressing.CompressingStoredFieldsReader.BlockStated3812bfab13be812
    org.apache.lucene.codecs.compressing.CompressingStoredFieldsReader.SerializedDocument4cc23a5abef95aaf
    org.apache.lucene.codecs.compressing.CompressingStoredFieldsWriter2dad7ad136db8d57
    org.apache.lucene.codecs.compressing.CompressingTermVectorsFormat873c98aa0b112460
    org.apache.lucene.codecs.compressing.CompressionMode40a206f9a035f885
    org.apache.lucene.codecs.compressing.CompressionMode.15222ebc3d273a019
    org.apache.lucene.codecs.compressing.CompressionMode.2f6685a7e7bb3771a
    org.apache.lucene.codecs.compressing.CompressionMode.3196e0c9c4cbfa662
    org.apache.lucene.codecs.compressing.CompressionMode.477d32d5ef9354e6e
    org.apache.lucene.codecs.compressing.Compressorb0dd429aca65b80e
    org.apache.lucene.codecs.compressing.Decompressor5a441b8b2ca96e65
    org.apache.lucene.codecs.compressing.FieldsIndexe7d850a894e41f41
    org.apache.lucene.codecs.compressing.FieldsIndexReaderefa174465074bfbd
    org.apache.lucene.codecs.compressing.FieldsIndexWriter10a973070f4bf7a4
    org.apache.lucene.codecs.idversion.IDVersionPostingsFormatc2da72d126aba544
    org.apache.lucene.codecs.lucene50.Lucene50CompoundFormat385a35dbd700d7bd
    org.apache.lucene.codecs.lucene50.Lucene50CompoundReaderf79625b845ff1a72
    org.apache.lucene.codecs.lucene50.Lucene50CompoundReader.FileEntryca388693c592b376
    org.apache.lucene.codecs.lucene50.Lucene50LiveDocsFormatdad069b09c8ebe30
    org.apache.lucene.codecs.lucene50.Lucene50TermVectorsFormate177ce04f8f4313d
    org.apache.lucene.codecs.lucene60.Lucene60FieldInfosFormatbea4d612bda522b3
    org.apache.lucene.codecs.lucene60.Lucene60FieldInfosFormat.1a5faf788eebfcf53
    org.apache.lucene.codecs.lucene80.Lucene80DocValuesFormat18b32b386e539057
    org.apache.lucene.codecs.lucene80.Lucene80DocValuesFormat.Mode86ca2b1c37fd2c44
    org.apache.lucene.codecs.lucene80.Lucene80NormsFormat1e44bf93a20abf13
    org.apache.lucene.codecs.lucene84.ForDeltaUtilbfe1bbad9d2e544b
    org.apache.lucene.codecs.lucene84.ForUtilde15f512bc648fc1
    org.apache.lucene.codecs.lucene84.Lucene84PostingsFormatbf59ad8fdebd5d74
    org.apache.lucene.codecs.lucene84.Lucene84PostingsFormat.IntBlockTermStatef10b9e05ba79b752
    org.apache.lucene.codecs.lucene84.Lucene84PostingsReader429c11d1836706b4
    org.apache.lucene.codecs.lucene84.Lucene84PostingsReader.BlockDocsEnum757838073fe69387
    org.apache.lucene.codecs.lucene84.Lucene84PostingsWriter2cab59acfc3bb8a5
    org.apache.lucene.codecs.lucene84.Lucene84SkipWriter76f5bd9c5e6e9e31
    org.apache.lucene.codecs.lucene84.PForUtile08db33b54b22cfd
    org.apache.lucene.codecs.lucene86.Lucene86PointsFormatf64406f00a5abe31
    org.apache.lucene.codecs.lucene86.Lucene86SegmentInfoFormat586cf6377df4154e
    org.apache.lucene.codecs.lucene87.DeflateWithPresetDictCompressionModeeef2871dedd17ce4
    org.apache.lucene.codecs.lucene87.LZ4WithPresetDictCompressionModed862ddb8f965ccb4
    org.apache.lucene.codecs.lucene87.LZ4WithPresetDictCompressionMode.LZ4WithPresetDictCompressore6d7dc198735025e
    org.apache.lucene.codecs.lucene87.LZ4WithPresetDictCompressionMode.LZ4WithPresetDictDecompressorcdef0ff6ed46a9fd
    org.apache.lucene.codecs.lucene87.Lucene87Codec9911310a45d92bb3
    org.apache.lucene.codecs.lucene87.Lucene87Codec.128723482ca6440d7
    org.apache.lucene.codecs.lucene87.Lucene87Codec.206911be072d66b12
    org.apache.lucene.codecs.lucene87.Lucene87Codec.Mode0cdb8b76874bda63
    org.apache.lucene.codecs.lucene87.Lucene87StoredFieldsFormat95ec1a8a217a9696
    org.apache.lucene.codecs.lucene87.Lucene87StoredFieldsFormat.1df56e677e7cde89d
    org.apache.lucene.codecs.lucene87.Lucene87StoredFieldsFormat.Mode54f5b49dea8b8336
    org.apache.lucene.codecs.perfield.PerFieldDocValuesFormat999be7b49946c809
    org.apache.lucene.codecs.perfield.PerFieldPostingsFormatf4cf062fe4480103
    org.apache.lucene.codecs.perfield.PerFieldPostingsFormat.FieldsGroupa9f65c90021ba143
    org.apache.lucene.codecs.perfield.PerFieldPostingsFormat.FieldsGroup.Buildercf3e5a1c6f5d87c6
    org.apache.lucene.codecs.perfield.PerFieldPostingsFormat.FieldsReader23133a0a2e3e3d10
    org.apache.lucene.codecs.perfield.PerFieldPostingsFormat.FieldsWriter39e6a18f2c347e15
    org.apache.lucene.codecs.perfield.PerFieldPostingsFormat.FieldsWriter.1d45ea394ce4e87d2
    org.apache.lucene.document.Documente1b4f587d42b8bee
    org.apache.lucene.document.DocumentStoredFieldVisitor66c1e4b20aa4d347
    org.apache.lucene.document.Field7f482656d4ca1583
    org.apache.lucene.document.FieldTypeb7c621c07031e9cf
    org.apache.lucene.document.StoredFieldc2d3990da920bf93
    org.apache.lucene.document.TextField3884cff56ab2e8d5
    org.apache.lucene.index.BaseCompositeReaderd97e90ccc7f968ed
    org.apache.lucene.index.BaseTermsEnum98f6b1ecedb5374e
    org.apache.lucene.index.BufferedUpdates87ddb653a8568589
    org.apache.lucene.index.BufferedUpdatesStream826f0e27162b764b
    org.apache.lucene.index.BufferedUpdatesStream.FinishedSegments16a71e5037793419
    org.apache.lucene.index.ByteSliceReader013997c1da8668b7
    org.apache.lucene.index.CodecReader664ad067a4634f30
    org.apache.lucene.index.CompositeReader1ac667c88af4f805
    org.apache.lucene.index.CompositeReaderContext7e031115b0dba787
    org.apache.lucene.index.CompositeReaderContext.Builder071e9447b79df71a
    org.apache.lucene.index.ConcurrentMergeScheduler7192a79827ef3c6d
    org.apache.lucene.index.DefaultIndexingChaind2d4569721a2c208
    org.apache.lucene.index.DefaultIndexingChain.IntBlockAllocatorf8ba5af8ae2348f4
    org.apache.lucene.index.DefaultIndexingChain.PerFieldcce61152033abf01
    org.apache.lucene.index.DirectoryReader872b9ecc9a6593a5
    org.apache.lucene.index.DocConsumere1f0c74a0a5799b0
    org.apache.lucene.index.DocValuesType7e1ae71ed4ea7003
    org.apache.lucene.index.DocsWithFieldSet8d19e1081ed95385
    org.apache.lucene.index.DocumentsWriter7cc357393fcb7704
    org.apache.lucene.index.DocumentsWriterDeleteQueue13f9cf08d569e3e2
    org.apache.lucene.index.DocumentsWriterDeleteQueue.DeleteSlicef1270dfe524b0475
    org.apache.lucene.index.DocumentsWriterDeleteQueue.Nodee35b7bfe790524e5
    org.apache.lucene.index.DocumentsWriterFlushControlf0c2fa30940cc6eb
    org.apache.lucene.index.DocumentsWriterFlushQueue2c7673b354c8e663
    org.apache.lucene.index.DocumentsWriterFlushQueue.FlushTicket89df1c2221a6fcc6
    org.apache.lucene.index.DocumentsWriterPerThread04669483a6b45471
    org.apache.lucene.index.DocumentsWriterPerThread.12e2a89a263831e28
    org.apache.lucene.index.DocumentsWriterPerThread.FlushedSegment0b6ff5c256c820c9
    org.apache.lucene.index.DocumentsWriterPerThread.IndexingChaina80ec889dc78a499
    org.apache.lucene.index.DocumentsWriterPerThreadPoolebeda4d160ec6dcd
    org.apache.lucene.index.DocumentsWriterStallControl58d97a046f2a5e61
    org.apache.lucene.index.FieldInfo5d3240edb51a9c8e
    org.apache.lucene.index.FieldInfos0cd129ec82608462
    org.apache.lucene.index.FieldInfos.Builder172eff8db3205492
    org.apache.lucene.index.FieldInfos.FieldNumbers32bc1472e7a4ffd6
    org.apache.lucene.index.FieldInvertState9d275e86858587ac
    org.apache.lucene.index.Fieldseef2020978da652b
    org.apache.lucene.index.FilterLeafReader.FilterFieldsfa901dce56bcbd4a
    org.apache.lucene.index.FlushByRamOrCountsPolicy88d230f4879c8846
    org.apache.lucene.index.FlushPolicyf82b82ae268a26e6
    org.apache.lucene.index.FreqProxFieldse7a3eefa6739fbaf
    org.apache.lucene.index.FreqProxFields.FreqProxDocsEnum9b5450dfccaeb430
    org.apache.lucene.index.FreqProxFields.FreqProxTermsdedfdef25735032c
    org.apache.lucene.index.FreqProxFields.FreqProxTermsEnum3601506a252c0835
    org.apache.lucene.index.FreqProxTermsWriterdd9e5dfaa06e7132
    org.apache.lucene.index.FreqProxTermsWriterPerField1e6792a1afdb8706
    org.apache.lucene.index.FreqProxTermsWriterPerField.FreqProxPostingsArraya2d8410c7d62b204
    org.apache.lucene.index.Impact882e84c41ed12353
    org.apache.lucene.index.Impacts86133783ef6f8339
    org.apache.lucene.index.ImpactsEnum952b956e16147b18
    org.apache.lucene.index.IndexCommit2c603d2695fc5325
    org.apache.lucene.index.IndexDeletionPolicy74de12c334f0ff0b
    org.apache.lucene.index.IndexFileDeleter864842f2ab2489df
    org.apache.lucene.index.IndexFileDeleter.CommitPointb03c283521652ed6
    org.apache.lucene.index.IndexFileDeleter.RefCount9d0a0ab0f621189a
    org.apache.lucene.index.IndexFileNames5a0676f33d0dd869
    org.apache.lucene.index.IndexOptions3f91d827d790b03c
    org.apache.lucene.index.IndexReader7350521cd77caecb
    org.apache.lucene.index.IndexReader.CacheKeyb51d6a55a323e37e
    org.apache.lucene.index.IndexReaderContext04e32f4b9c330127
    org.apache.lucene.index.IndexWritere0325aeb804ee9cd
    org.apache.lucene.index.IndexWriter.11648142e65802354
    org.apache.lucene.index.IndexWriter.4f13f02d787c63977
    org.apache.lucene.index.IndexWriter.EventQueue036f9bbdb7eaba28
    org.apache.lucene.index.IndexWriter.IndexWriterMergeSourcecf8a98cb877c1183
    org.apache.lucene.index.IndexWriter.Merges2e1fc51eb330086c
    org.apache.lucene.index.IndexWriterConfigd701914f0d6658b6
    org.apache.lucene.index.IndexWriterConfig.OpenMode7cb49344ea5c6351
    org.apache.lucene.index.KeepOnlyLastCommitDeletionPolicy9f22fe8c738d9952
    org.apache.lucene.index.LeafMetaDatabbff7ff01b4134e0
    org.apache.lucene.index.LeafReaderfa1ce8df2ae26a6e
    org.apache.lucene.index.LeafReaderContextfc6c719b81d116df
    org.apache.lucene.index.LiveIndexWriterConfiga2067f8ef3677fdc
    org.apache.lucene.index.MergePolicye4754a4a63055e7b
    org.apache.lucene.index.MergeScheduler647d19e97498fe90
    org.apache.lucene.index.MergeTrigger8b1aa8130dc2b264
    org.apache.lucene.index.NormValuesWriter46f5e71221ca6e02
    org.apache.lucene.index.OrdTermState43005a4850ff3eee
    org.apache.lucene.index.ParallelPostingsArray9e8709952ddc86a9
    org.apache.lucene.index.PostingsEnum13ee3bbe2a9a135b
    org.apache.lucene.index.ReaderPool196c2a1e4e1cb021
    org.apache.lucene.index.ReaderUtil4a74f8dbf0455564
    org.apache.lucene.index.SegmentCommitInfo361389f17f161615
    org.apache.lucene.index.SegmentCoreReaders329963e565bed71e
    org.apache.lucene.index.SegmentCoreReaders.14c22a3a7e7a3464b
    org.apache.lucene.index.SegmentCoreReaders.2f94d04d48a8e6732
    org.apache.lucene.index.SegmentCoreReaders.30dcca50ca892de5e
    org.apache.lucene.index.SegmentDocValues8c267f5425938996
    org.apache.lucene.index.SegmentInfod59792dbd411f918
    org.apache.lucene.index.SegmentInfos8e0cfc1c34a793bc
    org.apache.lucene.index.SegmentInfos.FindSegmentsFile57064a938b60a18c
    org.apache.lucene.index.SegmentReadStatef7f57f7389b9e4aa
    org.apache.lucene.index.SegmentReader63c8cf9560aa58ed
    org.apache.lucene.index.SegmentReader.1007c5e078ca5b49c
    org.apache.lucene.index.SegmentReader.2f1871b747f8ea7f6
    org.apache.lucene.index.SegmentWriteState3df2c751683e36f5
    org.apache.lucene.index.SlowImpactsEnum1474c9337a65b539
    org.apache.lucene.index.SlowImpactsEnum.1d5bb02ac6cfb08ba
    org.apache.lucene.index.StandardDirectoryReader3fc892a97e1fcf74
    org.apache.lucene.index.StandardDirectoryReader.170ecfd4176b47247
    org.apache.lucene.index.StandardDirectoryReader.3ca361c5e2d8fe939
    org.apache.lucene.index.StoredFieldVisitorc234cad09dc1c771
    org.apache.lucene.index.StoredFieldVisitor.Status9cb9d093a6117d87
    org.apache.lucene.index.StoredFieldsConsumer3e50d154a538cc4a
    org.apache.lucene.index.Term998f0369ca56ca77
    org.apache.lucene.index.TermStated94a8fc5aa8fb053
    org.apache.lucene.index.TermStates51833d55b04ca4cd
    org.apache.lucene.index.TermStates.1ec6a01c059b307f9
    org.apache.lucene.index.TermVectorsConsumer5da357250a0de7f2
    org.apache.lucene.index.TermVectorsConsumerPerField1208c70ca8670152
    org.apache.lucene.index.TermVectorsConsumerPerField.TermVectorsPostingsArrayc0105255a2cecf00
    org.apache.lucene.index.Terms7ca39f3bdd238e2b
    org.apache.lucene.index.TermsEnumdfe1f9b0994d664f
    org.apache.lucene.index.TermsEnum.1249f31e05c710308
    org.apache.lucene.index.TermsEnum.SeekStatus8b3a7bcd9e7da648
    org.apache.lucene.index.TermsHashc630c8de6506aac1
    org.apache.lucene.index.TermsHashPerField1b7a39be6c997509
    org.apache.lucene.index.TermsHashPerField.PostingsBytesStartArray5e5e00daabc62112
    org.apache.lucene.index.TieredMergePolicyc430a128b00f05d4
    org.apache.lucene.index.TieredMergePolicy.MERGE_TYPEee4ce8703565589c
    org.apache.lucene.index.TieredMergePolicy.SegmentSizeAndDocs13066978ebee0cf5
    org.apache.lucene.queryparser.classic.FastCharStream921f61bd34d336b7
    org.apache.lucene.queryparser.classic.QueryParser58a639d223811485
    org.apache.lucene.queryparser.classic.QueryParser.JJCallsb4aa6347602075fe
    org.apache.lucene.queryparser.classic.QueryParser.LookaheadSuccess1e68eb728086b64d
    org.apache.lucene.queryparser.classic.QueryParser.Operatorc369979182f4a099
    org.apache.lucene.queryparser.classic.QueryParserBasec083122d7fdf3d7d
    org.apache.lucene.queryparser.classic.QueryParserTokenManager98e97e8b3adc403b
    org.apache.lucene.queryparser.classic.Tokend87570aef642ebc9
    org.apache.lucene.search.BlockMaxConjunctionScorer061e44a27a9e97e7
    org.apache.lucene.search.BlockMaxConjunctionScorer.174c433408ff6b3bd
    org.apache.lucene.search.BlockMaxConjunctionScorer.23ea95fe22eaa4f92
    org.apache.lucene.search.Boolean2ScorerSupplierc583418a25057486
    org.apache.lucene.search.BooleanClause5517b155135643c4
    org.apache.lucene.search.BooleanClause.Occur734a3ee59f624d3a
    org.apache.lucene.search.BooleanClause.Occur.1844152c852706967
    org.apache.lucene.search.BooleanClause.Occur.2314312e6be9e3919
    org.apache.lucene.search.BooleanClause.Occur.382ed509b5f202c18
    org.apache.lucene.search.BooleanClause.Occur.4daeb1927527fbfcf
    org.apache.lucene.search.BooleanQuery96c1ac631fbd6b0e
    org.apache.lucene.search.BooleanQuery.Builder7e6d4552da2ff245
    org.apache.lucene.search.BooleanWeight174f45125f19caf2
    org.apache.lucene.search.BooleanWeight.WeightedBooleanClause166652adc0fe198e
    org.apache.lucene.search.BoostAttributeImplf093b8b530992fa9
    org.apache.lucene.search.BoostQuery83694dbca36799f8
    org.apache.lucene.search.BulkScorer0cdfc6b4ad3daf0c
    org.apache.lucene.search.CollectionStatistics5ec48820d8f08861
    org.apache.lucene.search.DisiPriorityQueuecd6e7ceb6bb4a75c
    org.apache.lucene.search.DisiWrapperc464918fcb4dc917
    org.apache.lucene.search.DocIdSet5365aa0bacf9a6e7
    org.apache.lucene.search.DocIdSet.131119c239a3307e0
    org.apache.lucene.search.DocIdSetIteratorb2f8b47fe6931904
    org.apache.lucene.search.Explanationf9b8483b4a27fc0e
    org.apache.lucene.search.HitQueue1b55fd31915c139a
    org.apache.lucene.search.HitsThresholdCheckercbcf7b80177ffd7d
    org.apache.lucene.search.HitsThresholdChecker.LocalHitsThresholdChecker0af70e4877c39078
    org.apache.lucene.search.ImpactsDISI13342a2866448a60
    org.apache.lucene.search.IndexSearcher73336568d9558b83
    org.apache.lucene.search.IndexSearcher.28a80822a11869ba3
    org.apache.lucene.search.LRUQueryCachef119ed15eba21643
    org.apache.lucene.search.LRUQueryCache.MinSegmentSizePredicatee8546c497dd5c047
    org.apache.lucene.search.LeafCollector610577ef49520501
    org.apache.lucene.search.LeafSimScorerdae74001f09e0d4b
    org.apache.lucene.search.MaxScoreCacheb0fab390a2eeb1ff
    org.apache.lucene.search.MaxScoreSumPropagator5a91caaf7298e99b
    org.apache.lucene.search.MaxScoreSumPropagator.15ee8239fddd1a671
    org.apache.lucene.search.MultiTermQuery2b75d54f87e0a440
    org.apache.lucene.search.MultiTermQuery.16c9d933f8b8f27ac
    org.apache.lucene.search.MultiTermQuery.RewriteMethoddccbda72605e36e9
    org.apache.lucene.search.Multiset19d136ff7551a790
    org.apache.lucene.search.Multiset.13b110197a7d930cc
    org.apache.lucene.search.Queryc165f884ce594f28
    org.apache.lucene.search.Scorablece3faa2bf0d13526
    org.apache.lucene.search.ScoreDoc7bfc4d6df3c15e4f
    org.apache.lucene.search.ScoreMode5083adba207caf07
    org.apache.lucene.search.Scorera2e3c4802bca7246
    org.apache.lucene.search.ScorerSupplier50ccb984640f5a29
    org.apache.lucene.search.ScorerUtil4858996195e514c9
    org.apache.lucene.search.ScorerUtil.10d12a67987763dd8
    org.apache.lucene.search.ScoringRewrite53dda8cd115a1b80
    org.apache.lucene.search.ScoringRewrite.1726bc5187a7d9169
    org.apache.lucene.search.ScoringRewrite.2c8ed0d3ea02d9ba7
    org.apache.lucene.search.TermCollectingRewrite3c6917b7de289c31
    org.apache.lucene.search.TermQuery32c14fb4749e12de
    org.apache.lucene.search.TermQuery.TermWeight8232b1155cdcaa35
    org.apache.lucene.search.TermScorerc300e5abbc794b3b
    org.apache.lucene.search.TermStatistics2889bba2906e16a2
    org.apache.lucene.search.TopDocs012373f68cd76882
    org.apache.lucene.search.TopDocs.ScoreMergeSortQueue0d229ef686a287eb
    org.apache.lucene.search.TopDocs.ShardRef645ec85cd874e13e
    org.apache.lucene.search.TopDocsCollectord619b8b8e24362ae
    org.apache.lucene.search.TopScoreDocCollectorf0f271377b503622
    org.apache.lucene.search.TopScoreDocCollector.ScorerLeafCollector0916b64fdd6310f8
    org.apache.lucene.search.TopScoreDocCollector.SimpleTopScoreDocCollectore89ce7447d46c23d
    org.apache.lucene.search.TopScoreDocCollector.SimpleTopScoreDocCollector.1b7fd297ad7b8e993
    org.apache.lucene.search.TotalHitsc054cc870c4bc713
    org.apache.lucene.search.TotalHits.Relationcd9e19742f0a5fea
    org.apache.lucene.search.TwoPhaseIteratorf59ed4e6ee883076
    org.apache.lucene.search.TwoPhaseIterator.TwoPhaseIteratorAsDocIdSetIteratorbde4888d90c9b71d
    org.apache.lucene.search.UsageTrackingQueryCachingPolicyb8f47b0b4f586c84
    org.apache.lucene.search.WANDScorer9b455d37735417e4
    org.apache.lucene.search.WANDScorer.1677f7eae4aa6e58d
    org.apache.lucene.search.WANDScorer.27f071d191fb7cb28
    org.apache.lucene.search.Weightf9b0b832cbdab9cc
    org.apache.lucene.search.Weight.19ae964d7e7004115
    org.apache.lucene.search.Weight.DefaultBulkScorer3367fcb4d4550921
    org.apache.lucene.search.similarities.BM25Similarityd69466947ed0f51c
    org.apache.lucene.search.similarities.BM25Similarity.BM25Scorera177d5b0724f1baa
    org.apache.lucene.search.similarities.Similaritya3b6d2798ce43d71
    org.apache.lucene.search.similarities.Similarity.SimScorer67d544ce9feeb21a
    org.apache.lucene.store.BaseDirectory6900d05994ed44b3
    org.apache.lucene.store.BufferedChecksumb94ebe893a9d3711
    org.apache.lucene.store.BufferedChecksumIndexInput173e2b9c65b07cb6
    org.apache.lucene.store.ByteArrayDataInput78632b2460b70e07
    org.apache.lucene.store.ByteArrayDataOutput7e14c81e582b7d2c
    org.apache.lucene.store.ByteBufferGuard259b97c11bbdc71b
    org.apache.lucene.store.ByteBufferIndexInput4167f4c1126b89a3
    org.apache.lucene.store.ByteBufferIndexInput.SingleBufferImpl2a840aec159d9c7d
    org.apache.lucene.store.ByteBuffersDataOutput15456a13d6afd12c
    org.apache.lucene.store.ByteBuffersDataOutput.ByteBufferRecyclerfe108a40cf58b7b1
    org.apache.lucene.store.ChecksumIndexInput76f48af3f68865dd
    org.apache.lucene.store.DataInput5aa170af6f1e947b
    org.apache.lucene.store.DataOutput492e17024cc912e6
    org.apache.lucene.store.Directory7704110da65f03e8
    org.apache.lucene.store.FSDirectory0e228e59762da3b0
    org.apache.lucene.store.FSDirectory.FSIndexOutputd2beb768917b54a0
    org.apache.lucene.store.FSDirectory.FSIndexOutput.1ec3754510e19ee3f
    org.apache.lucene.store.FSLockFactory742892e30a14e87a
    org.apache.lucene.store.FilterDirectoryb2c8389cd77c4d55
    org.apache.lucene.store.FlushInfof9d01f0e9bbb7c7c
    org.apache.lucene.store.IOContext5f42cca474854a9d
    org.apache.lucene.store.IOContext.Context921bb55758e6d8ff
    org.apache.lucene.store.IndexInput06ce5eb19b42b06b
    org.apache.lucene.store.IndexOutput6f483ded93cfafd7
    org.apache.lucene.store.Lock432af1bf641692dc
    org.apache.lucene.store.LockFactoryece396b0fec91411
    org.apache.lucene.store.LockValidatingDirectoryWrapper560f0d73f379987c
    org.apache.lucene.store.MMapDirectorya9942ea0e3192b38
    org.apache.lucene.store.NativeFSLockFactory1cd03d5dd607e96c
    org.apache.lucene.store.NativeFSLockFactory.NativeFSLockc3307e40ef2e24c7
    org.apache.lucene.store.OutputStreamIndexOutput90073bdd6eaf9312
    org.apache.lucene.store.RAMFilea543facba1c62f7f
    org.apache.lucene.store.RAMOutputStreama4d3d0444d01318d
    org.apache.lucene.store.TrackingDirectoryWrapper8f84be302b2ff933
    org.apache.lucene.util.Accountable9caec5fbf170e939
    org.apache.lucene.util.ArrayUtil5954c5d90665398b
    org.apache.lucene.util.AttributeFactoryb1bf0e54e4016761
    org.apache.lucene.util.AttributeFactory.157348402ad295daa
    org.apache.lucene.util.AttributeFactory.DefaultAttributeFactory400586c34d95eefd
    org.apache.lucene.util.AttributeFactory.DefaultAttributeFactory.1e37cb5b075d39222
    org.apache.lucene.util.AttributeFactory.StaticImplementationAttributeFactory7835b4eaf27ad5e5
    org.apache.lucene.util.AttributeImpld2e818115d53c6c8
    org.apache.lucene.util.AttributeSource9ed2301ac94454b9
    org.apache.lucene.util.AttributeSource.2627a422f8bda783c
    org.apache.lucene.util.AttributeSource.Stateee682f69cc19d165
    org.apache.lucene.util.BitSet5a574c88f9713d83
    org.apache.lucene.util.BitUtilfb8b4d3d71d70037
    org.apache.lucene.util.ByteBlockPoolc1f7c99648018d91
    org.apache.lucene.util.ByteBlockPool.Allocatore4273ccf741d8276
    org.apache.lucene.util.ByteBlockPool.DirectTrackingAllocator9bf47627846516db
    org.apache.lucene.util.BytesRef5dc0661c38a5f442
    org.apache.lucene.util.BytesRefBuilder6b39f0d53b571bfe
    org.apache.lucene.util.BytesRefHash86e748e8ab5fa687
    org.apache.lucene.util.BytesRefHash.1e19faf8fa62ab4f4
    org.apache.lucene.util.BytesRefHash.BytesStartArray06370cc4bd47788d
    org.apache.lucene.util.CloseableThreadLocalc837a4897f406f88
    org.apache.lucene.util.CollectionUtild405772039814236
    org.apache.lucene.util.CollectionUtil.ListIntroSorter272e33df47ff8a28
    org.apache.lucene.util.Constants71711c9ebda826d2
    org.apache.lucene.util.Counterdd1fe6fe36dc8723
    org.apache.lucene.util.Counter.AtomicCounter702c4b53893ac12e
    org.apache.lucene.util.Counter.SerialCounter577da4101cbc325f
    org.apache.lucene.util.FixedBitSet92d1cd1d5e4309b2
    org.apache.lucene.util.FrequencyTrackingRingBufferf4e55c7fd66a81d5
    org.apache.lucene.util.FrequencyTrackingRingBuffer.IntBag5de9feffb74916c0
    org.apache.lucene.util.FutureArrayseead70d27728315f
    org.apache.lucene.util.FutureObjectsbb12722ddc092a6a
    org.apache.lucene.util.IOUtilsf9815136f890b195
    org.apache.lucene.util.InPlaceMergeSortera72a3702a3f4d8f1
    org.apache.lucene.util.InfoStream5c1d197ea5ba7a73
    org.apache.lucene.util.InfoStream.NoOutputd0750f16f6d2766e
    org.apache.lucene.util.IntBlockPool73804d638cfb8a37
    org.apache.lucene.util.IntBlockPool.Allocator024ee289b8aaee46
    org.apache.lucene.util.IntroSorter08519c1f1ba4a7de
    org.apache.lucene.util.IntsReff9b7dc817ff99274
    org.apache.lucene.util.IntsRefBuilderb5175ed4b449f9b7
    org.apache.lucene.util.LongValues7d8aee853134ae83
    org.apache.lucene.util.LongValues.1f9fa8f9d563676c5
    org.apache.lucene.util.LongValues.216b39160a62d65d4
    org.apache.lucene.util.LongsRefab3dbc979e310089
    org.apache.lucene.util.MSBRadixSorter9adaa4c4786de287
    org.apache.lucene.util.MathUtil6446df2aeb4ba1d0
    org.apache.lucene.util.NamedSPILoaderbd69495c1a655c32
    org.apache.lucene.util.PriorityQueue86214d87630b6122
    org.apache.lucene.util.PriorityQueue.160a8e49cec5e67af
    org.apache.lucene.util.QueryBuilderf8cdd17d51e120bf
    org.apache.lucene.util.QueryBuilder.TermAndBoost7379a586bc344983
    org.apache.lucene.util.RamUsageEstimator90dd0e4b91d1e1b1
    org.apache.lucene.util.RamUsageEstimator.170b7c06b4a2ba803
    org.apache.lucene.util.SPIClassIterator77e3e7ca7aea78ee
    org.apache.lucene.util.SetOnce1f43b17a7dfc86e4
    org.apache.lucene.util.SetOnce.Wrapperfbdf6ca0565e5886
    org.apache.lucene.util.SmallFloat4b4c055a7d5e7c3d
    org.apache.lucene.util.Sorter91a27f89e094d240
    org.apache.lucene.util.StringHelper548b4986a5429a71
    org.apache.lucene.util.StringMSBRadixSorter09fc2a082184e6e8
    org.apache.lucene.util.StringMSBRadixSorter.12864f721fdd69ffd
    org.apache.lucene.util.UnicodeUtilaa9656ee8c7acf93
    org.apache.lucene.util.Versiond5dc79d50f2c2d1d
    org.apache.lucene.util.compress.LZ474e78555e9692654
    org.apache.lucene.util.compress.LZ4.FastCompressionHashTable455953436870f53c
    org.apache.lucene.util.compress.LZ4.HashTablea875bb203fc16df5
    org.apache.lucene.util.compress.LZ4.HighCompressionHashTablefe6aeae6ddf42ee2
    org.apache.lucene.util.compress.LowercaseAsciiCompressionf447544a6d96e316
    org.apache.lucene.util.fst.BitTableUtilae7a3159aea08377
    org.apache.lucene.util.fst.Builder100b4b21b6b35e4f
    org.apache.lucene.util.fst.Builder.Arc03d7ea3d6f291b24
    org.apache.lucene.util.fst.Builder.CompiledNode611103c7aadde65d
    org.apache.lucene.util.fst.Builder.FixedLengthArcsBufferdc3feeb45753c9cf
    org.apache.lucene.util.fst.Builder.UnCompiledNode008d6d1bfef92929
    org.apache.lucene.util.fst.ByteSequenceOutputs143ca7cb1094029b
    org.apache.lucene.util.fst.BytesRefFSTEnum8c5ff799d80df73e
    org.apache.lucene.util.fst.BytesRefFSTEnum.InputOutputfdff5845aec3a017
    org.apache.lucene.util.fst.BytesStore862a096cc44582bf
    org.apache.lucene.util.fst.BytesStore.265e27783d1fb59c4
    org.apache.lucene.util.fst.FST22daed3fbd13fe0f
    org.apache.lucene.util.fst.FST.Arc87a6bbce0deea5dc
    org.apache.lucene.util.fst.FST.Arc.BitTablecd08373a793c76e2
    org.apache.lucene.util.fst.FST.BytesReader9774f9c52f512c2f
    org.apache.lucene.util.fst.FST.INPUT_TYPE4cca0a4d7eb0fc65
    org.apache.lucene.util.fst.FSTEnumb20a467cecfe037b
    org.apache.lucene.util.fst.NodeHashe5fbe5551fd06a18
    org.apache.lucene.util.fst.OffHeapFSTStorec45fc9986debb081
    org.apache.lucene.util.fst.Outputs01b4adaf56ba7d3f
    org.apache.lucene.util.fst.ReverseBytesReader13eb20434ceaa349
    org.apache.lucene.util.fst.ReverseRandomAccessReader8ca4cafc0fd06de6
    org.apache.lucene.util.fst.Utile497ee1ca74a697c
    org.apache.lucene.util.packed.AbstractPagedMutablec34fc67babfbb425
    org.apache.lucene.util.packed.BulkOperatione703484622617102
    org.apache.lucene.util.packed.BulkOperation.18ed6abb8f3648cf6
    org.apache.lucene.util.packed.BulkOperationPacked829a236b3c71b9c5
    org.apache.lucene.util.packed.BulkOperationPacked14bd02140efa827ba
    org.apache.lucene.util.packed.BulkOperationPacked107871df76ca8b0a6d
    org.apache.lucene.util.packed.BulkOperationPacked1131012a043511a3c2
    org.apache.lucene.util.packed.BulkOperationPacked128c9d61a1c0c22fe2
    org.apache.lucene.util.packed.BulkOperationPacked137c3f7554b1c18d1d
    org.apache.lucene.util.packed.BulkOperationPacked1421e5b4c1bd2627b3
    org.apache.lucene.util.packed.BulkOperationPacked1589157585ca7e8aaf
    org.apache.lucene.util.packed.BulkOperationPacked16bd7857d6862d8611
    org.apache.lucene.util.packed.BulkOperationPacked17ee9c6581a4299e15
    org.apache.lucene.util.packed.BulkOperationPacked18559a5bb48c2c0381
    org.apache.lucene.util.packed.BulkOperationPacked19ce141b930277706f
    org.apache.lucene.util.packed.BulkOperationPacked2af735fb9c7872456
    org.apache.lucene.util.packed.BulkOperationPacked20ec750496cb2b69fc
    org.apache.lucene.util.packed.BulkOperationPacked21fd5faea41a357d0e
    org.apache.lucene.util.packed.BulkOperationPacked22b8b2caf3fa40412b
    org.apache.lucene.util.packed.BulkOperationPacked23d3700bb7e9bbb9e7
    org.apache.lucene.util.packed.BulkOperationPacked2497d220c44b683800
    org.apache.lucene.util.packed.BulkOperationPacked31318d5978b9e3782
    org.apache.lucene.util.packed.BulkOperationPacked470c3af2facc8f326
    org.apache.lucene.util.packed.BulkOperationPacked5d206eeee69238498
    org.apache.lucene.util.packed.BulkOperationPacked62dc5d4490742e4f9
    org.apache.lucene.util.packed.BulkOperationPacked7cf065f84c953d1aa
    org.apache.lucene.util.packed.BulkOperationPacked8f743f629bc8f2eec
    org.apache.lucene.util.packed.BulkOperationPacked920af58a528f116a1
    org.apache.lucene.util.packed.BulkOperationPackedSingleBlocked80270f7be26e06
    org.apache.lucene.util.packed.DeltaPackedLongValues.Builder058b56d9e425c2ec
    org.apache.lucene.util.packed.Direct81681d7da6313a8e2
    org.apache.lucene.util.packed.DirectMonotonicReader4ca3c68dd3a989a8
    org.apache.lucene.util.packed.DirectMonotonicReader.1ac026cbf03289925
    org.apache.lucene.util.packed.DirectMonotonicReader.Metabd8400ac2b5a5d97
    org.apache.lucene.util.packed.DirectMonotonicWriterab3c850c35c1869b
    org.apache.lucene.util.packed.GrowableWriter5e5c4629c1cacb32
    org.apache.lucene.util.packed.Packed64SingleBlock3ee3158eebfb2583
    org.apache.lucene.util.packed.Packed64SingleBlock.Packed64SingleBlock125137e3efb8081112
    org.apache.lucene.util.packed.Packed64SingleBlock.Packed64SingleBlock57bf123852dfc28da
    org.apache.lucene.util.packed.PackedInts5fce3648bb81aba7
    org.apache.lucene.util.packed.PackedInts.1b5e362f7e4f2669f
    org.apache.lucene.util.packed.PackedInts.Formatf66df8d6fa1eb0bf
    org.apache.lucene.util.packed.PackedInts.Format.13b829c5020510e1e
    org.apache.lucene.util.packed.PackedInts.Format.284c5dbb1792af026
    org.apache.lucene.util.packed.PackedInts.FormatAndBits94bd3ad750fed485
    org.apache.lucene.util.packed.PackedInts.Mutable4220eb680213cd52
    org.apache.lucene.util.packed.PackedInts.MutableImpl07f6a90e6a6b8629
    org.apache.lucene.util.packed.PackedInts.Readerada558745edc141a
    org.apache.lucene.util.packed.PackedInts.ReaderIteratorImpld0ab15244e49ac29
    org.apache.lucene.util.packed.PackedInts.Writera09c912336957fca
    org.apache.lucene.util.packed.PackedLongValuesfcf07dff85fee5e0
    org.apache.lucene.util.packed.PackedLongValues.Builder57417b5ca6cc2f7f
    org.apache.lucene.util.packed.PackedReaderIterator9150185835a6e045
    org.apache.lucene.util.packed.PackedWriterf401186d92e3dfd7
    org.apache.lucene.util.packed.PagedGrowableWriterbf064fd5aabfaffd
    org.apache.maven.DefaultMaven663dd8c0b18de2ae
    org.apache.maven.ReactorReadera077a742bb3b3e4b
    org.apache.maven.RepositoryUtils008948b406a1908f
    org.apache.maven.RepositoryUtils.MavenArtifactTypeRegistryfd6255c87301f695
    org.apache.maven.archiver.ManifestConfigurationb2bbc26d75362f40
    org.apache.maven.archiver.MavenArchiveConfigurationad3871f2200f7fc6
    org.apache.maven.archiver.MavenArchiver91cd22f7e9fc83d8
    org.apache.maven.archiver.PomPropertiesUtil6cc68daabb8372ba
    org.apache.maven.artifact.Artifactbb58e99c3bd78a82
    org.apache.maven.artifact.ArtifactUtilsdae262ec115c7afa
    org.apache.maven.artifact.DefaultArtifactd6f1875d0c532bd4
    org.apache.maven.artifact.factory.DefaultArtifactFactory9a3c19f149c10231
    org.apache.maven.artifact.handler.DefaultArtifactHandler44ec077f3dc8b8f1
    org.apache.maven.artifact.handler.manager.DefaultArtifactHandlerManager036e9432c0ccd78a
    org.apache.maven.artifact.installer.DefaultArtifactInstaller5b4bd0624fffd27a
    org.apache.maven.artifact.metadata.AbstractArtifactMetadata62fa26d896c1c068
    org.apache.maven.artifact.repository.ArtifactRepositoryPolicyc5c9059a22dea423
    org.apache.maven.artifact.repository.LegacyLocalRepositoryManager9f15698c9b58dac7
    org.apache.maven.artifact.repository.MavenArtifactRepositoryc3ed59352688de5f
    org.apache.maven.artifact.repository.layout.DefaultRepositoryLayoutd41672f0c3ad07f1
    org.apache.maven.artifact.repository.metadata.AbstractRepositoryMetadata0dd629abe67d7b13
    org.apache.maven.artifact.repository.metadata.ArtifactRepositoryMetadatad2ad476f339e560d
    org.apache.maven.artifact.repository.metadata.DefaultRepositoryMetadataManager800de159b3ba4564
    org.apache.maven.artifact.repository.metadata.Metadata1431bacf90aafa52
    org.apache.maven.artifact.repository.metadata.Snapshot73510d6b18b64a0b
    org.apache.maven.artifact.repository.metadata.SnapshotArtifactRepositoryMetadataa8d506da390a9330
    org.apache.maven.artifact.repository.metadata.SnapshotVersionffe2cae841487941
    org.apache.maven.artifact.repository.metadata.Versioning163cbddd85c2d9f9
    org.apache.maven.artifact.repository.metadata.io.DefaultMetadataReader064c3792d1ab7183
    org.apache.maven.artifact.repository.metadata.io.xpp3.MetadataXpp3Reader22ef2deba7d4b698
    org.apache.maven.artifact.repository.metadata.io.xpp3.MetadataXpp3Reader.18e16cc69d75ef4ab
    org.apache.maven.artifact.repository.metadata.io.xpp3.MetadataXpp3Writer96b02f849842881d
    org.apache.maven.artifact.resolver.DefaultArtifactCollector23ce02a53a9bbf55
    org.apache.maven.artifact.resolver.DefaultArtifactResolverc318f68e333530af
    org.apache.maven.artifact.resolver.DefaultArtifactResolver.DaemonThreadCreatorfc36498fbfb0708e
    org.apache.maven.artifact.resolver.DefaultResolutionErrorHandler72dec917697e6ec6
    org.apache.maven.artifact.resolver.filter.AbstractScopeArtifactFilterea78cf252bc7237e
    org.apache.maven.artifact.resolver.filter.CumulativeScopeArtifactFilter4de5915fcc9c7e71
    org.apache.maven.artifact.resolver.filter.ExcludesArtifactFilter4da4a3a6a885adc5
    org.apache.maven.artifact.resolver.filter.ExclusionArtifactFilterd27463573ebbeecd
    org.apache.maven.artifact.resolver.filter.IncludesArtifactFilter088d52870788ac06
    org.apache.maven.artifact.resolver.filter.ScopeArtifactFiltere09e2cc80a5ef316
    org.apache.maven.artifact.versioning.ComparableVersionc409ce50f6bc468b
    org.apache.maven.artifact.versioning.ComparableVersion.IntItemb41f50e44a9d9c64
    org.apache.maven.artifact.versioning.ComparableVersion.ListItem3c222ba6a11eb9cd
    org.apache.maven.artifact.versioning.ComparableVersion.StringItem48a3b021319c0f1b
    org.apache.maven.artifact.versioning.DefaultArtifactVersion3c2c97b958c40a2b
    org.apache.maven.artifact.versioning.Restriction80a91ba1c9366d5a
    org.apache.maven.artifact.versioning.VersionRangeab7245e50f6b2899
    org.apache.maven.bridge.MavenRepositorySystemaa6109e15600b9d1
    org.apache.maven.building.DefaultProblemCollector38dd9f057392a8de
    org.apache.maven.building.FileSource7d8f076bd9b04a1b
    org.apache.maven.building.ProblemCollectorFactory86088eef6da47a52
    org.apache.maven.classrealm.ArtifactClassRealmConstituentea13da510c51a60a
    org.apache.maven.classrealm.ClassRealmRequest.RealmType7e19b9f9b610df8b
    org.apache.maven.classrealm.DefaultClassRealmManager8e96f812ce732b21
    org.apache.maven.cli.CLIManagerfb223c35b8991aab
    org.apache.maven.cli.CLIReportingUtils8bb9bb8a434c653f
    org.apache.maven.cli.CleanArgument7da8b829830a6cb2
    org.apache.maven.cli.CliRequestf7252692e709746f
    org.apache.maven.cli.MavenCli0ff3ecd139b8af16
    org.apache.maven.cli.MavenCli.1576b12ab27e89d82
    org.apache.maven.cli.ResolveFiled71f162fc6323ac2
    org.apache.maven.cli.configuration.SettingsXmlConfigurationProcessor18471682d6e58377
    org.apache.maven.cli.event.DefaultEventSpyContext72fe7fd27b1c8ef5
    org.apache.maven.cli.event.ExecutionEventLogger4c308f2c52a04ac8
    org.apache.maven.cli.logging.BaseSlf4jConfiguration143187f9ff16d495
    org.apache.maven.cli.logging.Slf4jConfiguration.Level66cb7f437538eac2
    org.apache.maven.cli.logging.Slf4jConfigurationFactory5290ad2a79d1ce00
    org.apache.maven.cli.logging.Slf4jLoggerbe4f1b24d085da93
    org.apache.maven.cli.logging.Slf4jLoggerManager286c49d63c5d3e7e
    org.apache.maven.cli.logging.Slf4jStdoutLogger78b29989b04f02b1
    org.apache.maven.cli.logging.impl.Slf4jSimpleConfiguration571aa9f18948347d
    org.apache.maven.cli.logging.impl.Slf4jSimpleConfiguration.1e1ad50bd25d6f5b7
    org.apache.maven.cli.transfer.QuietMavenTransferListener4d5e6633110d43e1
    org.apache.maven.doxia.DefaultDoxiacfb718b53f8fc3f5
    org.apache.maven.doxia.logging.SystemStreamLog991b2140f6e0201e
    org.apache.maven.doxia.markup.HtmlMarkupa1c78a63b1123343
    org.apache.maven.doxia.markup.HtmlMarkup.16f04370cccfe3525
    org.apache.maven.doxia.markup.HtmlMarkup.105cc10d87bab3bafe
    org.apache.maven.doxia.markup.HtmlMarkup.11e4d33d9245d248ac
    org.apache.maven.doxia.markup.HtmlMarkup.1252c9e5085d1b0437
    org.apache.maven.doxia.markup.HtmlMarkup.13e2d1d2728deafde2
    org.apache.maven.doxia.markup.HtmlMarkup.146878973c07872c8b
    org.apache.maven.doxia.markup.HtmlMarkup.15b8150662c3b12b7b
    org.apache.maven.doxia.markup.HtmlMarkup.165550a2ff39b8938b
    org.apache.maven.doxia.markup.HtmlMarkup.17563ba42466ce2f40
    org.apache.maven.doxia.markup.HtmlMarkup.18f3c0932e551dfc66
    org.apache.maven.doxia.markup.HtmlMarkup.2f9f5a31309a6095f
    org.apache.maven.doxia.markup.HtmlMarkup.3210bbac2f4b1a19d
    org.apache.maven.doxia.markup.HtmlMarkup.4ab20fee8578c3ee6
    org.apache.maven.doxia.markup.HtmlMarkup.584c8db8eed118b02
    org.apache.maven.doxia.markup.HtmlMarkup.61f3a7495506bc226
    org.apache.maven.doxia.markup.HtmlMarkup.710f5a92d437dfcbe
    org.apache.maven.doxia.markup.HtmlMarkup.89d9c188be5fcd084
    org.apache.maven.doxia.markup.HtmlMarkup.92dd7ea8406601fba
    org.apache.maven.doxia.markup.Markup3cf4bb5a4f77b9c2
    org.apache.maven.doxia.module.fml.FmlParserModule57a0d571cc77b8a9
    org.apache.maven.doxia.module.xdoc.XdocParserModule9f6d82e7121eaae6
    org.apache.maven.doxia.module.xhtml.XhtmlSink8f852baa8b1322b9
    org.apache.maven.doxia.parser.manager.DefaultParserManagerbd9ccb2bcb352b7d
    org.apache.maven.doxia.parser.module.AbstractParserModuledc49676ba8e59599
    org.apache.maven.doxia.parser.module.DefaultParserModuleManagerff4640ea8a224615
    org.apache.maven.doxia.sink.impl.AbstractSink5a0c2fd7f7584d94
    org.apache.maven.doxia.sink.impl.AbstractXmlSinkdbc420e7d6ab7a3a
    org.apache.maven.doxia.sink.impl.SinkAdapter795920cdf20aba79
    org.apache.maven.doxia.sink.impl.SinkEventAttributeSet90d398c0554fbe92
    org.apache.maven.doxia.sink.impl.SinkUtils251d7d9129d06215
    org.apache.maven.doxia.sink.impl.XhtmlBaseSinkd5bbcadd1fafc245
    org.apache.maven.doxia.site.decoration.Bannera6189d798bed6382
    org.apache.maven.doxia.site.decoration.Body820c97155a482b65
    org.apache.maven.doxia.site.decoration.DecorationModele764d2a12cafbc53
    org.apache.maven.doxia.site.decoration.DecorationUtils912b9cbd0764b4e9
    org.apache.maven.doxia.site.decoration.LinkItem1a4eb87e7d218f1b
    org.apache.maven.doxia.site.decoration.Menu3b51a49f22ee05df
    org.apache.maven.doxia.site.decoration.MenuItem860dc61702776a44
    org.apache.maven.doxia.site.decoration.PublishDatef2649ed7863529f6
    org.apache.maven.doxia.site.decoration.Skindf5593ea3451a6e7
    org.apache.maven.doxia.site.decoration.Versione8a55f520fc5412e
    org.apache.maven.doxia.site.decoration.inheritance.DefaultDecorationModelInheritanceAssembler57cda10c3ed5d569
    org.apache.maven.doxia.site.decoration.io.xpp3.DecorationXpp3Reader44449ba55e042174
    org.apache.maven.doxia.site.decoration.io.xpp3.DecorationXpp3Writer7ae66bc3129c037d
    org.apache.maven.doxia.site.skin.Prerequisites7e6299db99aee411
    org.apache.maven.doxia.site.skin.SkinModel9a62eeada88cbf37
    org.apache.maven.doxia.site.skin.io.xpp3.SkinXpp3Reader9d7ebd0c985f7ac6
    org.apache.maven.doxia.siterenderer.DefaultSiteRendererada5c365b9ec04ae
    org.apache.maven.doxia.siterenderer.ExtraDoxiaModuleReferencee15f92f95ccbf689
    org.apache.maven.doxia.siterenderer.RenderingContext88b754a49d107a0d
    org.apache.maven.doxia.siterenderer.SiteRenderingContextb2b6397331992bdf
    org.apache.maven.doxia.siterenderer.sink.SiteRendererSinkc79abafb2a9de797
    org.apache.maven.doxia.tools.DefaultSiteTool4d0455a29103f716
    org.apache.maven.doxia.tools.MojoLogWrapper309a3d79c049178b
    org.apache.maven.doxia.tools.SiteToolfaeef006d99e6c3b
    org.apache.maven.doxia.util.DoxiaUtils71a777ba1107f5cd
    org.apache.maven.doxia.util.HtmlTools1f14b5cd1cc4b7ba
    org.apache.maven.eventspy.internal.EventSpyDispatcher40c7d122eb4b395e
    org.apache.maven.exception.DefaultExceptionHandler6245f05b374533a8
    org.apache.maven.exception.ExceptionSummary7c4dc516d0af7aa3
    org.apache.maven.execution.AbstractExecutionListener371ab3e4de4ab6ce
    org.apache.maven.execution.BuildFailure31d9c476d5d1c7b4
    org.apache.maven.execution.BuildSuccessb2af7e63033912e1
    org.apache.maven.execution.BuildSummary362b8e7087a269b6
    org.apache.maven.execution.DefaultMavenExecutionRequest49c7faad6402167c
    org.apache.maven.execution.DefaultMavenExecutionRequestPopulatorc066c65c857673d4
    org.apache.maven.execution.DefaultMavenExecutionResult88441ddbb3beae0b
    org.apache.maven.execution.ExecutionEvent.Type1a653ea6273fdf50
    org.apache.maven.execution.MavenSession7dc905fe11b71ed7
    org.apache.maven.execution.MojoExecutionEvent767f3727df5a720a
    org.apache.maven.execution.ProjectExecutionEvent0e2974424f7e4eff
    org.apache.maven.execution.SettingsAdapter9f754f1c6c35f95d
    org.apache.maven.execution.scope.internal.MojoExecutionScopead61f0c5d631f170
    org.apache.maven.execution.scope.internal.MojoExecutionScope.161615ffb6dbbd00e
    org.apache.maven.execution.scope.internal.MojoExecutionScope.28b590c48505b2f3c
    org.apache.maven.execution.scope.internal.MojoExecutionScope.ScopeState72c7cb1cc3e0cb30
    org.apache.maven.execution.scope.internal.MojoExecutionScopeCoreModuleab48cfb450077195
    org.apache.maven.execution.scope.internal.MojoExecutionScopeModule28b0d8ecf551a705
    org.apache.maven.extension.internal.CoreExportsf6c6eadf304766f3
    org.apache.maven.extension.internal.CoreExtensionEntryaeabee7b1c15aa43
    org.apache.maven.graph.DefaultGraphBuilderbae8af041487afa2
    org.apache.maven.graph.DefaultProjectDependencyGraph79a0f46122f540a1
    org.apache.maven.graph.DefaultProjectDependencyGraph.MavenProjectComparatore87af0c8117b9e87
    org.apache.maven.internal.aether.DefaultRepositorySystemSessionFactory164b82b0698f2fb2
    org.apache.maven.internal.aether.LoggingRepositoryListener081dcf1ee7887dd0
    org.apache.maven.internal.aether.MavenChainedWorkspaceReader938dfcbc513f2a81
    org.apache.maven.lifecycle.DefaultLifecycleExecutor995e5375fd702682
    org.apache.maven.lifecycle.DefaultLifecycles67670454f955f196
    org.apache.maven.lifecycle.Lifecyclef42aa66bf52f190a
    org.apache.maven.lifecycle.LifecycleExecutionException4ea4cd84c78fbbcb
    org.apache.maven.lifecycle.MavenExecutionPlan3105598b45cc7136
    org.apache.maven.lifecycle.internal.BuildListCalculator2d11b956e88fadf1
    org.apache.maven.lifecycle.internal.BuildThreadFactory98c0db5bf92f25a7
    org.apache.maven.lifecycle.internal.CompoundProjectExecutionListener769107952711272d
    org.apache.maven.lifecycle.internal.DefaultExecutionEventf8dc12862b0f3d64
    org.apache.maven.lifecycle.internal.DefaultExecutionEventCatapulta7f64245e424371a
    org.apache.maven.lifecycle.internal.DefaultExecutionEventCatapult.1787ee64ae3f8ecdc
    org.apache.maven.lifecycle.internal.DefaultLifecycleExecutionPlanCalculator7521894dfe37c343
    org.apache.maven.lifecycle.internal.DefaultLifecycleMappingDelegate9f725fb058634981
    org.apache.maven.lifecycle.internal.DefaultLifecyclePluginAnalyzer8d070c763c701b5b
    org.apache.maven.lifecycle.internal.DefaultLifecyclePluginAnalyzer.150f013f7205b4b89
    org.apache.maven.lifecycle.internal.DefaultLifecyclePluginAnalyzer.GoalSpecec0c97cff2e1156b
    org.apache.maven.lifecycle.internal.DefaultLifecycleTaskSegmentCalculator906a2a43d10e1281
    org.apache.maven.lifecycle.internal.DefaultMojoExecutionConfiguratorb0bf6bb2092c8f32
    org.apache.maven.lifecycle.internal.DefaultProjectArtifactFactoryce1d766cbe4dfabe
    org.apache.maven.lifecycle.internal.DependencyContextfbef5aff778f1524
    org.apache.maven.lifecycle.internal.ExecutionPlanItem2af4595a6d5cbdf0
    org.apache.maven.lifecycle.internal.GoalTask7a6593cf7237abe6
    org.apache.maven.lifecycle.internal.LifecycleDebugLogger8e8cbd5ace66ca35
    org.apache.maven.lifecycle.internal.LifecycleDependencyResolver2a2ac6c7a54a814e
    org.apache.maven.lifecycle.internal.LifecycleDependencyResolver.ReactorDependencyFilter3c49e98af1ba8dca
    org.apache.maven.lifecycle.internal.LifecycleModuleBuilderc1d2c74f2689321b
    org.apache.maven.lifecycle.internal.LifecyclePluginResolver3e1c2ad4cbe5e132
    org.apache.maven.lifecycle.internal.LifecycleStarter88af777af5e0f244
    org.apache.maven.lifecycle.internal.LifecycleTask24614eeb04a702bc
    org.apache.maven.lifecycle.internal.MojoDescriptorCreatorb17e245b6234c324
    org.apache.maven.lifecycle.internal.MojoExecutor83b02c65cc0b455f
    org.apache.maven.lifecycle.internal.MojoExecutor.OwnerReentrantLock34264bb3bc46887f
    org.apache.maven.lifecycle.internal.MojoExecutor.OwnerReentrantReadWriteLock968bdc2e28d864cb
    org.apache.maven.lifecycle.internal.MojoExecutor.ProjectLock628c84381bb91c41
    org.apache.maven.lifecycle.internal.PhaseRecorder00b09238f82b4404
    org.apache.maven.lifecycle.internal.ProjectBuildList62c45238e3ab7cf2
    org.apache.maven.lifecycle.internal.ProjectIndex6da4b2f3ce92bd5f
    org.apache.maven.lifecycle.internal.ProjectSegment31c2d595cd7f3a96
    org.apache.maven.lifecycle.internal.ReactorBuildStatus16c94ccee4acf513
    org.apache.maven.lifecycle.internal.ReactorContext948e2a740ede9c7b
    org.apache.maven.lifecycle.internal.TaskSegment90f56c887416c67f
    org.apache.maven.lifecycle.internal.builder.BuilderCommon05312804b40c9dd7
    org.apache.maven.lifecycle.internal.builder.multithreaded.ConcurrencyDependencyGraphd68e66a3e25123c0
    org.apache.maven.lifecycle.internal.builder.multithreaded.MultiThreadedBuilderae1ba1d1500f211e
    org.apache.maven.lifecycle.internal.builder.multithreaded.MultiThreadedBuilder.174fbc7664afbf954
    org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder4b332446a49b2045
    org.apache.maven.lifecycle.mapping.DefaultLifecycleMappingdeb18163999b535d
    org.apache.maven.lifecycle.mapping.Lifecycle1dc3d7be1105be35
    org.apache.maven.lifecycle.mapping.LifecycleMojo1fa155b526006233
    org.apache.maven.lifecycle.mapping.LifecyclePhase81d6f62b03a38cfc
    org.apache.maven.model.Activation127d6fb1caa7cbfc
    org.apache.maven.model.ActivationFile6918fa48629992bc
    org.apache.maven.model.ActivationOSe2c8d4633e296ec5
    org.apache.maven.model.ActivationProperty34dea0ccb21f9d81
    org.apache.maven.model.Build586c94b4faf502cf
    org.apache.maven.model.BuildBasef4f9725d4d8e35b7
    org.apache.maven.model.CiManagement0735292e9d3627df
    org.apache.maven.model.ConfigurationContainerca511653f04e54b2
    org.apache.maven.model.Contributor0bd0c5b2eeebba7f
    org.apache.maven.model.Dependencyf4818368fe1dc529
    org.apache.maven.model.DependencyManagement96a6959a122c6309
    org.apache.maven.model.DeploymentRepository348cc37446723800
    org.apache.maven.model.Developer13ee47ebcac1cdaa
    org.apache.maven.model.DistributionManagementcb6f89faf25d02d9
    org.apache.maven.model.Exclusionfa7b09be4d095bf4
    org.apache.maven.model.Extension23c7fc62d212bb6a
    org.apache.maven.model.FileSetb9f051bbb8963e3e
    org.apache.maven.model.InputLocationb75ed12094732df3
    org.apache.maven.model.InputSource15e52947aeaf128c
    org.apache.maven.model.IssueManagement14ac43526671b0b5
    org.apache.maven.model.Licensefcc89d3e97402038
    org.apache.maven.model.MailingListd19bf49a9b24096b
    org.apache.maven.model.Model7261616d3970fd8c
    org.apache.maven.model.Modelc2ad28605cbe2a1f
    org.apache.maven.model.ModelBasead655e7f0be9f952
    org.apache.maven.model.ModelBase3086df0483f69ed5
    org.apache.maven.model.Notifier6a376ce3502d4f73
    org.apache.maven.model.Organization495445360f5021c6
    org.apache.maven.model.Parent8ee4588afb064839
    org.apache.maven.model.PatternSet9b33ba0bfd5260cd
    org.apache.maven.model.Plugin4accc98a17788676
    org.apache.maven.model.PluginConfigurationf640c4edaf85e6a4
    org.apache.maven.model.PluginContainerf0a1c12344df819b
    org.apache.maven.model.PluginExecution5caf91448fdb7181
    org.apache.maven.model.PluginManagementf63d25fd7410c2ad
    org.apache.maven.model.Prerequisitesd19b7693e280d593
    org.apache.maven.model.Profile5428252d911b66b5
    org.apache.maven.model.ReportPlugin846906a8664268af
    org.apache.maven.model.ReportSete1f4879bc65f6388
    org.apache.maven.model.Reporting316a973fffcc7b81
    org.apache.maven.model.Repositoryad7e36666bfb84e8
    org.apache.maven.model.RepositoryBase094cd22f6a2762aa
    org.apache.maven.model.RepositoryPolicy71816beb3c52bd41
    org.apache.maven.model.Resource81eed22d888fda78
    org.apache.maven.model.Scm8dddf05550c1cab4
    org.apache.maven.model.Site0e078a9da732657b
    org.apache.maven.model.building.AbstractModelBuildingListenerf2fb1db35cafaae8
    org.apache.maven.model.building.DefaultModelBuilder7a4a787fb68c7ac1
    org.apache.maven.model.building.DefaultModelBuildingEventfe77a72caf71e974
    org.apache.maven.model.building.DefaultModelBuildingRequest4bc86602f8030524
    org.apache.maven.model.building.DefaultModelBuildingResultb5545923adff3a86
    org.apache.maven.model.building.DefaultModelProblem59bb6157cfb780e1
    org.apache.maven.model.building.DefaultModelProblemCollector8cf469953fd3689e
    org.apache.maven.model.building.DefaultModelProcessor05d8a30e8aabddee
    org.apache.maven.model.building.FileModelSource9d4c1d09ac77fe4a
    org.apache.maven.model.building.ModelBuildingEventCatapulta641b26f6557cc4a
    org.apache.maven.model.building.ModelBuildingEventCatapult.11e8dab1e4128cb1f
    org.apache.maven.model.building.ModelCacheTag188eeb0a2399e567
    org.apache.maven.model.building.ModelCacheTag.1b4c4a0b72bb56ab7
    org.apache.maven.model.building.ModelCacheTag.25ced26ea75599fba
    org.apache.maven.model.building.ModelDataec19554a770abeb6
    org.apache.maven.model.building.ModelProblem.Severityc3135bfd3a344a02
    org.apache.maven.model.building.ModelProblem.Versiona37255b4cfba34c0
    org.apache.maven.model.building.ModelProblemCollectorRequest5bc407c25cd68f33
    org.apache.maven.model.building.ModelProblemUtils13d430dcd2b10985
    org.apache.maven.model.building.Result2b8857f14eae74da
    org.apache.maven.model.composition.DefaultDependencyManagementImporterbb0896c3a6b0b111
    org.apache.maven.model.inheritance.DefaultInheritanceAssembler8d73f353fa93c2c9
    org.apache.maven.model.inheritance.DefaultInheritanceAssembler.InheritanceModelMerger446e5bfa1b2ed46f
    org.apache.maven.model.interpolation.AbstractStringBasedModelInterpolator51d16b91f5af2b0d
    org.apache.maven.model.interpolation.AbstractStringBasedModelInterpolator.1fdb8d4fbaf2c582f
    org.apache.maven.model.interpolation.AbstractStringBasedModelInterpolator.2faf9bc85020619ee
    org.apache.maven.model.interpolation.AbstractStringBasedModelInterpolator.3a50dc9105dcd21cb
    org.apache.maven.model.interpolation.BuildTimestampValueSourcefb00440ab41d4c62
    org.apache.maven.model.interpolation.DefaultModelVersionProcessor08468c296b8c7ce4
    org.apache.maven.model.interpolation.MavenBuildTimestampd0dbf2efa8455836
    org.apache.maven.model.interpolation.PathTranslatingPostProcessor20a5961c643ccbf4
    org.apache.maven.model.interpolation.ProblemDetectingValueSource7a4e2e11109158b5
    org.apache.maven.model.interpolation.StringVisitorModelInterpolator46b16c3ec961a055
    org.apache.maven.model.interpolation.StringVisitorModelInterpolator.1158e7f0fccf99071
    org.apache.maven.model.interpolation.StringVisitorModelInterpolator.ModelVisitor8d3f71f3faee4a58
    org.apache.maven.model.interpolation.UrlNormalizingPostProcessorb391109bf4771332
    org.apache.maven.model.io.DefaultModelReader242c0752d482d78f
    org.apache.maven.model.io.xpp3.MavenXpp3Readeraadeba45ec24635a
    org.apache.maven.model.io.xpp3.MavenXpp3Reader.1e1ac1cdcf39dabe2
    org.apache.maven.model.io.xpp3.MavenXpp3ReaderEx4a83d30cf19804e6
    org.apache.maven.model.io.xpp3.MavenXpp3ReaderEx.18677a213a27aa103
    org.apache.maven.model.io.xpp3.MavenXpp3ReaderEx.Xpp3DomBuilderInputLocationBuilder73b3535cf5b7f37b
    org.apache.maven.model.locator.DefaultModelLocator46b4c87ac8de828f
    org.apache.maven.model.management.DefaultDependencyManagementInjector727ebf9853c3d223
    org.apache.maven.model.management.DefaultDependencyManagementInjector.ManagementModelMergerd186f833b79e4b00
    org.apache.maven.model.management.DefaultPluginManagementInjectorde7cab6a2034fc9d
    org.apache.maven.model.management.DefaultPluginManagementInjector.ManagementModelMerger844272fadd6e016c
    org.apache.maven.model.merge.MavenModelMerger486b3782ef938bbb
    org.apache.maven.model.merge.ModelMerger0edfa727169294c2
    org.apache.maven.model.merge.ModelMerger.DependencyKeyComputer29a61266a6fd18df
    org.apache.maven.model.merge.ModelMerger.ExtensionKeyComputer7dc0cf5680eecfe5
    org.apache.maven.model.merge.ModelMerger.MergingList01bfea13e58b2433
    org.apache.maven.model.merge.ModelMerger.NotifierKeyComputerc65751c5c31ce742
    org.apache.maven.model.merge.ModelMerger.ResourceKeyComputer0ddacab1a7bc0d43
    org.apache.maven.model.merge.ModelMerger.SourceDominant592443e87f42def2
    org.apache.maven.model.normalization.DefaultModelNormalizer35a5e093c59515fd
    org.apache.maven.model.normalization.DefaultModelNormalizer.DuplicateMerger17e0ee3519a30253
    org.apache.maven.model.path.DefaultModelPathTranslatore83fda529251b319
    org.apache.maven.model.path.DefaultModelUrlNormalizera23dc64e5192927b
    org.apache.maven.model.path.DefaultPathTranslator783cb76f8efd6224
    org.apache.maven.model.path.DefaultUrlNormalizer264f5bbdf33e8550
    org.apache.maven.model.path.ProfileActivationFilePathInterpolator9c9475892d825424
    org.apache.maven.model.plugin.DefaultLifecycleBindingsInjectord7910ffc5bcad1b7
    org.apache.maven.model.plugin.DefaultLifecycleBindingsInjector.LifecycleBindingsMerger6b66e9a1eeb6ce7a
    org.apache.maven.model.plugin.DefaultPluginConfigurationExpanderf29cfac4b67f84d2
    org.apache.maven.model.plugin.DefaultReportConfigurationExpanderda0e1caddd2c2851
    org.apache.maven.model.plugin.DefaultReportingConverterb898c874c58bbb25
    org.apache.maven.model.profile.DefaultProfileActivationContext5dd8fc4af4fa5c82
    org.apache.maven.model.profile.DefaultProfileInjectore6ee63a19df47b3d
    org.apache.maven.model.profile.DefaultProfileInjector.ProfileModelMerger2ef37a2594605c69
    org.apache.maven.model.profile.DefaultProfileSelector1f8bcb1898ef0720
    org.apache.maven.model.profile.activation.FileProfileActivatoraca2fd2c8b32d0e4
    org.apache.maven.model.profile.activation.JdkVersionProfileActivator175ee1d3b59b832c
    org.apache.maven.model.profile.activation.JdkVersionProfileActivator.RangeValued3916d2981fc936c
    org.apache.maven.model.profile.activation.OperatingSystemProfileActivator0f67ccff8c2a2d7d
    org.apache.maven.model.profile.activation.PropertyProfileActivator240c49897bac05ac
    org.apache.maven.model.superpom.DefaultSuperPomProviderf0cdb9f83506cd58
    org.apache.maven.model.validation.DefaultModelValidatorc1387e900d854b7a
    org.apache.maven.monitor.logging.DefaultLog9ee3d8da8629c828
    org.apache.maven.plugin.AbstractMojo6fd40c2f3711a082
    org.apache.maven.plugin.AbstractMojo77591c82f34b876c
    org.apache.maven.plugin.AbstractMojoExecutionException374c1055e3ebeaf0
    org.apache.maven.plugin.CacheUtilscd69778e6dec4e8c
    org.apache.maven.plugin.CompoundMojoExecutionListener8dc28c743f8fac2f
    org.apache.maven.plugin.DebugConfigurationListener739ee2b01bb60433
    org.apache.maven.plugin.DefaultBuildPluginManager52067230ee816949
    org.apache.maven.plugin.DefaultExtensionRealmCacheb04884bfe1e2b85d
    org.apache.maven.plugin.DefaultPluginArtifactsCache619921af5c56c263
    org.apache.maven.plugin.DefaultPluginDescriptorCache333aa1583e1437fb
    org.apache.maven.plugin.DefaultPluginDescriptorCache.CacheKey4c88c53e2b6c394a
    org.apache.maven.plugin.DefaultPluginRealmCache14fa9d3d67f317b7
    org.apache.maven.plugin.DefaultPluginRealmCache.CacheKey35357a4dd57698e1
    org.apache.maven.plugin.MavenPluginValidator3e6eda443421e029
    org.apache.maven.plugin.Mojoda06d74d52e516f2
    org.apache.maven.plugin.MojoExecution383fda1d10386928
    org.apache.maven.plugin.MojoExecution.Source92f62ffe6c58ab35
    org.apache.maven.plugin.MojoExecutionException8824c92cf2184191
    org.apache.maven.plugin.PluginParameterExpressionEvaluator012566f2819a633e
    org.apache.maven.plugin.PluginRealmCache.CacheRecord8da50a57f750ce7b
    org.apache.maven.plugin.compiler.AbstractCompilerMojoba9c0f73d20cd36f
    org.apache.maven.plugin.compiler.CompilerMojoaeae9e57d0dc2374
    org.apache.maven.plugin.compiler.TestCompilerMojob59c474be832d348
    org.apache.maven.plugin.descriptor.MojoDescriptor05943ad6fe7163b4
    org.apache.maven.plugin.descriptor.Parameter004c16d34dc77e01
    org.apache.maven.plugin.descriptor.PluginDescriptor3271a81378a3e91a
    org.apache.maven.plugin.descriptor.PluginDescriptorBuilder5c23c4fe2d52fd9a
    org.apache.maven.plugin.ear.AbstractEarModule250153ef3566b4ae
    org.apache.maven.plugin.ear.AbstractEarMojobba3dc9cf4b4aeab
    org.apache.maven.plugin.ear.AbstractXmlWriterac65ab337bc3eb47
    org.apache.maven.plugin.ear.ApplicationXmlWriter71a7fd2106093e10
    org.apache.maven.plugin.ear.ApplicationXmlWriterContext596c60c6f09e560b
    org.apache.maven.plugin.ear.EarExecutionContext5a5815206453a9e4
    org.apache.maven.plugin.ear.EarModuleFactoryb5806b535b7f79d5
    org.apache.maven.plugin.ear.EarMojo687b33408cbe4513
    org.apache.maven.plugin.ear.GenerateApplicationXmlMojo00d332561683c2ef
    org.apache.maven.plugin.ear.WebModulebaf4ce95905919b2
    org.apache.maven.plugin.ear.output.AbstractFileNameMappingf12c2b7f23ded246
    org.apache.maven.plugin.ear.output.FileNameMappingFactory0198bedfd2a473fc
    org.apache.maven.plugin.ear.output.StandardFileNameMappinge2aa919de9efce99
    org.apache.maven.plugin.ear.util.ArtifactRepository85346cb6c6033c61
    org.apache.maven.plugin.ear.util.ArtifactTypeMappingService70ddfb2bd6a50795
    org.apache.maven.plugin.ear.util.EarMavenArchiver4f6c798268468ba8
    org.apache.maven.plugin.ear.util.JavaEEVersione687eda659f060ae
    org.apache.maven.plugin.install.AbstractInstallMojo9d4537af7cbf672a
    org.apache.maven.plugin.install.InstallMojob0c80c2fedd3661f
    org.apache.maven.plugin.internal.DefaultLegacySupporta649e273a0fe5fff
    org.apache.maven.plugin.internal.DefaultMavenPluginManager9e2c8c33b385ce70
    org.apache.maven.plugin.internal.DefaultPluginDependenciesResolverd0dc2db3104d1b87
    org.apache.maven.plugin.internal.DefaultPluginDependenciesResolver.GraphLoggerb0f5c7ce0f46129f
    org.apache.maven.plugin.internal.PlexusUtilsInjector98772aa58f03bf32
    org.apache.maven.plugin.internal.ValidatingConfigurationListener7c482fd253b4a28f
    org.apache.maven.plugin.internal.WagonExcluderf1cb28aac2a204e7
    org.apache.maven.plugin.jar.AbstractJarMojo96e3fc925c2f6e8d
    org.apache.maven.plugin.jar.JarMojo13cb105b902b63a6
    org.apache.maven.plugin.logging.SystemStreamLog0d4e49faace3b532
    org.apache.maven.plugin.prefix.internal.DefaultPluginPrefixResolverbc3de5287b6117d0
    org.apache.maven.plugin.resources.ResourcesMojo4ea33ec81ff2db0e
    org.apache.maven.plugin.resources.TestResourcesMojo293cd1797c6742fb
    org.apache.maven.plugin.surefire.AbstractSurefireMojoec6ff84d6f425979
    org.apache.maven.plugin.surefire.Summary186857283283a526
    org.apache.maven.plugin.surefire.SurefireDependencyResolverc943baf5aae1d0f9
    org.apache.maven.plugin.surefire.SurefireHelper9a21e5425b57d20a
    org.apache.maven.plugin.surefire.SurefirePlugin248e5a6e95a2a662
    org.apache.maven.plugin.surefire.SurefireProperties9647cc3d29fdef5a
    org.apache.maven.plugin.surefire.booterclient.ChecksumCalculator5d9b8b5834d28f80
    org.apache.maven.plugin.surefire.log.api.NullConsoleLogger9e19e8c6ec7e2af1
    org.apache.maven.plugin.surefire.util.DirectoryScannerbf29eacb94f5e8d8
    org.apache.maven.plugin.surefire.util.SpecificFileFilter8e33620a3d4b0b39
    org.apache.maven.plugin.version.DefaultPluginVersionRequest5ac18e8bae9da446
    org.apache.maven.plugin.version.internal.DefaultPluginVersionResolver218653f0ff040816
    org.apache.maven.plugin.version.internal.DefaultPluginVersionResolver.Key49af9bd0cb2dc1a8
    org.apache.maven.plugin.version.internal.DefaultPluginVersionResolver.Versionse7e40bb05f9e964f
    org.apache.maven.plugin.version.internal.DefaultPluginVersionResult1b09eb59a47048e8
    org.apache.maven.plugin.war.AbstractWarMojo79127c861cc86a11
    org.apache.maven.plugin.war.AbstractWarMojo.DefaultWarPackagingContextaa857f0d1621ffca
    org.apache.maven.plugin.war.Overlayfd3a232adcd9b8f2
    org.apache.maven.plugin.war.WarMojo8f0af8fc2770a4f7
    org.apache.maven.plugin.war.overlay.OverlayManager6a4130fc9c37ef36
    org.apache.maven.plugin.war.packaging.AbstractWarPackagingTask90f0fd4b4a528fd7
    org.apache.maven.plugin.war.packaging.AbstractWarPackagingTask.17f06a1373d6301cb
    org.apache.maven.plugin.war.packaging.ArtifactsPackagingTask926eb92648505b0c
    org.apache.maven.plugin.war.packaging.ClassesPackagingTaskb6f19589e472d7cc
    org.apache.maven.plugin.war.packaging.WarProjectPackagingTaskf7cfc6f214ccd188
    org.apache.maven.plugin.war.util.DependencyInfoe0dd241e59735f3a
    org.apache.maven.plugin.war.util.MappingUtils247290610cb4c541
    org.apache.maven.plugin.war.util.PathSet9c8a725583872a1d
    org.apache.maven.plugin.war.util.WarUtils072c76638b6ebea6
    org.apache.maven.plugin.war.util.WebappStructuree2b6943cd45dbd6f
    org.apache.maven.plugin.war.util.WebappStructureSerializer16ce19c0a2d6f437
    org.apache.maven.plugins.site.AbstractSiteMojo9c2cad7ee5f99d3e
    org.apache.maven.plugins.site.descriptor.AbstractSiteDescriptorMojo523bf72c44a2ec06
    org.apache.maven.plugins.site.render.AbstractSiteRenderingMojo373d7312c588ab8a
    org.apache.maven.plugins.site.render.CategorySummaryDocumentRendererbe39ae913b240b17
    org.apache.maven.plugins.site.render.ReportDocumentRenderer1b1ede1b7798b865
    org.apache.maven.plugins.site.render.ReportDocumentRenderer.MultiPageSinkFactoryb8e1e316f037cb53
    org.apache.maven.plugins.site.render.SiteMojo966a8f500b4b78d1
    org.apache.maven.project.DefaultDependencyResolutionRequest3f76895c936ac901
    org.apache.maven.project.DefaultDependencyResolutionResult80c70ab08122b7b9
    org.apache.maven.project.DefaultMavenProjectBuilder907b1aaad445e135
    org.apache.maven.project.DefaultMavenProjectHelper16785317153d48eb
    org.apache.maven.project.DefaultModelBuildingListener5289b18115537217
    org.apache.maven.project.DefaultProjectBuilder5d4d6db14dafa835
    org.apache.maven.project.DefaultProjectBuilder.1d5e06b4c2a925ef8
    org.apache.maven.project.DefaultProjectBuilder.InterimResult135f4c0851177af0
    org.apache.maven.project.DefaultProjectBuilder.InternalConfigfaace54ed7faefc6
    org.apache.maven.project.DefaultProjectBuildingHelpera76d41da388fc82c
    org.apache.maven.project.DefaultProjectBuildingRequestc00ab39911a15c13
    org.apache.maven.project.DefaultProjectBuildingResult7f3552100197ff28
    org.apache.maven.project.DefaultProjectDependenciesResolver9ff892847e4d30f0
    org.apache.maven.project.DefaultProjectDependenciesResolver.GraphLoggerff75e036460daa1d
    org.apache.maven.project.DefaultProjectRealmCacheaca5487af05d2832
    org.apache.maven.project.DependencyResolutionExceptionf9204957da94c46b
    org.apache.maven.project.ExtensionDescriptor3c3d37b531b4aeec
    org.apache.maven.project.ExtensionDescriptorBuildereef9800e07662eb4
    org.apache.maven.project.MavenProjectc2c37269fdd4e714
    org.apache.maven.project.MavenProjecte278c13fea0cfd3d
    org.apache.maven.project.ProjectBuildingRequest.RepositoryMerging0520415edfbbb44b
    org.apache.maven.project.ProjectModelResolverfaf8e235fbb93e8e
    org.apache.maven.project.ProjectRealmCache.CacheRecord6587ce8f4b8cda0d
    org.apache.maven.project.ProjectSorter8a8eb76e987f39d1
    org.apache.maven.project.ReactorModelCached5ed964a9d4a6ac6
    org.apache.maven.project.ReactorModelCache.CacheKeyd3096b88b82843b0
    org.apache.maven.project.ReactorModelPool306d9de30c04c141
    org.apache.maven.project.ReactorModelPool.CacheKeyd8a20dfc073f7afe
    org.apache.maven.project.artifact.DefaultMavenMetadataCache7f26ec3fe200ae87
    org.apache.maven.project.artifact.DefaultMetadataSourcea4a55364e6758833
    org.apache.maven.project.artifact.DefaultProjectArtifactsCache26ce32bbf6830cfb
    org.apache.maven.project.artifact.DefaultProjectArtifactsCache.CacheKeyf3c2ceec143debe5
    org.apache.maven.project.artifact.MavenMetadataSource4dc38476d6d5b94a
    org.apache.maven.project.artifact.ProjectArtifactMetadatafe1ce563b869735a
    org.apache.maven.project.artifact.ProjectArtifactsCache.CacheRecord353f88da7af54c74
    org.apache.maven.properties.internal.EnvironmentUtils2628ab9215387f81
    org.apache.maven.properties.internal.SystemPropertiesd4064fbbc1f63bdb
    org.apache.maven.reporting.exec.DefaultMavenPluginManagerHelpere6cdad14f6fcb893
    org.apache.maven.reporting.exec.DefaultMavenReportExecutore373e2a2993b9921
    org.apache.maven.reporting.exec.DefaultMavenReportExecutor.GoalWithConf336c5eb62ad9d519
    org.apache.maven.reporting.exec.MavenReportExecution53db797021677a1c
    org.apache.maven.reporting.exec.MavenReportExecutorRequest4634a69f56666a8c
    org.apache.maven.reporting.exec.ReportPlugin9d5a6289ab36a93d
    org.apache.maven.repository.DefaultMirrorSelector8a65b90f6aad901a
    org.apache.maven.repository.internal.ArtifactDescriptorReaderDelegate7e70e08338ec1aca
    org.apache.maven.repository.internal.ArtifactDescriptorUtils9d1e3ddbbd2f7b14
    org.apache.maven.repository.internal.DefaultArtifactDescriptorReader569fc18cc6af4996
    org.apache.maven.repository.internal.DefaultModelCache3f365bd3e7e56178
    org.apache.maven.repository.internal.DefaultModelCache.Key64612d28a095c9ef
    org.apache.maven.repository.internal.DefaultModelResolver793b3762523d2abc
    org.apache.maven.repository.internal.DefaultVersionRangeResolver9f1cb33d90a500ad
    org.apache.maven.repository.internal.DefaultVersionResolver2befff7e2a41bfe0
    org.apache.maven.repository.internal.DefaultVersionResolver.Key943b66adfe731778
    org.apache.maven.repository.internal.DefaultVersionResolver.Record2dd759bd6d8c4266
    org.apache.maven.repository.internal.DefaultVersionResolver.VersionInfo96c5e32cd09a2755
    org.apache.maven.repository.internal.LocalSnapshotMetadataa0ce1645d5a77f25
    org.apache.maven.repository.internal.LocalSnapshotMetadataGenerator0cc88bcd5c18ce74
    org.apache.maven.repository.internal.MavenMetadatad17906f0d50e9b5c
    org.apache.maven.repository.internal.MavenRepositorySystemUtils2b9b02d890c263cd
    org.apache.maven.repository.internal.SnapshotMetadataGeneratorFactoryb077989198dfaff0
    org.apache.maven.repository.internal.VersionsMetadatac4b7d8473d623dec
    org.apache.maven.repository.internal.VersionsMetadataGenerator5dd0193a4f5f9f5d
    org.apache.maven.repository.internal.VersionsMetadataGeneratorFactory6242b9178c7f3c1e
    org.apache.maven.repository.legacy.DefaultUpdateCheckManagerbddad9088260e069
    org.apache.maven.repository.legacy.DefaultWagonManager31c95e8342fd50ca
    org.apache.maven.repository.legacy.LegacyRepositorySystem1aaf466637035e35
    org.apache.maven.repository.legacy.metadata.AbstractArtifactMetadata6561371c2901224d
    org.apache.maven.repository.legacy.repository.DefaultArtifactRepositoryFactory9062587906e7d134
    org.apache.maven.repository.legacy.resolver.DefaultLegacyArtifactCollectora40bd9ebe550c91f
    org.apache.maven.repository.legacy.resolver.conflict.NearestConflictResolver32dd4fc55a60dd14
    org.apache.maven.rtinfo.internal.DefaultRuntimeInformationcc1edbb1cb3a69ab
    org.apache.maven.session.scope.internal.SessionScope894f2f95c1d4e66d
    org.apache.maven.session.scope.internal.SessionScope.11675c4960c2da569
    org.apache.maven.session.scope.internal.SessionScope.288e7382ed876d967
    org.apache.maven.session.scope.internal.SessionScope.Memento05d751a1ab9a6e51
    org.apache.maven.session.scope.internal.SessionScope.ScopeState1da870a44df3550f
    org.apache.maven.session.scope.internal.SessionScopeModule35e35490f42d1f39
    org.apache.maven.settings.IdentifiableBasee84b02a08dcdb5a7
    org.apache.maven.settings.Mirrorbb214fdcb93da0f8
    org.apache.maven.settings.Profile75438452d9233405
    org.apache.maven.settings.RuntimeInfo3069c92225166432
    org.apache.maven.settings.Server380bed3b5573ff46
    org.apache.maven.settings.Settings13e0cfa680a5d487
    org.apache.maven.settings.SettingsUtils3a4cf7f1c097e2fa
    org.apache.maven.settings.TrackableBaseb4c406ae420ab03b
    org.apache.maven.settings.building.DefaultSettingsBuilderd52ea4345555b7b2
    org.apache.maven.settings.building.DefaultSettingsBuilder.1c2baf10b09161c33
    org.apache.maven.settings.building.DefaultSettingsBuildingRequest7c3dee552d0a27b3
    org.apache.maven.settings.building.DefaultSettingsBuildingResultf4a6bb8335ec3fa7
    org.apache.maven.settings.building.DefaultSettingsProblemCollector8672d2edcfc211a2
    org.apache.maven.settings.building.SettingsProblem.Severitybf915ce36bfa9883
    org.apache.maven.settings.crypto.DefaultSettingsDecrypter0bc80e3fa18b5d6b
    org.apache.maven.settings.crypto.DefaultSettingsDecryptionRequestfd95806424bf28db
    org.apache.maven.settings.crypto.DefaultSettingsDecryptionResult5e8fbf71f400792e
    org.apache.maven.settings.io.DefaultSettingsReader3b64025e89111b6e
    org.apache.maven.settings.io.DefaultSettingsWritera49d25fbc5875e27
    org.apache.maven.settings.io.xpp3.SettingsXpp3Readere907a49a1fa055ae
    org.apache.maven.settings.io.xpp3.SettingsXpp3Reader.1f8a30db20a05c00b
    org.apache.maven.settings.io.xpp3.SettingsXpp3Writer2bb56d573e63ace8
    org.apache.maven.settings.merge.MavenSettingsMerger45c814df7f230f72
    org.apache.maven.settings.validation.DefaultSettingsValidatord7a0778b02f2b8df
    org.apache.maven.shared.artifact.filter.PatternExcludesArtifactFilterac6b91b7d37cbedb
    org.apache.maven.shared.artifact.filter.PatternIncludesArtifactFilter064523c90f1c4b65
    org.apache.maven.shared.dependency.graph.filter.ArtifactDependencyNodeFilterd0f82d5ab2ac3e0f
    org.apache.maven.shared.dependency.graph.internal.DefaultDependencyGraphBuilder254fd652478825f3
    org.apache.maven.shared.dependency.graph.internal.DefaultDependencyNode4878a23fac194475
    org.apache.maven.shared.dependency.graph.traversal.FilteringDependencyNodeVisitor41fac8a7c3659f21
    org.apache.maven.shared.filtering.AbstractMavenFilteringRequestbaae422bbd3c9551
    org.apache.maven.shared.filtering.DefaultMavenFileFilter6dbd193a2228d2ee
    org.apache.maven.shared.filtering.DefaultMavenFileFilter8da6fb81cab363dd
    org.apache.maven.shared.filtering.DefaultMavenFileFilter.1e3566494266e31dd
    org.apache.maven.shared.filtering.DefaultMavenFileFilter.2fafd35ef5e15886e
    org.apache.maven.shared.filtering.DefaultMavenFileFilter.3c054362a6fe6a87d
    org.apache.maven.shared.filtering.DefaultMavenFileFilter.4a7bed75da6be1879
    org.apache.maven.shared.filtering.DefaultMavenFileFilter.Wrapper766a1228854527c0
    org.apache.maven.shared.filtering.DefaultMavenResourcesFiltering1a9868cc8cc032ea
    org.apache.maven.shared.filtering.DefaultMavenResourcesFiltering5ed1dd572743aacf
    org.apache.maven.shared.filtering.MavenResourcesExecutiond94df2db724d44c9
    org.apache.maven.shared.filtering.MavenResourcesExecution43f2a5235f130449
    org.apache.maven.shared.filtering.PropertiesEscapingBackSlashValueSource3e62d6c5a1c65f02
    org.apache.maven.shared.model.fileset.FileSet4f3d37f5d8b399c5
    org.apache.maven.shared.model.fileset.Mapper5ed0cf0893103af2
    org.apache.maven.shared.model.fileset.SetBase88e4554b79b9264b
    org.apache.maven.shared.model.fileset.util.FileSetManager445fcba0ad24202f
    org.apache.maven.shared.transfer.artifact.DefaultArtifactCoordinate5cc798acf1ef643f
    org.apache.maven.shared.transfer.artifact.resolve.ArtifactResolverExceptioncf16e606a1f82c38
    org.apache.maven.shared.transfer.artifact.resolve.internal.DefaultArtifactResolver3206f88fce9c951d
    org.apache.maven.shared.transfer.artifact.resolve.internal.Invokere6434bb81c030846
    org.apache.maven.shared.transfer.artifact.resolve.internal.Maven31ArtifactResolvercaf119c3c1702bb6
    org.apache.maven.shared.transfer.artifact.resolve.internal.Maven31ArtifactResult89a6dc37eda1be7a
    org.apache.maven.shared.transfer.dependencies.resolve.DependencyResolverException2e91f0c976fde124
    org.apache.maven.shared.transfer.dependencies.resolve.internal.DefaultDependencyResolverab829e75967a7a87
    org.apache.maven.shared.transfer.dependencies.resolve.internal.Invoker854fed10c7b7650a
    org.apache.maven.shared.transfer.dependencies.resolve.internal.Maven31ArtifactResult3aa2a43870042030
    org.apache.maven.shared.transfer.dependencies.resolve.internal.Maven31DependencyResolver3ac17df47071f85c
    org.apache.maven.shared.transfer.dependencies.resolve.internal.Maven31DependencyResolver.1686656983f54e016
    org.apache.maven.shared.transfer.dependencies.resolve.internal.Maven31DependencyResolverException35f1a87372a37221
    org.apache.maven.shared.utils.StringUtilsb19fb801d90f8265
    org.apache.maven.shared.utils.logging.AnsiMessageBuilder189f070594b0090d
    org.apache.maven.shared.utils.logging.AnsiMessageBuilderfc8b7bad9307d343
    org.apache.maven.shared.utils.logging.MessageUtils0a7503bfaf36e7ad
    org.apache.maven.shared.utils.logging.MessageUtils354e3d7a8bf69f48
    org.apache.maven.shared.utils.logging.MessageUtils.142a702753bd90cb8
    org.apache.maven.shared.utils.logging.Styledb669895128758c3
    org.apache.maven.shared.utils.logging.Style2b8cf22fc65c2178
    org.apache.maven.surefire.api.booter.BaseProviderFactory3859e78bd81eea39
    org.apache.maven.surefire.api.booter.BiPropertyd22c13c56d5b4593
    org.apache.maven.surefire.api.booter.Command3cd54166633f8826
    org.apache.maven.surefire.api.booter.Constantsdecb9de81c53dc77
    org.apache.maven.surefire.api.booter.DumpErrorSingleton0fb68b22eecee565
    org.apache.maven.surefire.api.booter.ForkedProcessEventTypefb813c97649a2cb4
    org.apache.maven.surefire.api.booter.ForkingReporterFactory43a09ed486105416
    org.apache.maven.surefire.api.booter.ForkingRunListener72fc487c27ef5b8d
    org.apache.maven.surefire.api.booter.MasterProcessCommand4638438d1f9cb2b7
    org.apache.maven.surefire.api.booter.Shutdown22c5299ca66a441d
    org.apache.maven.surefire.api.cli.CommandLineOption4a638448af60a346
    org.apache.maven.surefire.api.filter.NonAbstractClassFilterf9349f28027f7865
    org.apache.maven.surefire.api.provider.AbstractProvidera003e0bc84287c70
    org.apache.maven.surefire.api.report.ConsoleOutputCapture810c9018ba7d1ecc
    org.apache.maven.surefire.api.report.ConsoleOutputCapture.ForwardingPrintStream2c7c3dde8b37b8d9
    org.apache.maven.surefire.api.report.ConsoleOutputCapture.NullOutputStream5731848fa72c76c9
    org.apache.maven.surefire.api.report.ReporterConfigurationa4d0f02ee0a3ce3b
    org.apache.maven.surefire.api.report.RunMode99815bd2f7cf25b8
    org.apache.maven.surefire.api.report.SimpleReportEntrybe57bd60074f466f
    org.apache.maven.surefire.api.report.TestOutputReportEntryb7f0e6ae6773a3e5
    org.apache.maven.surefire.api.stream.AbstractStreamDecoderc51329e6fe95e03f
    org.apache.maven.surefire.api.stream.AbstractStreamDecoder.BufferedStream0e036d9195140045
    org.apache.maven.surefire.api.stream.AbstractStreamDecoder.Memento50fa22818cea4206
    org.apache.maven.surefire.api.stream.AbstractStreamDecoder.Segmentec7b2e9f3dc519b5
    org.apache.maven.surefire.api.stream.AbstractStreamDecoder.StreamReadStatusb28e22fff7af7760
    org.apache.maven.surefire.api.stream.AbstractStreamEncoder5b9d2cab05438b39
    org.apache.maven.surefire.api.stream.SegmentTypea352bcb443bb6539
    org.apache.maven.surefire.api.suite.RunResult14b135b9dcad68f4
    org.apache.maven.surefire.api.testset.DirectoryScannerParameters011c1405154cf543
    org.apache.maven.surefire.api.testset.IncludedExcludedPatternse9dcd696bf90972f
    org.apache.maven.surefire.api.testset.ResolvedTest89f52bebbeb73147
    org.apache.maven.surefire.api.testset.ResolvedTest.ClassMatcherc5f953b9f15d7ab4
    org.apache.maven.surefire.api.testset.ResolvedTest.MethodMatcher7b60e64bb228414b
    org.apache.maven.surefire.api.testset.ResolvedTest.Type2a3fe66966797e51
    org.apache.maven.surefire.api.testset.RunOrderParameters54e3b7abf0f0a29a
    org.apache.maven.surefire.api.testset.TestArtifactInfo534706d1cf843371
    org.apache.maven.surefire.api.testset.TestListResolverdf95312288764ee2
    org.apache.maven.surefire.api.testset.TestRequestc693581994b610fb
    org.apache.maven.surefire.api.util.CloseableIterator1bb59460a90e1562
    org.apache.maven.surefire.api.util.DefaultRunOrderCalculator2be55f855ffc9c23
    org.apache.maven.surefire.api.util.DefaultScanResult3abe973f1a2038a4
    org.apache.maven.surefire.api.util.ReflectionUtils463b61419dafb4bc
    org.apache.maven.surefire.api.util.RunOrdera5c43ed7ff239d28
    org.apache.maven.surefire.api.util.TestsToRun1a59fa62362c2dd4
    org.apache.maven.surefire.api.util.TestsToRun.ClassesIterator3054f1187d144893
    org.apache.maven.surefire.api.util.internal.AbstractNoninterruptibleReadableChannelb76efd5ee4f6a78a
    org.apache.maven.surefire.api.util.internal.AbstractNoninterruptibleWritableChannel7b40a9206100f626
    org.apache.maven.surefire.api.util.internal.Channelsa28ebb2dc3d003c6
    org.apache.maven.surefire.api.util.internal.Channels.31911457c5208109a
    org.apache.maven.surefire.api.util.internal.Channels.461df49d28956b732
    org.apache.maven.surefire.api.util.internal.ClassMethod831eee1f29d6b004
    org.apache.maven.surefire.api.util.internal.DaemonThreadFactory4065ee5e2ad99385
    org.apache.maven.surefire.api.util.internal.DaemonThreadFactory.NamedThreadFactory0dc63f2f250c8f58
    org.apache.maven.surefire.api.util.internal.DumpFileUtils260268350116ea1a
    org.apache.maven.surefire.api.util.internal.ImmutableMapc8d76b0bb433e1e6
    org.apache.maven.surefire.api.util.internal.ImmutableMap.Node61855d8450e86cb5
    org.apache.maven.surefire.api.util.internal.ObjectUtilsd0584b88701e9b97
    org.apache.maven.surefire.api.util.internal.TestClassMethodNameUtilsa01f540094a55e8c
    org.apache.maven.surefire.booter.AbstractPathConfiguration2ad3d057ec281500
    org.apache.maven.surefire.booter.BooterDeserializera2a1a3132d868a74
    org.apache.maven.surefire.booter.ClassLoaderConfiguration5bafac5e09ac0782
    org.apache.maven.surefire.booter.Classpath81f738f937cf4b38
    org.apache.maven.surefire.booter.ClasspathConfigurationb651758fedc3de2d
    org.apache.maven.surefire.booter.CommandReader440cf8805d3444be
    org.apache.maven.surefire.booter.CommandReader.16e995a711f46e676
    org.apache.maven.surefire.booter.CommandReader.CommandRunnable7f7bfee61ebca85e
    org.apache.maven.surefire.booter.ForkedBooterff24aeec916b680b
    org.apache.maven.surefire.booter.ForkedBooter.173179ebb6b41b643
    org.apache.maven.surefire.booter.ForkedBooter.3c51baabea2b75554
    org.apache.maven.surefire.booter.ForkedBooter.468ca1df4a9ada348
    org.apache.maven.surefire.booter.ForkedBooter.608fe853c879dd1a6
    org.apache.maven.surefire.booter.ForkedBooter.78cca77fe0fd3c98d
    org.apache.maven.surefire.booter.ForkedBooter.8779c6068c1dac1db
    org.apache.maven.surefire.booter.ForkedBooter.PingScheduler6e83f53202050979
    org.apache.maven.surefire.booter.ForkedNodeArge055a24d27c554f3
    org.apache.maven.surefire.booter.PpidChecker921ca312a6f63114
    org.apache.maven.surefire.booter.ProcessCheckerType9c8497621409bb1e
    org.apache.maven.surefire.booter.PropertiesWrapperc4362cb430c125af
    org.apache.maven.surefire.booter.ProviderConfiguration84eb716577efc3a7
    org.apache.maven.surefire.booter.StartupConfigurationf457135a627728a6
    org.apache.maven.surefire.booter.SystemPropertyManager0446c7c116836016
    org.apache.maven.surefire.booter.TypeEncodedValue1b039936542eee72
    org.apache.maven.surefire.booter.spi.AbstractMasterProcessChannelProcessorFactoryc30b5b062f066468
    org.apache.maven.surefire.booter.spi.AbstractMasterProcessChannelProcessorFactory.1644e111f23817fd3
    org.apache.maven.surefire.booter.spi.AbstractMasterProcessChannelProcessorFactory.247b08c480603fa8a
    org.apache.maven.surefire.booter.spi.CommandChannelDecoder65f2965c86411193
    org.apache.maven.surefire.booter.spi.EventChannelEncoder114071f00780f71e
    org.apache.maven.surefire.booter.spi.EventChannelEncoder.StackTracee7231bc2c7014c40
    org.apache.maven.surefire.booter.spi.LegacyMasterProcessChannelProcessorFactoryb54085754461a0d1
    org.apache.maven.surefire.booter.spi.SurefireMasterProcessChannelProcessorFactory132a213649249d64
    org.apache.maven.surefire.booter.stream.CommandDecoder0d40efcc428f82e2
    org.apache.maven.surefire.booter.stream.CommandDecoder.19d88d04fa41adab4
    org.apache.maven.surefire.booter.stream.EventEncoder4bdbe84daf58c435
    org.apache.maven.surefire.common.junit3.JUnit3TestCheckerbbad74a9945614a4
    org.apache.maven.surefire.common.junit4.JUnit4ProviderUtilfa2afc137d4ba7b3
    org.apache.maven.surefire.common.junit4.JUnit4Reflector23b83cd8942b7f95
    org.apache.maven.surefire.common.junit4.JUnit4RunListenerd8d5e5130dcf4b9b
    org.apache.maven.surefire.common.junit4.JUnit4RunListenerFactoryccfd1352f097d7b8
    org.apache.maven.surefire.common.junit4.JUnit4TestCheckerf6cf831ca6699119
    org.apache.maven.surefire.common.junit4.JUnitTestFailureListener03f07d8828d7aca4
    org.apache.maven.surefire.common.junit4.Notifiera943b086c230616e
    org.apache.maven.surefire.junit4.JUnit4Provider5d773610b092faec
    org.apache.maven.surefire.junit4.JUnit4Provider.1e7b4bc1546ba10b9
    org.apache.maven.surefire.report.ClassMethodIndexer8b31a053539323b7
    org.apache.maven.surefire.shared.lang3.JavaVersion4e21c3be19560aac
    org.apache.maven.surefire.shared.lang3.SystemUtilse5eafc9ce14dcbec
    org.apache.maven.surefire.shared.lang3.math.NumberUtils11e46630af73f131
    org.apache.maven.surefire.shared.utils.StringUtilsabd8480c7152bf46
    org.apache.maven.surefire.shared.utils.cli.ShutdownHookUtils011b23cd829ec86c
    org.apache.maven.surefire.suite.RunResult4f4ef8baf9a9eaed
    org.apache.maven.surefire.util.DefaultScanResult61b36318792d6986
    org.apache.maven.toolchain.DefaultToolchainManagerd3bc8ab79d9d2149
    org.apache.maven.toolchain.building.DefaultToolchainsBuilder5beed1d4ecfc183b
    org.apache.maven.toolchain.building.DefaultToolchainsBuilder.18c1240fa57fc6fe1
    org.apache.maven.toolchain.building.DefaultToolchainsBuildingRequest14074be7934bc5af
    org.apache.maven.toolchain.building.DefaultToolchainsBuildingResult1562e641f20c5203
    org.apache.maven.toolchain.io.DefaultToolchainsReader02afdf4f944e0788
    org.apache.maven.toolchain.io.DefaultToolchainsWriter562f61ad476a3603
    org.apache.maven.toolchain.merge.MavenToolchainMergerddb2d24277429787
    org.apache.maven.toolchain.model.PersistedToolchains455ea68a131835be
    org.apache.maven.toolchain.model.ToolchainModeld8c4444fcd9e1ee9
    org.apache.maven.toolchain.model.TrackableBase18fbbff8b571c756
    org.apache.maven.toolchain.model.io.xpp3.MavenToolchainsXpp3Reader29150b5b4962cdf3
    org.apache.maven.toolchain.model.io.xpp3.MavenToolchainsXpp3Reader.1917b5cda2c479740
    org.apache.maven.toolchain.model.io.xpp3.MavenToolchainsXpp3Writer3d28b2a599a785b4
    org.apache.maven.wagon.AbstractWagon5ae9397f8e601cb1
    org.apache.maven.wagon.InputDatafcd10bc3d147fbdc
    org.apache.maven.wagon.LazyFileOutputStreama7feec53fae87976
    org.apache.maven.wagon.PathUtils64ce8de8c8c358f9
    org.apache.maven.wagon.ResourceDoesNotExistException94c7c1a08ee61096
    org.apache.maven.wagon.StreamWagonc868d0804a14d226
    org.apache.maven.wagon.WagonException29cfde06e058bf34
    org.apache.maven.wagon.authentication.AuthenticationInfode871596e7d5a0da
    org.apache.maven.wagon.events.SessionEventd43f3ca1f620ba24
    org.apache.maven.wagon.events.SessionEventSupportcd0165b88f29289a
    org.apache.maven.wagon.events.TransferEvent72f0ea8b2c7f2420
    org.apache.maven.wagon.events.TransferEventSupport9e3874239004587a
    org.apache.maven.wagon.events.WagonEvent0a2f616d66499c1e
    org.apache.maven.wagon.observers.AbstractTransferListener5acab2b8e92e6b72
    org.apache.maven.wagon.providers.http.HttpWagon45b05fdab0b400e5
    org.apache.maven.wagon.providers.http.httpclient.Constsb37ce80ae2603069
    org.apache.maven.wagon.providers.http.httpclient.HttpHoste1124b9c5990dd4e
    org.apache.maven.wagon.providers.http.httpclient.HttpVersionb0a9eec935bc0f3b
    org.apache.maven.wagon.providers.http.httpclient.ProtocolVersiona0558c937b254010
    org.apache.maven.wagon.providers.http.httpclient.auth.AuthProtocolState9af8f086d721c2bd
    org.apache.maven.wagon.providers.http.httpclient.auth.AuthState613b2c45312dd01b
    org.apache.maven.wagon.providers.http.httpclient.client.config.RequestConfig6da264101c4b1a8f
    org.apache.maven.wagon.providers.http.httpclient.client.config.RequestConfig.Builder9650979f28dbf031
    org.apache.maven.wagon.providers.http.httpclient.client.entity.DeflateInputStreamFactory23dff7d4c131508b
    org.apache.maven.wagon.providers.http.httpclient.client.entity.GZIPInputStreamFactory329a65456e04df60
    org.apache.maven.wagon.providers.http.httpclient.client.methods.AbstractExecutionAwareRequest1cc4a232c9e1d1e3
    org.apache.maven.wagon.providers.http.httpclient.client.methods.HttpGet1b0023b610ae71fe
    org.apache.maven.wagon.providers.http.httpclient.client.methods.HttpHead8f302f57ae1cd002
    org.apache.maven.wagon.providers.http.httpclient.client.methods.HttpRequestBase4393762331dec4cb
    org.apache.maven.wagon.providers.http.httpclient.client.methods.HttpRequestWrappereaa09ece7af78e46
    org.apache.maven.wagon.providers.http.httpclient.client.methods.RequestBuilderdc65eda26d115dcd
    org.apache.maven.wagon.providers.http.httpclient.client.methods.RequestBuilder.InternalRequest160035fc7fd7bbf7
    org.apache.maven.wagon.providers.http.httpclient.client.protocol.HttpClientContext5d57d61f12b9af96
    org.apache.maven.wagon.providers.http.httpclient.client.protocol.RequestAcceptEncodinga5ca9d5c101404f1
    org.apache.maven.wagon.providers.http.httpclient.client.protocol.RequestAddCookiesc74f83cdcfc24db5
    org.apache.maven.wagon.providers.http.httpclient.client.protocol.RequestAuthCache5b5d1a101427c66a
    org.apache.maven.wagon.providers.http.httpclient.client.protocol.RequestClientConnControlfb3b8d2c173674d7
    org.apache.maven.wagon.providers.http.httpclient.client.protocol.RequestDefaultHeaders1437b5cbda30e735
    org.apache.maven.wagon.providers.http.httpclient.client.protocol.RequestExpectContinue3626c21ecdf1249e
    org.apache.maven.wagon.providers.http.httpclient.client.protocol.ResponseContentEncodinga64a879887711218
    org.apache.maven.wagon.providers.http.httpclient.client.protocol.ResponseProcessCookies437191fca73ec0dc
    org.apache.maven.wagon.providers.http.httpclient.client.utils.DateUtils9e7df9c4fb4937a2
    org.apache.maven.wagon.providers.http.httpclient.client.utils.DateUtils.DateFormatHolder8ac56481f1fcb2b8
    org.apache.maven.wagon.providers.http.httpclient.client.utils.URIBuilderd603714633cd626e
    org.apache.maven.wagon.providers.http.httpclient.client.utils.URIUtils20623ae29e172d87
    org.apache.maven.wagon.providers.http.httpclient.client.utils.URIUtils.UriFlag9c2ef1b231ac41a3
    org.apache.maven.wagon.providers.http.httpclient.client.utils.URLEncodedUtilsf1bae19df4153f20
    org.apache.maven.wagon.providers.http.httpclient.config.ConnectionConfig535ad23c06cfd7e0
    org.apache.maven.wagon.providers.http.httpclient.config.ConnectionConfig.Builder4444443bf9416efb
    org.apache.maven.wagon.providers.http.httpclient.config.MessageConstraints2c48c4999c40f268
    org.apache.maven.wagon.providers.http.httpclient.config.MessageConstraints.Buildere6934329f6e9b61b
    org.apache.maven.wagon.providers.http.httpclient.config.Registry3da8e88d7eca0b37
    org.apache.maven.wagon.providers.http.httpclient.config.RegistryBuildercb6260fc7658c1e2
    org.apache.maven.wagon.providers.http.httpclient.config.SocketConfig8933fcd12fd385ea
    org.apache.maven.wagon.providers.http.httpclient.config.SocketConfig.Builder0d60c94fc72ff19d
    org.apache.maven.wagon.providers.http.httpclient.conn.EofSensorInputStreambf3531fdff74c16d
    org.apache.maven.wagon.providers.http.httpclient.conn.routing.BasicRouteDirector7495cbe12f83146a
    org.apache.maven.wagon.providers.http.httpclient.conn.routing.HttpRoute712720d530bcb541
    org.apache.maven.wagon.providers.http.httpclient.conn.routing.RouteInfo.LayerType9679af32838a4775
    org.apache.maven.wagon.providers.http.httpclient.conn.routing.RouteInfo.TunnelTypecde6d63c71f1e3b1
    org.apache.maven.wagon.providers.http.httpclient.conn.routing.RouteTracker1befbe3b7f9929e5
    org.apache.maven.wagon.providers.http.httpclient.conn.socket.PlainConnectionSocketFactorya0e7c5819160df32
    org.apache.maven.wagon.providers.http.httpclient.conn.ssl.AbstractVerifierae2130da140d654b
    org.apache.maven.wagon.providers.http.httpclient.conn.ssl.AllowAllHostnameVerifiere895e2bce74cc51b
    org.apache.maven.wagon.providers.http.httpclient.conn.ssl.BrowserCompatHostnameVerifierf489ed0b533d4982
    org.apache.maven.wagon.providers.http.httpclient.conn.ssl.DefaultHostnameVerifier23aed894ba68bdc8
    org.apache.maven.wagon.providers.http.httpclient.conn.ssl.SSLConnectionSocketFactory03b0b14db734c198
    org.apache.maven.wagon.providers.http.httpclient.conn.ssl.StrictHostnameVerifier20154d4828d64a0c
    org.apache.maven.wagon.providers.http.httpclient.conn.ssl.SubjectNamed178eb43f3a57b7e
    org.apache.maven.wagon.providers.http.httpclient.conn.util.DomainTypef391afee0b9e389a
    org.apache.maven.wagon.providers.http.httpclient.conn.util.InetAddressUtils5d086a034de0ef15
    org.apache.maven.wagon.providers.http.httpclient.conn.util.PublicSuffixList88c53717d10d4941
    org.apache.maven.wagon.providers.http.httpclient.conn.util.PublicSuffixListParser512bc658ef93c215
    org.apache.maven.wagon.providers.http.httpclient.conn.util.PublicSuffixMatcher9147c1ef1812a040
    org.apache.maven.wagon.providers.http.httpclient.conn.util.PublicSuffixMatcherLoader94ef0c59a65cc330
    org.apache.maven.wagon.providers.http.httpclient.cookie.CookieIdentityComparator251511210e320127
    org.apache.maven.wagon.providers.http.httpclient.cookie.CookieOrigincf31afd9aca3031b
    org.apache.maven.wagon.providers.http.httpclient.entity.AbstractHttpEntity2abb0c85beb0ed02
    org.apache.maven.wagon.providers.http.httpclient.entity.BasicHttpEntityb3fd14a4a7a74088
    org.apache.maven.wagon.providers.http.httpclient.entity.HttpEntityWrapperdf810fc76492f7c7
    org.apache.maven.wagon.providers.http.httpclient.impl.BHttpConnectionBased1ad5f5983c0aed2
    org.apache.maven.wagon.providers.http.httpclient.impl.DefaultBHttpClientConnection2f86c147656d72e9
    org.apache.maven.wagon.providers.http.httpclient.impl.DefaultConnectionReuseStrategyfeefa5ecbec29e87
    org.apache.maven.wagon.providers.http.httpclient.impl.DefaultHttpResponseFactory5eddd3ad3da9adc5
    org.apache.maven.wagon.providers.http.httpclient.impl.EnglishReasonPhraseCatalog5fc3f6b20ee3f95c
    org.apache.maven.wagon.providers.http.httpclient.impl.HttpConnectionMetricsImpl5abacd6f572623be
    org.apache.maven.wagon.providers.http.httpclient.impl.auth.BasicSchemeFactory08fbe8c77088e427
    org.apache.maven.wagon.providers.http.httpclient.impl.auth.DigestSchemeFactory26e76c1fd24f9782
    org.apache.maven.wagon.providers.http.httpclient.impl.auth.HttpAuthenticatore2cd1c1de47e0ae6
    org.apache.maven.wagon.providers.http.httpclient.impl.auth.HttpAuthenticator.1c8104f9a2856cf9d
    org.apache.maven.wagon.providers.http.httpclient.impl.auth.NTLMSchemeFactorya5126b58dd673dc0
    org.apache.maven.wagon.providers.http.httpclient.impl.client.AuthenticationStrategyImpl0c976bbe47b9936f
    org.apache.maven.wagon.providers.http.httpclient.impl.client.BasicAuthCache743042a881d39ada
    org.apache.maven.wagon.providers.http.httpclient.impl.client.BasicCookieStore2060285068053086
    org.apache.maven.wagon.providers.http.httpclient.impl.client.BasicCredentialsProvider6b9faf4216c42f06
    org.apache.maven.wagon.providers.http.httpclient.impl.client.CloseableHttpClient74f982211ffa4ba6
    org.apache.maven.wagon.providers.http.httpclient.impl.client.CookieSpecRegistriese54de970f042a0aa
    org.apache.maven.wagon.providers.http.httpclient.impl.client.DefaultClientConnectionReuseStrategyec14ce3a62be2acf
    org.apache.maven.wagon.providers.http.httpclient.impl.client.DefaultConnectionKeepAliveStrategy85fa57787443f5e1
    org.apache.maven.wagon.providers.http.httpclient.impl.client.DefaultHttpRequestRetryHandler3a05bc4bc6d7a47d
    org.apache.maven.wagon.providers.http.httpclient.impl.client.DefaultRedirectStrategyd839a55459f5ad65
    org.apache.maven.wagon.providers.http.httpclient.impl.client.HttpClientBuilder7e824048d1e5bb6e
    org.apache.maven.wagon.providers.http.httpclient.impl.client.HttpClientBuilder.264a8cf9cd24625af
    org.apache.maven.wagon.providers.http.httpclient.impl.client.InternalHttpClientf26739b61c4d3a38
    org.apache.maven.wagon.providers.http.httpclient.impl.client.NoopUserTokenHandler0a4794c75ae0d605
    org.apache.maven.wagon.providers.http.httpclient.impl.client.ProxyAuthenticationStrategyde5d7301454120f9
    org.apache.maven.wagon.providers.http.httpclient.impl.client.RedirectLocations7f72cf1cd642f9d6
    org.apache.maven.wagon.providers.http.httpclient.impl.client.StandardHttpRequestRetryHandlerb8f89e152c95807c
    org.apache.maven.wagon.providers.http.httpclient.impl.client.SystemDefaultCredentialsProvider8d09482f3b1b9416
    org.apache.maven.wagon.providers.http.httpclient.impl.client.TargetAuthenticationStrategyaa2a1b792c8da7fc
    org.apache.maven.wagon.providers.http.httpclient.impl.conn.CPool93d6da2f2d344728
    org.apache.maven.wagon.providers.http.httpclient.impl.conn.CPoolEntry2a9681728d46891c
    org.apache.maven.wagon.providers.http.httpclient.impl.conn.CPoolProxy4539f61f4bf56cc2
    org.apache.maven.wagon.providers.http.httpclient.impl.conn.DefaultHttpClientConnectionOperator0545502c3279c3cc
    org.apache.maven.wagon.providers.http.httpclient.impl.conn.DefaultHttpResponseParser6438f7b496d34123
    org.apache.maven.wagon.providers.http.httpclient.impl.conn.DefaultHttpResponseParserFactory280ebebaf0f37f91
    org.apache.maven.wagon.providers.http.httpclient.impl.conn.DefaultManagedHttpClientConnectionb6b368a743731736
    org.apache.maven.wagon.providers.http.httpclient.impl.conn.DefaultRoutePlanner9adda2c1541cb484
    org.apache.maven.wagon.providers.http.httpclient.impl.conn.DefaultSchemePortResolver7a5efb4d9ce1059b
    org.apache.maven.wagon.providers.http.httpclient.impl.conn.LoggingManagedHttpClientConnection4493417d7e3a237e
    org.apache.maven.wagon.providers.http.httpclient.impl.conn.ManagedHttpClientConnectionFactory8e243e72a8805770
    org.apache.maven.wagon.providers.http.httpclient.impl.conn.PoolingHttpClientConnectionManagera09d1d8ef4158d96
    org.apache.maven.wagon.providers.http.httpclient.impl.conn.PoolingHttpClientConnectionManager.173e723ca7fb6e098
    org.apache.maven.wagon.providers.http.httpclient.impl.conn.PoolingHttpClientConnectionManager.ConfigDatae51692fb32b2855a
    org.apache.maven.wagon.providers.http.httpclient.impl.conn.PoolingHttpClientConnectionManager.InternalConnectionFactory42038d6389f2dd06
    org.apache.maven.wagon.providers.http.httpclient.impl.conn.SystemDefaultDnsResolver9275dfa34a330ff7
    org.apache.maven.wagon.providers.http.httpclient.impl.conn.SystemDefaultRoutePlanner045dc9387752120e
    org.apache.maven.wagon.providers.http.httpclient.impl.conn.SystemDefaultRoutePlanner.176f062a4895046eb
    org.apache.maven.wagon.providers.http.httpclient.impl.conn.Wire9c9019b195aa8183
    org.apache.maven.wagon.providers.http.httpclient.impl.cookie.AbstractCookieAttributeHandler2ac3e932388319b9
    org.apache.maven.wagon.providers.http.httpclient.impl.cookie.AbstractCookieSpec9c2c66d45ef397c6
    org.apache.maven.wagon.providers.http.httpclient.impl.cookie.BasicCommentHandler72b2712ccf4883a9
    org.apache.maven.wagon.providers.http.httpclient.impl.cookie.BasicDomainHandler3d2fbf550b6dce03
    org.apache.maven.wagon.providers.http.httpclient.impl.cookie.BasicExpiresHandlera85c01bec415d55a
    org.apache.maven.wagon.providers.http.httpclient.impl.cookie.BasicMaxAgeHandler3c8169415abf44b6
    org.apache.maven.wagon.providers.http.httpclient.impl.cookie.BasicPathHandler279280c258e835f9
    org.apache.maven.wagon.providers.http.httpclient.impl.cookie.BasicSecureHandler66f2b392640ee089
    org.apache.maven.wagon.providers.http.httpclient.impl.cookie.CookieSpecBase1f9e4e4860a43e10
    org.apache.maven.wagon.providers.http.httpclient.impl.cookie.DefaultCookieSpec00d04cfe3800b297
    org.apache.maven.wagon.providers.http.httpclient.impl.cookie.DefaultCookieSpecProvidere3978ea7976b1728
    org.apache.maven.wagon.providers.http.httpclient.impl.cookie.DefaultCookieSpecProvider.CompatibilityLevelf8f0c58d8d502aa3
    org.apache.maven.wagon.providers.http.httpclient.impl.cookie.IgnoreSpecProvider4525a96689587646
    org.apache.maven.wagon.providers.http.httpclient.impl.cookie.NetscapeDraftSpeca9ab8cb57befc94e
    org.apache.maven.wagon.providers.http.httpclient.impl.cookie.NetscapeDraftSpecProvider6db145dd2aea27f8
    org.apache.maven.wagon.providers.http.httpclient.impl.cookie.PublicSuffixDomainFilter3fdd56641d3755bc
    org.apache.maven.wagon.providers.http.httpclient.impl.cookie.RFC2109DomainHandler1bccc1d60152e27b
    org.apache.maven.wagon.providers.http.httpclient.impl.cookie.RFC2109Spec713296e938046cdd
    org.apache.maven.wagon.providers.http.httpclient.impl.cookie.RFC2109VersionHandler8e414be10267da9a
    org.apache.maven.wagon.providers.http.httpclient.impl.cookie.RFC2965CommentUrlAttributeHandlerdf336238e09e9d52
    org.apache.maven.wagon.providers.http.httpclient.impl.cookie.RFC2965DiscardAttributeHandlerfbce62a166eeb9dc
    org.apache.maven.wagon.providers.http.httpclient.impl.cookie.RFC2965DomainAttributeHandler6c1ea8e67b3a20c6
    org.apache.maven.wagon.providers.http.httpclient.impl.cookie.RFC2965PortAttributeHandleraef46b16fc49a236
    org.apache.maven.wagon.providers.http.httpclient.impl.cookie.RFC2965Specbd29e1cf99ddf8df
    org.apache.maven.wagon.providers.http.httpclient.impl.cookie.RFC2965VersionAttributeHandlerb076fc5b33dbedb8
    org.apache.maven.wagon.providers.http.httpclient.impl.cookie.RFC6265CookieSpecProviderb89f030bff60e757
    org.apache.maven.wagon.providers.http.httpclient.impl.cookie.RFC6265CookieSpecProvider.CompatibilityLevel7b8cf617a205f110
    org.apache.maven.wagon.providers.http.httpclient.impl.entity.LaxContentLengthStrategyd9b1dc7c2b072ab9
    org.apache.maven.wagon.providers.http.httpclient.impl.entity.StrictContentLengthStrategy1fd307deadc56dfc
    org.apache.maven.wagon.providers.http.httpclient.impl.execchain.ConnectionHoldere4d1842928d05c04
    org.apache.maven.wagon.providers.http.httpclient.impl.execchain.HttpResponseProxy4169b60b48ef2996
    org.apache.maven.wagon.providers.http.httpclient.impl.execchain.MainClientExec8dfd913a3520c274
    org.apache.maven.wagon.providers.http.httpclient.impl.execchain.ProtocolExece71380158420814c
    org.apache.maven.wagon.providers.http.httpclient.impl.execchain.RedirectExec68a003df5a3868af
    org.apache.maven.wagon.providers.http.httpclient.impl.execchain.RequestEntityProxye33c77a4c6f99501
    org.apache.maven.wagon.providers.http.httpclient.impl.execchain.ResponseEntityProxy258c14e2f9900bc1
    org.apache.maven.wagon.providers.http.httpclient.impl.execchain.RetryExecdb48a26f5bbb103a
    org.apache.maven.wagon.providers.http.httpclient.impl.io.AbstractMessageParser92e668ebfc6d8aaa
    org.apache.maven.wagon.providers.http.httpclient.impl.io.AbstractMessageWriter49b183ca327abb5f
    org.apache.maven.wagon.providers.http.httpclient.impl.io.ChunkedInputStream53d86f20882399aa
    org.apache.maven.wagon.providers.http.httpclient.impl.io.ContentLengthInputStream8def5ad7047cfaee
    org.apache.maven.wagon.providers.http.httpclient.impl.io.DefaultHttpRequestWriter72ca02c98ccaf2e3
    org.apache.maven.wagon.providers.http.httpclient.impl.io.DefaultHttpRequestWriterFactoryd8895df57885c4f7
    org.apache.maven.wagon.providers.http.httpclient.impl.io.EmptyInputStreamce9425360817ce35
    org.apache.maven.wagon.providers.http.httpclient.impl.io.HttpTransportMetricsImpl14c4379e6643e8c9
    org.apache.maven.wagon.providers.http.httpclient.impl.io.SessionInputBufferImple2a86c6fd3ce8aea
    org.apache.maven.wagon.providers.http.httpclient.impl.io.SessionOutputBufferImple7e42f5f3b38bd12
    org.apache.maven.wagon.providers.http.httpclient.message.AbstractHttpMessageffd6c85394e0819f
    org.apache.maven.wagon.providers.http.httpclient.message.BasicHeader86f575a7f597cd8c
    org.apache.maven.wagon.providers.http.httpclient.message.BasicHeaderElement1784f15c719ee935
    org.apache.maven.wagon.providers.http.httpclient.message.BasicHeaderElementIteratore1b5cf0cb55bd089
    org.apache.maven.wagon.providers.http.httpclient.message.BasicHeaderIterator5ecf3e47521bc8d1
    org.apache.maven.wagon.providers.http.httpclient.message.BasicHeaderValueParserf19a7c27f0b7c170
    org.apache.maven.wagon.providers.http.httpclient.message.BasicHttpResponsedb29f25be4727165
    org.apache.maven.wagon.providers.http.httpclient.message.BasicLineFormatterfc9f1afa989b1148
    org.apache.maven.wagon.providers.http.httpclient.message.BasicLineParser65ab2537778f2427
    org.apache.maven.wagon.providers.http.httpclient.message.BasicListHeaderIterator8604cb54a35ad82e
    org.apache.maven.wagon.providers.http.httpclient.message.BasicNameValuePair86621cbff7ce69fd
    org.apache.maven.wagon.providers.http.httpclient.message.BasicRequestLine3d592cd9defecbe3
    org.apache.maven.wagon.providers.http.httpclient.message.BasicStatusLineaf541da3317c8c98
    org.apache.maven.wagon.providers.http.httpclient.message.BasicTokenIteratora20fa5a176b2c745
    org.apache.maven.wagon.providers.http.httpclient.message.BufferedHeader6329007479b60a03
    org.apache.maven.wagon.providers.http.httpclient.message.HeaderGroup323c4d1beef2c8f0
    org.apache.maven.wagon.providers.http.httpclient.message.ParserCursor6861e895b1d82ced
    org.apache.maven.wagon.providers.http.httpclient.message.TokenParser1d36fcdb8ebd78fb
    org.apache.maven.wagon.providers.http.httpclient.params.AbstractHttpParams6f55e576db585bb2
    org.apache.maven.wagon.providers.http.httpclient.params.BasicHttpParams9979d896835e32e8
    org.apache.maven.wagon.providers.http.httpclient.params.HttpProtocolParams4ab782763415fd6b
    org.apache.maven.wagon.providers.http.httpclient.pool.AbstractConnPool54b10f33c4117501
    org.apache.maven.wagon.providers.http.httpclient.pool.AbstractConnPool.1a94ad40467d01d44
    org.apache.maven.wagon.providers.http.httpclient.pool.AbstractConnPool.2a1e51c19dda2c649
    org.apache.maven.wagon.providers.http.httpclient.pool.PoolEntry31750b2abcf040b3
    org.apache.maven.wagon.providers.http.httpclient.pool.RouteSpecificPool3222ea71c11654d7
    org.apache.maven.wagon.providers.http.httpclient.protocol.BasicHttpContext8893900594796a22
    org.apache.maven.wagon.providers.http.httpclient.protocol.ChainBuilderc5fe5518b6e0d1ab
    org.apache.maven.wagon.providers.http.httpclient.protocol.HTTP7f5cf9193b63ada3
    org.apache.maven.wagon.providers.http.httpclient.protocol.HttpCoreContext5e33642e6bb1a7f2
    org.apache.maven.wagon.providers.http.httpclient.protocol.HttpProcessorBuilder8d52fe4c5deffa5d
    org.apache.maven.wagon.providers.http.httpclient.protocol.HttpRequestExecutorfbd884ef3972970a
    org.apache.maven.wagon.providers.http.httpclient.protocol.ImmutableHttpProcessord12202c0dcc1f3e6
    org.apache.maven.wagon.providers.http.httpclient.protocol.RequestContent079fd3f8aa99067b
    org.apache.maven.wagon.providers.http.httpclient.protocol.RequestTargetHost3902597983f466e2
    org.apache.maven.wagon.providers.http.httpclient.protocol.RequestUserAgent11e3d0be4c91b33b
    org.apache.maven.wagon.providers.http.httpclient.util.Argscebb1011ab142426
    org.apache.maven.wagon.providers.http.httpclient.util.Assertsa1e9b5a5f21546a0
    org.apache.maven.wagon.providers.http.httpclient.util.ByteArrayBuffer4fb78a0692151c82
    org.apache.maven.wagon.providers.http.httpclient.util.CharArrayBufferabf455a37f931b2e
    org.apache.maven.wagon.providers.http.httpclient.util.EntityUtils7aa68bcbe6769f64
    org.apache.maven.wagon.providers.http.httpclient.util.LangUtils253515c78e9a098a
    org.apache.maven.wagon.providers.http.httpclient.util.TextUtilsfad3b86198d62d8b
    org.apache.maven.wagon.providers.http.httpclient.util.VersionInfo1db136cd1155fb9f
    org.apache.maven.wagon.providers.http.wagon.shared.AbstractHttpClientWagona52d281688ee583f
    org.apache.maven.wagon.providers.http.wagon.shared.EncodingUtild4bcafebf236bce4
    org.apache.maven.wagon.providers.http.wagon.shared.HttpMessageUtilsb43ffc646c6b6a19
    org.apache.maven.wagon.providers.http.wagon.shared.WagonRedirectStrategy9e63775efe02b2da
    org.apache.maven.wagon.repository.Repository7c75eedbb607fc76
    org.apache.maven.wagon.repository.RepositoryPermissionsd47aae3f67c8a230
    org.apache.maven.wagon.resource.Resource4341e759de907edf
    org.apache.velocity.Templatefa63e5ea2eb85620
    org.apache.velocity.Templatec72326f66c085d1e
    org.apache.velocity.VelocityContexte6da42a16cd62ddf
    org.apache.velocity.VelocityContext8ed590292b87a588
    org.apache.velocity.app.VelocityEngine9c939265034e0ab2
    org.apache.velocity.app.VelocityEngine7dc6a8afabb6455c
    org.apache.velocity.app.event.EventCartridge777236b9cf217768
    org.apache.velocity.app.event.EventCartridgeded346c7951f1697
    org.apache.velocity.app.event.EventHandlerUtil5ac88b357fcf707c
    org.apache.velocity.app.event.EventHandlerUtil60cd1239c0b74c3e
    org.apache.velocity.app.event.IncludeEventHandler.IncludeEventExecutorb0d3546bba9f7c5a
    org.apache.velocity.app.event.InvalidReferenceEventHandler.InvalidGetMethodExecutored85d61c73ad3803
    org.apache.velocity.app.event.implement.IncludeRelativePath08e594a68c5a721c
    org.apache.velocity.context.AbstractContext2ab1e97d6fe26efe
    org.apache.velocity.context.AbstractContext7c2c19e800108a7b
    org.apache.velocity.context.ChainedInternalContextAdapter051b1acf72e73eb7
    org.apache.velocity.context.InternalContextAdapterImpl7718d6c7d6f01429
    org.apache.velocity.context.InternalContextAdapterImpla3711c583aba53c0
    org.apache.velocity.context.InternalContextBasec81a056da1a34611
    org.apache.velocity.context.InternalContextBase10fb0c7430dc4018
    org.apache.velocity.context.ProxyVMContextc44243aae69ea8e1
    org.apache.velocity.runtime.ParserConfigurationbcd56b6221db3c90
    org.apache.velocity.runtime.ParserPoolImpl8d6ac721acdee69a
    org.apache.velocity.runtime.ParserPoolImpl2a25b051a66adee1
    org.apache.velocity.runtime.RuntimeConstants.SpaceGobbling1008e6924d8f311e
    org.apache.velocity.runtime.RuntimeInstancef8e2f14c6655a562
    org.apache.velocity.runtime.RuntimeInstance8437dde488475ef2
    org.apache.velocity.runtime.VelocimacroFactory02e2fc8894633d0a
    org.apache.velocity.runtime.VelocimacroFactory1e9ea54492c3b0d1
    org.apache.velocity.runtime.VelocimacroManagerb53f57b557e7726b
    org.apache.velocity.runtime.VelocimacroManager01dfc0b62e0d84ab
    org.apache.velocity.runtime.VelocimacroManager.MacroEntry67376583db2bd002
    org.apache.velocity.runtime.VelocimacroManager.MacroEntry26d330eaf2fd31ac
    org.apache.velocity.runtime.directive.Block0dc2ea33bfdf1c8e
    org.apache.velocity.runtime.directive.Block7883cd8849aa4b9a
    org.apache.velocity.runtime.directive.Break9c4c04e7b7293d93
    org.apache.velocity.runtime.directive.Break0391c1b62491d5f3
    org.apache.velocity.runtime.directive.Defined6d0cfd9b55144fa
    org.apache.velocity.runtime.directive.Define2da211af6dc4adf2
    org.apache.velocity.runtime.directive.Directivee413e19099aebfd7
    org.apache.velocity.runtime.directive.Directive114c6db128f09cfd
    org.apache.velocity.runtime.directive.Evaluate50b97c5f74d236ca
    org.apache.velocity.runtime.directive.Evaluatef1de1a698437317b
    org.apache.velocity.runtime.directive.Foreach795e04f024e903bd
    org.apache.velocity.runtime.directive.Foreachf4216f28f33f1601
    org.apache.velocity.runtime.directive.ForeachScopef7ce50b2426b9f68
    org.apache.velocity.runtime.directive.ForeachScoped638aec353b474e0
    org.apache.velocity.runtime.directive.Include61a5a4d983938c4c
    org.apache.velocity.runtime.directive.Include38dbf0ece5fd3ed8
    org.apache.velocity.runtime.directive.InputBasefd6544ae6b149255
    org.apache.velocity.runtime.directive.InputBase7ab262413b0572f5
    org.apache.velocity.runtime.directive.Literal0ff6f981afc54578
    org.apache.velocity.runtime.directive.Macro042824fc869342bf
    org.apache.velocity.runtime.directive.Macro44425fcba4519651
    org.apache.velocity.runtime.directive.Macro.MacroArga252d6a716c1fbfc
    org.apache.velocity.runtime.directive.Parsec0394bac9889c494
    org.apache.velocity.runtime.directive.Parse73cd754f962b4f40
    org.apache.velocity.runtime.directive.RuntimeMacro14e1cfe11f4f825e
    org.apache.velocity.runtime.directive.RuntimeMacro11282b3ae9496214
    org.apache.velocity.runtime.directive.Scopef3423ca4953d5d82
    org.apache.velocity.runtime.directive.Scopedd64d33559d0c3b4
    org.apache.velocity.runtime.directive.Stop4a8d463f36f9ba3a
    org.apache.velocity.runtime.directive.Stop84d6bbe8168d4167
    org.apache.velocity.runtime.directive.Stop.146208084d16b60f9
    org.apache.velocity.runtime.directive.StopCommand13468231892e1528
    org.apache.velocity.runtime.directive.StopCommand025ac34415375a67
    org.apache.velocity.runtime.directive.VelocimacroProxycf4c3dee36bc22f4
    org.apache.velocity.runtime.directive.VelocimacroProxy42117ecd94da7939
    org.apache.velocity.runtime.log.HoldingLogChutec181404246279441
    org.apache.velocity.runtime.log.Log74188bfc85164ab1
    org.apache.velocity.runtime.log.LogDisplayWrapper7e09370e1f079722
    org.apache.velocity.runtime.log.LogManager90aed2b9bc96e92d
    org.apache.velocity.runtime.parser.JJTParserStateeccd0e168b93e244
    org.apache.velocity.runtime.parser.LogContext8bd2ab8c45781ea3
    org.apache.velocity.runtime.parser.LogContext.17793b8711118b163
    org.apache.velocity.runtime.parser.Parsere4801b5bb37f6031
    org.apache.velocity.runtime.parser.Parser8f391facff4e1764
    org.apache.velocity.runtime.parser.Parser.JJCalls0b5021c9bcbd0f07
    org.apache.velocity.runtime.parser.Parser.LookaheadSuccessfe7cf5de9342c88c
    org.apache.velocity.runtime.parser.ParserTokenManager5dc7921ce8a1bb3b
    org.apache.velocity.runtime.parser.ParserTokenManager.ParserState0ae5d229128b02d3
    org.apache.velocity.runtime.parser.StandardParser8eaabc4fd8395c5d
    org.apache.velocity.runtime.parser.StandardParser.JJCalls1cd79adce175f30b
    org.apache.velocity.runtime.parser.StandardParser.LookaheadSuccess217f6689d0bd148c
    org.apache.velocity.runtime.parser.StandardParserTokenManagerb513a058a5d25bce
    org.apache.velocity.runtime.parser.StandardParserTokenManager.ParserStatee58c59d922a2d1c0
    org.apache.velocity.runtime.parser.Token0f9d0729ac9acc9a
    org.apache.velocity.runtime.parser.Token035daceb00979634
    org.apache.velocity.runtime.parser.VelocityCharStream0fdd7275e5a6d511
    org.apache.velocity.runtime.parser.VelocityCharStream13deb348d06faf6d
    org.apache.velocity.runtime.parser.node.ASTAddNodefa1c3b05eb63c615
    org.apache.velocity.runtime.parser.node.ASTAddNodef7a360fd0ceeb41f
    org.apache.velocity.runtime.parser.node.ASTAndNodecd14b0b2bfc9c2ef
    org.apache.velocity.runtime.parser.node.ASTAndNodefac853b6c5fa485e
    org.apache.velocity.runtime.parser.node.ASTBinaryOperator8c2ae99e76bfc2d2
    org.apache.velocity.runtime.parser.node.ASTBlock7426c59d7df1a96a
    org.apache.velocity.runtime.parser.node.ASTBlock008b5ae51e7863c5
    org.apache.velocity.runtime.parser.node.ASTCommentb6f6e96d43d8ba8f
    org.apache.velocity.runtime.parser.node.ASTComment59a551b8d13e9674
    org.apache.velocity.runtime.parser.node.ASTComparisonNode7352bd9088770a83
    org.apache.velocity.runtime.parser.node.ASTDirective4684ec86b596afcd
    org.apache.velocity.runtime.parser.node.ASTDirectivebdd000d27e79daab
    org.apache.velocity.runtime.parser.node.ASTEQNode038ad51129be2ea8
    org.apache.velocity.runtime.parser.node.ASTEQNodea05682a5af313370
    org.apache.velocity.runtime.parser.node.ASTElseIfStatement7c5ed66f40ab032d
    org.apache.velocity.runtime.parser.node.ASTElseIfStatementcd01606457a3b636
    org.apache.velocity.runtime.parser.node.ASTElseStatementf80235d64da20ee5
    org.apache.velocity.runtime.parser.node.ASTElseStatement10b9ce434f126173
    org.apache.velocity.runtime.parser.node.ASTExpressione191b0102927df45
    org.apache.velocity.runtime.parser.node.ASTExpressionfe525965119f4cfd
    org.apache.velocity.runtime.parser.node.ASTFalseae662493482b805c
    org.apache.velocity.runtime.parser.node.ASTGENodedf404befde820934
    org.apache.velocity.runtime.parser.node.ASTGTNodef9db3055193b7cc5
    org.apache.velocity.runtime.parser.node.ASTGTNode429c741b43e4423e
    org.apache.velocity.runtime.parser.node.ASTIdentifierd07ecfb6322f9f6e
    org.apache.velocity.runtime.parser.node.ASTIdentifier681e842674a46467
    org.apache.velocity.runtime.parser.node.ASTIfStatement31f860e02eedf22c
    org.apache.velocity.runtime.parser.node.ASTIfStatement39cb3d2cbbef8dff
    org.apache.velocity.runtime.parser.node.ASTIntegerLiteral5c0166627304c95d
    org.apache.velocity.runtime.parser.node.ASTIntegerLiterale5e50c14ab3e4acc
    org.apache.velocity.runtime.parser.node.ASTLTNode23c5285841d49ed9
    org.apache.velocity.runtime.parser.node.ASTLogicalOperatorfa236397c36b4771
    org.apache.velocity.runtime.parser.node.ASTMathNode22d06eed949108ef
    org.apache.velocity.runtime.parser.node.ASTMathNoded76e35e93a6fab09
    org.apache.velocity.runtime.parser.node.ASTMethodef6a50dfd937ca0c
    org.apache.velocity.runtime.parser.node.ASTMethodcc1d6a841b9eec04
    org.apache.velocity.runtime.parser.node.ASTMethod.MethodCacheKeyaf9e51370239a9c4
    org.apache.velocity.runtime.parser.node.ASTMethod.MethodCacheKey84c5e9e936e62291
    org.apache.velocity.runtime.parser.node.ASTMulNode4b3194324ef888d5
    org.apache.velocity.runtime.parser.node.ASTNENode84af2c1d41d1a63b
    org.apache.velocity.runtime.parser.node.ASTNENode7b01e9808eb0a0ab
    org.apache.velocity.runtime.parser.node.ASTNotNode6660871438d192c7
    org.apache.velocity.runtime.parser.node.ASTNotNodea51f40cc97c36424
    org.apache.velocity.runtime.parser.node.ASTOrNoded0e443267103c4b8
    org.apache.velocity.runtime.parser.node.ASTOrNode02186e52b9c8c686
    org.apache.velocity.runtime.parser.node.ASTReferencec9c9373aa8849276
    org.apache.velocity.runtime.parser.node.ASTReferencea91cb9ff1eeb3ef6
    org.apache.velocity.runtime.parser.node.ASTSetDirective55fd0a5c9cb9c430
    org.apache.velocity.runtime.parser.node.ASTSetDirectivef078550d53e85f54
    org.apache.velocity.runtime.parser.node.ASTStringLiterald3328b40f6d92e9b
    org.apache.velocity.runtime.parser.node.ASTStringLiteral2f67a986ad5a26f3
    org.apache.velocity.runtime.parser.node.ASTText389346874b271430
    org.apache.velocity.runtime.parser.node.ASTTexta5d2dcd025db34b9
    org.apache.velocity.runtime.parser.node.ASTTextblocke99e39fdf682a6db
    org.apache.velocity.runtime.parser.node.ASTTrue9f862a189a23eacd
    org.apache.velocity.runtime.parser.node.ASTTrued1f94f133f80edab
    org.apache.velocity.runtime.parser.node.ASTWord66d75ec7205a4907
    org.apache.velocity.runtime.parser.node.ASTWordaca376c967a3042c
    org.apache.velocity.runtime.parser.node.ASTprocessf70aec2e52e59fd8
    org.apache.velocity.runtime.parser.node.ASTprocessde4ee2191c1ff63c
    org.apache.velocity.runtime.parser.node.AbstractExecutor2b84207c88930d28
    org.apache.velocity.runtime.parser.node.AbstractExecutora0e3576d80f60b4f
    org.apache.velocity.runtime.parser.node.BooleanPropertyExecutorfd4eb69c74029461
    org.apache.velocity.runtime.parser.node.BooleanPropertyExecutorec3dd0b36ed02cff
    org.apache.velocity.runtime.parser.node.GetExecutor2a235ba3f58955fd
    org.apache.velocity.runtime.parser.node.GetExecutor546c2e340ce7e8d2
    org.apache.velocity.runtime.parser.node.JJTStandardParserState47563f73993d088b
    org.apache.velocity.runtime.parser.node.MapGetExecutor7461d24a11538750
    org.apache.velocity.runtime.parser.node.MapGetExecutor28b15002420c0f31
    org.apache.velocity.runtime.parser.node.MathUtils36743f4dc547ee5e
    org.apache.velocity.runtime.parser.node.MathUtils477aca8e7cc3655b
    org.apache.velocity.runtime.parser.node.NodeUtilse759a21ab90b2cf9
    org.apache.velocity.runtime.parser.node.NodeUtils3c8679658a17f207
    org.apache.velocity.runtime.parser.node.PropertyExecutor94d607bd85fcb1de
    org.apache.velocity.runtime.parser.node.PropertyExecutor97f25afcffcc45a1
    org.apache.velocity.runtime.parser.node.SimpleNodea6429b277a91c37d
    org.apache.velocity.runtime.parser.node.SimpleNode9462478b614a02dd
    org.apache.velocity.runtime.resource.Resourcee1da0d5e9e84f4f3
    org.apache.velocity.runtime.resource.Resourcec31c474160f23248
    org.apache.velocity.runtime.resource.ResourceCacheImpl7ec381111390acb1
    org.apache.velocity.runtime.resource.ResourceCacheImpl7410de956204c1de
    org.apache.velocity.runtime.resource.ResourceCacheImpl.LRUMap25cb4289e6f518c8
    org.apache.velocity.runtime.resource.ResourceFactoryc11fb8be6fd16d32
    org.apache.velocity.runtime.resource.ResourceManagerImpla50249c3c61edcd2
    org.apache.velocity.runtime.resource.ResourceManagerImpl42057b6a48518a55
    org.apache.velocity.runtime.resource.loader.ClasspathResourceLoaderc1a5d084a0e9d423
    org.apache.velocity.runtime.resource.loader.FileResourceLoaderca4087a9d80404d7
    org.apache.velocity.runtime.resource.loader.FileResourceLoader61d50ebf2ba17760
    org.apache.velocity.runtime.resource.loader.ResourceLoader2633777475708d02
    org.apache.velocity.runtime.resource.loader.ResourceLoader8fe06021f04e44d1
    org.apache.velocity.runtime.resource.loader.ResourceLoaderFactory31de528be460ceb8
    org.apache.velocity.runtime.resource.loader.ResourceLoaderFactory184d14a10476fd52
    org.apache.velocity.shaded.commons.io.FilenameUtilsd4f97baf766e1dee
    org.apache.velocity.tools.ClassUtilsf896e3be996ecebe
    org.apache.velocity.tools.Scope583d7301c5685e0f
    org.apache.velocity.tools.ToolContext82f99cef694107ca
    org.apache.velocity.tools.ToolInfo0d3611e062aaf30f
    org.apache.velocity.tools.ToolManagere8c679b266efa960
    org.apache.velocity.tools.Toolbox80b2fac13a5b68cc
    org.apache.velocity.tools.ToolboxFactorye7be0a0d83162796
    org.apache.velocity.tools.config.CompoundConfigurationaeb34c069a91a5ef
    org.apache.velocity.tools.config.Configuration2d50870dcb0975aa
    org.apache.velocity.tools.config.ConfigurationUtilsb63372010c55ef94
    org.apache.velocity.tools.config.Dataf785b06b36e5ca7e
    org.apache.velocity.tools.config.Data.AutoConverter5d0270c790c09f90
    org.apache.velocity.tools.config.Data.FieldConverterbed467ef5168b94a
    org.apache.velocity.tools.config.Data.NumberConverter7289322ad89c1db2
    org.apache.velocity.tools.config.Data.Type279ee1d4a808e06f
    org.apache.velocity.tools.config.EasyFactoryConfigurationddeb685f8049fda4
    org.apache.velocity.tools.config.EasyFactoryConfiguration.EasyWrapad2f5e409c2ff604
    org.apache.velocity.tools.config.FactoryConfiguration73cf358d0c7edb7a
    org.apache.velocity.tools.config.Property9a88deb887bf8046
    org.apache.velocity.tools.config.ToolConfigurationea8e11488cb587fb
    org.apache.velocity.tools.config.ToolConfiguration.113a733526d337e33
    org.apache.velocity.tools.config.ToolConfiguration.Status5ef8878167ed8f5b
    org.apache.velocity.tools.config.ToolboxConfiguration14f4bd3e42998d6d
    org.apache.velocity.tools.generic.AlternatorTool5c8b9828f2a0529f
    org.apache.velocity.tools.generic.ClassTool73356ad17e9d9e49
    org.apache.velocity.tools.generic.ComparisonDateTool0c156ad486a31cb9
    org.apache.velocity.tools.generic.ContextTool45443393ac85b5bf
    org.apache.velocity.tools.generic.ConversionTool4f40ab64f6176812
    org.apache.velocity.tools.generic.DateTool7bbe3717fa1283ff
    org.apache.velocity.tools.generic.DisplayTool6e46983d2e05b26c
    org.apache.velocity.tools.generic.EscapeToole03f9e8f7d7c72ed
    org.apache.velocity.tools.generic.FieldTool7324f3b6de026d35
    org.apache.velocity.tools.generic.FormatConfig1d32259ea755388a
    org.apache.velocity.tools.generic.LinkToolf925b0769b8273a7
    org.apache.velocity.tools.generic.LocaleConfigd3639ba75a9556c8
    org.apache.velocity.tools.generic.LoopToolfdfe0c377e398043
    org.apache.velocity.tools.generic.MathTool8eee0bbddc522f27
    org.apache.velocity.tools.generic.NumberTool77e0dc553cb8fbe8
    org.apache.velocity.tools.generic.RenderTool0a7f803ca5ee171a
    org.apache.velocity.tools.generic.ResourceTool7c0b676b58d9b487
    org.apache.velocity.tools.generic.SafeConfigdabe7ccfd3fc549e
    org.apache.velocity.tools.generic.SortToolcb3b608ecb5c2575
    org.apache.velocity.tools.generic.XmlTool8c9a7f71bb9885a6
    org.apache.velocity.util.ArrayIterator61b1e41a87bed05f
    org.apache.velocity.util.ClassUtils4ac6dadd3315b1cd
    org.apache.velocity.util.ClassUtils0740c02f55974cb5
    org.apache.velocity.util.DeprecationAwareExtProperties27d5b5c05e6a6fec
    org.apache.velocity.util.DuckTypee50af2bb413f166d
    org.apache.velocity.util.DuckType.Typesbae2a6708b77175a
    org.apache.velocity.util.ExtPropertiesea3b60c6666140fe
    org.apache.velocity.util.ExtProperties.PropertiesReaderb618a7014140c253
    org.apache.velocity.util.MapFactory01403b5706397d47
    org.apache.velocity.util.SimplePool1f831c36a43ca1db
    org.apache.velocity.util.SimplePool4fae8cabf20b16fc
    org.apache.velocity.util.StringUtils10ca0618e43ab662
    org.apache.velocity.util.introspection.ClassFieldMap08c07ae2515b1084
    org.apache.velocity.util.introspection.ClassMapf95f93276a62b3ff
    org.apache.velocity.util.introspection.ClassMape8aa0059d0c24712
    org.apache.velocity.util.introspection.ClassMap.MethodCachee879a333bfa71058
    org.apache.velocity.util.introspection.ClassMap.MethodCachee32b1185fdf5c157
    org.apache.velocity.util.introspection.Info8c072c75838e52e9
    org.apache.velocity.util.introspection.Info7b0899deac2cfcb4
    org.apache.velocity.util.introspection.IntrospectionCacheData67498e4141cecf66
    org.apache.velocity.util.introspection.IntrospectionCacheDatada4e3622ea8bd189
    org.apache.velocity.util.introspection.IntrospectionUtils5600b482789873c7
    org.apache.velocity.util.introspection.Introspectorea0eb025828bb25b
    org.apache.velocity.util.introspection.Introspectorb7a95a29f4d5f221
    org.apache.velocity.util.introspection.IntrospectorBasea9523d1d3d9ec81c
    org.apache.velocity.util.introspection.IntrospectorBasead522d88b51fa99e
    org.apache.velocity.util.introspection.IntrospectorCachecf24bd3e12cff77b
    org.apache.velocity.util.introspection.IntrospectorCacheImplf5a8c373fcdecfa5
    org.apache.velocity.util.introspection.MethodMap5bc43b57e0eb708b
    org.apache.velocity.util.introspection.MethodMapacd10133e89c9e4b
    org.apache.velocity.util.introspection.MethodMap.Matche9df9a21d7dc07e3
    org.apache.velocity.util.introspection.TypeConversionHandlerImpl2739aba645c510f3
    org.apache.velocity.util.introspection.UberspectImpl9ff3662a2a574180
    org.apache.velocity.util.introspection.UberspectImple12310ead0215cd5
    org.apache.velocity.util.introspection.UberspectImpl.VelGetterImpl600761c1eb266a6b
    org.apache.velocity.util.introspection.UberspectImpl.VelGetterImplb6e5c050f55796f3
    org.apache.velocity.util.introspection.UberspectImpl.VelMethodImpla1520f1ed8867aa3
    org.apache.velocity.util.introspection.UberspectImpl.VelMethodImpla3cd5b57a527a67f
    org.codehaus.plexus.DefaultContainerConfiguration4d474a1bba662d1c
    org.codehaus.plexus.DefaultPlexusContainer9fdab68d987fbc96
    org.codehaus.plexus.DefaultPlexusContainer.BootModule029b114c77a18fa0
    org.codehaus.plexus.DefaultPlexusContainer.ContainerModuleb5da95a9c2e461a7
    org.codehaus.plexus.DefaultPlexusContainer.DefaultsModuledbd0b9631f1948d8
    org.codehaus.plexus.DefaultPlexusContainer.LoggerManagerProvider1dd65dc840ede2c0
    org.codehaus.plexus.DefaultPlexusContainer.LoggerProviderd965945f35bf4074
    org.codehaus.plexus.DefaultPlexusContainer.SLF4JLoggerFactoryProvider13a58bc152d07103
    org.codehaus.plexus.archiver.AbstractArchiver455045154469be96
    org.codehaus.plexus.archiver.AbstractArchiverbbab73c48d76dae1
    org.codehaus.plexus.archiver.AbstractArchiver.1fb6fb853ed87273e
    org.codehaus.plexus.archiver.AbstractArchiver.14b743e7e66c8227f
    org.codehaus.plexus.archiver.AbstractUnArchiverffb546e8e04c3b17
    org.codehaus.plexus.archiver.ArchiveEntry9acf389f27b948c4
    org.codehaus.plexus.archiver.jar.JarArchiver519ac29d489e3684
    org.codehaus.plexus.archiver.jar.JarArchiver8826a97199e7caad
    org.codehaus.plexus.archiver.jar.JdkManifestFactory6d6df7af090d5ed3
    org.codehaus.plexus.archiver.jar.Manifest79d4572b6fbecd43
    org.codehaus.plexus.archiver.jar.Manifest17f5f74666c34890
    org.codehaus.plexus.archiver.jar.Manifest.Attributee8f762f25a4ac2bf
    org.codehaus.plexus.archiver.jar.Manifest.Attribute94cf4f24d344572a
    org.codehaus.plexus.archiver.jar.Manifest.BaseAttributee44b1091c882258a
    org.codehaus.plexus.archiver.jar.Manifest.BaseAttribute1c219bfec9d55380
    org.codehaus.plexus.archiver.jar.Manifest.Section564a527e2e460e50
    org.codehaus.plexus.archiver.jar.Manifest.Sectionfb39991126dc9dc9
    org.codehaus.plexus.archiver.manager.ArchiverManagercbb74e389108bcb4
    org.codehaus.plexus.archiver.manager.DefaultArchiverManager120e0c333055645a
    org.codehaus.plexus.archiver.manager.DefaultArchiverManager056d374c8060bd0e
    org.codehaus.plexus.archiver.util.AbstractFileSete5385d8741b94955
    org.codehaus.plexus.archiver.util.DefaultFileSet08e023d4fc031f86
    org.codehaus.plexus.archiver.util.ResourceUtilsc837e154f70d2b53
    org.codehaus.plexus.archiver.war.WarArchiver615f1606cefcf3ff
    org.codehaus.plexus.archiver.zip.AbstractZipArchiverc8b3e0f6fa634f4b
    org.codehaus.plexus.archiver.zip.AbstractZipUnArchiveread89730145c8528
    org.codehaus.plexus.archiver.zip.AsiExtraField5989c8c93708a59e
    org.codehaus.plexus.archiver.zip.ExtraFieldUtils21d2e31aeaafd4f0
    org.codehaus.plexus.archiver.zip.ZipArchiver7f703880640979f8
    org.codehaus.plexus.archiver.zip.ZipEntry55313614ff33f8b5
    org.codehaus.plexus.archiver.zip.ZipLong1daae3f5b5ffa47e
    org.codehaus.plexus.archiver.zip.ZipOutputStream6efab44f3d730eb3
    org.codehaus.plexus.archiver.zip.ZipShort858618f5b24c4e2d
    org.codehaus.plexus.archiver.zip.ZipUnArchiver66cda942fe76ed90
    org.codehaus.plexus.classworlds.ClassWorldd80d373f271f5929
    org.codehaus.plexus.classworlds.launcher.ConfigurationParser83c0fdafcd8ae316
    org.codehaus.plexus.classworlds.launcher.ConfigurationParser.16d438c9fe632867a
    org.codehaus.plexus.classworlds.launcher.Configuratorc15e567e8c6910a6
    org.codehaus.plexus.classworlds.launcher.Configurator.16bc7180ea01847c4
    org.codehaus.plexus.classworlds.launcher.Launcher6aa79293bcfc150f
    org.codehaus.plexus.classworlds.realm.ClassRealm01eed1e95ab657d5
    org.codehaus.plexus.classworlds.realm.Entry7e27ea1a680ea594
    org.codehaus.plexus.classworlds.strategy.AbstractStrategyaa2df8a25542de94
    org.codehaus.plexus.classworlds.strategy.SelfFirstStrategyc2c172cfa7cc8c01
    org.codehaus.plexus.classworlds.strategy.StrategyFactorye34a4de14e430bfa
    org.codehaus.plexus.compiler.AbstractCompilerb7b6891acdab6184
    org.codehaus.plexus.compiler.CompilerOutputStylec0dceff43f3a54c7
    org.codehaus.plexus.compiler.javac.JavacCompilerecda102c38e04f42
    org.codehaus.plexus.compiler.manager.DefaultCompilerManagerbb56ac7396359360
    org.codehaus.plexus.component.configurator.AbstractComponentConfiguratoraa69094092e9098e
    org.codehaus.plexus.component.configurator.BasicComponentConfigurator687ccaedbc34a1f4
    org.codehaus.plexus.component.configurator.ComponentConfigurationException4e034cd1be7b7976
    org.codehaus.plexus.component.configurator.converters.AbstractConfigurationConverter34a7155cf9094627
    org.codehaus.plexus.component.configurator.converters.basic.AbstractBasicConverterbdc651b44340ec1b
    org.codehaus.plexus.component.configurator.converters.basic.BooleanConverter9de3ad82c4bc9a23
    org.codehaus.plexus.component.configurator.converters.basic.ByteConvertere834612289baf3d6
    org.codehaus.plexus.component.configurator.converters.basic.CharConverter474083ccb380c244
    org.codehaus.plexus.component.configurator.converters.basic.DateConvertera666937d85101580
    org.codehaus.plexus.component.configurator.converters.basic.DoubleConverter711f1c94f0f75c33
    org.codehaus.plexus.component.configurator.converters.basic.EnumConverter5463a22280c2d17a
    org.codehaus.plexus.component.configurator.converters.basic.FileConverter50a05f08fed6858d
    org.codehaus.plexus.component.configurator.converters.basic.FloatConvertera9831f9478942c39
    org.codehaus.plexus.component.configurator.converters.basic.IntConverter1ec4f1fe36847c67
    org.codehaus.plexus.component.configurator.converters.basic.LongConverterb66bb61cedbfd313
    org.codehaus.plexus.component.configurator.converters.basic.ShortConverter8453d2a34c70c1b7
    org.codehaus.plexus.component.configurator.converters.basic.StringBufferConverter1ed19a18e43abea2
    org.codehaus.plexus.component.configurator.converters.basic.StringBuilderConverter81c1bf606b75659a
    org.codehaus.plexus.component.configurator.converters.basic.StringConverter26614176da45dc39
    org.codehaus.plexus.component.configurator.converters.basic.UriConverterfdb8ce9422278b4c
    org.codehaus.plexus.component.configurator.converters.basic.UrlConverter2e2cba69af7544fc
    org.codehaus.plexus.component.configurator.converters.composite.AbstractCollectionConverter1a58366c83eac89c
    org.codehaus.plexus.component.configurator.converters.composite.ArrayConverter58c98c834b8b5a92
    org.codehaus.plexus.component.configurator.converters.composite.CollectionConverter214da34c628ce98e
    org.codehaus.plexus.component.configurator.converters.composite.MapConverter323859f29c08a56f
    org.codehaus.plexus.component.configurator.converters.composite.ObjectWithFieldsConvertera5b833a9be4d2318
    org.codehaus.plexus.component.configurator.converters.composite.PlexusConfigurationConverter15cd97f39d410ab6
    org.codehaus.plexus.component.configurator.converters.composite.PropertiesConverter880064540e436d27
    org.codehaus.plexus.component.configurator.converters.lookup.DefaultConverterLookupc7a9d909eae11a58
    org.codehaus.plexus.component.configurator.converters.special.ClassRealmConverter227b3c4cd86803b7
    org.codehaus.plexus.component.configurator.expression.DefaultExpressionEvaluator44cd3c304e29d232
    org.codehaus.plexus.component.repository.ComponentDependencyed7c4a5667c02ac8
    org.codehaus.plexus.component.repository.ComponentDescriptorea3989475dc97c06
    org.codehaus.plexus.component.repository.ComponentRequirementd54306310d30fed8
    org.codehaus.plexus.component.repository.ComponentSetDescriptor3784a802884c4b16
    org.codehaus.plexus.components.io.attributes.FileAttributesbd797eb4d646004c
    org.codehaus.plexus.components.io.attributes.Java7FileAttributesb15be2f84ac0ee7c
    org.codehaus.plexus.components.io.attributes.Java7Reflectorbd6d3596686b1796
    org.codehaus.plexus.components.io.attributes.PlexusIoResourceAttributeUtils5d1630b9c7d7e4c6
    org.codehaus.plexus.components.io.attributes.PlexusIoResourceAttributeUtils870de5044186b52a
    org.codehaus.plexus.components.io.filemappers.PrefixFileMapperd19c79c38ef38ec0
    org.codehaus.plexus.components.io.resources.AbstractPlexusIoResource571beca40dbfca97
    org.codehaus.plexus.components.io.resources.AbstractPlexusIoResourceCollectionab87c4897c28ec1a
    org.codehaus.plexus.components.io.resources.AbstractPlexusIoResourceWithAttributes95bbcb42dc3b1a28
    org.codehaus.plexus.components.io.resources.PlexusIoFileResourcea3cbdf9ec322941f
    org.codehaus.plexus.components.io.resources.PlexusIoFileResourceCollection8eee98dacb61ad91
    org.codehaus.plexus.configuration.DefaultPlexusConfigurationd6f156c1d43d5358
    org.codehaus.plexus.configuration.xml.XmlPlexusConfigurationd0208f5f99fa76f1
    org.codehaus.plexus.context.ContextMapAdapter395fb55e464e3aec
    org.codehaus.plexus.context.DefaultContext20caf80ad3fc6937
    org.codehaus.plexus.digest.AbstractDigesterf4c80aa7a7db2c72
    org.codehaus.plexus.digest.AbstractStreamingDigester0978039fff8742de
    org.codehaus.plexus.digest.Md5Digesterafa99b92e4726988
    org.codehaus.plexus.digest.Sha1Digester160d658a9a357ee0
    org.codehaus.plexus.digest.StreamingMd5Digesterc092164a5284b82c
    org.codehaus.plexus.digest.StreamingSha1Digester1905a929cb4c6b5d
    org.codehaus.plexus.i18n.DefaultI18N2cb8d3d4ec04e307
    org.codehaus.plexus.interpolation.AbstractDelegatingValueSource02200a6385a5c967
    org.codehaus.plexus.interpolation.AbstractValueSource1ed2fb132ebe6823
    org.codehaus.plexus.interpolation.AbstractValueSource8d702836f770374e
    org.codehaus.plexus.interpolation.AbstractValueSourceab87af1f248af7bb
    org.codehaus.plexus.interpolation.EnvarBasedValueSource84f75c29d4ca7565
    org.codehaus.plexus.interpolation.EnvarBasedValueSourcea13418245e22da46
    org.codehaus.plexus.interpolation.MapBasedValueSource4f684de54a4cac77
    org.codehaus.plexus.interpolation.MapBasedValueSource84cf06d1a25889b2
    org.codehaus.plexus.interpolation.ObjectBasedValueSource397d315f0caea399
    org.codehaus.plexus.interpolation.ObjectBasedValueSource62d9bf75b515589d
    org.codehaus.plexus.interpolation.ObjectBasedValueSourcee77101c153cc6dad
    org.codehaus.plexus.interpolation.PrefixAwareRecursionInterceptor64308eb6aaf48edd
    org.codehaus.plexus.interpolation.PrefixedObjectValueSource91373cccf90f3995
    org.codehaus.plexus.interpolation.PrefixedValueSourceWrapperdd42f9f7a579f578
    org.codehaus.plexus.interpolation.PropertiesBasedValueSourcef59a7b8c5f2ab5e1
    org.codehaus.plexus.interpolation.PropertiesBasedValueSourceb4a2ab502f384128
    org.codehaus.plexus.interpolation.PropertiesBasedValueSource39d4a73e62252e0c
    org.codehaus.plexus.interpolation.RegexBasedInterpolatordfd26cbd19606ac8
    org.codehaus.plexus.interpolation.RegexBasedInterpolatorcf245a3142899503
    org.codehaus.plexus.interpolation.RegexBasedInterpolator709c2e4d5f30f622
    org.codehaus.plexus.interpolation.SimpleRecursionInterceptor4d8571a2c13e9cfb
    org.codehaus.plexus.interpolation.SimpleRecursionInterceptor7fca4d1c08095cea
    org.codehaus.plexus.interpolation.SimpleRecursionInterceptor523e83575f901ee0
    org.codehaus.plexus.interpolation.StringSearchInterpolator85c357dd830edb57
    org.codehaus.plexus.interpolation.os.OperatingSystemUtils25296357f5789343
    org.codehaus.plexus.interpolation.os.OperatingSystemUtilsc4e7b13c9919a85a
    org.codehaus.plexus.interpolation.os.OperatingSystemUtils.DefaultEnvVarSource274ba6b70898d56d
    org.codehaus.plexus.interpolation.os.Os785f58695acf5fd9
    org.codehaus.plexus.interpolation.reflection.ClassMap8f9de793323118e9
    org.codehaus.plexus.interpolation.reflection.ClassMap78262d7d00686093
    org.codehaus.plexus.interpolation.reflection.ClassMap359c06ede0cbe480
    org.codehaus.plexus.interpolation.reflection.ClassMap.CacheMiss62ec3388459d7100
    org.codehaus.plexus.interpolation.reflection.ClassMap.CacheMissd56cd72bfabb8afd
    org.codehaus.plexus.interpolation.reflection.ClassMap.CacheMissbdc7a0515793ff45
    org.codehaus.plexus.interpolation.reflection.MethodMap73529820403c6b5e
    org.codehaus.plexus.interpolation.reflection.MethodMap958c877d48645d9b
    org.codehaus.plexus.interpolation.reflection.MethodMap4dd456c4024b16ec
    org.codehaus.plexus.interpolation.reflection.ReflectionValueExtractord2045ea1d350e986
    org.codehaus.plexus.interpolation.reflection.ReflectionValueExtractor20052faa06c3f6c4
    org.codehaus.plexus.interpolation.reflection.ReflectionValueExtractorfb38a31772aa9573
    org.codehaus.plexus.interpolation.reflection.ReflectionValueExtractor.Tokenizer292117dc89b3bf92
    org.codehaus.plexus.interpolation.util.StringUtils9ab6a52a129b8b51
    org.codehaus.plexus.interpolation.util.StringUtils9b262a3519c4e146
    org.codehaus.plexus.interpolation.util.StringUtilsfb1a41cdc59f0d4a
    org.codehaus.plexus.interpolation.util.ValueSourceUtilse0fb098897479d0c
    org.codehaus.plexus.logging.AbstractLogEnabledb2b42aa44b994998
    org.codehaus.plexus.logging.AbstractLogger088c807c95d2da57
    org.codehaus.plexus.logging.AbstractLoggerManager142afa59e978ad3c
    org.codehaus.plexus.logging.console.ConsoleLoggere81d7397f0f1f4ae
    org.codehaus.plexus.logging.console.ConsoleLoggerManager4f262ca2067c0c89
    org.codehaus.plexus.util.AbstractScanner7ea65747b96be1a1
    org.codehaus.plexus.util.AbstractScanner57cca07a94c5d0f8
    org.codehaus.plexus.util.AbstractScanner267c8320dd3b8730
    org.codehaus.plexus.util.DirectoryScannerbed874cf6bffa08b
    org.codehaus.plexus.util.DirectoryScannerb7dd6f61f2134fdc
    org.codehaus.plexus.util.DirectoryScannerafa4e027c2087287
    org.codehaus.plexus.util.FileUtils974537ef1b937a20
    org.codehaus.plexus.util.FileUtils32f4dd0be46a9ac0
    org.codehaus.plexus.util.FileUtils0d0b16e42c8348ea
    org.codehaus.plexus.util.FileUtils.FilterWrapperade5dd599c04e458
    org.codehaus.plexus.util.FileUtils.FilterWrappere1fb35acef11a7f0
    org.codehaus.plexus.util.IOUtil3ec5e764368d0472
    org.codehaus.plexus.util.IOUtilb20c0272d9cdf167
    org.codehaus.plexus.util.IOUtile21cc86436ae45be
    org.codehaus.plexus.util.IOUtil6b711ad12bf040d6
    org.codehaus.plexus.util.InterpolationFilterReader51388cb3f207dede
    org.codehaus.plexus.util.MatchPatterncbd2489e4ea28649
    org.codehaus.plexus.util.MatchPatterns06e1f000f76da5b4
    org.codehaus.plexus.util.NioFilesdc1176e4614306e6
    org.codehaus.plexus.util.Oscbe2b37d03985b64
    org.codehaus.plexus.util.Osd33a782f7098a75f
    org.codehaus.plexus.util.PathTool8bc51bed32e62a33
    org.codehaus.plexus.util.PropertyUtils527feac8ad3bfba0
    org.codehaus.plexus.util.PropertyUtils2f8e7fbab681375f
    org.codehaus.plexus.util.ReaderFactory70c3ae7450366a6b
    org.codehaus.plexus.util.ReaderFactorybcca7dcb50be1af2
    org.codehaus.plexus.util.ReaderFactory17f817cb73de7e57
    org.codehaus.plexus.util.SelectorUtils5d722081f1028445
    org.codehaus.plexus.util.SelectorUtilsa62330f54f63f33a
    org.codehaus.plexus.util.SelectorUtils77218f645da67fed
    org.codehaus.plexus.util.StringUtils837339467b13c5cf
    org.codehaus.plexus.util.StringUtilsf96c1107a2b1a76f
    org.codehaus.plexus.util.StringUtilsba82409ead4f5843
    org.codehaus.plexus.util.StringUtilsce83bb397755561d
    org.codehaus.plexus.util.StringUtilscc51a432afe4ff59
    org.codehaus.plexus.util.WriterFactoryad3706502b7b225e
    org.codehaus.plexus.util.WriterFactory6e8404450ef70bfa
    org.codehaus.plexus.util.dag.CycleDetector26256d65c872be4c
    org.codehaus.plexus.util.dag.DAGda15810bebcb8487
    org.codehaus.plexus.util.dag.TopologicalSorter45f59fda7f3045a6
    org.codehaus.plexus.util.dag.Vertex368a701ab9773395
    org.codehaus.plexus.util.introspection.ClassMap30ca8da223cbf453
    org.codehaus.plexus.util.introspection.ClassMap.CacheMiss7ed0b9e2f48cf664
    org.codehaus.plexus.util.introspection.MethodMapad08485dfe6ac7db
    org.codehaus.plexus.util.introspection.ReflectionValueExtractorb932885387f31059
    org.codehaus.plexus.util.introspection.ReflectionValueExtractor.Tokenizere60d35915d7672de
    org.codehaus.plexus.util.io.FileInputStreamFacadea99d89e6a076a192
    org.codehaus.plexus.util.io.FileInputStreamFacadee30cb27d1e10dc65
    org.codehaus.plexus.util.xml.PrettyPrintXMLWriter40639e9be5dd3f04
    org.codehaus.plexus.util.xml.PrettyPrintXMLWriter969525dadc376b25
    org.codehaus.plexus.util.xml.SerializerXMLWriterddaabb19c936eea9
    org.codehaus.plexus.util.xml.XmlReader2ca42681128ebb7d
    org.codehaus.plexus.util.xml.XmlReader5f439f73dd573266
    org.codehaus.plexus.util.xml.XmlReader0f49e53f172485e2
    org.codehaus.plexus.util.xml.XmlStreamReader54bb454f4a044649
    org.codehaus.plexus.util.xml.XmlStreamReaderd20f4d181fb21d46
    org.codehaus.plexus.util.xml.XmlStreamWriter473ad58b594de26f
    org.codehaus.plexus.util.xml.XmlStreamWriter3714ec0b7e5d9f12
    org.codehaus.plexus.util.xml.Xpp3Dome431013c30e337fa
    org.codehaus.plexus.util.xml.Xpp3DomBuilder308d11e94e936b28
    org.codehaus.plexus.util.xml.Xpp3DomUtilse35c97b67a8b147f
    org.codehaus.plexus.util.xml.Xpp3DomWriter5c67736950c76e11
    org.codehaus.plexus.util.xml.pull.EntityReplacementMapab96c0b4ac038784
    org.codehaus.plexus.util.xml.pull.EntityReplacementMap0697dc724c9eafa2
    org.codehaus.plexus.util.xml.pull.MXParser095ad3d28970e1e9
    org.codehaus.plexus.util.xml.pull.MXParser40b91c056b9889a3
    org.codehaus.plexus.util.xml.pull.MXSerializer8c88670f3b87d59f
    org.codehaus.plexus.util.xml.pull.MXSerializerb3773308f85294a8
    org.codehaus.plexus.velocity.DefaultVelocityComponent4bd0733f20515016
    org.eclipse.aether.AbstractRepositoryListener085b475a721ec542
    org.eclipse.aether.DefaultRepositoryCachebb4b2517c5c62cf4
    org.eclipse.aether.DefaultRepositorySystemSession7de27e524ea5846e
    org.eclipse.aether.DefaultRepositorySystemSession.NullArtifactTypeRegistryc054fb191ebfdbb0
    org.eclipse.aether.DefaultRepositorySystemSession.NullAuthenticationSelectore9c4a381a87cf9e7
    org.eclipse.aether.DefaultRepositorySystemSession.NullFileTransformerManager5861da90f83e8566
    org.eclipse.aether.DefaultRepositorySystemSession.NullMirrorSelector08c9a543f55ef620
    org.eclipse.aether.DefaultRepositorySystemSession.NullProxySelector7a995668eadb76a3
    org.eclipse.aether.DefaultSessionDatac1dde0eca2fe72e3
    org.eclipse.aether.RepositoryEvent9c23c6cff9a0db3a
    org.eclipse.aether.RepositoryEvent.Buildere20064e257a52637
    org.eclipse.aether.RepositoryEvent.EventType7d2c1f9517cbceaf
    org.eclipse.aether.RepositoryException2533646b22707d09
    org.eclipse.aether.RequestTraceee6168f833e48cf2
    org.eclipse.aether.artifact.AbstractArtifactc7a6b14048008679
    org.eclipse.aether.artifact.DefaultArtifactb897ee7425b93ce2
    org.eclipse.aether.artifact.DefaultArtifactType9e46ed8c3b089798
    org.eclipse.aether.collection.CollectRequestf1132f48f74e3232
    org.eclipse.aether.collection.CollectResultdf21ce1db987ef14
    org.eclipse.aether.collection.DependencyManagement839f45654988f52f
    org.eclipse.aether.connector.basic.ArtifactTransportListenerdc859608c1db0588
    org.eclipse.aether.connector.basic.BasicRepositoryConnector30615d286059c083
    org.eclipse.aether.connector.basic.BasicRepositoryConnector.DirectExecutor6ce20a9693bab8f0
    org.eclipse.aether.connector.basic.BasicRepositoryConnector.GetTaskRunner6586e8a722111080
    org.eclipse.aether.connector.basic.BasicRepositoryConnector.TaskRunner09dedbb5badc7324
    org.eclipse.aether.connector.basic.BasicRepositoryConnectorFactoryc2803bce2e5c8a14
    org.eclipse.aether.connector.basic.ChecksumCalculator3aebd6968533f12c
    org.eclipse.aether.connector.basic.ChecksumCalculator.Checksumb9d6a847c73d6a15
    org.eclipse.aether.connector.basic.ChecksumValidator921b936ee4ce4743
    org.eclipse.aether.connector.basic.MetadataTransportListener76a23c31ed44ddf8
    org.eclipse.aether.connector.basic.PartialFiled24bf328c1955884
    org.eclipse.aether.connector.basic.PartialFile.Factory26008abde73303da
    org.eclipse.aether.connector.basic.PartialFile.LockFile1f1aee50e80129a9
    org.eclipse.aether.connector.basic.TransferTransportListenerad10f25a41876164
    org.eclipse.aether.graph.DefaultDependencyNode9b14b07208ac5239
    org.eclipse.aether.graph.Dependency33929702856c7fcf
    org.eclipse.aether.graph.Dependency.Exclusions4306f15752e05dca
    org.eclipse.aether.graph.Dependency.Exclusions.1d11f78db8180eb34
    org.eclipse.aether.graph.Exclusion1ebfea9347eb9ec4
    org.eclipse.aether.impl.UpdateCheck1266a3103f6c8a4b
    org.eclipse.aether.installation.InstallRequest4401eaac5a303e5c
    org.eclipse.aether.installation.InstallResult560fd4a2fb4c6b66
    org.eclipse.aether.internal.impl.AbstractChecksumPolicyd1ea8ecc9b5f3a55
    org.eclipse.aether.internal.impl.ArtifactRequestBuilder298a87576d4d9d76
    org.eclipse.aether.internal.impl.DefaultArtifactResolver1023af4b9ac0027b
    org.eclipse.aether.internal.impl.DefaultArtifactResolver.ResolutionGroup4fbbad1280f38989
    org.eclipse.aether.internal.impl.DefaultArtifactResolver.ResolutionItem4baad02cd29a9c4e
    org.eclipse.aether.internal.impl.DefaultChecksumPolicyProvider6adefa7d53c259b2
    org.eclipse.aether.internal.impl.DefaultDeployer1d4139293cba4f0a
    org.eclipse.aether.internal.impl.DefaultFileProcessorc9d35be93ee86218
    org.eclipse.aether.internal.impl.DefaultInstaller5482b7d7ad53c064
    org.eclipse.aether.internal.impl.DefaultLocalRepositoryProviderd3f6231b8646af59
    org.eclipse.aether.internal.impl.DefaultMetadataResolverd526de7b486a3321
    org.eclipse.aether.internal.impl.DefaultMetadataResolver.1409f310d9441df9f
    org.eclipse.aether.internal.impl.DefaultMetadataResolver.ResolveTaskee5310fb66a7d4e7
    org.eclipse.aether.internal.impl.DefaultOfflineControllera70b7c59972a1391
    org.eclipse.aether.internal.impl.DefaultRemoteRepositoryManager1ba0007bf0e353ad
    org.eclipse.aether.internal.impl.DefaultRemoteRepositoryManager.LoggedMirror11edbaa3af1c0e0c
    org.eclipse.aether.internal.impl.DefaultRepositoryConnectorProvider4a1d14f6f414b4c0
    org.eclipse.aether.internal.impl.DefaultRepositoryEventDispatcher90c2c6ae4c5cc7ca
    org.eclipse.aether.internal.impl.DefaultRepositoryEventDispatcher.182cdad633695bfe1
    org.eclipse.aether.internal.impl.DefaultRepositoryLayoutProvidere3c18c0a5465baba
    org.eclipse.aether.internal.impl.DefaultRepositorySystemf505352bb48cda43
    org.eclipse.aether.internal.impl.DefaultSyncContextFactorye2cc22101557ecb7
    org.eclipse.aether.internal.impl.DefaultSyncContextFactory.DefaultSyncContext7473313343e79fbd
    org.eclipse.aether.internal.impl.DefaultTransporterProvider3c2f9edc9a575a39
    org.eclipse.aether.internal.impl.DefaultUpdateCheckManagere33c8f24c5b20839
    org.eclipse.aether.internal.impl.DefaultUpdatePolicyAnalyzerba048432499bb90b
    org.eclipse.aether.internal.impl.EnhancedLocalRepositoryManagere1ef0c9d6fd1ea46
    org.eclipse.aether.internal.impl.EnhancedLocalRepositoryManagerFactorye7be2147ba0035b6
    org.eclipse.aether.internal.impl.Maven2RepositoryLayoutFactory54741d6d92da5749
    org.eclipse.aether.internal.impl.Maven2RepositoryLayoutFactory.Maven2RepositoryLayout2825912993b09435
    org.eclipse.aether.internal.impl.Maven2RepositoryLayoutFactory.Maven2RepositoryLayoutExb18f6739de7e8db0
    org.eclipse.aether.internal.impl.PrioritizedComponent00ff171869401e29
    org.eclipse.aether.internal.impl.PrioritizedComponentse71bba9ec0d8643e
    org.eclipse.aether.internal.impl.SafeTransferListener86b72877ce6c2f11
    org.eclipse.aether.internal.impl.SimpleLocalRepositoryManagere2eca6318b1c6f18
    org.eclipse.aether.internal.impl.SimpleLocalRepositoryManagerFactory149d3d19a25a4651
    org.eclipse.aether.internal.impl.TrackingFileManager5db271d2770ec74f
    org.eclipse.aether.internal.impl.Utils0b9aae9d602a8fc6
    org.eclipse.aether.internal.impl.WarnChecksumPolicybcf8c83b7a21ab61
    org.eclipse.aether.internal.impl.collect.CachingArtifactTypeRegistrye31d6bf3045fe461
    org.eclipse.aether.internal.impl.collect.DataPoolcb523f2c86026ea8
    org.eclipse.aether.internal.impl.collect.DataPool.Constraint297d975a009c1cad
    org.eclipse.aether.internal.impl.collect.DataPool.Constraint.VersionRepoe026cd2e9531c7ac
    org.eclipse.aether.internal.impl.collect.DataPool.ConstraintKey92269e939665d5fd
    org.eclipse.aether.internal.impl.collect.DataPool.Descriptor4834f73bec0ff33a
    org.eclipse.aether.internal.impl.collect.DataPool.GoodDescriptor7e9418c2ac3ca5f3
    org.eclipse.aether.internal.impl.collect.DataPool.GraphKey958d8a8ccf4068e0
    org.eclipse.aether.internal.impl.collect.DefaultDependencyCollectionContext5c0ba7329dc5de2d
    org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector4fffc0144badb661
    org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.Argsb9c000ffbaac6586
    org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.PremanagedDependency4676573d7e615a00
    org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.Results9ad2f685b92b7bee
    org.eclipse.aether.internal.impl.collect.DefaultDependencyGraphTransformationContext5340191c305613aa
    org.eclipse.aether.internal.impl.collect.DefaultVersionFilterContext856f4a5af1db1d54
    org.eclipse.aether.internal.impl.collect.NodeStack5f23250f61c74232
    org.eclipse.aether.internal.impl.collect.ObjectPool492861fa76b8b647
    org.eclipse.aether.internal.transport.wagon.PlexusWagonConfigurator1a795b3f796927c1
    org.eclipse.aether.internal.transport.wagon.PlexusWagonProvider92b25e44d9979242
    org.eclipse.aether.metadata.AbstractMetadata89255ad9799af096
    org.eclipse.aether.metadata.DefaultMetadata7823a887728f4a4b
    org.eclipse.aether.metadata.Metadata.Nature86f7033611aed5f9
    org.eclipse.aether.repository.AuthenticationContextf8825677a1b80f5a
    org.eclipse.aether.repository.AuthenticationDigest620c2b8249b21250
    org.eclipse.aether.repository.LocalArtifactRegistration9d6ec5a53efe9f43
    org.eclipse.aether.repository.LocalArtifactRequesta97b2fb0c0e17ce1
    org.eclipse.aether.repository.LocalArtifactResult9b22af0d46347ba9
    org.eclipse.aether.repository.LocalMetadataRegistrationf9def7374f8e2bec
    org.eclipse.aether.repository.LocalMetadataRequest0b767696dce21fb8
    org.eclipse.aether.repository.LocalMetadataResult88c9659148facaa9
    org.eclipse.aether.repository.LocalRepository5ea794752c978af5
    org.eclipse.aether.repository.RemoteRepository5d32dbd91a5a48c2
    org.eclipse.aether.repository.RemoteRepository.Builderb830595178867abe
    org.eclipse.aether.repository.RepositoryPolicy162e096967b124ce
    org.eclipse.aether.repository.WorkspaceRepository58526db8e833f3bc
    org.eclipse.aether.resolution.ArtifactDescriptorRequestbc5de0103510b4eb
    org.eclipse.aether.resolution.ArtifactDescriptorResult162ab67d42a96c42
    org.eclipse.aether.resolution.ArtifactRequest8416dcf3b5eafa7d
    org.eclipse.aether.resolution.ArtifactResolutionException1152f6118ae24679
    org.eclipse.aether.resolution.ArtifactResult5a9d67985178487e
    org.eclipse.aether.resolution.DependencyRequestb8393ee708e9f3fd
    org.eclipse.aether.resolution.DependencyResolutionException60be24e809cebe0b
    org.eclipse.aether.resolution.DependencyResult3a90b671ff8f4d07
    org.eclipse.aether.resolution.MetadataRequest6afe6d7ae41cae9f
    org.eclipse.aether.resolution.MetadataResult8e94a0e8e5a4adcf
    org.eclipse.aether.resolution.ResolutionErrorPolicyRequest3be95ab8c26360e0
    org.eclipse.aether.resolution.VersionRangeRequest763bcb32b868f094
    org.eclipse.aether.resolution.VersionRangeResulta247773d53f818c9
    org.eclipse.aether.resolution.VersionRequestf5c083f1a8563480
    org.eclipse.aether.resolution.VersionResult9c35cc28f40f1430
    org.eclipse.aether.spi.connector.ArtifactDownload2476e4f22f5847c6
    org.eclipse.aether.spi.connector.ArtifactTransferf3cb184b2f20fd49
    org.eclipse.aether.spi.connector.MetadataDownloadbcc9e801fa367fbe
    org.eclipse.aether.spi.connector.MetadataTransfer3a4bd38546c210df
    org.eclipse.aether.spi.connector.Transferd803c8771afd1ec4
    org.eclipse.aether.spi.connector.layout.RepositoryLayout.Checksum8e7c08fbfc25d36b
    org.eclipse.aether.spi.connector.transport.GetTask01daa9b27db1eebf
    org.eclipse.aether.spi.connector.transport.PeekTask2f56fd7c44a9a1a3
    org.eclipse.aether.spi.connector.transport.TransportListener760c4efaa0fceeb2
    org.eclipse.aether.spi.connector.transport.TransportTask163fcff2bd35927f
    org.eclipse.aether.spi.connector.transport.TransportTask.1f15cbc222c364acc
    org.eclipse.aether.transfer.AbstractTransferListener4c692296a190381d
    org.eclipse.aether.transfer.ArtifactNotFoundException8aa33fc80dd72b1a
    org.eclipse.aether.transfer.ArtifactTransferException4516c17573ac787f
    org.eclipse.aether.transfer.MetadataNotFoundExceptione035fe97f69b7331
    org.eclipse.aether.transfer.MetadataTransferExceptionc8c67c2410a8cef2
    org.eclipse.aether.transfer.TransferEventc9660918ee23a6f2
    org.eclipse.aether.transfer.TransferEvent.12586de18df0d28cb
    org.eclipse.aether.transfer.TransferEvent.Builderb148c3a3848dfe78
    org.eclipse.aether.transfer.TransferEvent.EventType362b95fbb9615076
    org.eclipse.aether.transfer.TransferEvent.RequestType8b16b603e6f6e313
    org.eclipse.aether.transfer.TransferResourceacbe44f330e5854f
    org.eclipse.aether.transport.wagon.WagonTransferListenerb85f448dfe16317d
    org.eclipse.aether.transport.wagon.WagonTransporter7e0c67fbae092309
    org.eclipse.aether.transport.wagon.WagonTransporter.GetTaskRunner5625099fd4f8cc62
    org.eclipse.aether.transport.wagon.WagonTransporter.PeekTaskRunner46affff02df9047e
    org.eclipse.aether.transport.wagon.WagonTransporterFactory26cdecfb9aef9364
    org.eclipse.aether.util.ChecksumUtils4ee95be05732225b
    org.eclipse.aether.util.ConfigUtils99edab18eab6465d
    org.eclipse.aether.util.artifact.ArtifactIdUtils25364b8ec4986efa
    org.eclipse.aether.util.artifact.DefaultArtifactTypeRegistry9a2e2c6c8da38e66
    org.eclipse.aether.util.artifact.SimpleArtifactTypeRegistrya73c4cdc580faca7
    org.eclipse.aether.util.artifact.SubArtifact1e6cbeda010a69a5
    org.eclipse.aether.util.concurrency.RunnableErrorForwarderde46016e5a5cf0c0
    org.eclipse.aether.util.concurrency.RunnableErrorForwarder.1b44b32862894cd19
    org.eclipse.aether.util.concurrency.WorkerThreadFactorye10875ad94a86603
    org.eclipse.aether.util.filter.AndDependencyFilter98b2bc3f2587ea9d
    org.eclipse.aether.util.filter.ExclusionsDependencyFilterc24c27082e0cb567
    org.eclipse.aether.util.filter.ScopeDependencyFilterbb5cc8b16ec35ffc
    org.eclipse.aether.util.graph.manager.ClassicDependencyManagerc0d9663f796727f1
    org.eclipse.aether.util.graph.manager.ClassicDependencyManager.Key24ab4f49ea6b4d5b
    org.eclipse.aether.util.graph.manager.DependencyManagerUtilsdf54a5a1b6bdff14
    org.eclipse.aether.util.graph.manager.DependencyManagerUtils692fe4094e27b407
    org.eclipse.aether.util.graph.selector.AndDependencySelector0029ca9b39eedfa5
    org.eclipse.aether.util.graph.selector.ExclusionDependencySelector7a0b7fad3d8f6e2c
    org.eclipse.aether.util.graph.selector.ExclusionDependencySelector.ExclusionComparatorc3ff65eb43cb703c
    org.eclipse.aether.util.graph.selector.OptionalDependencySelectorc2e081d7b4ec589b
    org.eclipse.aether.util.graph.selector.ScopeDependencySelector60bf8b0620a7bdcf
    org.eclipse.aether.util.graph.transformer.ChainedDependencyGraphTransformer2d884f89bcd2b987
    org.eclipse.aether.util.graph.transformer.ConflictIdSorter2ee1a0956a716d80
    org.eclipse.aether.util.graph.transformer.ConflictIdSorter.ConflictIdb20aea3e7924b084
    org.eclipse.aether.util.graph.transformer.ConflictIdSorter.RootQueued0dcb3c160e916ae
    org.eclipse.aether.util.graph.transformer.ConflictMarkerd24d6884c0bd4006
    org.eclipse.aether.util.graph.transformer.ConflictMarker.ConflictGroup98dc15c2652d8368
    org.eclipse.aether.util.graph.transformer.ConflictMarker.Keye5c7e5495a87181c
    org.eclipse.aether.util.graph.transformer.ConflictResolver384899dde7152cfd
    org.eclipse.aether.util.graph.transformer.ConflictResolver.ConflictContext21540bf8bbcfcb37
    org.eclipse.aether.util.graph.transformer.ConflictResolver.ConflictItem7b0221cb2a9842b4
    org.eclipse.aether.util.graph.transformer.ConflictResolver.NodeInfo40c05858d298dcd4
    org.eclipse.aether.util.graph.transformer.ConflictResolver.OptionalitySelector4d61314c86ea58be
    org.eclipse.aether.util.graph.transformer.ConflictResolver.ScopeContext717cd55d6f5c7875
    org.eclipse.aether.util.graph.transformer.ConflictResolver.ScopeDerivere48b35c97f7b30c5
    org.eclipse.aether.util.graph.transformer.ConflictResolver.ScopeSelectorba49ff8486e5e3ea
    org.eclipse.aether.util.graph.transformer.ConflictResolver.State02aa46d4b9b9d472
    org.eclipse.aether.util.graph.transformer.ConflictResolver.VersionSelector528be6a4caf19dac
    org.eclipse.aether.util.graph.transformer.JavaDependencyContextRefiner4ac264a1231fda7d
    org.eclipse.aether.util.graph.transformer.JavaScopeDeriver8f04bd4e69312d78
    org.eclipse.aether.util.graph.transformer.JavaScopeSelector53b4b13dabb0b9c8
    org.eclipse.aether.util.graph.transformer.NearestVersionSelectorf80aa36e79d5502a
    org.eclipse.aether.util.graph.transformer.NearestVersionSelector.ConflictGroupfd25946b2a3230c7
    org.eclipse.aether.util.graph.transformer.SimpleOptionalitySelectorf1cbeaf1df16e347
    org.eclipse.aether.util.graph.transformer.TransformationContextKeys47d2e0455710b0bb
    org.eclipse.aether.util.graph.traverser.FatArtifactTraverser520c4f85500aeda8
    org.eclipse.aether.util.graph.visitor.AbstractDepthFirstNodeListGeneratorb528c53b3e3d63bf
    org.eclipse.aether.util.graph.visitor.FilteringDependencyVisitor0632aa8e80120714
    org.eclipse.aether.util.graph.visitor.PreorderNodeListGenerator42c8f689b8d6f9c5
    org.eclipse.aether.util.graph.visitor.Stack69f1bab9de4c0f8a
    org.eclipse.aether.util.graph.visitor.TreeDependencyVisitor8a7ee664d551622b
    org.eclipse.aether.util.repository.AuthenticationBuilder1065187b864ce909
    org.eclipse.aether.util.repository.ChainedAuthentication7b5cc95ab5c295fb
    org.eclipse.aether.util.repository.DefaultAuthenticationSelectorfe9c00a311fa38c4
    org.eclipse.aether.util.repository.DefaultMirrorSelector1dc27f5d35a0e009
    org.eclipse.aether.util.repository.DefaultMirrorSelector.MirrorDef9d65cce8d0648f06
    org.eclipse.aether.util.repository.DefaultProxySelector9621e5be87bdb9f8
    org.eclipse.aether.util.repository.SecretAuthentication2830ca28afd99bca
    org.eclipse.aether.util.repository.SimpleArtifactDescriptorPolicyd9324cc47219fb78
    org.eclipse.aether.util.repository.SimpleResolutionErrorPolicyb73605ce18f21a2b
    org.eclipse.aether.util.repository.StringAuthenticatione19d323f2ad9cab2
    org.eclipse.aether.util.version.GenericVersiona266d7c35c0161a8
    org.eclipse.aether.util.version.GenericVersion.Itema48cc569adf33ed7
    org.eclipse.aether.util.version.GenericVersion.Tokenizerb58979a813b61ca6
    org.eclipse.aether.util.version.GenericVersionConstraintd93ef3cf971c88cd
    org.eclipse.aether.util.version.GenericVersionRangef578b3ce465e3e07
    org.eclipse.aether.util.version.GenericVersionScheme89376c2464a88630
    org.eclipse.aether.util.version.UnionVersionRange99dca4884c76615b
    org.eclipse.aether.version.VersionRange.Bound7b40aed05448cb78
    org.eclipse.sisu.bean.BeanInjector2e8128055d5e610a
    org.eclipse.sisu.bean.BeanLifecycleb0c5a491ba014120
    org.eclipse.sisu.bean.BeanListener8f3309ac88d4a306
    org.eclipse.sisu.bean.BeanProperties6316b62780e3c9a8
    org.eclipse.sisu.bean.BeanPropertyField6b4d7d3b9567ca45
    org.eclipse.sisu.bean.BeanPropertyIterator04afcbd45c9e2ab4
    org.eclipse.sisu.bean.BeanPropertySetterc2d6f87fb22f864d
    org.eclipse.sisu.bean.BeanScheduler876f5c9222255f3e
    org.eclipse.sisu.bean.BeanScheduler.1750408aabd323c88
    org.eclipse.sisu.bean.BeanScheduler.CycleActivator6963b7e245dca1e8
    org.eclipse.sisu.bean.BeanScheduler.CycleActivator.155be160728ddbabd
    org.eclipse.sisu.bean.DeclaredMembersb83abaaacefb18d5
    org.eclipse.sisu.bean.DeclaredMembers.MemberIterator0111a86717d0edbb
    org.eclipse.sisu.bean.DeclaredMembers.View5314d4b610dd651f
    org.eclipse.sisu.bean.DeclaredMembers.View.19a35d81d7c5ae01b
    org.eclipse.sisu.bean.DeclaredMembers.View.2d422012db5310abc
    org.eclipse.sisu.bean.DeclaredMembers.View.3b159c18059e5e0b4
    org.eclipse.sisu.bean.LifecycleBuilder9ea784224b9576ac
    org.eclipse.sisu.bean.LifecycleManager7429430a787a2a50
    org.eclipse.sisu.bean.PropertyBinder7fa4d797a5981f5e
    org.eclipse.sisu.bean.PropertyBinder.17353603749636130
    org.eclipse.sisu.inject.BeanCache382d1242da97f2d8
    org.eclipse.sisu.inject.DefaultBeanLocatorf98506689d3ad436
    org.eclipse.sisu.inject.DefaultRankingFunction5a4747cbe30b78bc
    org.eclipse.sisu.inject.DescriptionSource39e80e695c2f655c
    org.eclipse.sisu.inject.Guice48b4a273507bbb3d7
    org.eclipse.sisu.inject.Guice4.13f4094932b69986b
    org.eclipse.sisu.inject.HiddenSource04dae8c8851d9c0d
    org.eclipse.sisu.inject.Implementationscce875273a764270
    org.eclipse.sisu.inject.Implementations.ClassFinderda033f0f8e37fbd9
    org.eclipse.sisu.inject.ImplicitBindingsa3e53ab8b0a1e826
    org.eclipse.sisu.inject.InjectorBindings37dbe094dd1a38fc
    org.eclipse.sisu.inject.LazyBeanEntry329d2f10f0ef9263
    org.eclipse.sisu.inject.LazyBeanEntry.JsrNamed31b028e5ca582cfb
    org.eclipse.sisu.inject.LocatedBeans9c89c19bb7a74473
    org.eclipse.sisu.inject.LocatedBeans.Itrc8158d871a7a969d
    org.eclipse.sisu.inject.Logsa45a946b19c9652d
    org.eclipse.sisu.inject.Logs.SLF4JSink18a87a880874a3ff
    org.eclipse.sisu.inject.MildConcurrentKeys4600a52f00ac409c
    org.eclipse.sisu.inject.MildConcurrentValues3495d973c56091dc
    org.eclipse.sisu.inject.MildElementsc9ff59135cc7a8ff
    org.eclipse.sisu.inject.MildElements.Itr1b09176c6f3198d6
    org.eclipse.sisu.inject.MildElements.Weakb4318b70ce079cfe
    org.eclipse.sisu.inject.MildKeys3645a21915ab7db5
    org.eclipse.sisu.inject.MildKeys.Weaka0e2ed97b804deb5
    org.eclipse.sisu.inject.MildValuesd4a77afa4a6b2720
    org.eclipse.sisu.inject.MildValues.1345eb22f591f659c
    org.eclipse.sisu.inject.MildValues.ValueItr671642afdba076d9
    org.eclipse.sisu.inject.MildValues.Weak5366cbd5c215c6c4
    org.eclipse.sisu.inject.QualifyingStrategy8bdb6cf996d384e6
    org.eclipse.sisu.inject.QualifyingStrategy.13dffb4a9169768cb
    org.eclipse.sisu.inject.QualifyingStrategy.27b2580cc2278d9b2
    org.eclipse.sisu.inject.QualifyingStrategy.35123ae136b09c808
    org.eclipse.sisu.inject.QualifyingStrategy.4b7961e0501c00750
    org.eclipse.sisu.inject.QualifyingStrategy.55d168112cd5bb83b
    org.eclipse.sisu.inject.RankedBindings2385eaa929888d4d
    org.eclipse.sisu.inject.RankedBindings.Itrb2478d26d7b67724
    org.eclipse.sisu.inject.RankedSequence3e3f8987cdb6638b
    org.eclipse.sisu.inject.RankedSequence.Content39b8e930cc8de80b
    org.eclipse.sisu.inject.RankedSequence.Itr302179e26af647f8
    org.eclipse.sisu.inject.Sourcesf8c144be16599d7d
    org.eclipse.sisu.inject.TypeArguments97104112aa141900
    org.eclipse.sisu.inject.Weak51c35b72949f369c
    org.eclipse.sisu.plexus.ClassRealmManagereff43a12844a0372
    org.eclipse.sisu.plexus.ComponentDescriptorBeanModuledac87483ed026793
    org.eclipse.sisu.plexus.ComponentDescriptorBeanModule.ComponentMetadata2f4c35498aff75ee
    org.eclipse.sisu.plexus.ComponentDescriptorBeanModule.PlexusDescriptorBeanSource7bb22fcc1b0d0ee8
    org.eclipse.sisu.plexus.ComponentImpl5f6f11d91ae645cd
    org.eclipse.sisu.plexus.CompositeBeanHelperb5032db2bb6c6642
    org.eclipse.sisu.plexus.CompositeBeanHelper.13d86c6539c413522
    org.eclipse.sisu.plexus.ConfigurationImpl54bdb32e4e2a8cef
    org.eclipse.sisu.plexus.DefaultPlexusBeanLocatord1ca86cf7bb007bc
    org.eclipse.sisu.plexus.DefaultPlexusBeansd4daaac1da5db52c
    org.eclipse.sisu.plexus.DefaultPlexusBeans.Itr983e3d179b89a3d7
    org.eclipse.sisu.plexus.Hints4c47135ff4a2697d
    org.eclipse.sisu.plexus.LazyPlexusBean6797fd180a7015e2
    org.eclipse.sisu.plexus.PlexusAnnotatedBeanModule31a5bb0ac23b667e
    org.eclipse.sisu.plexus.PlexusAnnotatedBeanModule.1dc94fe2fc4cef5d2
    org.eclipse.sisu.plexus.PlexusAnnotatedBeanModule.PlexusAnnotatedBeanSource4d8d82854df77d0a
    org.eclipse.sisu.plexus.PlexusAnnotatedMetadata14f4c9e3883377a5
    org.eclipse.sisu.plexus.PlexusBeanBinder9e78e453651c5e38
    org.eclipse.sisu.plexus.PlexusBindingModulebcf44a7f8faa2c07
    org.eclipse.sisu.plexus.PlexusConfigurationsd54af3b088c76bd2
    org.eclipse.sisu.plexus.PlexusConfigurations.ConfigurationProvider6609c53fc644ca0d
    org.eclipse.sisu.plexus.PlexusDateTypeConverter19820cce7e83310f
    org.eclipse.sisu.plexus.PlexusLifecycleManager6ea67a37e01bcfc4
    org.eclipse.sisu.plexus.PlexusLifecycleManager.20b18a7efdccf18cb
    org.eclipse.sisu.plexus.PlexusPropertyBinderb3215114faa82eca
    org.eclipse.sisu.plexus.PlexusRequirementse960093da3d5c797
    org.eclipse.sisu.plexus.PlexusRequirements.AbstractRequirementProvider376b2b5224173d64
    org.eclipse.sisu.plexus.PlexusRequirements.RequirementListProviderb4896fdb5eed1908
    org.eclipse.sisu.plexus.PlexusRequirements.RequirementMapProvider5685ae776a880ee7
    org.eclipse.sisu.plexus.PlexusRequirements.RequirementProviderf9f67de58b78d187
    org.eclipse.sisu.plexus.PlexusTypeBinder1149679244a0e2bd
    org.eclipse.sisu.plexus.PlexusTypeRegistry6e35f638f7e48b32
    org.eclipse.sisu.plexus.PlexusTypeVisitor498c619653a30c86
    org.eclipse.sisu.plexus.PlexusTypeVisitor.ComponentAnnotationVisitor43872cc593f043c3
    org.eclipse.sisu.plexus.PlexusXmlBeanConverterdd5e7c1db4c2fc66
    org.eclipse.sisu.plexus.PlexusXmlBeanModule17de3c4c622b0ba0
    org.eclipse.sisu.plexus.PlexusXmlBeanModule.PlexusXmlBeanSourcef9a3d9aa92aae278
    org.eclipse.sisu.plexus.PlexusXmlMetadata2ad6a4c89e36b586
    org.eclipse.sisu.plexus.PlexusXmlScanner4ed0e681b9751bcf
    org.eclipse.sisu.plexus.ProvidedPropertyBinding6e081e8eec09bace
    org.eclipse.sisu.plexus.RealmFilteredBeans2a33dbb15b63935f
    org.eclipse.sisu.plexus.RealmFilteredBeans.FilteredItrb132e32aab5c3470
    org.eclipse.sisu.plexus.RequirementImpl61b519a8d750980f
    org.eclipse.sisu.plexus.Roles3e24f232efcf06ed
    org.eclipse.sisu.space.AbstractDeferredClass472c038c46595259
    org.eclipse.sisu.space.BeanScanning07b4ee3c550af352
    org.eclipse.sisu.space.CloningClassSpace66896ef167f44981
    org.eclipse.sisu.space.CloningClassSpace.1f1c9af3d2616e5bf
    org.eclipse.sisu.space.CloningClassSpace.CloningClassLoadere5469d76825bae28
    org.eclipse.sisu.space.DefaultClassFinderdb8ec25c6c67da87
    org.eclipse.sisu.space.FileEntryIterator4b5cf72ecb98491a
    org.eclipse.sisu.space.GlobberStrategy52df76d177fcdd86
    org.eclipse.sisu.space.GlobberStrategy.11a4c9d7f41111f1f
    org.eclipse.sisu.space.GlobberStrategy.2ce75be2e561eeecf
    org.eclipse.sisu.space.GlobberStrategy.3915761cede2dc7f0
    org.eclipse.sisu.space.GlobberStrategy.4d677d8e552a6721a
    org.eclipse.sisu.space.GlobberStrategy.510e247c5314cdfd0
    org.eclipse.sisu.space.IndexedClassFinderf2e79d8f9ef36d64
    org.eclipse.sisu.space.IndexedClassFinder.1ed4c027efa4fe02b
    org.eclipse.sisu.space.LoadedClassfdb46d891f167a1e
    org.eclipse.sisu.space.NamedClassebcad2cc154f68aa
    org.eclipse.sisu.space.QualifiedTypeBinder2b88f38f3eed029b
    org.eclipse.sisu.space.QualifiedTypeBinder.1e1bac4e059005d54
    org.eclipse.sisu.space.QualifiedTypeVisitord660080247bedc87
    org.eclipse.sisu.space.QualifierCache7c9e49612f04ffec
    org.eclipse.sisu.space.ResourceEnumeration310c00490124a409
    org.eclipse.sisu.space.SpaceModulec092f3277f07a7af
    org.eclipse.sisu.space.SpaceModule.Strategy082cdd800f5667ee
    org.eclipse.sisu.space.SpaceModule.Strategy.1b736ccb10af9108d
    org.eclipse.sisu.space.SpaceScannere97d8c3b6d397ae2
    org.eclipse.sisu.space.SpaceScanner.14f9f4db2b57e0f5e
    org.eclipse.sisu.space.Streams40e8ed23eba0c0c6
    org.eclipse.sisu.space.URLClassSpaceb934d107477ddd50
    org.eclipse.sisu.space.WildcardKey8970655c2c325473
    org.eclipse.sisu.space.WildcardKey.QualifiedImpl4459e1715740d94a
    org.eclipse.sisu.space.asm.ByteVector7b683bf2c588ab80
    org.eclipse.sisu.space.asm.ClassReader8a3e7d9ac8705663
    org.eclipse.sisu.space.asm.ClassVisitor4115141f4504a662
    org.eclipse.sisu.space.asm.ClassWriter67ee68ad268c1e97
    org.eclipse.sisu.space.asm.Contextd73d35f5ec45cc3d
    org.eclipse.sisu.space.asm.Item1f077e0f837ab619
    org.eclipse.sisu.space.asm.MethodVisitorc5f1682359b76688
    org.eclipse.sisu.space.asm.MethodWriter4c2f6611ec463c4f
    org.eclipse.sisu.wire.AbstractTypeConverter180ea9e40c23f34d
    org.eclipse.sisu.wire.BeanProviders2a23cb82bfe38cdc
    org.eclipse.sisu.wire.BeanProviders.11d71bd41c29add1e
    org.eclipse.sisu.wire.BeanProviders.381adc8b611362e07
    org.eclipse.sisu.wire.BeanProviders.465ef0930b998dad9
    org.eclipse.sisu.wire.BeanProviders.6d7dec0f370f737fa
    org.eclipse.sisu.wire.BeanProviders.71227d6f66239af91
    org.eclipse.sisu.wire.DependencyAnalyzer433ba24439953fac
    org.eclipse.sisu.wire.ElementAnalyzer424ca87526c18853
    org.eclipse.sisu.wire.ElementAnalyzer.1870e46aba4bbea7d
    org.eclipse.sisu.wire.EntryListAdapterbf77e6c5b374bf62
    org.eclipse.sisu.wire.EntryListAdapter.ValueIterator903be58572efe633
    org.eclipse.sisu.wire.EntryMapAdapter91d53462f884e42e
    org.eclipse.sisu.wire.EntryMapAdapter.EntrySet911738927485631c
    org.eclipse.sisu.wire.EntrySetAdapterdf44dc5ac6730d32
    org.eclipse.sisu.wire.EntrySetAdapter.ValueIterator5bb7409aaf62c054
    org.eclipse.sisu.wire.FileTypeConverter8dd4f6b96bb34090
    org.eclipse.sisu.wire.LocatorWiringec69df8483f00eba
    org.eclipse.sisu.wire.MergedPropertiesa5846853caa6992b
    org.eclipse.sisu.wire.NamedIterableAdapterd4e047de0ce39487
    org.eclipse.sisu.wire.ParameterKeysffc8de45e6eeca25
    org.eclipse.sisu.wire.PlaceholderBeanProviderb43eaba18c721b8a
    org.eclipse.sisu.wire.TypeConverterCachef0821bccda91a0b1
    org.eclipse.sisu.wire.URLTypeConverterd13cc26c27375694
    org.eclipse.sisu.wire.WireModule08f5efc75914a064
    org.eclipse.sisu.wire.WireModule.Strategy012f689a554ea078
    org.eclipse.sisu.wire.WireModule.Strategy.131bc5d0e450bd7fc
    org.fusesource.jansi.Ansi603f2b957c03acf7
    org.fusesource.jansi.Ansi.1519e5ff2c03936da
    org.fusesource.jansi.Ansi.2778e54530194f40d
    org.fusesource.jansi.Ansi.Attribute28d1c58ca82605fc
    org.fusesource.jansi.Ansi.Color04458ab8591a1201
    org.fusesource.jansi.Ansi.NoAnsi5eea646c764bdecd
    org.fusesource.jansi.AnsiColors17fd04959e69fbbd
    org.fusesource.jansi.AnsiConsole9842904853451d7e
    org.fusesource.jansi.AnsiMode5d91c521069ccee5
    org.fusesource.jansi.AnsiPrintStreama10f086dd5691836
    org.fusesource.jansi.AnsiTypeb8b00cb9480283cf
    org.fusesource.jansi.internal.CLibrary4f4b5321cd03e7f0
    org.fusesource.jansi.internal.JansiLoader99d490183bbb095d
    org.fusesource.jansi.internal.JansiLoader.1672b483c5f08a2ff
    org.fusesource.jansi.internal.OSInfo6518ec52b6fc8d17
    org.fusesource.jansi.io.AnsiOutputStream3aba47ad2d5f3bec
    org.fusesource.jansi.io.AnsiOutputStream.ZeroWidthSupplier0fce085599d7b97b
    org.fusesource.jansi.io.AnsiProcessorf588fd7249a419bb
    org.fusesource.jansi.io.FastBufferedOutputStream1e4560be87e3283c
    org.h2.Driver1f044461dbd822a6
    org.h2.api.ErrorCode840ef5ab229bbf49
    org.h2.api.IntervalQualifier246aae6a9c36f2b7
    org.h2.api.IntervalQualifier.1bf97f880f3318a4a
    org.h2.command.Commandf15559eee5a4b67d
    org.h2.command.CommandContainer7f1438019fc91d17
    org.h2.command.CommandContainer.GeneratedKeysCollector5cf7b5e7aba73e8d
    org.h2.command.CommandListfddd5691a587a13e
    org.h2.command.Parser2bb8f9e5a4a70b2e
    org.h2.command.Parser.1cb4488aad45d295c
    org.h2.command.Parser.NullConstraintType1f57cffeb49c7540
    org.h2.command.Prepared2afc45f364116e7c
    org.h2.command.Token9041f63f56392fb0
    org.h2.command.Token.CharacterStringTokendfb98b3bd2551690
    org.h2.command.Token.EndOfInputTokence0acd08cca36d96
    org.h2.command.Token.IdentifierToken96fa97b12ec39d26
    org.h2.command.Token.IntegerToken706265d29c73ee40
    org.h2.command.Token.KeywordToken89175f50cf553a38
    org.h2.command.Token.LiteralToken55ac31d811877860
    org.h2.command.Token.ParameterTokena1dbfddba95ea8c7
    org.h2.command.Tokenizer43f9aad9c9c53267
    org.h2.command.ddl.AlterTable7aa39625dc5b307b
    org.h2.command.ddl.AlterTableAddConstraint6b675b8c9348065a
    org.h2.command.ddl.Analyzed44dcecb13e7b816
    org.h2.command.ddl.Analyze.SelectivityData9d2bf75f8d5ea568
    org.h2.command.ddl.CommandWithColumns5d9315b33ee69573
    org.h2.command.ddl.CreateFunctionAliasd2883f3f10fd8091
    org.h2.command.ddl.CreateIndexf31feb6e3685ea46
    org.h2.command.ddl.CreateSequencef0b8c2a1c5e12476
    org.h2.command.ddl.CreateTablee7275c1615ebec1c
    org.h2.command.ddl.CreateTableData3569f1ca31e74768
    org.h2.command.ddl.CreateUser2695390fae1d1c8e
    org.h2.command.ddl.DefineCommandcdddc9c95e413810
    org.h2.command.ddl.DropFunctionAlias631cd825046dbdf1
    org.h2.command.ddl.DropTablec459b4654874bc90
    org.h2.command.ddl.DropTable.SchemaAndTable6a855d249c69374b
    org.h2.command.ddl.SchemaCommand37562b22aa4d46eb
    org.h2.command.ddl.SchemaOwnerCommandd933ca320cd38b16
    org.h2.command.ddl.SequenceOptionsac62424e14dc3d1f
    org.h2.command.dml.Call4aac04baa26dbb5c
    org.h2.command.dml.CommandWithValuesfe71d1b4348da45a
    org.h2.command.dml.DataChangeStatement33e9a83e6aa9a2b0
    org.h2.command.dml.Deleteb0c0aa15ef7ffca8
    org.h2.command.dml.FilteredDataChangeStatementd1f06c41064db97d
    org.h2.command.dml.Insert92b352a399a37d13
    org.h2.command.dml.Mergef44a09337cc1f188
    org.h2.command.dml.NoOperation45224ad69233db9a
    org.h2.command.dml.Setd21842a092a85228
    org.h2.command.dml.SetClauseList8d7af84401b9e26f
    org.h2.command.dml.SetClauseList.SetSimple8f716343f11c7e82
    org.h2.command.dml.SetClauseList.UpdateAction1eb72da8fe8e5057
    org.h2.command.dml.SetTypes016d945a5f04106d
    org.h2.command.dml.TransactionCommand3d756d024aef2b4e
    org.h2.command.dml.Update1bc1970970fb06be
    org.h2.command.query.AllColumnsForPlan450f809346d1808b
    org.h2.command.query.Optimizer46f986c336d6a3f6
    org.h2.command.query.Queryb4b2ce90b74182d5
    org.h2.command.query.Query.OffsetFetch19fb6b1d83396f8a
    org.h2.command.query.QueryOrderBy23777a00278ca3a2
    org.h2.command.query.Selectf5dc2c718161fa97
    org.h2.command.query.Select.LazyResultGroupSortedc599665435c0d17c
    org.h2.command.query.Select.LazyResultQueryFlat85da5085987fa500
    org.h2.command.query.Select.LazyResultSelectbccfb20cef56dd5e
    org.h2.command.query.SelectGroups31af3273b4e64a1c
    org.h2.command.query.SelectGroups.Groupede4db5aab5499ea40
    org.h2.compress.CompressLZF4b905f980eac239a
    org.h2.constraint.Constraintf020b750ed00e5a4
    org.h2.constraint.Constraint.Type22cd7378e3a10d3f
    org.h2.constraint.ConstraintActionType5628afb57ab6e865
    org.h2.constraint.ConstraintReferential2a77c026aeb8aab4
    org.h2.constraint.ConstraintUniqued487c96b0517f1bf
    org.h2.engine.ConnectionInfo343d6a137cb5b573
    org.h2.engine.Database83e12c5a8547f3c5
    org.h2.engine.DbObjecta1d54de7a70f69aa
    org.h2.engine.DbSettingsc16ca39af0b52094
    org.h2.engine.Engine8d1bef8b32a84ba9
    org.h2.engine.Engine.DatabaseHolderf3e1da4d84fad7c4
    org.h2.engine.IsolationLeveldc3d1e0f909bb346
    org.h2.engine.MetaRecord29bceca9a65575ba
    org.h2.engine.Moded125cf383981bd10
    org.h2.engine.Mode.CharPadding8cf8ff3cbc571739
    org.h2.engine.Mode.ExpressionNames88384897021057f2
    org.h2.engine.Mode.ModeEnuma38cd43a6cd506a3
    org.h2.engine.Mode.UniqueIndexNullsHandling502dde04362c0a05
    org.h2.engine.Mode.ViewExpressionNames5d52fc04ceb58107
    org.h2.engine.OnExitDatabaseCloserbf4571800d7637b7
    org.h2.engine.RightOwnerc6021e43f64032ac
    org.h2.engine.Role094194bad60e1b75
    org.h2.engine.Session64d6d72ad82917c2
    org.h2.engine.SessionLocal51a58f8ace245808
    org.h2.engine.SessionLocal.155f9583f8325b772
    org.h2.engine.SessionLocal.Savepoint781800cec7d35e7d
    org.h2.engine.SessionLocal.State1a3f8ed61a9b559b
    org.h2.engine.SessionRemotef37ba123636968a3
    org.h2.engine.Settingc86b1d51f590b2b5
    org.h2.engine.SettingsBase47dcfc6eb02612ad
    org.h2.engine.SysProperties738fc14326e6697a
    org.h2.engine.User6642d70796bd346f
    org.h2.expression.Alias47aad16dec6f33d9
    org.h2.expression.Expressionbb4614abe3a7154a
    org.h2.expression.ExpressionColumnf3c03411ffc0fd1f
    org.h2.expression.ExpressionVisitorcabab1ad46664b16
    org.h2.expression.Operation0b942a11663e00451
    org.h2.expression.Parameter9867f0e8942380a2
    org.h2.expression.Subqueryeff6c6c3dc5e12a9
    org.h2.expression.ValueExpressionb0947d3b406882f5
    org.h2.expression.Wildcardd50b73091423744c
    org.h2.expression.aggregate.AbstractAggregatea1557954a9f0e0fd
    org.h2.expression.aggregate.Aggregatede37080964c8db3d
    org.h2.expression.aggregate.Aggregate.128b7d61d336b32ba
    org.h2.expression.aggregate.AggregateType1f12aa2df974eb3f
    org.h2.expression.analysis.DataAnalysisOperation0b8d4789dc81b499
    org.h2.expression.analysis.WindowFunctionType9edb2feb98f39fd3
    org.h2.expression.condition.CompareLikebfca5d36f3721656
    org.h2.expression.condition.CompareLike.LikeTypee95df3a5894c0c26
    org.h2.expression.condition.Comparisonab7a87af7f1330e7
    org.h2.expression.condition.Conditionbb2da5a03aff382e
    org.h2.expression.condition.ConditionAndOr2634baba9064882c
    org.h2.expression.condition.ConditionAndOrN0491a0d6c6b89083
    org.h2.expression.condition.ConditionAndOrN.1cfd803b14c295199
    org.h2.expression.condition.ConditionIne017bd7adb1fec4c
    org.h2.expression.condition.ConditionInConstantSetaddc1ef3077dfa02
    org.h2.expression.condition.ConditionInQuery83b77a124dc49b44
    org.h2.expression.condition.ConditionNot1a7a1eba3b305bb4
    org.h2.expression.condition.ExistsPredicatee7bcaf34917488c9
    org.h2.expression.condition.NullPredicate21b0526630ed4e26
    org.h2.expression.condition.PredicateWithSubquery46eace853cd5ff8a
    org.h2.expression.condition.SimplePredicate0f9b739d0f1359bd
    org.h2.expression.function.BuiltinFunctions78766f5d309e1eec
    org.h2.expression.function.JavaFunction8391ba07cf63097b
    org.h2.expression.function.table.JavaTableFunction8cb1238ea869184a
    org.h2.expression.function.table.TableFunction5addabe4c1cbb08e
    org.h2.index.Index1437895d5bdaf159
    org.h2.index.Index.1a3373b1a421e99ac
    org.h2.index.IndexCondition0e9d41fbd2afa93d
    org.h2.index.IndexCursor21f3911a0d80a7b2
    org.h2.index.IndexTypedb20d5927a484411
    org.h2.index.QueryExpressionCursorc53cb48c5a0bf1f0
    org.h2.index.QueryExpressionIndex2b0eaa3b6eb43f26
    org.h2.index.SingleRowCursor6f2da13a23aba782
    org.h2.index.VirtualConstructedTableIndexc17d7a1400792d7a
    org.h2.index.VirtualTableCursor8db1a2842eb0be15
    org.h2.index.VirtualTableIndex44e06dac7b5e3d1d
    org.h2.jdbc.JdbcCallableStatement36a9537027d01f49
    org.h2.jdbc.JdbcConnectionaa9112f98496def0
    org.h2.jdbc.JdbcDatabaseMetaData4b65250c88adaaa7
    org.h2.jdbc.JdbcPreparedStatement0aaec231f77e8af1
    org.h2.jdbc.JdbcResultSet6616d9dd2dd82d4f
    org.h2.jdbc.JdbcSQLSyntaxErrorException2bd1ec0ceace2a26
    org.h2.jdbc.JdbcStatementdf8e9ff4d1b735bd
    org.h2.jdbc.meta.DatabaseMeta379d6005c31973cb
    org.h2.jdbc.meta.DatabaseMetaLocal9825c2b1e6cec520
    org.h2.jdbc.meta.DatabaseMetaLocalBasea42ca75579848556
    org.h2.message.DbException3f0e60c471f39e98
    org.h2.message.Trace491f3dad3147c898
    org.h2.message.TraceObjectc9beab9cd4384a9d
    org.h2.message.TraceSystemaa8bb0c0af8cc8c0
    org.h2.mode.DefaultNullOrderingd83aa2fead8d7efe
    org.h2.mode.ModeFunction03b3e1d15a53837f
    org.h2.mvstore.Chunk2b8a58455a4c2e7c
    org.h2.mvstore.Cursor5d963e5e8ab0be55
    org.h2.mvstore.CursorPosd146fb9483aa8712
    org.h2.mvstore.DataUtils6f9e8b0e67603e41
    org.h2.mvstore.FileStore4d01e40aea5428e5
    org.h2.mvstore.FreeSpaceBitSet55db07b87d11e2d4
    org.h2.mvstore.MVMap32c3349a2372c157
    org.h2.mvstore.MVMap.27df089698418071c
    org.h2.mvstore.MVMap.2.106461ea1c3079cfc
    org.h2.mvstore.MVMap.48673b0dfdf29edc4
    org.h2.mvstore.MVMap.BasicBuilder12a8106056e3784e
    org.h2.mvstore.MVMap.Builder51c13779e4e1a2de
    org.h2.mvstore.MVMap.Decision2391341a8b4c7da2
    org.h2.mvstore.MVMap.DecisionMaker7fe21a9c95f0236a
    org.h2.mvstore.MVMap.DecisionMaker.159f115a410484a7f
    org.h2.mvstore.MVMap.DecisionMaker.26070fe88d005eac4
    org.h2.mvstore.MVMap.DecisionMaker.3be1c10e28ff6d6ed
    org.h2.mvstore.MVMap.DecisionMaker.4f9827774c99da346
    org.h2.mvstore.MVMap.DecisionMaker.5275afe4d593556c7
    org.h2.mvstore.MVMap.IntValueHolderfb1881f08df938cf
    org.h2.mvstore.MVMap.RewriteDecisionMaker3e5cd264616ca1dc
    org.h2.mvstore.MVStore4fc94bbd472340df
    org.h2.mvstore.MVStore.BackgroundWriterThread5e4fe6f9b6650f62
    org.h2.mvstore.MVStore.Builder22b94348c270ef84
    org.h2.mvstore.MVStore.RemovedPageInfo31c493fb15eead92
    org.h2.mvstore.MVStore.TxCounterf5c51e97efd048ff
    org.h2.mvstore.MVStoreTool40622d2c8e8a8fae
    org.h2.mvstore.MVStoreTool.GenericDataTypeabe626abc33a1797
    org.h2.mvstore.Page5b32006674721ed6
    org.h2.mvstore.Page.IncompleteNonLeaf94e31503b59e3d33
    org.h2.mvstore.Page.Leaf48d9ba9ba9662350
    org.h2.mvstore.Page.NonLeafbd593ef4c947b0e0
    org.h2.mvstore.Page.PageReferencea98dbb4602145de4
    org.h2.mvstore.RootReference8b29fe57e28baad2
    org.h2.mvstore.StreamStorea4b55720e4fa8a71
    org.h2.mvstore.WriteBufferf98e4194dfd876cb
    org.h2.mvstore.cache.CacheLongKeyLIRS70a2cf8ef58af26d
    org.h2.mvstore.cache.CacheLongKeyLIRS.Configab6a58ffa39c6717
    org.h2.mvstore.cache.CacheLongKeyLIRS.Entry7e7768c4cf65b4d3
    org.h2.mvstore.cache.CacheLongKeyLIRS.Segmentf45e9bdce23b5c6a
    org.h2.mvstore.cache.FilePathCache5cc88ecfa563617d
    org.h2.mvstore.db.LobStorageMapeee0296b34855abd
    org.h2.mvstore.db.LobStorageMap.BlobMeta.Type56a8bacb3e75d3c8
    org.h2.mvstore.db.LobStorageMap.BlobReference.Type9792efaa202c63aa
    org.h2.mvstore.db.MVDelegateIndex75a01b645f8a059b
    org.h2.mvstore.db.MVIndex30888e50fac82aa6
    org.h2.mvstore.db.MVPrimaryIndex4f32c68b3cab90d0
    org.h2.mvstore.db.MVPrimaryIndex.MVStoreCursorca89bfad0dcdffb4
    org.h2.mvstore.db.MVSecondaryIndex9c8fdcc12dea3c65
    org.h2.mvstore.db.MVSecondaryIndex.MVStoreCursor790db329af86c31a
    org.h2.mvstore.db.MVTablef4e542fe436bca97
    org.h2.mvstore.db.MVTable.TraceLockEvent2c65ff40346dd416
    org.h2.mvstore.db.NullValueDataType75887b246893f2df
    org.h2.mvstore.db.RowDataType415fc270aba4597d
    org.h2.mvstore.db.RowDataType.Factory61377fce7824577e
    org.h2.mvstore.db.Store9aa6802d26be5c1b
    org.h2.mvstore.db.ValueDataTypeddc57cbd4a05c876
    org.h2.mvstore.db.ValueDataType.Factory03156b0134bc4c6d
    org.h2.mvstore.tx.CommitDecisionMakerae621b8defbb83c6
    org.h2.mvstore.tx.Record254f69f363a486df
    org.h2.mvstore.tx.Record.Type13c88f7aecc610aa
    org.h2.mvstore.tx.Snapshot7825bd583d62dd0e
    org.h2.mvstore.tx.Transaction75932f57c40d96dc
    org.h2.mvstore.tx.TransactionMapa4908653e3ce2a56
    org.h2.mvstore.tx.TransactionMap.25cafec78b793e40f
    org.h2.mvstore.tx.TransactionMap.CommittedIterator22e94be11a21d3ac
    org.h2.mvstore.tx.TransactionMap.TMIterator80572a0d1caf43d1
    org.h2.mvstore.tx.TransactionMap.UncommittedIterator57853f3b6dbd4d83
    org.h2.mvstore.tx.TransactionMap.ValidationIterator75ff7710527bb148
    org.h2.mvstore.tx.TransactionStore5a88a95b9fb34fd5
    org.h2.mvstore.tx.TransactionStore.TxMapBuilder57e161cc52d96ce9
    org.h2.mvstore.tx.TransactionStore.TxMapBuilder.TMVMapf60431e734e35b1e
    org.h2.mvstore.tx.TxDecisionMaker85e444859e7357fd
    org.h2.mvstore.tx.TxDecisionMaker.LockDecisionMaker7ea1a788b9a585d7
    org.h2.mvstore.tx.TxDecisionMaker.PutIfAbsentDecisionMaker1259ec8cbd8d5f8c
    org.h2.mvstore.tx.VersionedBitSetcb03917e9303dd05
    org.h2.mvstore.tx.VersionedValueCommitted1f63835704f93873
    org.h2.mvstore.tx.VersionedValueTypee90353e002224186
    org.h2.mvstore.tx.VersionedValueType.Factoryb6f7352cd3439a49
    org.h2.mvstore.tx.VersionedValueUncommitted5871ba85ec76be11
    org.h2.mvstore.type.BasicDataType21b8242aa76782c6
    org.h2.mvstore.type.ByteArrayDataTypee926b9099661c292
    org.h2.mvstore.type.LongDataTypea03799f8c42a57d4
    org.h2.mvstore.type.MetaType1b436879079fb452
    org.h2.mvstore.type.ObjectDataType0579ed66fbb3a9d1
    org.h2.mvstore.type.ObjectDataType.AutoDetectDataTyped93d15cbc56bc2c0
    org.h2.mvstore.type.ObjectDataType.NullType9b8599d75350eb1b
    org.h2.mvstore.type.StringDataType4997f0a656a9b7fc
    org.h2.result.DefaultRowa9aef564d7a9fe69
    org.h2.result.FetchedResult2008c917d16b1cc3
    org.h2.result.LazyResult432ec92435f96622
    org.h2.result.LocalResult9de4335bee1fec76
    org.h2.result.MergedResult5e6094386dade22b
    org.h2.result.ResultWithGeneratedKeys56dd718df0035863
    org.h2.result.ResultWithGeneratedKeys.WithKeys81453e840e25f068
    org.h2.result.Rowe004551f934d55a4
    org.h2.result.RowFactory301cd649330026d4
    org.h2.result.RowFactory.DefaultRowFactory5ab0b7f9f28099de
    org.h2.result.RowFactory.Holder41f1cc54c079c8d7
    org.h2.result.SearchRowd20e3d81378dc409
    org.h2.result.SimpleResult920b7e7276e08e34
    org.h2.result.SimpleRowValueb7d88298dd608b52
    org.h2.result.SortOrder497173c7c397dac3
    org.h2.result.Sparseb44a8f52a128b90c
    org.h2.schema.FunctionAlias2e55d18c6db10dae
    org.h2.schema.FunctionAlias.JavaMethod85554b6f739981d5
    org.h2.schema.InformationSchema5e171fc1d52567fb
    org.h2.schema.MetaSchemac20f6c35b912334c
    org.h2.schema.Schemaf6454b28cba42d52
    org.h2.schema.SchemaObject36331feedf964ee6
    org.h2.schema.Sequence11a6133ecefc8aa4
    org.h2.schema.Sequence.Cycleb813b944f3b57fe2
    org.h2.schema.UserDefinedFunctionfbc4095ef115a3ff
    org.h2.security.SHA2561377489050965973
    org.h2.store.FileLockMethod0a5e8bccdf92e35d
    org.h2.store.fs.FilePath3e0e7373c74033d1
    org.h2.store.fs.FilePathWrapper87d875796781afee
    org.h2.store.fs.FileUtils060a02c4aa2ff96e
    org.h2.store.fs.async.FilePathAsync16b33a44b1b5c235
    org.h2.store.fs.disk.FilePathDisk9ad70347c3c53b77
    org.h2.store.fs.mem.FileMemData659f85e22c47f221
    org.h2.store.fs.mem.FileMemData.Cachec73e11e6de2d8b69
    org.h2.store.fs.mem.FilePathMem595d031b8b0ce4b0
    org.h2.store.fs.mem.FilePathMemLZFfd5d7643ab9b5c2f
    org.h2.store.fs.niomapped.FilePathNioMapped67f5832e83405fcb
    org.h2.store.fs.niomem.FilePathNioMemf67f0322fbf112b5
    org.h2.store.fs.niomem.FilePathNioMemLZF132bbce83f940aba
    org.h2.store.fs.retry.FilePathRetryOnInterrupt3d5668f3ef57ef12
    org.h2.store.fs.split.FilePathSplite0332cdbd53823fa
    org.h2.store.fs.zip.FilePathZip571394bd7911f1b6
    org.h2.table.Column500d643f327e8cd1
    org.h2.table.ColumnResolver4b2aaf94f471a049
    org.h2.table.DataChangeDeltaTablecfef12b2b35a029b
    org.h2.table.DataChangeDeltaTable.ResultOption73e3b4dbc5058973
    org.h2.table.DerivedTable118d6bbae0b93081
    org.h2.table.FunctionTable7a3beca58af5af30
    org.h2.table.IndexColumnc5ce22adf3f59bf5
    org.h2.table.Plan612dabb67cb62cc8
    org.h2.table.PlanItem2def26bf3b87d892
    org.h2.table.QueryExpressionTablefe6c39461916bf29
    org.h2.table.QueryExpressionTable.CacheKey02ff6fc199caa9e1
    org.h2.table.Tableed8d3f8796b74a1d
    org.h2.table.TableBasef9650065ef79d0f9
    org.h2.table.TableFilter1580e6e3d1837400
    org.h2.table.TableFilter.MapColumnsVisitor931d604ec2d424fa
    org.h2.table.TableType56836f7ea831c8ba
    org.h2.table.TableView637347b8559c044a
    org.h2.table.VirtualConstructedTable36afa3d203d149cd
    org.h2.table.VirtualTable248eb390e7f82f29
    org.h2.tools.SimpleResultSet4bd50af4f2edb6c8
    org.h2.util.CloseWatcherd678edef8d7cbcbd
    org.h2.util.DateTimeUtilsacbb58d9000f572f
    org.h2.util.IOUtils06d92b9f3551d003
    org.h2.util.IntArray2d524574ca63a248
    org.h2.util.JdbcUtilsa7cfc728a8939a3e
    org.h2.util.MathUtilsbdf93c5de1c6efb3
    org.h2.util.MemoryEstimator7bd6b84998f4470b
    org.h2.util.ParserUtil398474903b80ed1c
    org.h2.util.Permutations1c369f58220c466d
    org.h2.util.SimpleColumnInfo6da39ea447f1aa63
    org.h2.util.SmallLRUCache63a9505e4a72e86e
    org.h2.util.StringUtilscf6054820621813b
    org.h2.util.TempFileDeletere68e70f0f01e6e19
    org.h2.util.TimeZoneProvidera9c2d46d5ee1d017
    org.h2.util.TimeZoneProvider.Simpled186373cefabcbb3
    org.h2.util.Utils2e2bbc2f742b19b6
    org.h2.value.CompareMode58b22695ed1120a6
    org.h2.value.DataTypebe6090f80ecffcac
    org.h2.value.ExtTypeInfo8a940de3624beb39
    org.h2.value.ExtTypeInfoNumeric3f914c76eef2be60
    org.h2.value.ExtTypeInfoRowdeaab78daddc8908
    org.h2.value.TypeInfo9580e5a8b9802809
    org.h2.value.Valuead2c19061ba2725c
    org.h2.value.ValueBigDecimalBase215bf47c3c8205bb
    org.h2.value.ValueBigint8ec2db6a6c646098
    org.h2.value.ValueBoolean4f6af7c87c5a47ef
    org.h2.value.ValueChar05adce8c2875c4f5
    org.h2.value.ValueCollectionBase4d2c057a6367985a
    org.h2.value.ValueDouble55ab9e06cecb16f6
    org.h2.value.ValueInteger3d79aac636fd91c9
    org.h2.value.ValueNull51a52bf735d3f5c0
    org.h2.value.ValueNumeric0d8483876bb2fdff
    org.h2.value.ValueReal424bbbec6dc1114e
    org.h2.value.ValueRowdeeea47dab148817
    org.h2.value.ValueSmallintb08c69d5b0149bd7
    org.h2.value.ValueStringBaseeb1bace27aaac6ab
    org.h2.value.ValueTimestampTimeZonee96caed7fa609eb6
    org.h2.value.ValueToObjectConverter2eb11fd432392fbc
    org.h2.value.ValueToObjectConverter25f48ffd2c93ddbd9
    org.h2.value.ValueUuid5eb695cdd938f028
    org.h2.value.ValueVarchara2d834fe0bd70399
    org.h2.value.VersionedValueb8b9a78f680ab7c6
    org.hamcrest.BaseMatcherf52733a4a58e8a8e
    org.hamcrest.MatcherAssert375cdaed635186e8
    org.hamcrest.core.Is1b4bc96017d7a098
    org.hamcrest.core.IsEqualdf3c8def58c301e5
    org.json.JSONbaec6cdb200e359d
    org.json.JSONArray6b86c0cea058a8d1
    org.json.JSONObjectab674655a5f57b72
    org.json.JSONObject.18c249464b0673518
    org.json.JSONTokenerfc4574aa57cb5d24
    org.junit.Asserteda6db924019425b
    org.junit.internal.Checks5f543b0bb87b92da
    org.junit.internal.MethodSortera26607ae067f7352
    org.junit.internal.MethodSorter.1d3997b4bdb7889c1
    org.junit.internal.MethodSorter.2c8e6351cbf098013
    org.junit.internal.builders.AllDefaultPossibilitiesBuilder4f18a1d7932cb8ab
    org.junit.internal.builders.AnnotatedBuilder0faf353d180c9332
    org.junit.internal.builders.IgnoredBuildere152f333c53967a6
    org.junit.internal.builders.JUnit3Builder4a2cc8e608e1275e
    org.junit.internal.builders.JUnit4Builderf2e00a3e1fc23005
    org.junit.internal.builders.SuiteMethodBuilder1df136431e07e393
    org.junit.internal.requests.ClassRequest47dbc61675e5a92e
    org.junit.internal.requests.ClassRequest.CustomAllDefaultPossibilitiesBuilderea1c269d9656f543
    org.junit.internal.requests.ClassRequest.CustomSuiteMethodBuilder03d01020b1c503c7
    org.junit.internal.requests.MemoizingRequest1e70801476dbab8f
    org.junit.internal.runners.model.EachTestNotifier077481995383e000
    org.junit.internal.runners.model.ReflectiveCallabled591724635588bcb
    org.junit.internal.runners.rules.RuleMemberValidator95b5ee2068ec6875
    org.junit.internal.runners.rules.RuleMemberValidator.Builderf24845fa6fd065af
    org.junit.internal.runners.rules.RuleMemberValidator.DeclaringClassMustBePublic1de994463c748d89
    org.junit.internal.runners.rules.RuleMemberValidator.FieldMustBeARulee24e9f59de6fe5b7
    org.junit.internal.runners.rules.RuleMemberValidator.FieldMustBeATestRule690823bd2992f52e
    org.junit.internal.runners.rules.RuleMemberValidator.MemberMustBeNonStaticOrAlsoClassRule1e703fb3e7f4e533
    org.junit.internal.runners.rules.RuleMemberValidator.MemberMustBePublic806c174eb921b478
    org.junit.internal.runners.rules.RuleMemberValidator.MemberMustBeStaticac28a03dd36b2b5a
    org.junit.internal.runners.rules.RuleMemberValidator.MethodMustBeARule88ea4a2237de2b8b
    org.junit.internal.runners.rules.RuleMemberValidator.MethodMustBeATestRule9f4dd18a26005c18
    org.junit.internal.runners.statements.InvokeMethod05a7aa636afa2c39
    org.junit.internal.runners.statements.RunAfters14a998d07920cd7b
    org.junit.internal.runners.statements.RunBeforesef86a61ca3ab20ba
    org.junit.runner.Description1d6f7ddbbf223f9a
    org.junit.runner.Request214d9ade1c7dc38d
    org.junit.runner.Resultecf6c1c04298ff7d
    org.junit.runner.Result.Listenercf649a4ffbe55db9
    org.junit.runner.Runnerf5abacc70e2e08a4
    org.junit.runner.notification.RunListener69d2c783b42f6720
    org.junit.runner.notification.RunNotifierf6313076e2224ebb
    org.junit.runner.notification.RunNotifier.1e31025c12b4dbdee
    org.junit.runner.notification.RunNotifier.24c7314c6d595dc3e
    org.junit.runner.notification.RunNotifier.3df2bada5cb3794f3
    org.junit.runner.notification.RunNotifier.4fbdd84204c215de7
    org.junit.runner.notification.RunNotifier.5f62dc396b601f8bd
    org.junit.runner.notification.RunNotifier.9c3c3d54b8ed47ee1
    org.junit.runner.notification.RunNotifier.SafeNotifier0b43c10299733bfb
    org.junit.runner.notification.SynchronizedRunListener2b59d5cb3b105225
    org.junit.runners.BlockJUnit4ClassRunner95752fb34ff12f3f
    org.junit.runners.BlockJUnit4ClassRunner.1d0f63145230a5f42
    org.junit.runners.BlockJUnit4ClassRunner.2f93eace695ddd30e
    org.junit.runners.BlockJUnit4ClassRunner.RuleCollector9c768e710e39c989
    org.junit.runners.JUnit46d26e2305347fe01
    org.junit.runners.Parameterized963841242a61a1e2
    org.junit.runners.Parameterized.RunnersFactoryc5ee5b5ac59f40b0
    org.junit.runners.ParentRunner335ee90b10f96ea1
    org.junit.runners.ParentRunner.1ecc6961e8bc209c4
    org.junit.runners.ParentRunner.2c5cb913a629ec4c8
    org.junit.runners.ParentRunner.320bad8188aebc0f2
    org.junit.runners.ParentRunner.480476dbdcb8d52cc
    org.junit.runners.ParentRunner.ClassRuleCollector26f7fb338afcd13b
    org.junit.runners.RuleContainerd44c3ba6dc65af53
    org.junit.runners.RuleContainer.157bbc73f6f47763b
    org.junit.runners.Suite154944342f498508
    org.junit.runners.model.FrameworkField2fe27c284e7d39f4
    org.junit.runners.model.FrameworkMemberbfd059486f267475
    org.junit.runners.model.FrameworkMethodf293b82d5aa86323
    org.junit.runners.model.FrameworkMethod.18fd5e02769c0e0c2
    org.junit.runners.model.MultipleFailureException187a72c573c34bac
    org.junit.runners.model.RunnerBuilder585cad2d320dc86e
    org.junit.runners.model.Statement9a75aa5de27bf4d5
    org.junit.runners.model.TestClass7e71209792391ee8
    org.junit.runners.model.TestClass.FieldComparator1b96cd3d5c4aeb07
    org.junit.runners.model.TestClass.MethodComparator0369eb29eb04248a
    org.junit.runners.parameterized.BlockJUnit4ClassRunnerWithParametersebeaa09f1f8eb6f3
    org.junit.runners.parameterized.BlockJUnit4ClassRunnerWithParameters.1c4024da18ca412c5
    org.junit.runners.parameterized.BlockJUnit4ClassRunnerWithParameters.InjectionType4a7c5c9856e4e9f4
    org.junit.runners.parameterized.BlockJUnit4ClassRunnerWithParametersFactory6f2e3a2b7ea357b7
    org.junit.runners.parameterized.TestWithParameters0ec69411e744952d
    org.junit.validator.AnnotationValidatorFactorye1e5570798173ab9
    org.junit.validator.AnnotationsValidator6cbe8454c9a93bb8
    org.junit.validator.AnnotationsValidator.AnnotatableValidatord211a963f22be103
    org.junit.validator.AnnotationsValidator.ClassValidator1b463c4e6642e880
    org.junit.validator.AnnotationsValidator.FieldValidator64068b954dc56a31
    org.junit.validator.AnnotationsValidator.MethodValidatorf16b57f17c787036
    org.junit.validator.PublicClassValidator3bac248cf06b18e4
    org.owasp.dependencycheck.AnalysisTaske7c73a60a930646f
    org.owasp.dependencycheck.Engine9eb4069cf91f3cee
    org.owasp.dependencycheck.Engine.Mode3f6a6fa06c5db5ef
    org.owasp.dependencycheck.agent.DependencyCheckScanAgentde6949324a1aad84
    org.owasp.dependencycheck.analyzer.AbstractAnalyzer53c2c707332e447f
    org.owasp.dependencycheck.analyzer.AbstractDependencyComparingAnalyzere5687426d9a0f66f
    org.owasp.dependencycheck.analyzer.AbstractFileTypeAnalyzercb75e41db9829ee7
    org.owasp.dependencycheck.analyzer.AbstractNpmAnalyzerf1f4584a14215949
    org.owasp.dependencycheck.analyzer.AbstractSuppressionAnalyzerfac2a53fa568132a
    org.owasp.dependencycheck.analyzer.AnalysisPhase8a2dd7e79126521a
    org.owasp.dependencycheck.analyzer.AnalyzerServicec83777cdc46bc2d2
    org.owasp.dependencycheck.analyzer.ArchiveAnalyzerc4afb05e99324933
    org.owasp.dependencycheck.analyzer.ArtifactoryAnalyzeraba5274b7a2d3c9c
    org.owasp.dependencycheck.analyzer.AssemblyAnalyzerb4f040a2e12ea447
    org.owasp.dependencycheck.analyzer.AutoconfAnalyzera61c7303a707d079
    org.owasp.dependencycheck.analyzer.CMakeAnalyzer466e5b6cfb32f8a0
    org.owasp.dependencycheck.analyzer.CPEAnalyzer8a5ab88772203ff1
    org.owasp.dependencycheck.analyzer.CPEAnalyzer.IdentifierConfidence68c0332006ac0f99
    org.owasp.dependencycheck.analyzer.CPEAnalyzer.IdentifierMatch92606f5613402d4c
    org.owasp.dependencycheck.analyzer.CentralAnalyzer8510025c8aaa3199
    org.owasp.dependencycheck.analyzer.CocoaPodsAnalyzer109d2f01d2ded1e1
    org.owasp.dependencycheck.analyzer.ComposerLockAnalyzer9d4ee64cf0474215
    org.owasp.dependencycheck.analyzer.CpeSuppressionAnalyzer0e15da288e35d32d
    org.owasp.dependencycheck.analyzer.DartAnalyzeraa59897e89b30f0b
    org.owasp.dependencycheck.analyzer.DependencyBundlingAnalyzer07c8f954686b5590
    org.owasp.dependencycheck.analyzer.DependencyMergingAnalyzer5b61b9ea1c73787a
    org.owasp.dependencycheck.analyzer.ElixirMixAuditAnalyzerdc7b13faacac2682
    org.owasp.dependencycheck.analyzer.FalsePositiveAnalyzer5d1e642680217c34
    org.owasp.dependencycheck.analyzer.FileNameAnalyzer6bd5616bd35b083c
    org.owasp.dependencycheck.analyzer.GolangDepAnalyzerfecafc9c62047e06
    org.owasp.dependencycheck.analyzer.GolangModAnalyzerb227db299327983e
    org.owasp.dependencycheck.analyzer.HintAnalyzer06857ac00a5b69bc
    org.owasp.dependencycheck.analyzer.JarAnalyzerd0852a5718eb3822
    org.owasp.dependencycheck.analyzer.JarAnalyzer.ClassNameInformationf7a6b8b47c825c6a
    org.owasp.dependencycheck.analyzer.KnownExploitedVulnerabilityAnalyzer3af076909f651f0b
    org.owasp.dependencycheck.analyzer.LibmanAnalyzerb71bb3bbd512db80
    org.owasp.dependencycheck.analyzer.MSBuildProjectAnalyzer0c1951f7a7176b6a
    org.owasp.dependencycheck.analyzer.NexusAnalyzer0e8b9d66c36140bb
    org.owasp.dependencycheck.analyzer.NodeAuditAnalyzer9b08dc840a569526
    org.owasp.dependencycheck.analyzer.NodePackageAnalyzer4f9c2855819b2a43
    org.owasp.dependencycheck.analyzer.NpmCPEAnalyzerc3b313265c0390a9
    org.owasp.dependencycheck.analyzer.NugetconfAnalyzerd7864bd059634c88
    org.owasp.dependencycheck.analyzer.NuspecAnalyzer51b5c3840fe8ede7
    org.owasp.dependencycheck.analyzer.NvdCveAnalyzer462c94a163d9bd80
    org.owasp.dependencycheck.analyzer.OpenSSLAnalyzerc05ed6ced1a77cd1
    org.owasp.dependencycheck.analyzer.OssIndexAnalyzere0ec285a8210cefd
    org.owasp.dependencycheck.analyzer.PEAnalyzerf1cf15bf017a345f
    org.owasp.dependencycheck.analyzer.PerlCpanfileAnalyzerf460b2c9a36956f5
    org.owasp.dependencycheck.analyzer.PinnedMavenInstallAnalyzerbabb05304288744c
    org.owasp.dependencycheck.analyzer.PipAnalyzer4eb3e3df5fc1d9eb
    org.owasp.dependencycheck.analyzer.PipfileAnalyzer94f81965a1d6f8bb
    org.owasp.dependencycheck.analyzer.PipfilelockAnalyzer090000f0d80906ed
    org.owasp.dependencycheck.analyzer.PnpmAuditAnalyzer8a0332fc7129d211
    org.owasp.dependencycheck.analyzer.PoetryAnalyzerfd3b1fd402042898
    org.owasp.dependencycheck.analyzer.PythonDistributionAnalyzer48872d7099105b81
    org.owasp.dependencycheck.analyzer.PythonPackageAnalyzer9e40fde1c8c573e3
    org.owasp.dependencycheck.analyzer.RetireJsAnalyzerbb886f09d58624f9
    org.owasp.dependencycheck.analyzer.RubyBundleAuditAnalyzere2fc7cdb41f163c8
    org.owasp.dependencycheck.analyzer.RubyBundlerAnalyzer5d486951fecfd610
    org.owasp.dependencycheck.analyzer.RubyGemspecAnalyzera1eb61175c0b726b
    org.owasp.dependencycheck.analyzer.SwiftPackageManagerAnalyzer2b236be3ad4379b4
    org.owasp.dependencycheck.analyzer.SwiftPackageResolvedAnalyzer602846b272882529
    org.owasp.dependencycheck.analyzer.UnusedSuppressionRuleAnalyzer96a130c36e2feb7c
    org.owasp.dependencycheck.analyzer.VersionFilterAnalyzerbccf328c51e5abce
    org.owasp.dependencycheck.analyzer.VulnerabilitySuppressionAnalyzer120f6770a484b62e
    org.owasp.dependencycheck.analyzer.YarnAuditAnalyzer29123c83238a50f8
    org.owasp.dependencycheck.data.cache.DataCache45c535388c562524
    org.owasp.dependencycheck.data.cache.DataCacheFactory1f8c9b237297367c
    org.owasp.dependencycheck.data.cache.DataCacheFactory.CacheType137a3e5cbb2df174
    org.owasp.dependencycheck.data.cpe.AbstractMemoryIndex2ed8bf08d002c7f0
    org.owasp.dependencycheck.data.cpe.CpeMemoryIndex90c84bb62b80575d
    org.owasp.dependencycheck.data.cpe.IndexEntry21d883b53737f9ed
    org.owasp.dependencycheck.data.cpe.NpmCpeMemoryIndexe19e64e36ca1c862
    org.owasp.dependencycheck.data.cwe.CweDB4b200943564bdb3c
    org.owasp.dependencycheck.data.knownexploited.json.KnownExploitedVulnerabilitiesSchemad546a111ceca8d0e
    org.owasp.dependencycheck.data.knownexploited.json.Vulnerabilityb34347081c0c84bd
    org.owasp.dependencycheck.data.lucene.AbstractTokenizingFilteref2bdf555ac30e13
    org.owasp.dependencycheck.data.lucene.AlphaNumericFilterd338a5925b823b3a
    org.owasp.dependencycheck.data.lucene.LuceneUtils3f465d0437852575
    org.owasp.dependencycheck.data.lucene.SearchFieldAnalyzer8c548705eb3be048
    org.owasp.dependencycheck.data.lucene.TokenPairConcatenatingFilter66727c35667a1e7f
    org.owasp.dependencycheck.data.lucene.UrlTokenizingFilter195de16b342dfeb9
    org.owasp.dependencycheck.data.nexus.MavenArtifact8181821aeb4d216d
    org.owasp.dependencycheck.data.nvd.ecosystem.CveEcosystemMapper9bdc31c451b3a195
    org.owasp.dependencycheck.data.nvd.ecosystem.DescriptionEcosystemMapper4b4fd8da48e1076a
    org.owasp.dependencycheck.data.nvd.ecosystem.DescriptionKeywordHint6e7e292d907035b1
    org.owasp.dependencycheck.data.nvd.ecosystem.Ecosystemf52dd17aa636a878
    org.owasp.dependencycheck.data.nvd.ecosystem.EcosystemHintNature6ecb7375a8182f28
    org.owasp.dependencycheck.data.nvd.ecosystem.FileExtensionHinteea097469cc99fb8
    org.owasp.dependencycheck.data.nvd.ecosystem.StringAhoCorasickDoubleArrayTrie7b86ffa8686f7317
    org.owasp.dependencycheck.data.nvd.ecosystem.UrlEcosystemMapperea6af3b5cb98e2dc
    org.owasp.dependencycheck.data.nvd.ecosystem.UrlHostHint05ec63c3d7dae0d3
    org.owasp.dependencycheck.data.nvd.ecosystem.UrlPathHintfa84ec515b0a7722
    org.owasp.dependencycheck.data.nvdcve.CveDBc840fdb7effcf59c
    org.owasp.dependencycheck.data.nvdcve.CveDB.PreparedStatementCveDb412e4dfd99bf4695
    org.owasp.dependencycheck.data.nvdcve.CveItemOperatoreab73d1ca7076e35
    org.owasp.dependencycheck.data.nvdcve.DatabaseManagerc8bfc4255f1ef4d5
    org.owasp.dependencycheck.data.nvdcve.DatabaseProperties0e2c7fb8c0ff158f
    org.owasp.dependencycheck.data.nvdcve.DriverLoader6f00b4d9849d8d88
    org.owasp.dependencycheck.data.nvdcve.DriverShim100a9676ec7c4389
    org.owasp.dependencycheck.data.nvdcve.H2Functionsc63c11be650da77d
    org.owasp.dependencycheck.data.update.EngineVersionCheckbeeed550972293ac
    org.owasp.dependencycheck.data.update.HostedSuppressionsDataSource319b3bc05738182d
    org.owasp.dependencycheck.data.update.KnownExploitedDataSource7dce5512961efd56
    org.owasp.dependencycheck.data.update.NvdApiDataSource2e0bbb056ca801cc
    org.owasp.dependencycheck.data.update.RetireJSDataSourceec251c50cc74861e
    org.owasp.dependencycheck.data.update.UpdateService5591427be2b53e13
    org.owasp.dependencycheck.data.update.cisa.KnownExploitedVulnerabilityParser61e861793461ad61
    org.owasp.dependencycheck.data.update.cpe.CpeEcosystemCache776eb215e56504e7
    org.owasp.dependencycheck.data.update.cpe.CpePlusa4daec4d8fade7cd
    org.owasp.dependencycheck.data.update.nvd.api.DownloadTask2b7a1727b6481791
    org.owasp.dependencycheck.data.update.nvd.api.NvdApiProcessor3a3e83387e096b55
    org.owasp.dependencycheck.dependency.Confidence8b1646fd73165f3d
    org.owasp.dependencycheck.dependency.CweSet92d71b148062e632
    org.owasp.dependencycheck.dependency.Dependencyad6f1800ed8875c2
    org.owasp.dependencycheck.dependency.Evidencea56eb960dbb41fa1
    org.owasp.dependencycheck.dependency.EvidenceCollection796f8ebade5a0ac6
    org.owasp.dependencycheck.dependency.EvidenceCollection.1c43d6c035fe1f0ab
    org.owasp.dependencycheck.dependency.EvidenceCollection.263ec251053ab3814
    org.owasp.dependencycheck.dependency.EvidenceCollection.339c4b6f5b69d425d
    org.owasp.dependencycheck.dependency.EvidenceCollection.486c481e087971d1f
    org.owasp.dependencycheck.dependency.EvidenceCollection.56d0ef220d6d3eb18
    org.owasp.dependencycheck.dependency.EvidenceType80374dc893ee62b6
    org.owasp.dependencycheck.dependency.IncludedByReference1540b7fa34678690
    org.owasp.dependencycheck.dependency.Referencea2e6d658cd4f904f
    org.owasp.dependencycheck.dependency.Vulnerability5547976019a46a50
    org.owasp.dependencycheck.dependency.Vulnerability.Source972bf446c0b0bb2a
    org.owasp.dependencycheck.dependency.VulnerableSoftware8585e0e1fa3beeb8
    org.owasp.dependencycheck.dependency.VulnerableSoftwareBuildere0de1be074de33d1
    org.owasp.dependencycheck.dependency.naming.CpeIdentifierf5758c4da3e20472
    org.owasp.dependencycheck.dependency.naming.PurlIdentifiereacb89219564694c
    org.owasp.dependencycheck.exception.DependencyNotFoundExceptionb4cab8da18f34240
    org.owasp.dependencycheck.exception.ExceptionCollection42d79b8e2574a10f
    org.owasp.dependencycheck.exception.InitializationExceptionf942605a89a6d856
    org.owasp.dependencycheck.maven.AggregateMojo6c6e8f0fc03c34c3
    org.owasp.dependencycheck.maven.ArtifactScopeExcludedff75da2945cf5364
    org.owasp.dependencycheck.maven.ArtifactScopeExcludedTest2dec9bf22c451095
    org.owasp.dependencycheck.maven.ArtifactScopeExcludedTest.ArtifactScopeExcludedTestBuilder526c0efe902ea6c2
    org.owasp.dependencycheck.maven.ArtifactTypeExcluded1dc9c172c14306ee
    org.owasp.dependencycheck.maven.ArtifactTypeExcludedTestf872f55ff66aae1e
    org.owasp.dependencycheck.maven.BaseDependencyCheckMojoa898c0ab1756693d
    org.owasp.dependencycheck.maven.BaseDependencyCheckMojoTestd09fb9f97170db0a
    org.owasp.dependencycheck.maven.BaseDependencyCheckMojoTest.1d90b15c4a155341f
    org.owasp.dependencycheck.maven.BaseDependencyCheckMojoTest.2ceb3cbb91d5a7870
    org.owasp.dependencycheck.maven.BaseDependencyCheckMojoTest.31353b5264e265afd
    org.owasp.dependencycheck.maven.BaseDependencyCheckMojoTest.47108479fdb8ca30e
    org.owasp.dependencycheck.maven.BaseDependencyCheckMojoTest.BaseDependencyCheckMojoImpld75e804b9af6c332
    org.owasp.dependencycheck.maven.BaseTest9849788da5f3fcba
    org.owasp.dependencycheck.maven.CheckMojo6aa36aca8d84fc73
    org.owasp.dependencycheck.maven.CollectingRootDependencyGraphVisitorf785ecfb5aa2c3d6
    org.owasp.dependencycheck.maven.FilteringDependencyTransitiveNodeVisitor9a601eb2b192202a
    org.owasp.dependencycheck.maven.Mshared998Utilea9d617375f6e933
    org.owasp.dependencycheck.maven.Mshared998Util.M31ArtifactResultc17d447de8c089b4
    org.owasp.dependencycheck.maven.Retirejs812dc2311977dacb
    org.owasp.dependencycheck.maven.UpdateMojoa0b2e816709c7223
    org.owasp.dependencycheck.processing.GrokAssemblyProcessor5b08cc9c89348774
    org.owasp.dependencycheck.reporting.EscapeToolcf686f5c98110b7f
    org.owasp.dependencycheck.reporting.ReportGeneratorb3e530fe266a825a
    org.owasp.dependencycheck.reporting.ReportGenerator.Formatc008dae7884b691a
    org.owasp.dependencycheck.reporting.ReportTool6d98d89de82875d4
    org.owasp.dependencycheck.utils.Checksumd3d032adcf9f83ac
    org.owasp.dependencycheck.utils.Checksum.FileChecksumsee01483ef72b41eb
    org.owasp.dependencycheck.utils.DBUtils5a736a1e9db30930
    org.owasp.dependencycheck.utils.DateUtil767aee70b6802f05
    org.owasp.dependencycheck.utils.DependencyVersionc76be697ccf1be3e
    org.owasp.dependencycheck.utils.DependencyVersionUtil6a41259161e9d641
    org.owasp.dependencycheck.utils.Downloader6bb25369b191e28e
    org.owasp.dependencycheck.utils.ExtractionUtil0e88fa19a5d5b6f8
    org.owasp.dependencycheck.utils.FileFilterBuilderb6f3bba13d18ff4a
    org.owasp.dependencycheck.utils.FileUtilsb4bc6fabbcb815d7
    org.owasp.dependencycheck.utils.Filterdf3734618639a9b3
    org.owasp.dependencycheck.utils.Filter.FilterIteratord1a81c541dfce734
    org.owasp.dependencycheck.utils.HttpResourceConnection3ec0169837be2310
    org.owasp.dependencycheck.utils.InterpolationUtilbf107010177e4d1e
    org.owasp.dependencycheck.utils.InterpolationUtil.PropertyLookup5b1e3b5a7f62328a
    org.owasp.dependencycheck.utils.InterpolationUtil.SyntaxStyle89f3ebbe8ef62093
    org.owasp.dependencycheck.utils.Pair7b0fe8cac5057419
    org.owasp.dependencycheck.utils.SSLSocketFactoryExcba4c39911275cd8
    org.owasp.dependencycheck.utils.Settings54ff44735c3537b2
    org.owasp.dependencycheck.utils.SeverityUtil2aa3a7803e3bc489
    org.owasp.dependencycheck.utils.URLConnectionFactory20a3b96d5b95a4c9
    org.owasp.dependencycheck.utils.UrlStringUtils13ac88d7b902ba2e
    org.owasp.dependencycheck.utils.Utils2388cf60ae13d515
    org.owasp.dependencycheck.utils.WriteLock38fa2d9af95f448e
    org.owasp.dependencycheck.utils.WriteLockCleanupHookf4959b4938fb442b
    org.owasp.dependencycheck.utils.WriteLockShutdownHook53b3f5b037d6b82e
    org.owasp.dependencycheck.utils.WriteLockShutdownHookFactory7856e6c15668c9d5
    org.owasp.dependencycheck.utils.XmlUtils3db31a3238d69ec0
    org.owasp.dependencycheck.utils.processing.ProcessReader0afc367a946b9c57
    org.owasp.dependencycheck.utils.processing.ProcessReader.Gobbler61ba8ef7823a8474
    org.owasp.dependencycheck.utils.processing.Processor54d82509a803683c
    org.owasp.dependencycheck.xml.XmlEntity66e5eed82ef0963b
    org.owasp.dependencycheck.xml.XmlInputStreameeef9b35cd9d2c10
    org.owasp.dependencycheck.xml.assembly.AssemblyData40fcba4a7dc5fa6e
    org.owasp.dependencycheck.xml.assembly.GrokErrorHandler455b926a72c7a449
    org.owasp.dependencycheck.xml.assembly.GrokHandlerfe21aa0c14ae6b1e
    org.owasp.dependencycheck.xml.assembly.GrokParser0c137c352235f734
    org.owasp.dependencycheck.xml.hints.EvidenceMatcherce8cbfbe4740ac69
    org.owasp.dependencycheck.xml.hints.HintErrorHandleraa3882d7c7c5cc67
    org.owasp.dependencycheck.xml.hints.HintHandlere93cf0a863214916
    org.owasp.dependencycheck.xml.hints.HintHandler.1a7e8cba20e8af505
    org.owasp.dependencycheck.xml.hints.HintHandler.ParentTypef24faabcce5f4c72
    org.owasp.dependencycheck.xml.hints.HintParserd88f1d17c3864870
    org.owasp.dependencycheck.xml.hints.HintRule58dd9d52018d064f
    org.owasp.dependencycheck.xml.hints.VendorDuplicatingHintRulef590e0aa1fffc212
    org.owasp.dependencycheck.xml.pom.Developer464a73d3a131fa1a
    org.owasp.dependencycheck.xml.pom.License2922b99dd5b791bf
    org.owasp.dependencycheck.xml.pom.Model1a4e32bf68ae7b1c
    org.owasp.dependencycheck.xml.pom.PomHandler1dd6925cb0dd2e80
    org.owasp.dependencycheck.xml.pom.PomParser5d76ef6cff2aa125
    org.owasp.dependencycheck.xml.pom.PomProjectInputStreamf1ac6922e08319a5
    org.owasp.dependencycheck.xml.pom.PomUtils2eb9b189fe53a4c9
    org.owasp.dependencycheck.xml.suppression.PropertyType88e0dda4979f444f
    org.owasp.dependencycheck.xml.suppression.SuppressionErrorHandlerf0b45bf0579463da
    org.owasp.dependencycheck.xml.suppression.SuppressionHandler4ba9da2c9f4c384b
    org.owasp.dependencycheck.xml.suppression.SuppressionParseException97a15067a82d77c3
    org.owasp.dependencycheck.xml.suppression.SuppressionParserd5b7ee2be33418e9
    org.owasp.dependencycheck.xml.suppression.SuppressionParser.ClassloaderResolver166296f9153760dd
    org.owasp.dependencycheck.xml.suppression.SuppressionRule1e5fc4cd38ec8b4d
    org.slf4j.LoggerFactorya381b7ddf19bf47d
    org.slf4j.MavenSlf4jFriendbadfba51ec46113c
    org.slf4j.helpers.FormattingTuple46e388b1eb4cb5c1
    org.slf4j.helpers.MarkerIgnoringBase7ebf011a62144edb
    org.slf4j.helpers.MessageFormatter42e7db43bad15507
    org.slf4j.helpers.NOPLoggerb3164f3c3f1a085c
    org.slf4j.helpers.NOPLoggerFactory54f5632bfcb8d8d5
    org.slf4j.helpers.NamedLoggerBase528e06b7f120faa1
    org.slf4j.helpers.SubstituteLoggerFactorydc7efc0107a4a62d
    org.slf4j.helpers.Util857ff3acc0576435
    org.slf4j.impl.MavenSimpleLoggere8131069bff040a5
    org.slf4j.impl.MavenSimpleLoggerFactory96021020e4bba56d
    org.slf4j.impl.MavenSlf4jSimpleFriendb18c02f0ebaaff0f
    org.slf4j.impl.OutputChoicedbf8b17dfdfba8ef
    org.slf4j.impl.OutputChoice.12e796e83f697007d
    org.slf4j.impl.OutputChoice.OutputChoiceTypec4771d2a1b718196
    org.slf4j.impl.SimpleLogger203f15dc0cf1db09
    org.slf4j.impl.SimpleLoggerConfiguration4d34fb421063165b
    org.slf4j.impl.SimpleLoggerConfiguration.1ba0c573913158071
    org.slf4j.impl.SimpleLoggerFactory40e0c44ca71374c3
    org.slf4j.impl.StaticLoggerBinder79da9c4f821359f4
    org.sonatype.plexus.build.incremental.DefaultBuildContextaa79a63b7c4cf54a
    org.sonatype.plexus.build.incremental.EmptyScanner45b8b1e83669fb98
    org.sonatype.plexus.components.cipher.DefaultPlexusCipher5ddac845843100c4
    org.sonatype.plexus.components.cipher.DefaultPlexusCipher2034aec5993049c4
    org.sonatype.plexus.components.cipher.PBECipher638c060c25cd0952
    org.sonatype.plexus.components.cipher.PBECipher7574a45d7b0c7bb6
    org.sonatype.plexus.components.sec.dispatcher.DefaultSecDispatcher9f23657f6deab0d1
    org.sonatype.plexus.components.sec.dispatcher.DefaultSecDispatchercefb2853d1bc2e49
    sun.security.ec.ECDHKeyAgreement98786957379e8052
    sun.security.ec.ECDSASignaturea87c8a3b4c249cae
    sun.security.ec.ECDSASignature.Raw34fd4d4f3f7b07d0
    sun.security.ec.ECDSASignature.SHA19a8c8c1fccb702ae
    sun.security.ec.ECDSASignature.SHA2244ab113fda835de86
    sun.security.ec.ECDSASignature.SHA256b847f3aa86c638a1
    sun.security.ec.ECDSASignature.SHA3841f1f0bb690cec78f
    sun.security.ec.ECDSASignature.SHA512ca949e76b48c64db
    sun.security.ec.ECKeyFactory5ffb1bf65edd3e5b
    sun.security.ec.ECKeyPairGeneratord54779aa8847492b
    sun.security.ec.ECOperations8b042a6db0c7d250
    sun.security.ec.ECPrivateKeyImple88e88043bb769c8
    sun.security.ec.ECPublicKeyImpl579a0a9fbecbe2cb
    sun.security.ec.SunECed7aaa5d851afecd
    sun.security.ec.SunEC.12aaa42d831e10c34
    sun.security.ec.SunECEntries1fc66cad07ebf775
    sun.security.ec.point.AffinePoint4473cc59511e4f38
    sun.security.ec.point.ProjectivePoint42bfa254a41c4522
    sun.security.ec.point.ProjectivePoint.Immutablef385d4fcc17d6f05
    sun.security.ec.point.ProjectivePoint.Mutableb5e8bd959990211c
    us.springett.parsers.cpe.Cpe6dcbf890483207ec
    us.springett.parsers.cpe.CpeBuildera8a545e97ba6c683
    us.springett.parsers.cpe.CpeParser3c229a3e9a3a6e7e
    us.springett.parsers.cpe.internal.util.Cpe23PartIterator9634fe4d9e5c19d9
    us.springett.parsers.cpe.util.Convertd44be2fdb506753e
    us.springett.parsers.cpe.util.Statusa1e82b1c21855dd4
    us.springett.parsers.cpe.util.Validate4c1a3e0799b4658a
    us.springett.parsers.cpe.values.LogicalValue77dbdb0651fff32c
    us.springett.parsers.cpe.values.Partc2b878523b4c15a0
    \ No newline at end of file +Sessions

    Sessions

    This coverage report is based on execution data from the following sessions:

    SessionStart TimeDump Time
    fv-az1110-746-d4b2e29eDec 13, 2023 11:49:33 AMDec 13, 2023 11:49:35 AM
    fv-az1110-746-be73ea4cDec 13, 2023 11:50:12 AMDec 13, 2023 11:50:29 AM
    fv-az1110-746-a9fd345dDec 13, 2023 11:50:12 AMDec 13, 2023 11:50:39 AM
    fv-az1110-746-785bc776Dec 13, 2023 11:50:40 AMDec 13, 2023 11:50:49 AM
    fv-az1110-746-7e75b94aDec 13, 2023 11:50:30 AMDec 13, 2023 11:50:56 AM
    fv-az1110-746-45b14ce3Dec 13, 2023 11:50:12 AMDec 13, 2023 11:51:03 AM
    fv-az1110-746-3357bc28Dec 13, 2023 11:50:56 AMDec 13, 2023 11:51:15 AM
    fv-az1110-746-ca87045Dec 13, 2023 11:50:49 AMDec 13, 2023 11:51:15 AM
    fv-az1110-746-de507a1Dec 13, 2023 11:51:03 AMDec 13, 2023 11:51:19 AM
    fv-az1110-746-54dc1786Dec 13, 2023 11:50:12 AMDec 13, 2023 11:51:25 AM
    fv-az1110-746-36fa308cDec 13, 2023 11:51:27 AMDec 13, 2023 11:51:39 AM
    fv-az1110-746-79b08ca2Dec 13, 2023 11:51:16 AMDec 13, 2023 11:51:39 AM
    fv-az1110-746-4297c76fDec 13, 2023 11:51:39 AMDec 13, 2023 11:51:49 AM
    fv-az1110-746-5a9923b8Dec 13, 2023 11:51:16 AMDec 13, 2023 11:51:53 AM
    fv-az1110-746-235e7eb5Dec 13, 2023 11:51:49 AMDec 13, 2023 11:52:02 AM
    fv-az1110-746-27b11789Dec 13, 2023 11:51:20 AMDec 13, 2023 11:52:16 AM
    fv-az1110-746-1547ed0bDec 13, 2023 11:52:16 AMDec 13, 2023 11:52:27 AM
    fv-az1110-746-ae2c5134Dec 13, 2023 11:52:02 AMDec 13, 2023 11:52:34 AM
    fv-az1110-746-cdf9ebcdDec 13, 2023 11:52:27 AMDec 13, 2023 11:52:40 AM
    fv-az1110-746-39bb85e2Dec 13, 2023 11:51:39 AMDec 13, 2023 11:52:40 AM
    fv-az1110-746-5005f84eDec 13, 2023 11:52:41 AMDec 13, 2023 11:52:59 AM
    fv-az1110-746-ce58f668Dec 13, 2023 11:52:35 AMDec 13, 2023 11:53:08 AM
    fv-az1110-746-f79c192Dec 13, 2023 11:52:40 AMDec 13, 2023 11:53:23 AM
    fv-az1110-746-e44b353Dec 13, 2023 11:51:53 AMDec 13, 2023 11:53:36 AM

    Execution data for the following classes is considered in this report:

    ClassId
    com.esotericsoftware.minlog.Logc05158d5e66d9c02
    com.esotericsoftware.minlog.Log.Logger349e3e9c35cef91b
    com.fasterxml.jackson.annotation.JsonAutoDetect.16be52ec71dcf28a2
    com.fasterxml.jackson.annotation.JsonAutoDetect.Visibilitye56bcd385626eead
    com.fasterxml.jackson.annotation.JsonCreator.Mode5e1d947ef261f336
    com.fasterxml.jackson.annotation.JsonFormat.Featuree632f8db525e6519
    com.fasterxml.jackson.annotation.JsonFormat.Features75fb2eb9717dc62a
    com.fasterxml.jackson.annotation.JsonFormat.Shapec19c22f9661f3b7d
    com.fasterxml.jackson.annotation.JsonFormat.Value0eb8231d09bfd09a
    com.fasterxml.jackson.annotation.JsonIgnoreProperties.Value4f0da3cf85f6ca76
    com.fasterxml.jackson.annotation.JsonInclude.Include30ab0a782ad08747
    com.fasterxml.jackson.annotation.JsonInclude.Valuea558d9f40414e748
    com.fasterxml.jackson.annotation.JsonIncludeProperties.Value7ed084480a07ee84
    com.fasterxml.jackson.annotation.JsonProperty.Accessb5322e85ff85e8b9
    com.fasterxml.jackson.annotation.JsonSetter.Value6ee26ce006658a00
    com.fasterxml.jackson.annotation.Nulls724f990ec72b618f
    com.fasterxml.jackson.annotation.OptBoolean19b18410e5837c9e
    com.fasterxml.jackson.annotation.PropertyAccessora506c0b4a9292088
    com.fasterxml.jackson.core.Base64Variant820db952b2ce1918
    com.fasterxml.jackson.core.Base64Variant.PaddingReadBehaviourdd0e63a614fe004b
    com.fasterxml.jackson.core.Base64Variantse646bbe091ae79c0
    com.fasterxml.jackson.core.ErrorReportConfiguration6ae7b9c14364f861
    com.fasterxml.jackson.core.JsonEncodingcb4ae57cec60e79d
    com.fasterxml.jackson.core.JsonFactory4b6dbe517dc74f05
    com.fasterxml.jackson.core.JsonFactory.Feature6053a66ef91d8599
    com.fasterxml.jackson.core.JsonGenerator8a53f1394a871e41
    com.fasterxml.jackson.core.JsonGenerator.Featuredca43627a1b1d378
    com.fasterxml.jackson.core.JsonParserbfa2b2aaf45dbdaf
    com.fasterxml.jackson.core.JsonParser.Feature7e095b73debaa45f
    com.fasterxml.jackson.core.JsonParser.NumberType88e7ccc17e76b9de
    com.fasterxml.jackson.core.JsonStreamContext369abe89770bcf3d
    com.fasterxml.jackson.core.JsonTokeneed63a6e4a8e9120
    com.fasterxml.jackson.core.ObjectCodec4de1a295d9dc31ca
    com.fasterxml.jackson.core.PrettyPrinterf27d5528a26794c9
    com.fasterxml.jackson.core.StreamReadCapabilitya4c561ff4de25114
    com.fasterxml.jackson.core.StreamReadConstraintsfef85c00a0df6225
    com.fasterxml.jackson.core.StreamReadFeature9a2e8953e3d6037c
    com.fasterxml.jackson.core.StreamWriteCapability20b236b266d25323
    com.fasterxml.jackson.core.StreamWriteConstraintsf2bb5b3756dacf82
    com.fasterxml.jackson.core.TokenStreamFactory41de330f27eca392
    com.fasterxml.jackson.core.TreeCodec18594f8a8dcec6a2
    com.fasterxml.jackson.core.Version9e2d74f157825603
    com.fasterxml.jackson.core.base.GeneratorBase769b434d47814ead
    com.fasterxml.jackson.core.base.ParserBase7ea5c57b85e68f85
    com.fasterxml.jackson.core.base.ParserMinimalBasedafc6c7b6eb27cb5
    com.fasterxml.jackson.core.io.CharTypes07a8747913d8e991
    com.fasterxml.jackson.core.io.ContentReferencec1bf9547a5b31574
    com.fasterxml.jackson.core.io.IOContext92f945a4db96d4d1
    com.fasterxml.jackson.core.io.JsonStringEncodercaf3b669acbbe223
    com.fasterxml.jackson.core.io.NumberInput6b34a37c1fb6a484
    com.fasterxml.jackson.core.io.SegmentedStringWriteraf9b17af11ce151f
    com.fasterxml.jackson.core.io.SerializedStringde06c047872018ad
    com.fasterxml.jackson.core.json.ByteSourceJsonBootstrapper0ba003a54273d8f7
    com.fasterxml.jackson.core.json.JsonGeneratorImpl62f7e0732a7b3f16
    com.fasterxml.jackson.core.json.JsonReadContext7fe93ff4dfcd910a
    com.fasterxml.jackson.core.json.JsonWriteContext80adf9bb4918112e
    com.fasterxml.jackson.core.json.ReaderBasedJsonParser5a748aacc97cbeaf
    com.fasterxml.jackson.core.json.UTF8StreamJsonParser9774ce4b622b6787
    com.fasterxml.jackson.core.json.WriterBasedJsonGenerator4c9c68d95ea16405
    com.fasterxml.jackson.core.sym.ByteQuadsCanonicalizer5054f4087e115bac
    com.fasterxml.jackson.core.sym.ByteQuadsCanonicalizer.TableInfoeb0211d6faa23d01
    com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer098437effe93aab8
    com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer.Bucket7c0255c4c5f898c2
    com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer.TableInfo7f8a1e78ae4259c6
    com.fasterxml.jackson.core.type.ResolvedType8a4589ad9960ed59
    com.fasterxml.jackson.core.util.BufferRecycler130f2ce298e329d8
    com.fasterxml.jackson.core.util.BufferRecyclers4e7bee8eece90b3a
    com.fasterxml.jackson.core.util.DefaultIndenter18913563e8366f39
    com.fasterxml.jackson.core.util.DefaultPrettyPrinterdffce786178e5ff1
    com.fasterxml.jackson.core.util.DefaultPrettyPrinter.FixedSpaceIndenter418687d575a4f083
    com.fasterxml.jackson.core.util.DefaultPrettyPrinter.NopIndenter110c0bf83e5c079c
    com.fasterxml.jackson.core.util.InternCacheb55c4c122f488f2e
    com.fasterxml.jackson.core.util.JacksonFeatureSet69b6b3d8af7f13b3
    com.fasterxml.jackson.core.util.JsonRecyclerPoolsbb15cd8e45e37fee
    com.fasterxml.jackson.core.util.JsonRecyclerPools.ThreadLocalPoolb47528b0197c08e2
    com.fasterxml.jackson.core.util.ReadConstrainedTextBuffer23fc9ce24061d845
    com.fasterxml.jackson.core.util.RecyclerPool.ThreadLocalPoolBase23bd83512f98e1cd
    com.fasterxml.jackson.core.util.Separatorsdb601d3f3bad91c2
    com.fasterxml.jackson.core.util.Separators.Spacing511422cc9db17520
    com.fasterxml.jackson.core.util.TextBuffere0024e1d666b4905
    com.fasterxml.jackson.core.util.VersionUtil665fa94b3d0b07a9
    com.fasterxml.jackson.databind.AnnotationIntrospector905eb800c47f61a4
    com.fasterxml.jackson.databind.AnnotationIntrospector.ReferenceProperty09f92466c78dd697
    com.fasterxml.jackson.databind.AnnotationIntrospector.ReferenceProperty.Typed90a083248c5b3dc
    com.fasterxml.jackson.databind.BeanDescriptionb72f4d814c7d9796
    com.fasterxml.jackson.databind.BeanProperty.Std1dc3c0a141338eba
    com.fasterxml.jackson.databind.DatabindContext190fc61056492212
    com.fasterxml.jackson.databind.DeserializationConfiga66abddaffd0eeda
    com.fasterxml.jackson.databind.DeserializationContexte42cf81978826049
    com.fasterxml.jackson.databind.DeserializationFeaturee8c5e101ec4650d4
    com.fasterxml.jackson.databind.JavaType4b4e8dfd897d7a79
    com.fasterxml.jackson.databind.JsonDeserializerf155d5de89ce5a60
    com.fasterxml.jackson.databind.JsonSerializeradb9d1fae01b02c7
    com.fasterxml.jackson.databind.KeyDeserializer57c3ce9990767641
    com.fasterxml.jackson.databind.MapperFeatured7d85f4bfd3cff7a
    com.fasterxml.jackson.databind.MappingJsonFactory65cdd9294dfaf29a
    com.fasterxml.jackson.databind.Modulebb66b81d910dbd05
    com.fasterxml.jackson.databind.ObjectMapper1267d692f0f6e0ba
    com.fasterxml.jackson.databind.ObjectMapper.10b9220e9c1bc2c47
    com.fasterxml.jackson.databind.ObjectReader1d24d1af08075eb3
    com.fasterxml.jackson.databind.PropertyMetadata56620abf8cdd07c8
    com.fasterxml.jackson.databind.PropertyName217cf81be2326911
    com.fasterxml.jackson.databind.SerializationConfig40620b2ae2347380
    com.fasterxml.jackson.databind.SerializationFeature9609ec0ec1e8bc2a
    com.fasterxml.jackson.databind.SerializerProvider10f427a250ca2427
    com.fasterxml.jackson.databind.cfg.BaseSettings74949427e8604cd4
    com.fasterxml.jackson.databind.cfg.CoercionAction9e15561f16680f97
    com.fasterxml.jackson.databind.cfg.CoercionConfigffad61191adeb87e
    com.fasterxml.jackson.databind.cfg.CoercionConfigs8937a55c926c734f
    com.fasterxml.jackson.databind.cfg.CoercionInputShape90aad4e377b3dccd
    com.fasterxml.jackson.databind.cfg.ConfigOverridef1771a0d408303c8
    com.fasterxml.jackson.databind.cfg.ConfigOverride.Empty3372ed519d9bafb4
    com.fasterxml.jackson.databind.cfg.ConfigOverrides7943101710d9f910
    com.fasterxml.jackson.databind.cfg.ConstructorDetector9af1c9a41cb4b83d
    com.fasterxml.jackson.databind.cfg.ConstructorDetector.SingleArgConstructorb0c67222cebc30be
    com.fasterxml.jackson.databind.cfg.ContextAttributes216e6db5a97ae48a
    com.fasterxml.jackson.databind.cfg.ContextAttributes.Implede427cff276c0b8
    com.fasterxml.jackson.databind.cfg.DatatypeFeaturesf4893ef156575441
    com.fasterxml.jackson.databind.cfg.DatatypeFeatures.DefaultHolder81838084595fa0c8
    com.fasterxml.jackson.databind.cfg.DefaultCacheProvider6bbb2aa855b50726
    com.fasterxml.jackson.databind.cfg.DeserializerFactoryConfig7861ff22cec5640b
    com.fasterxml.jackson.databind.cfg.EnumFeature16e95ce7a3f1f1ee
    com.fasterxml.jackson.databind.cfg.JsonNodeFeature93b45511772e9fc3
    com.fasterxml.jackson.databind.cfg.MapperConfigc7b0b1bb3bc6f9f1
    com.fasterxml.jackson.databind.cfg.MapperConfigBase5bb7b8ef48c720d7
    com.fasterxml.jackson.databind.cfg.MutableCoercionConfig262e6b36c9ca989e
    com.fasterxml.jackson.databind.cfg.SerializerFactoryConfigd93f22d3258ee4c0
    com.fasterxml.jackson.databind.deser.BasicDeserializerFactory3944ee9b76fde7a2
    com.fasterxml.jackson.databind.deser.BasicDeserializerFactory.1e3f0f2b5bb60e211
    com.fasterxml.jackson.databind.deser.BasicDeserializerFactory.ContainerDefaultMappingsdf7805e17fdc7522
    com.fasterxml.jackson.databind.deser.BasicDeserializerFactory.CreatorCollectionStatef0dbb90499e14fa4
    com.fasterxml.jackson.databind.deser.BeanDeserializer51262781f5e28489
    com.fasterxml.jackson.databind.deser.BeanDeserializerBasedf7ad1189a3b508b
    com.fasterxml.jackson.databind.deser.BeanDeserializerBuilderd5bdf1bb9953f729
    com.fasterxml.jackson.databind.deser.BeanDeserializerFactory65809d9bdea9493b
    com.fasterxml.jackson.databind.deser.BeanDeserializerModifier184167b49d96ae56
    com.fasterxml.jackson.databind.deser.DefaultDeserializationContext5756779a22fd7d68
    com.fasterxml.jackson.databind.deser.DefaultDeserializationContext.Impl8057860fe47eb5da
    com.fasterxml.jackson.databind.deser.DeserializerCache7d85f058f583e5dd
    com.fasterxml.jackson.databind.deser.DeserializerFactory2ebdf24d93849f1a
    com.fasterxml.jackson.databind.deser.Deserializers.Basea3b8086adb6ca320
    com.fasterxml.jackson.databind.deser.SettableAnyPropertyaad043facc07e3e1
    com.fasterxml.jackson.databind.deser.SettableAnyProperty.MethodAnyProperty9e6e2416f9612c30
    com.fasterxml.jackson.databind.deser.SettableBeanPropertye32815b47681953f
    com.fasterxml.jackson.databind.deser.SettableBeanProperty.Delegating9a42268c2af26ce4
    com.fasterxml.jackson.databind.deser.ValueInstantiator500a74eea26ebb5d
    com.fasterxml.jackson.databind.deser.ValueInstantiator.Base56fce65bc9fdb762
    com.fasterxml.jackson.databind.deser.ValueInstantiators.Base409ddb33d4295a19
    com.fasterxml.jackson.databind.deser.impl.BeanPropertyMapabab716eded67ac2
    com.fasterxml.jackson.databind.deser.impl.CreatorCandidate3ec9d7560819c0da
    com.fasterxml.jackson.databind.deser.impl.CreatorCandidate.Paramc635ef4a61409ee4
    com.fasterxml.jackson.databind.deser.impl.CreatorCollector0f8b3def4682a020
    com.fasterxml.jackson.databind.deser.impl.FailingDeserializer4904d8577f214eb3
    com.fasterxml.jackson.databind.deser.impl.FieldProperty79a77498e066a15d
    com.fasterxml.jackson.databind.deser.impl.JDKValueInstantiators008ddf7a64eb2d4a
    com.fasterxml.jackson.databind.deser.impl.JDKValueInstantiators.ArrayListInstantiator187a1232f1bf2643
    com.fasterxml.jackson.databind.deser.impl.JDKValueInstantiators.LinkedHashMapInstantiator8e9a27c2b9ea0809
    com.fasterxml.jackson.databind.deser.impl.MethodPropertydf95398e08d528a0
    com.fasterxml.jackson.databind.deser.impl.NullsConstantProvider83cd716157aa0f9a
    com.fasterxml.jackson.databind.deser.std.CollectionDeserializer264403aa8c0a30f7
    com.fasterxml.jackson.databind.deser.std.ContainerDeserializerBase0f7cf99ff0b0c8a0
    com.fasterxml.jackson.databind.deser.std.DateDeserializers9e6826e9538c1d95
    com.fasterxml.jackson.databind.deser.std.DateDeserializers.DateBasedDeserializera724948d8fa77410
    com.fasterxml.jackson.databind.deser.std.DateDeserializers.DateDeserializer15a9d57b22e2ade2
    com.fasterxml.jackson.databind.deser.std.EnumDeserializerc3ad157384d2680f
    com.fasterxml.jackson.databind.deser.std.FactoryBasedEnumDeserializer49f0456ec9536a9a
    com.fasterxml.jackson.databind.deser.std.FromStringDeserializerb5093028e19eaf91
    com.fasterxml.jackson.databind.deser.std.JdkDeserializersa7ac27fec28e8de9
    com.fasterxml.jackson.databind.deser.std.MapDeserializerb32eea18a36cb24a
    com.fasterxml.jackson.databind.deser.std.NumberDeserializersaf4aa96d306dfbb7
    com.fasterxml.jackson.databind.deser.std.NumberDeserializers.BooleanDeserializer30e8686ef1609fb9
    com.fasterxml.jackson.databind.deser.std.NumberDeserializers.DoubleDeserializer5ed3821dd4db75a5
    com.fasterxml.jackson.databind.deser.std.NumberDeserializers.IntegerDeserializercb695275ccadb732
    com.fasterxml.jackson.databind.deser.std.NumberDeserializers.NumberDeserializer24d7e253adbe49ba
    com.fasterxml.jackson.databind.deser.std.NumberDeserializers.PrimitiveOrWrapperDeserializer467caf19a87c057e
    com.fasterxml.jackson.databind.deser.std.StdDeserializer2122bf750d1b5b89
    com.fasterxml.jackson.databind.deser.std.StdKeyDeserializera4a518bbbaf161f0
    com.fasterxml.jackson.databind.deser.std.StdKeyDeserializer.StringKDf39c6c872cbaa313
    com.fasterxml.jackson.databind.deser.std.StdKeyDeserializers2ca4ab5d0f0b71dd
    com.fasterxml.jackson.databind.deser.std.StdScalarDeserializer25286f364997b846
    com.fasterxml.jackson.databind.deser.std.StdValueInstantiator34181f4c11253cc9
    com.fasterxml.jackson.databind.deser.std.StringArrayDeserializerdbeac8e57a8a807e
    com.fasterxml.jackson.databind.deser.std.StringCollectionDeserializerea68b80c909c4561
    com.fasterxml.jackson.databind.deser.std.StringDeserializer36ba9f92a53b7892
    com.fasterxml.jackson.databind.deser.std.UntypedObjectDeserializerd9dd77561d0b2427
    com.fasterxml.jackson.databind.deser.std.UntypedObjectDeserializerNRe1ad05bf432fcba5
    com.fasterxml.jackson.databind.ext.Java7Handlers31410c423d95a2d0
    com.fasterxml.jackson.databind.ext.Java7HandlersImpl423b0b9d126fb382
    com.fasterxml.jackson.databind.ext.Java7Support4b7557784caa415a
    com.fasterxml.jackson.databind.ext.Java7SupportImpl94a94fc44678f7e9
    com.fasterxml.jackson.databind.ext.OptionalHandlerFactorya873be98e8f52009
    com.fasterxml.jackson.databind.introspect.AccessorNamingStrategy3d3b7f563f5ca70a
    com.fasterxml.jackson.databind.introspect.AccessorNamingStrategy.Provider6026222786456f26
    com.fasterxml.jackson.databind.introspect.Annotated47d3d49f2b832d54
    com.fasterxml.jackson.databind.introspect.AnnotatedClass208d1216b93f97d9
    com.fasterxml.jackson.databind.introspect.AnnotatedClass.Creatorsecbba5a1c87c995f
    com.fasterxml.jackson.databind.introspect.AnnotatedClassResolver9c1435b88f5e9e91
    com.fasterxml.jackson.databind.introspect.AnnotatedConstructoreaf946db37898a44
    com.fasterxml.jackson.databind.introspect.AnnotatedCreatorCollectorf1dbd789d7b2161e
    com.fasterxml.jackson.databind.introspect.AnnotatedFielde6e45b21b9cdeda3
    com.fasterxml.jackson.databind.introspect.AnnotatedFieldCollectord6830919dea39e8f
    com.fasterxml.jackson.databind.introspect.AnnotatedFieldCollector.FieldBuilder571d9e7fb561d385
    com.fasterxml.jackson.databind.introspect.AnnotatedMember5879537c033bd580
    com.fasterxml.jackson.databind.introspect.AnnotatedMethodad2f0bf303d90ae0
    com.fasterxml.jackson.databind.introspect.AnnotatedMethodCollectore8e34bff5e47f125
    com.fasterxml.jackson.databind.introspect.AnnotatedMethodCollector.MethodBuilderb522d96f88a7ade4
    com.fasterxml.jackson.databind.introspect.AnnotatedMethodMapd69be24a07cecf16
    com.fasterxml.jackson.databind.introspect.AnnotatedParameter05eab262cf202b22
    com.fasterxml.jackson.databind.introspect.AnnotatedWithParams54f7d4537c15cfdb
    com.fasterxml.jackson.databind.introspect.AnnotationCollectorc389709d2ffbb364
    com.fasterxml.jackson.databind.introspect.AnnotationCollector.EmptyCollectora87b6b2439611ec7
    com.fasterxml.jackson.databind.introspect.AnnotationCollector.NCollector9e3f6012728d8752
    com.fasterxml.jackson.databind.introspect.AnnotationCollector.NoAnnotations9173d7167a075d90
    com.fasterxml.jackson.databind.introspect.AnnotationCollector.OneAnnotation5d638a47b9878df4
    com.fasterxml.jackson.databind.introspect.AnnotationCollector.OneCollector4d7ed4cd12d6011c
    com.fasterxml.jackson.databind.introspect.AnnotationCollector.TwoAnnotationscfd34e461249c2a8
    com.fasterxml.jackson.databind.introspect.AnnotationMap78aa63dcada1ee05
    com.fasterxml.jackson.databind.introspect.BasicBeanDescription4f0d484434fb6325
    com.fasterxml.jackson.databind.introspect.BasicClassIntrospectorfcecadfe75a5c2af
    com.fasterxml.jackson.databind.introspect.BeanPropertyDefinitiond3bbcf006607ecb0
    com.fasterxml.jackson.databind.introspect.ClassIntrospectorb20a1133edfcf6b5
    com.fasterxml.jackson.databind.introspect.CollectorBasefec0f38373f479ba
    com.fasterxml.jackson.databind.introspect.ConcreteBeanPropertyBasefa5bde6be1d392b1
    com.fasterxml.jackson.databind.introspect.DefaultAccessorNamingStrategyefc1568392fc0098
    com.fasterxml.jackson.databind.introspect.DefaultAccessorNamingStrategy.Provider9679bb882d2d354f
    com.fasterxml.jackson.databind.introspect.JacksonAnnotationIntrospector9d54114155341c05
    com.fasterxml.jackson.databind.introspect.MemberKey0e604899c13122c4
    com.fasterxml.jackson.databind.introspect.MethodGenericTypeResolver61e8e0d7412c1d92
    com.fasterxml.jackson.databind.introspect.POJOPropertiesCollector1821e69f144ab189
    com.fasterxml.jackson.databind.introspect.POJOPropertyBuilder87b50c8168df5d0b
    com.fasterxml.jackson.databind.introspect.POJOPropertyBuilder.1925ffe3a324d008c
    com.fasterxml.jackson.databind.introspect.POJOPropertyBuilder.2f9f5816009560a85
    com.fasterxml.jackson.databind.introspect.POJOPropertyBuilder.4ccfa1b83e27ecd92
    com.fasterxml.jackson.databind.introspect.POJOPropertyBuilder.58bc5c843a115ba34
    com.fasterxml.jackson.databind.introspect.POJOPropertyBuilder.6a2d5a4cee9bda8de
    com.fasterxml.jackson.databind.introspect.POJOPropertyBuilder.Linkedef62b5db9e7546d6
    com.fasterxml.jackson.databind.introspect.SimpleMixInResolver6a0721d817cbf413
    com.fasterxml.jackson.databind.introspect.TypeResolutionContext.Basic09190ef225acb240
    com.fasterxml.jackson.databind.introspect.VisibilityChecker.Std86f77996bd544f4e
    com.fasterxml.jackson.databind.jsontype.PolymorphicTypeValidatorff1c7cc76de984ce
    com.fasterxml.jackson.databind.jsontype.PolymorphicTypeValidator.Baseea9ae0e64ce11069
    com.fasterxml.jackson.databind.jsontype.SubtypeResolverb2ed8bc0e5fe669c
    com.fasterxml.jackson.databind.jsontype.impl.LaissezFaireSubTypeValidatord02dab29b87ed521
    com.fasterxml.jackson.databind.jsontype.impl.StdSubtypeResolver342823e6800eb76b
    com.fasterxml.jackson.databind.jsontype.impl.SubTypeValidatora7ad2f19c2210a88
    com.fasterxml.jackson.databind.module.SimpleDeserializers53107227f2e2423e
    com.fasterxml.jackson.databind.module.SimpleKeyDeserializersa819432235e4437e
    com.fasterxml.jackson.databind.module.SimpleModulea21183dcf70aba53
    com.fasterxml.jackson.databind.module.SimpleSerializers946800aa77be606d
    com.fasterxml.jackson.databind.node.JsonNodeFactoryb407554ab061d84d
    com.fasterxml.jackson.databind.ser.BasicSerializerFactoryda909c46cb0d91a4
    com.fasterxml.jackson.databind.ser.BeanSerializerFactory16faed09cf6c52b8
    com.fasterxml.jackson.databind.ser.BeanSerializerModifier67661ad652d96db0
    com.fasterxml.jackson.databind.ser.ContainerSerializer67b35562bf415143
    com.fasterxml.jackson.databind.ser.DefaultSerializerProvider7081bda43dcfcb52
    com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.Implbb7a481d8d11e37e
    com.fasterxml.jackson.databind.ser.SerializerCache05a580ec11f5621f
    com.fasterxml.jackson.databind.ser.SerializerFactorya96ec5a87f2a9dec
    com.fasterxml.jackson.databind.ser.Serializers.Base443d0df59bde7b26
    com.fasterxml.jackson.databind.ser.impl.FailingSerializer96696f091a076f00
    com.fasterxml.jackson.databind.ser.impl.ReadOnlyClassToSerializerMapf7673b78d4dbb21a
    com.fasterxml.jackson.databind.ser.impl.StringArraySerializere460ddec25a8c614
    com.fasterxml.jackson.databind.ser.impl.UnknownSerializer0f0b100c24ae521b
    com.fasterxml.jackson.databind.ser.std.ArraySerializerBasec8c6410977eb572f
    com.fasterxml.jackson.databind.ser.std.BooleanSerializera5e7ba6f955baf41
    com.fasterxml.jackson.databind.ser.std.CalendarSerializerda6df272674c3c19
    com.fasterxml.jackson.databind.ser.std.DateSerializerdcf355b20d60965d
    com.fasterxml.jackson.databind.ser.std.DateTimeSerializerBasefb1c17ba4f02cbe0
    com.fasterxml.jackson.databind.ser.std.NullSerializer55885eb24739c250
    com.fasterxml.jackson.databind.ser.std.NumberSerializer2b09bf235752694e
    com.fasterxml.jackson.databind.ser.std.NumberSerializersdfe8936a5bca95d8
    com.fasterxml.jackson.databind.ser.std.NumberSerializers.Base243c88192bb86ee4
    com.fasterxml.jackson.databind.ser.std.NumberSerializers.DoubleSerializer5b65fb8c8ea04f02
    com.fasterxml.jackson.databind.ser.std.NumberSerializers.FloatSerializer0849cda863777be8
    com.fasterxml.jackson.databind.ser.std.NumberSerializers.IntLikeSerializer37f949791419da14
    com.fasterxml.jackson.databind.ser.std.NumberSerializers.IntegerSerializer8572ad7f464034dd
    com.fasterxml.jackson.databind.ser.std.NumberSerializers.LongSerializer1bcc67c140cfbe03
    com.fasterxml.jackson.databind.ser.std.NumberSerializers.ShortSerializera678b068eca9e8b6
    com.fasterxml.jackson.databind.ser.std.StdJdkSerializersb1d950d41858d3ba
    com.fasterxml.jackson.databind.ser.std.StdScalarSerializer294ce690d4fde5d1
    com.fasterxml.jackson.databind.ser.std.StdSerializer2eb989e3aa9ebf8b
    com.fasterxml.jackson.databind.ser.std.StringSerializerb6342c9e6a90d477
    com.fasterxml.jackson.databind.ser.std.ToEmptyObjectSerializerdcbbfaf250568a42
    com.fasterxml.jackson.databind.ser.std.ToStringSerializerb965af9d2adb22d7
    com.fasterxml.jackson.databind.ser.std.ToStringSerializerBase4df4671bce83caa1
    com.fasterxml.jackson.databind.ser.std.UUIDSerializer9825ed90a3a1ea38
    com.fasterxml.jackson.databind.type.ArrayTypeada34943c659785c
    com.fasterxml.jackson.databind.type.ClassKeyc92de6eb0295e1ea
    com.fasterxml.jackson.databind.type.ClassStackb4e39752aaaff8ce
    com.fasterxml.jackson.databind.type.CollectionLikeTypefdca9c74891003b6
    com.fasterxml.jackson.databind.type.CollectionType754ccfd8e93b2fdd
    com.fasterxml.jackson.databind.type.LogicalTypee0e08cb4c4d717b1
    com.fasterxml.jackson.databind.type.MapLikeType84a6b76ead78268b
    com.fasterxml.jackson.databind.type.MapTypee4c0bbd455f37026
    com.fasterxml.jackson.databind.type.SimpleType9bf726d4e15bb139
    com.fasterxml.jackson.databind.type.TypeBase84e347a8123ba86e
    com.fasterxml.jackson.databind.type.TypeBindings69af78e44b169d2b
    com.fasterxml.jackson.databind.type.TypeBindings.AsKey3cf63795dd54b8b7
    com.fasterxml.jackson.databind.type.TypeBindings.TypeParamStashc0b0ab8001879ee4
    com.fasterxml.jackson.databind.type.TypeFactory3596cbf80365f39f
    com.fasterxml.jackson.databind.type.TypeParser539ac466374b5334
    com.fasterxml.jackson.databind.util.AccessPattern44bf82acd8a3fffc
    com.fasterxml.jackson.databind.util.ArrayBuildersc14a06ce657aa67b
    com.fasterxml.jackson.databind.util.ArrayIteratore4c9e4d38ac21c90
    com.fasterxml.jackson.databind.util.BeanUtilaca352d66ffbab01
    com.fasterxml.jackson.databind.util.ClassUtil7a2a6f716f5500a1
    com.fasterxml.jackson.databind.util.ClassUtil.Ctor1fd4710f90ff53de
    com.fasterxml.jackson.databind.util.IgnorePropertiesUtil81001725c2203f99
    com.fasterxml.jackson.databind.util.LRUMapc487e14750ddd25e
    com.fasterxml.jackson.databind.util.LinkedNode73ca05873e25cb2e
    com.fasterxml.jackson.databind.util.NativeImageUtilb8f4495279426166
    com.fasterxml.jackson.databind.util.ObjectBuffer14fbae37b93a957b
    com.fasterxml.jackson.databind.util.RootNameLookupadd4d1fb1a084862
    com.fasterxml.jackson.databind.util.StdDateFormatc6d4539431425f11
    com.fasterxml.jackson.databind.util.TypeKey32162ed128b7bbbd
    com.fasterxml.jackson.databind.util.internal.LinkedDeque9bfc4fbb2b0b1196
    com.fasterxml.jackson.databind.util.internal.PrivateMaxEntriesMap3f0ff22fe5779861
    com.fasterxml.jackson.databind.util.internal.PrivateMaxEntriesMap.AddTask866aec97a77c2650
    com.fasterxml.jackson.databind.util.internal.PrivateMaxEntriesMap.Builderdcc244062522bdc6
    com.fasterxml.jackson.databind.util.internal.PrivateMaxEntriesMap.DrainStatusa1e26b7a083af651
    com.fasterxml.jackson.databind.util.internal.PrivateMaxEntriesMap.DrainStatus.12de09d3a3bfcdca6
    com.fasterxml.jackson.databind.util.internal.PrivateMaxEntriesMap.DrainStatus.22928516020b2e91a
    com.fasterxml.jackson.databind.util.internal.PrivateMaxEntriesMap.DrainStatus.326e6a18539bc3d80
    com.fasterxml.jackson.databind.util.internal.PrivateMaxEntriesMap.EntryIterator86fc40b47b6d46b6
    com.fasterxml.jackson.databind.util.internal.PrivateMaxEntriesMap.EntrySet69a473f3bfd1c6f1
    com.fasterxml.jackson.databind.util.internal.PrivateMaxEntriesMap.Node2dc3669c077d2e56
    com.fasterxml.jackson.databind.util.internal.PrivateMaxEntriesMap.WeightedValuec5874d009c2eaa54
    com.fasterxml.jackson.datatype.jsr310.JavaTimeFeature11ebf8abc1c4f906
    com.fasterxml.jackson.datatype.jsr310.JavaTimeModule336759599f630d91
    com.fasterxml.jackson.datatype.jsr310.JavaTimeModule.1327c369d7a207d22
    com.fasterxml.jackson.datatype.jsr310.PackageVersion52634a35b9f96fcd
    com.fasterxml.jackson.datatype.jsr310.deser.DurationDeserializerb86657917c64cb85
    com.fasterxml.jackson.datatype.jsr310.deser.InstantDeserializer8193d32aba73cf61
    com.fasterxml.jackson.datatype.jsr310.deser.JSR310DateTimeDeserializerBase0366d6b796957250
    com.fasterxml.jackson.datatype.jsr310.deser.JSR310DeserializerBasea42a100eb3db5063
    com.fasterxml.jackson.datatype.jsr310.deser.JSR310StringParsableDeserializerec40549afa8898ca
    com.fasterxml.jackson.datatype.jsr310.deser.LocalDateDeserializer7c3dc32f44a8a7d2
    com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializerdd6bef5ff411966a
    com.fasterxml.jackson.datatype.jsr310.deser.LocalTimeDeserializer1bffe9367f89358b
    com.fasterxml.jackson.datatype.jsr310.deser.MonthDayDeserializer295fd92b5b65742e
    com.fasterxml.jackson.datatype.jsr310.deser.OffsetTimeDeserializer00fa8a1b15dfd0d9
    com.fasterxml.jackson.datatype.jsr310.deser.YearDeserializer0679c75311d6e905
    com.fasterxml.jackson.datatype.jsr310.deser.YearMonthDeserializeraf642fd7b5a7e4e8
    com.fasterxml.jackson.datatype.jsr310.deser.key.DurationKeyDeserializer86dee43d5fd8de58
    com.fasterxml.jackson.datatype.jsr310.deser.key.InstantKeyDeserializerc323cc187e10bdcd
    com.fasterxml.jackson.datatype.jsr310.deser.key.Jsr310KeyDeserializer64893f60684210d1
    com.fasterxml.jackson.datatype.jsr310.deser.key.LocalDateKeyDeserializer3639e2ff55da7fa1
    com.fasterxml.jackson.datatype.jsr310.deser.key.LocalDateTimeKeyDeserializered7e026ffd090c77
    com.fasterxml.jackson.datatype.jsr310.deser.key.LocalTimeKeyDeserializerc058ad0a221814f2
    com.fasterxml.jackson.datatype.jsr310.deser.key.MonthDayKeyDeserializerfe54a17b388e76da
    com.fasterxml.jackson.datatype.jsr310.deser.key.OffsetDateTimeKeyDeserializer1bfce89e8c6142a4
    com.fasterxml.jackson.datatype.jsr310.deser.key.OffsetTimeKeyDeserializer7e7c73d8f28d4c13
    com.fasterxml.jackson.datatype.jsr310.deser.key.PeriodKeyDeserializer1fb27ade4fa213e5
    com.fasterxml.jackson.datatype.jsr310.deser.key.YearKeyDeserializerded209cf80f75df6
    com.fasterxml.jackson.datatype.jsr310.deser.key.YearMonthKeyDeserializerbbb3a607d3512540
    com.fasterxml.jackson.datatype.jsr310.deser.key.ZoneIdKeyDeserializer010f3e4e2802434d
    com.fasterxml.jackson.datatype.jsr310.deser.key.ZoneOffsetKeyDeserializerb8b591cfa6cb7be9
    com.fasterxml.jackson.datatype.jsr310.deser.key.ZonedDateTimeKeyDeserializerc3b6fe868b1396e4
    com.fasterxml.jackson.datatype.jsr310.ser.DurationSerializer763bc2b5571c26d7
    com.fasterxml.jackson.datatype.jsr310.ser.InstantSerializerdbba40957e9eaf5e
    com.fasterxml.jackson.datatype.jsr310.ser.InstantSerializerBaseff15c4b9316eba9e
    com.fasterxml.jackson.datatype.jsr310.ser.JSR310FormattedSerializerBasebd4e59d7380ca96c
    com.fasterxml.jackson.datatype.jsr310.ser.JSR310SerializerBase2ad341990e9021dc
    com.fasterxml.jackson.datatype.jsr310.ser.LocalDateSerializer8f84db74e8d2427f
    com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializerc68b8abca15216a4
    com.fasterxml.jackson.datatype.jsr310.ser.LocalTimeSerializer30ef053f4ce38983
    com.fasterxml.jackson.datatype.jsr310.ser.MonthDaySerializer99c8e56bc8812c47
    com.fasterxml.jackson.datatype.jsr310.ser.OffsetDateTimeSerializer9ad79a2ff3bec6bd
    com.fasterxml.jackson.datatype.jsr310.ser.OffsetTimeSerializerff84bad2852f3bf7
    com.fasterxml.jackson.datatype.jsr310.ser.YearMonthSerializerb9428592c48c4dbc
    com.fasterxml.jackson.datatype.jsr310.ser.YearSerializer0f06fc30937c7746
    com.fasterxml.jackson.datatype.jsr310.ser.ZoneIdSerializer04f155c4ebbe4db1
    com.fasterxml.jackson.datatype.jsr310.ser.ZonedDateTimeSerializer6a697e11675f3119
    com.fasterxml.jackson.datatype.jsr310.ser.key.ZonedDateTimeKeySerializer244ed33273b7bb0f
    com.fasterxml.jackson.module.afterburner.AfterburnerModule199d238f356edc15
    com.fasterxml.jackson.module.afterburner.PackageVersionfbb919d8d00a45fe
    com.fasterxml.jackson.module.afterburner.asm.AnnotationWriter26e3f2a9d5189a44
    com.fasterxml.jackson.module.afterburner.asm.Attribute2efab23372ecfa18
    com.fasterxml.jackson.module.afterburner.asm.ByteVector468fd5dee16f6f94
    com.fasterxml.jackson.module.afterburner.asm.ClassVisitor388846e4960febe3
    com.fasterxml.jackson.module.afterburner.asm.ClassWriter7a3ec1cd43411b75
    com.fasterxml.jackson.module.afterburner.asm.Edgef5aa419176534f91
    com.fasterxml.jackson.module.afterburner.asm.Handler2b61e7f54f039d20
    com.fasterxml.jackson.module.afterburner.asm.Label90eefbf66285b8b1
    com.fasterxml.jackson.module.afterburner.asm.MethodVisitor7f2af2bb098c6f8e
    com.fasterxml.jackson.module.afterburner.asm.MethodWriteree2650d838332d42
    com.fasterxml.jackson.module.afterburner.asm.Symbolcefaf3084e73060d
    com.fasterxml.jackson.module.afterburner.asm.SymbolTable6cf9d3ecd897faab
    com.fasterxml.jackson.module.afterburner.asm.SymbolTable.Entry993e8bf5b40e2a91
    com.fasterxml.jackson.module.afterburner.asm.Typefe8b4208cc440f98
    com.fasterxml.jackson.module.afterburner.deser.BeanPropertyMutator09cd3d9e6eec535b
    com.fasterxml.jackson.module.afterburner.deser.CreatorOptimizer0d78c5502066de2c
    com.fasterxml.jackson.module.afterburner.deser.DeserializerModifier186576b3d88ebe97
    com.fasterxml.jackson.module.afterburner.deser.OptimizedSettableBeanPropertyb0c47b39c874bdb4
    com.fasterxml.jackson.module.afterburner.deser.OptimizedValueInstantiator8e6517b1726f0473
    com.fasterxml.jackson.module.afterburner.deser.PropertyMutatorCollector1e09436de9cc8c21
    com.fasterxml.jackson.module.afterburner.deser.SettableObjectMethodProperty155fd5d16e22fb45
    com.fasterxml.jackson.module.afterburner.deser.SettableStringMethodProperty4457db5f3a904ed7
    com.fasterxml.jackson.module.afterburner.deser.SuperSonicBeanDeserializer50615d83c69a1adc
    com.fasterxml.jackson.module.afterburner.deser.SuperSonicDeserializerBuilderbbe0324c14e17af7
    com.fasterxml.jackson.module.afterburner.ser.SerializerModifier744fe03e232889f5
    com.fasterxml.jackson.module.afterburner.util.ClassName8e6fab406db350e7
    com.fasterxml.jackson.module.afterburner.util.DynamicPropertyAccessorBase8391a4ac810e01cf
    com.fasterxml.jackson.module.afterburner.util.MyClassLoaderb2d336f342ed1563
    com.github.packageurl.PackageURLc010d37d9eb81e63
    com.github.packageurl.PackageURLBuilder6e21230bb11d0b1b
    com.google.common.base.Absentde1298f27b4c0693
    com.google.common.base.Equivalence0bf1466041c0dfd1
    com.google.common.base.Equivalence.Equals99e02f2d7426f15b
    com.google.common.base.Equivalence.Identityd3541a3d66584b0c
    com.google.common.base.Joinerf7734bc0b59882d0
    com.google.common.base.Joiner.MapJoinere84bf3880512edf3
    com.google.common.base.MoreObjects2565f99d2ba4b7cf
    com.google.common.base.MoreObjects9b5d20ad987c1190
    com.google.common.base.Objectsf83aec262177d9aa
    com.google.common.base.Optionala4c1dc586be5462d
    com.google.common.base.Platforma8753559da3e0a37
    com.google.common.base.Platform2b3efbd613b2b3e9
    com.google.common.base.Platform.JdkPatternCompiler75a4a171cdb3ba4d
    com.google.common.base.Platform.JdkPatternCompiler4259946d36f73bee
    com.google.common.base.Preconditionsa5fabd1b8022b288
    com.google.common.base.Preconditions78865bbccc679bdd
    com.google.common.base.Stopwatch05184a11703fbe52
    com.google.common.base.Stringsbea92ea6583d7b26
    com.google.common.base.Supplierse04b55ce8caee2c6
    com.google.common.base.Suppliers.SupplierOfInstance279b85f5d20fb7ff
    com.google.common.base.Ticker1eb4cb71b04e9998
    com.google.common.base.Ticker.17d34a2ff08e95f4d
    com.google.common.cache.CacheBuilderd60000d5d0529fd8
    com.google.common.cache.CacheBuilder.158c3368be284850f
    com.google.common.cache.CacheBuilder.27c357ee2c9d1b97a
    com.google.common.cache.CacheBuilder.317b754e6ec300e0c
    com.google.common.cache.CacheBuilder.NullListener503af51cc80a19a7
    com.google.common.cache.CacheBuilder.OneWeigheref3f36446ee581bb
    com.google.common.cache.CacheLoader6f7a86763a4e1f37
    com.google.common.cache.CacheStats6888465021ef8c98
    com.google.common.cache.LocalCachebfd7122d08a5097e
    com.google.common.cache.LocalCache.1981f61d2277bbf2f
    com.google.common.cache.LocalCache.22e1057e4f2ef9f44
    com.google.common.cache.LocalCache.AbstractReferenceEntry9fbba5526ddf3d29
    com.google.common.cache.LocalCache.EntryFactory3c778b132077268b
    com.google.common.cache.LocalCache.EntryFactory.1149c2b40f72ace96
    com.google.common.cache.LocalCache.EntryFactory.23cdf5e3e49798817
    com.google.common.cache.LocalCache.EntryFactory.357a4b308f97bdf8b
    com.google.common.cache.LocalCache.EntryFactory.465a255b2421326a9
    com.google.common.cache.LocalCache.EntryFactory.5d13cf77b76c19fac
    com.google.common.cache.LocalCache.EntryFactory.6352bac56b12c9164
    com.google.common.cache.LocalCache.EntryFactory.7a65f56428b1b75c1
    com.google.common.cache.LocalCache.EntryFactory.86ddfe334f3d0a08d
    com.google.common.cache.LocalCache.LoadingValueReference17525edd3724fb0d
    com.google.common.cache.LocalCache.LocalLoadingCache41c81875c9974a45
    com.google.common.cache.LocalCache.LocalManualCache702e311a3ac7cee2
    com.google.common.cache.LocalCache.Segment975583621694620d
    com.google.common.cache.LocalCache.Strength71c0b78c42fc3cfd
    com.google.common.cache.LocalCache.Strength.1f87ab93993ce0cfb
    com.google.common.cache.LocalCache.Strength.2a0d931afd02b1c61
    com.google.common.cache.LocalCache.Strength.31b059ec95b7526ed
    com.google.common.cache.LocalCache.StrongEntryb6d275e34352488f
    com.google.common.cache.LocalCache.StrongValueReferencea8e7d4f21909e98f
    com.google.common.cache.LocalCache.WeakEntry3221f3dcd2f63ca7
    com.google.common.collect.AbstractIndexedListIterator681b38a5712f8db6
    com.google.common.collect.AbstractListMultimap312de40f33376bbc
    com.google.common.collect.AbstractMapBasedMultimap939b9fff0416506a
    com.google.common.collect.AbstractMapBasedMultimap.AsMap7414a1c1e94a09d2
    com.google.common.collect.AbstractMapBasedMultimap.AsMap.AsMapEntries6e3224f5c4f51c3c
    com.google.common.collect.AbstractMapBasedMultimap.AsMap.AsMapIterator94141e97ec1f5921
    com.google.common.collect.AbstractMapBasedMultimap.RandomAccessWrappedListc70c2a8584e17735
    com.google.common.collect.AbstractMapBasedMultimap.WrappedCollection0f08a0cdbe4a9425
    com.google.common.collect.AbstractMapBasedMultimap.WrappedListf183ed23835ad1a5
    com.google.common.collect.AbstractMapBasedMultimap.WrappedSet2c20ba636ae757db
    com.google.common.collect.AbstractMapEntrydbfb81dc94c25da1
    com.google.common.collect.AbstractMultimap0c12e0135e63f563
    com.google.common.collect.AbstractMultimap.Values963515ea800ac28a
    com.google.common.collect.AbstractSetMultimap85ce6238149179d1
    com.google.common.collect.ArrayListMultimap4ed890b97e150048
    com.google.common.collect.ArrayListMultimapGwtSerializationDependencies9aa6680cc681a058
    com.google.common.collect.CollectPreconditions48a105cd927d0de0
    com.google.common.collect.Collections2d392cc2a4fa1733a
    com.google.common.collect.CompactHashMapc39acbdfe76023e9
    com.google.common.collect.CompactHashMap.24e360226fc3d3183
    com.google.common.collect.CompactHashMap.EntrySetViewa441af57d96c8aa6
    com.google.common.collect.CompactHashMap.Itr13b43c975c02d3a0
    com.google.common.collect.CompactHashMap.MapEntryb21f7fd0c88a9662
    com.google.common.collect.CompactLinkedHashMapeeda290835ff9354
    com.google.common.collect.ComparisonChain89fcc9877304a4ad
    com.google.common.collect.ComparisonChain.11e3506aaa4ea12f3
    com.google.common.collect.ComparisonChain.InactiveComparisonChain47c6db79a230019d
    com.google.common.collect.EmptyImmutableListMultimap2f6c110dc1395aaa
    com.google.common.collect.Hashingc3b0a4b68c9a6665
    com.google.common.collect.ImmutableCollection939fad738865be35
    com.google.common.collect.ImmutableCollection.ArrayBasedBuilderbd17a40ffa31759e
    com.google.common.collect.ImmutableCollection.Builder0bac89f39a1608ee
    com.google.common.collect.ImmutableEntrya7ef3010d5c9c32c
    com.google.common.collect.ImmutableListcf3b6b9123283dc2
    com.google.common.collect.ImmutableList.Itr82c6830322cc9a7b
    com.google.common.collect.ImmutableListMultimapc8911767d0e0693c
    com.google.common.collect.ImmutableMapca4d2348f3587d10
    com.google.common.collect.ImmutableMap.Buildere7ac2c7fad634bf9
    com.google.common.collect.ImmutableMultimap835b9923424ddccc
    com.google.common.collect.ImmutableSet23674c788f0e80a7
    com.google.common.collect.ImmutableSet.Builderce95ea2a04779f0c
    com.google.common.collect.Iterablesd07c9d0475515f3e
    com.google.common.collect.Iterators0780cce6dbf321f2
    com.google.common.collect.Iterators.947a46c01e539ad3b
    com.google.common.collect.LexicographicalOrdering2542283ea863b634
    com.google.common.collect.LinkedHashMultimapb2f5b863d4d1335a
    com.google.common.collect.LinkedHashMultimap.ValueEntryd6c8ae403c1e9526
    com.google.common.collect.LinkedHashMultimap.ValueSetc53b2f607eaaaf47
    com.google.common.collect.LinkedHashMultimapGwtSerializationDependencies7cd5bcea445c7bc5
    com.google.common.collect.Listsc1b0d519d968b679
    com.google.common.collect.Listsc2633c96ba6cb82e
    com.google.common.collect.Maps914c59ab81f82703
    com.google.common.collect.Maps.2a328c6c55e58f7f8
    com.google.common.collect.Maps.EntrySetf24aa2b3d26bf4cb
    com.google.common.collect.Maps.Values510e6f45106e84ea
    com.google.common.collect.Maps.ViewCachingAbstractMapa967ab35a874064c
    com.google.common.collect.ObjectArraysd8257440a2bc2acd
    com.google.common.collect.Orderinga45dbe1e38c7795c
    com.google.common.collect.Platform22be06cb854791c4
    com.google.common.collect.RegularImmutableListb82706c13561fa2c
    com.google.common.collect.RegularImmutableMap4a7860724d1398f5
    com.google.common.collect.RegularImmutableSet441d430081987836
    com.google.common.collect.Sets3c3b1a78c9a401e9
    com.google.common.collect.Sets.ImprovedAbstractSet1c1761f9c721ae9e
    com.google.common.collect.SingletonImmutableSet492998af47b9b5cb
    com.google.common.collect.TransformedIterator23bedb8d7be64a7d
    com.google.common.collect.UnmodifiableIteratorfea3df35d0b50982
    com.google.common.collect.UnmodifiableListIterator1c1dc7f9f4d2eca9
    com.google.common.io.ByteSource68686fa428221aec
    com.google.common.io.ByteSource.AsCharSource181f8e24cb6711f8
    com.google.common.io.ByteStreams54fcce135598266c
    com.google.common.io.ByteStreams.12b43e9d0abf526aa
    com.google.common.io.CharSourcebc0c0f9fc3e87ec6
    com.google.common.io.CharStreamsa4ac0d1fb66d2450
    com.google.common.io.Closerf172748005764c91
    com.google.common.io.Closer.SuppressingSuppressore6d89820611fa8e8
    com.google.common.io.Java8Compatibility68dd20d772b60565
    com.google.common.io.LineBufferbde984eba6102e2f
    com.google.common.io.LineReader63a3ae8f0ba01e1b
    com.google.common.io.LineReader.1e0b0395dc1efa331
    com.google.common.io.Resourcesf568e92af131e150
    com.google.common.io.Resources.1f43de1784f771e62
    com.google.common.io.Resources.UrlByteSource3abc3d7530912c7f
    com.google.common.math.IntMathe5dfbae9828a34c5
    com.google.common.primitives.Intsc5ac9c1a28bb42ab
    com.google.common.primitives.Primitives4059f7a7f89742bd
    com.google.common.util.concurrent.AbstractFuture0d3542023b3d0f3a
    com.google.common.util.concurrent.AbstractFuture.AtomicHelpera21d59d34003666c
    com.google.common.util.concurrent.AbstractFuture.Listenerca39d3d4670f00ab
    com.google.common.util.concurrent.AbstractFuture.TrustedFuture8b909dd08f212679
    com.google.common.util.concurrent.AbstractFuture.UnsafeAtomicHelperbaac73531cc8d9a5
    com.google.common.util.concurrent.AbstractFuture.UnsafeAtomicHelper.1dd2e06e2a2d5d952
    com.google.common.util.concurrent.AbstractFuture.Waiter68e908b3520e181d
    com.google.common.util.concurrent.FluentFuture454a49193727f5de
    com.google.common.util.concurrent.GwtFluentFutureCatchingSpecialization2aa1403fcf0db7c3
    com.google.common.util.concurrent.SettableFuture65da3802aad1800c
    com.google.common.util.concurrent.Uninterruptiblesedfd21622bee93b9
    com.google.inject.AbstractModule6b45a54d50aad9da
    com.google.inject.ConfigurationException1a8a824bc0d2e8d5
    com.google.inject.Guice38355e53f04cec38
    com.google.inject.Key392ae4c95fe3ee18
    com.google.inject.Key.AnnotationInstanceStrategyd8fe57c793d708ef
    com.google.inject.Key.AnnotationTypeStrategy92543206d997ac72
    com.google.inject.Key.NullAnnotationStrategy700e076acab99a47
    com.google.inject.Scopes713260a40c1be234
    com.google.inject.Scopes.170d15ffb82f62999
    com.google.inject.Scopes.2a6166378724c3440
    com.google.inject.Stage0c68124687617697
    com.google.inject.TypeLiteral942d6924e18736df
    com.google.inject.internal.AbstractBindingBuilder6d25963ba1200932
    com.google.inject.internal.AbstractBindingProcessor06f94cd981aa5734
    com.google.inject.internal.AbstractBindingProcessor.Processorb4aa6da9795cc4c8
    com.google.inject.internal.AbstractBindingProcessor.Processor.13b4e430549cff6ed
    com.google.inject.internal.AbstractProcessor4431a9a38bf80a4f
    com.google.inject.internal.Annotations4a9946c347f51476
    com.google.inject.internal.Annotations.1c3e15dafb8ca4348
    com.google.inject.internal.Annotations.3ccc4c1d27f728a58
    com.google.inject.internal.Annotations.AnnotationChecker43190eac17847987
    com.google.inject.internal.Annotations.AnnotationChecker.19e780df5c366c37a
    com.google.inject.internal.BindingBuilder2933b74d46304420
    com.google.inject.internal.BindingImpl8968b675fea439fc
    com.google.inject.internal.BindingProcessor55302d434fe61da8
    com.google.inject.internal.BindingProcessor.1096321d693cc0dc7
    com.google.inject.internal.BoundProviderFactory06f7023c0d914c16
    com.google.inject.internal.BytecodeGena2220ac907336cf7
    com.google.inject.internal.BytecodeGen.1d974ccf1df85f715
    com.google.inject.internal.ConstantFactory6cf2b2f236574f33
    com.google.inject.internal.ConstructionContext99c513fd0b92784a
    com.google.inject.internal.ConstructorBindingImpl2eff14c0aa633fd6
    com.google.inject.internal.ConstructorBindingImpl.Factoryd34039f7d44ae811
    com.google.inject.internal.ConstructorInjectorb305081f63cef419
    com.google.inject.internal.ConstructorInjector.1d472f1a1c765f10c
    com.google.inject.internal.ConstructorInjectorStored42478bd5d160f89
    com.google.inject.internal.ConstructorInjectorStore.109e7e5188acef3ff
    com.google.inject.internal.CycleDetectingLock.CycleDetectingLockFactory14a08ea8585fc33b
    com.google.inject.internal.CycleDetectingLock.CycleDetectingLockFactory.ReentrantCycleDetectingLock32ce1685eab9d79b
    com.google.inject.internal.DefaultConstructionProxyFactory780b0ae5b9a7ff2c
    com.google.inject.internal.DefaultConstructionProxyFactory.ReflectiveProxy75afe1a6a9857e2e
    com.google.inject.internal.DeferredLookupsd21568c1a917ac9f
    com.google.inject.internal.DelegatingInvocationHandler0a60aa30b0f67cb6
    com.google.inject.internal.EncounterImpl4c9b36365736b707
    com.google.inject.internal.Errors0a73d018d27724f7
    com.google.inject.internal.Errors.1a5896f886f103035
    com.google.inject.internal.FactoryProxy3e1b0bf2893ceb0c
    com.google.inject.internal.FailableCachee4410b48843c2f1d
    com.google.inject.internal.FailableCache.100a61ff0bf8adf78
    com.google.inject.internal.InheritingStatec74bdb9e0e93e49c
    com.google.inject.internal.Initializables518acef32fef2c93
    com.google.inject.internal.Initializables.1c178252432602883
    com.google.inject.internal.Initializer9c5c3dfc748636aa
    com.google.inject.internal.Initializer.163160b0684bfe906
    com.google.inject.internal.Initializer.InjectableReference3728fdf5c6d2afc1
    com.google.inject.internal.Initializer.InjectableReferenceState42047fec38b61b55
    com.google.inject.internal.InjectionRequestProcessor467ef2d7c767d1b1
    com.google.inject.internal.InjectorImpl9b3cab9b01abfc0c
    com.google.inject.internal.InjectorImpl.1a3ce443d8705e94d
    com.google.inject.internal.InjectorImpl.InjectorOptionseb23159c5190bd9a
    com.google.inject.internal.InjectorImpl.JitLimitation44c9d29cbc8d9623
    com.google.inject.internal.InjectorImpl.ProviderBindingImplefe9b6e862312e16
    com.google.inject.internal.InjectorImpl.ProviderBindingImpl.163a6ad2a009ed446
    com.google.inject.internal.InjectorOptionsProcessor19c5f730ee6118bb
    com.google.inject.internal.InjectorShell9dee27226bdb2f4b
    com.google.inject.internal.InjectorShell.Builder469cbc20722af461
    com.google.inject.internal.InjectorShell.InjectorFactoryfeb68cbd9bae3035
    com.google.inject.internal.InjectorShell.LoggerFactoryd870ba685b5b65d3
    com.google.inject.internal.InjectorShell.RootModule28973b9aa91f61df
    com.google.inject.internal.InstanceBindingImpl4a96087986381abd
    com.google.inject.internal.InternalContexta4e3ecb519a9c736
    com.google.inject.internal.InternalFactoryToInitializableAdapterc67b7348dd055ea0
    com.google.inject.internal.InternalFactoryToProviderAdapter5850503e368e4adc
    com.google.inject.internal.InternalFlagsa24f5d2d7ed38e41
    com.google.inject.internal.InternalFlags.1c8387062acaa56c3
    com.google.inject.internal.InternalFlags.CustomClassLoadingOptionac5fc3e3c7ffad84
    com.google.inject.internal.InternalFlags.IncludeStackTraceOption9293f3a52c79a224
    com.google.inject.internal.InternalFlags.NullableProvidesOption59c15779e9c66310
    com.google.inject.internal.InternalInjectorCreator61f4d099d669edc9
    com.google.inject.internal.LinkedBindingImpl78720e8a6031a6aa
    com.google.inject.internal.LinkedProviderBindingImpla1fd43942d07cf2c
    com.google.inject.internal.ListenerBindingProcessorf9b0773d0debca09
    com.google.inject.internal.LookupProcessore7e39c534c25fe25
    com.google.inject.internal.MembersInjectorImpl26c7d4cafb376f58
    com.google.inject.internal.MembersInjectorImpl.18746a01aa8505ad3
    com.google.inject.internal.MembersInjectorStore5cbc70d1f8c005a0
    com.google.inject.internal.MembersInjectorStore.12d14f816d9430ab1
    com.google.inject.internal.MessageProcessor63acb3a46ec4da4a
    com.google.inject.internal.Messages8dc7d3664ddd9f4e
    com.google.inject.internal.Messages.18c9773583e74fbb4
    com.google.inject.internal.Messages.24ba02846621e07d3
    com.google.inject.internal.Messages.3b015233845533af7
    com.google.inject.internal.Messages.Converter9bb26167f6561138
    com.google.inject.internal.ModuleAnnotatedMethodScannerProcessor8a232af92a43b6ad
    com.google.inject.internal.MoreTypes795516ec2679615e
    com.google.inject.internal.MoreTypes.GenericArrayTypeImplb8dc649e4764f3c6
    com.google.inject.internal.MoreTypes.ParameterizedTypeImpl10e134e5c5e9d815
    com.google.inject.internal.Nullability6931c0ec3ff0387c
    com.google.inject.internal.PrivateElementProcessord55c7802e5be4aae
    com.google.inject.internal.ProcessedBindingData3d1d5ce20338fe20
    com.google.inject.internal.ProviderInstanceBindingImplf3d0e6df8fa03b7c
    com.google.inject.internal.ProviderInternalFactorybf39f7cb08dbbc39
    com.google.inject.internal.ProviderInternalFactory.10092750f4aca8ca3
    com.google.inject.internal.ProviderMethodsModulea3261709311d1d06
    com.google.inject.internal.ProviderToInternalFactoryAdapter27f08cb71760046d
    com.google.inject.internal.ProvidesMethodScanner19345282271bfc97
    com.google.inject.internal.ProvisionListenerCallbackStore5c880dc6861db7a8
    com.google.inject.internal.ProvisionListenerCallbackStore.12b595ea344d25121
    com.google.inject.internal.ProvisionListenerCallbackStore.KeyBinding3f5d39fd162e968e
    com.google.inject.internal.ProvisionListenerStackCallback38996f21b7c57b5a
    com.google.inject.internal.ProvisionListenerStackCallback.Provisiond9a4576897069aa6
    com.google.inject.internal.ScopeBindingProcessor80bb34aa390e8021
    com.google.inject.internal.Scoping4a4dd9ab08520ee6
    com.google.inject.internal.Scoping.158139689ae619771
    com.google.inject.internal.Scoping.2069664bb8e387d06
    com.google.inject.internal.Scoping.35f75b624fa4151c6
    com.google.inject.internal.Scoping.4eac6e6985f9e2e63
    com.google.inject.internal.Scoping.56c3c3ab91742bd3f
    com.google.inject.internal.Scoping.652358f43454e8cff
    com.google.inject.internal.Scoping.7a351cf4a19a7770d
    com.google.inject.internal.SingleFieldInjector90dd918cf204646c
    com.google.inject.internal.SingleMethodInjector00810da0ec5a2280
    com.google.inject.internal.SingleMethodInjector.110fb01244c5e4c2d
    com.google.inject.internal.SingleParameterInjectora0e6ad1e69e6479b
    com.google.inject.internal.SingletonScope0f090965d9774f64
    com.google.inject.internal.SingletonScope.1ebe9780388b0e815
    com.google.inject.internal.Statee73bf033d6b6977c
    com.google.inject.internal.State.172999414e9156425
    com.google.inject.internal.TypeConverterBindingProcessor1af3e862ea953c63
    com.google.inject.internal.TypeConverterBindingProcessor.1052954897d317197
    com.google.inject.internal.TypeConverterBindingProcessor.282d4912124f3746d
    com.google.inject.internal.TypeConverterBindingProcessor.3c53f9cc1aeb5d27e
    com.google.inject.internal.TypeConverterBindingProcessor.48e6fb3ca9ccd6885
    com.google.inject.internal.TypeConverterBindingProcessor.517500896e83299ed
    com.google.inject.internal.TypeConverterBindingProcessor.65ec5367830d1df80
    com.google.inject.internal.UntargettedBindingImpl91f1598e5524fc84
    com.google.inject.internal.UntargettedBindingProcessore071cf9f5332d554
    com.google.inject.internal.UntargettedBindingProcessor.158c43c65c6e64999
    com.google.inject.internal.WeakKeySetd04d8eae2374a5e6
    com.google.inject.internal.WeakKeySet.14d19a6714fe78a47
    com.google.inject.internal.util.Classes53af707180c1b5c9
    com.google.inject.internal.util.SourceProviderf5c8015c02b0ac8c
    com.google.inject.internal.util.StackTraceElements9055de884e91a0c1
    com.google.inject.internal.util.Stopwatchfdf0682531ad84e2
    com.google.inject.matcher.AbstractMatcher78fc826c6b16746f
    com.google.inject.matcher.Matcherse53c1f9564abd4ad
    com.google.inject.matcher.Matchers.Any049ea79de98fd6dc
    com.google.inject.matcher.Matchers.IdenticalTof0c6db6a24b5e65b
    com.google.inject.matcher.Matchers.Only9f459594bcb994d8
    com.google.inject.matcher.Matchers.SubclassesOf88ee942f7a6aa49b
    com.google.inject.name.NamedImpl6ffbda9a3ee43b59
    com.google.inject.name.Namesb653416fcb9a5ca5
    com.google.inject.spi.DefaultBindingScopingVisitor9992e97acd56a906
    com.google.inject.spi.DefaultBindingTargetVisitor4c8f3e8b8bea89c1
    com.google.inject.spi.DefaultElementVisitor6c61065d18174485
    com.google.inject.spi.Dependencyb4af523b3dfc400d
    com.google.inject.spi.ElementSource503bec5a8992aee0
    com.google.inject.spi.Elements08d7f0b9db11cd45
    com.google.inject.spi.Elements.1f2554635c84eb58b
    com.google.inject.spi.Elements.ModuleInfo7b0a7b167e995a8f
    com.google.inject.spi.Elements.RecordingBinderc2267a4779968b62
    com.google.inject.spi.InjectionPointcd7c983491f13462
    com.google.inject.spi.InjectionPoint.1025ec51c054b349b
    com.google.inject.spi.InjectionPoint.2e4edad2eeb401901
    com.google.inject.spi.InjectionPoint.3e707026da5153103
    com.google.inject.spi.InjectionPoint.InjectableField3aed6f3f73d3c299
    com.google.inject.spi.InjectionPoint.InjectableMember554947c30f41305f
    com.google.inject.spi.InjectionPoint.InjectableMembersd474b67f9419836f
    com.google.inject.spi.InjectionPoint.InjectableMethod9e669c3a9943e229
    com.google.inject.spi.InjectionPoint.OverrideIndexf5519ea4b196741d
    com.google.inject.spi.InjectionPoint.Positiondee87e394e7bf715
    com.google.inject.spi.InjectionRequest35a722364b80270e
    com.google.inject.spi.Message30dc99c97f2b6cfe
    com.google.inject.spi.ModuleAnnotatedMethodScanner6086f82f757b0c53
    com.google.inject.spi.ModuleSource573533e7985dfc2b
    com.google.inject.spi.ProviderLookup4cfd5a568d57aac8
    com.google.inject.spi.ProviderLookup.1473955be9bc1e1b6
    com.google.inject.spi.ProvisionListener.ProvisionInvocationc0f9ffe33d8c0daa
    com.google.inject.spi.ProvisionListenerBindinge3940984d1b684cb
    com.google.inject.spi.ScopeBinding559767e86a6e2a02
    com.google.inject.spi.TypeConverterBinding994f62e43aec9864
    com.google.inject.spi.TypeListenerBindingfa4b546e2accb3d8
    com.google.inject.util.Modulesa9ee1e95ab29c9e8
    com.google.inject.util.Modules.EmptyModule2cccd41580f3829c
    com.google.inject.util.Providers652c0ef4e9aa3fcd
    com.google.inject.util.Providers.ConstantProviderc4b3c1df57f41c69
    com.google.inject.util.Typesb3184bf503a488ce
    com.h3xstream.retirejs.repo.JsLibrary5d11b317102303f5
    com.h3xstream.retirejs.repo.JsVulnerabilityf4bb1cfa90e6e469
    com.h3xstream.retirejs.repo.ScannerFacade01c9c1db2838e35a
    com.h3xstream.retirejs.repo.VulnerabilitiesRepositoryb739f5ef8899977b
    com.h3xstream.retirejs.repo.VulnerabilitiesRepositoryLoader010000276d5c65ec
    com.h3xstream.retirejs.util.HashUtil1304965382179e56
    com.h3xstream.retirejs.util.RegexUtil916e0c9c88baca5b
    com.hankcs.algorithm.AhoCorasickDoubleArrayTriecef76a3b8583c0d8
    com.hankcs.algorithm.AhoCorasickDoubleArrayTrie.Buildere116cc2ef4f3bf95
    com.hankcs.algorithm.AhoCorasickDoubleArrayTrie.Hitb4d44553d9d45bc2
    com.hankcs.algorithm.State8219f5343445a01f
    com.ibm.icu.impl.ICUDebugb1fb488b90146a5f
    com.ibm.icu.text.Collator197ef57045074ff3
    com.ibm.icu.util.VersionInfoa1c3efc805dde1b8
    com.sun.crypto.provider.AESCipher9379cbb969dccdab
    com.sun.crypto.provider.AESCipher.Generaldd25667a734d67f2
    com.sun.crypto.provider.AESConstantsff56ec558b5f24b2
    com.sun.crypto.provider.AESCrypt8f74d327e3757900
    com.sun.crypto.provider.CipherCorea719a438faf0a701
    com.sun.crypto.provider.CounterModefab22112699963b8
    com.sun.crypto.provider.DHParameters16f962dbaa27c76a
    com.sun.crypto.provider.ElectronicCodeBook55bee70106027943
    com.sun.crypto.provider.FeedbackCipherfe3b493a4f1f3358
    com.sun.crypto.provider.GCTR363ef00c8e464985
    com.sun.crypto.provider.GHASHe2e4c8ed73293545
    com.sun.crypto.provider.GaloisCounterModed5653e4b1d135ece
    com.sun.crypto.provider.HmacCored10e0726d0a7a75b
    com.sun.crypto.provider.HmacCore.HmacSHA256e51d50e772714011
    com.sun.crypto.provider.PKCS5Padding2f576a81eac7847f
    com.sun.crypto.provider.Preconditionsfd7e7c3ada235a9b
    com.sun.crypto.provider.Preconditions.168fa2261aa6363f8
    com.sun.crypto.provider.RangeUtil83f9533ae557ea46
    com.sun.crypto.provider.SunJCE33c998c6ba77d73e
    com.sun.crypto.provider.SymmetricCipher67e05752931ac6b4
    com.sun.crypto.provider.TlsKeyMaterialGenerator9a670d07119f980e
    com.sun.crypto.provider.TlsMasterSecretGeneratorb5bb91b132a7e1ed
    com.sun.crypto.provider.TlsMasterSecretGenerator.TlsMasterSecretKey47a2de5eed80bb69
    com.sun.crypto.provider.TlsPrfGenerator7f3cc07aa4e0ef26
    com.sun.crypto.provider.TlsPrfGenerator.V12854f82e423bf885a
    com.thoughtworks.xstream.XStreambfe6c7b8abd16494
    com.thoughtworks.xstream.converters.SingleValueConverterWrapperb9b2d8cb9a421d68
    com.thoughtworks.xstream.converters.basic.AbstractSingleValueConverter84044953c3299278
    com.thoughtworks.xstream.converters.basic.BigDecimalConverter9b2c05a436972ba0
    com.thoughtworks.xstream.converters.basic.BigIntegerConverter15dc95e32d763587
    com.thoughtworks.xstream.converters.basic.BooleanConverter7d93dec44d9f781c
    com.thoughtworks.xstream.converters.basic.ByteConverter561f20f2712c1152
    com.thoughtworks.xstream.converters.basic.CharConverter47bb160151d7205b
    com.thoughtworks.xstream.converters.basic.DateConverter050d7d7887e74987
    com.thoughtworks.xstream.converters.basic.DoubleConverter3951c4de27ff3c2c
    com.thoughtworks.xstream.converters.basic.FloatConvertercaf2a97d77afaa09
    com.thoughtworks.xstream.converters.basic.IntConverterc584c9c1f9a429c6
    com.thoughtworks.xstream.converters.basic.LongConverter7513b842f6bff1c2
    com.thoughtworks.xstream.converters.basic.NullConverter09cfba2f1adf847b
    com.thoughtworks.xstream.converters.basic.ShortConverter6acb6fb856f09e0a
    com.thoughtworks.xstream.converters.basic.StringBufferConverterfce9668bd68142e1
    com.thoughtworks.xstream.converters.basic.StringBuilderConvertereab7002c6724bd07
    com.thoughtworks.xstream.converters.basic.StringConverterdeaa266316364db7
    com.thoughtworks.xstream.converters.basic.URLConverterb3465fd50d99f8df
    com.thoughtworks.xstream.converters.basic.UUIDConverterb5c4cef1dd08d09d
    com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter128ad324af544e79
    com.thoughtworks.xstream.converters.collections.ArrayConverterb3cffbd5b2281391
    com.thoughtworks.xstream.converters.collections.BitSetConverter598df4917aa3afcb
    com.thoughtworks.xstream.converters.collections.CharArrayConverterddb233031f753e96
    com.thoughtworks.xstream.converters.collections.CollectionConvertere2b9125a45d263af
    com.thoughtworks.xstream.converters.collections.MapConverterc29c8c372b484632
    com.thoughtworks.xstream.converters.collections.PropertiesConverterbe037ae26965e1fc
    com.thoughtworks.xstream.converters.collections.TreeMapConverterd0d036cfb7e7632a
    com.thoughtworks.xstream.converters.collections.TreeSetConverter99790a8927adc549
    com.thoughtworks.xstream.converters.enums.EnumConverter1b08c26c07332a26
    com.thoughtworks.xstream.converters.enums.EnumMapConverter657036539a290e94
    com.thoughtworks.xstream.converters.enums.EnumSetConverter838bccf2b32aa485
    com.thoughtworks.xstream.converters.extended.CharsetConvertercb9a567556efc2b4
    com.thoughtworks.xstream.converters.extended.ColorConverterd7a63cd47646634c
    com.thoughtworks.xstream.converters.extended.CurrencyConvertera8a5e1252adf3686
    com.thoughtworks.xstream.converters.extended.DurationConverterd2357641eb1fa6d1
    com.thoughtworks.xstream.converters.extended.DynamicProxyConverter687dbeaf8fd6be66
    com.thoughtworks.xstream.converters.extended.EncodedByteArrayConvertercd2d0308e1b2c9d8
    com.thoughtworks.xstream.converters.extended.FileConverterd210288b5d4b69ff
    com.thoughtworks.xstream.converters.extended.FontConverterd19a95481cc621f6
    com.thoughtworks.xstream.converters.extended.GregorianCalendarConverter9ce731e5393c5001
    com.thoughtworks.xstream.converters.extended.JavaClassConverter6dd9bd05d481dccc
    com.thoughtworks.xstream.converters.extended.JavaMethodConverter973443530f814ae5
    com.thoughtworks.xstream.converters.extended.LocaleConverterfa25efbb0dc3f151
    com.thoughtworks.xstream.converters.extended.LookAndFeelConverterb8d4073c58c4d873
    com.thoughtworks.xstream.converters.extended.RegexPatternConverterc535c8c533311b17
    com.thoughtworks.xstream.converters.extended.SqlDateConverterd51217e6bb5dba7b
    com.thoughtworks.xstream.converters.extended.SqlTimeConverter4e5dcabf30b593ad
    com.thoughtworks.xstream.converters.extended.SqlTimestampConvertere030d2e822eea826
    com.thoughtworks.xstream.converters.extended.StackTraceElementConverterd131ddb1ef2d22f5
    com.thoughtworks.xstream.converters.extended.StackTraceElementFactorybde78c230717f85b
    com.thoughtworks.xstream.converters.extended.SubjectConverter0add781cac5b5925
    com.thoughtworks.xstream.converters.extended.TextAttributeConverter718f872ffe9706c9
    com.thoughtworks.xstream.converters.extended.ThrowableConverterf6fa802a116f6457
    com.thoughtworks.xstream.converters.reflection.AbstractAttributedCharacterIteratorAttributeConvertera9a128f9cbcb7835
    com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter213192589af32d4c
    com.thoughtworks.xstream.converters.reflection.ExternalizableConverter366b83cb8250e1fc
    com.thoughtworks.xstream.converters.reflection.FieldDictionary14c0497972785acb
    com.thoughtworks.xstream.converters.reflection.FieldKey354e2cfbd0ad028a
    com.thoughtworks.xstream.converters.reflection.ImmutableFieldKeySorterd9b107548d84e59e
    com.thoughtworks.xstream.converters.reflection.PureJavaReflectionProvider978e3a81b7b0ec42
    com.thoughtworks.xstream.converters.reflection.ReflectionConverterca04cf4add08f6c1
    com.thoughtworks.xstream.converters.reflection.ReflectionProviderWrapper4db1c446e2c0844d
    com.thoughtworks.xstream.converters.reflection.SelfStreamingInstanceChecker3a9df39e5f3467e8
    com.thoughtworks.xstream.converters.reflection.SerializableConverter0bab3f2731497a32
    com.thoughtworks.xstream.converters.reflection.SerializableConverter.UnserializableParentsReflectionProvider89c34f408dc615f7
    com.thoughtworks.xstream.converters.reflection.SerializationMethodInvokere9bb17476b02383e
    com.thoughtworks.xstream.core.AbstractTreeMarshallingStrategye70a67345c8bb178
    com.thoughtworks.xstream.core.DefaultConverterLookup50df211c8ebe088f
    com.thoughtworks.xstream.core.JVMa2416b7cdc788ed7
    com.thoughtworks.xstream.core.ReferenceByXPathMarshallingStrategya774e278a0eabf47
    com.thoughtworks.xstream.core.util.Base64Encoder2196aaf016e60bf6
    com.thoughtworks.xstream.core.util.ClassLoaderReference4f3e64a1180e6537
    com.thoughtworks.xstream.core.util.CompositeClassLoaderfb1a8bb02e86d3cb
    com.thoughtworks.xstream.core.util.Fieldsd531f801b027b58b
    com.thoughtworks.xstream.core.util.OrderRetainingMap0c9d2665a01650bc
    com.thoughtworks.xstream.core.util.OrderRetainingMap.ArraySetdfcff3e0f9ded5b1
    com.thoughtworks.xstream.core.util.Poolc163350ab754255f
    com.thoughtworks.xstream.core.util.PrioritizedList204dce3eeb665f22
    com.thoughtworks.xstream.core.util.PrioritizedList.PrioritizedItem36e50180ae16301d
    com.thoughtworks.xstream.core.util.ThreadSafeSimpleDateFormat70a7fa98c03c421e
    com.thoughtworks.xstream.core.util.ThreadSafeSimpleDateFormat.1d5b727c41f57e7fe
    com.thoughtworks.xstream.io.xml.AbstractXmlDriver3cc7c703fce31782
    com.thoughtworks.xstream.io.xml.DomDriver68091f2486e5b177
    com.thoughtworks.xstream.io.xml.XmlFriendlyReplacerd26e5bcec1a1d522
    com.thoughtworks.xstream.mapper.AbstractAttributeAliasingMapper17f4a44b0b4989f9
    com.thoughtworks.xstream.mapper.AnnotationMapper366f2fd6f248fc18
    com.thoughtworks.xstream.mapper.AnnotationMapper.WeakHashSet90996677aafc2949
    com.thoughtworks.xstream.mapper.ArrayMappera5d349ae47b250cd
    com.thoughtworks.xstream.mapper.AttributeAliasingMappere006dedeb521935b
    com.thoughtworks.xstream.mapper.AttributeMappercea176b34fe59d63
    com.thoughtworks.xstream.mapper.CachingMapper0c6fe2e047c8c859
    com.thoughtworks.xstream.mapper.ClassAliasingMapperba40d460577cbe5b
    com.thoughtworks.xstream.mapper.DefaultImplementationsMapperf194346570a7ca9e
    com.thoughtworks.xstream.mapper.DefaultMapper4e2951ba926e19df
    com.thoughtworks.xstream.mapper.DynamicProxyMapper025e57458ad92dcc
    com.thoughtworks.xstream.mapper.EnumMapperb76a8b90e1d8b765
    com.thoughtworks.xstream.mapper.FieldAliasingMapper11ee08a71277e716
    com.thoughtworks.xstream.mapper.ImmutableTypesMapper8c44da77e6889496
    com.thoughtworks.xstream.mapper.ImplicitCollectionMapper9729e4403392618c
    com.thoughtworks.xstream.mapper.LocalConversionMappere03bffd7c4db67d3
    com.thoughtworks.xstream.mapper.MapperWrapper1a6b408c6bab05b7
    com.thoughtworks.xstream.mapper.OuterClassMapper0aebc77c7cf76801
    com.thoughtworks.xstream.mapper.PackageAliasingMapper2d7b380d1d2615dc
    com.thoughtworks.xstream.mapper.PackageAliasingMapper.1f87a4f1b7899b68f
    com.thoughtworks.xstream.mapper.SystemAttributeAliasingMapper828a74da8421bbb2
    io.github.jeremylong.jcs3.slf4j.Slf4jAdapter6faeb93da707d61c
    io.github.jeremylong.jcs3.slf4j.Slf4jLogFactoryf96607e602f6e2af
    io.github.jeremylong.openvulnerability.client.nvd.Configf3beb84a109d4b1d
    io.github.jeremylong.openvulnerability.client.nvd.Config.Operator59d33ed4ecb93d1a
    io.github.jeremylong.openvulnerability.client.nvd.CpeMatch054f2076c10d37d5
    io.github.jeremylong.openvulnerability.client.nvd.CveApiJson2047708523e87058c9
    io.github.jeremylong.openvulnerability.client.nvd.CveItem44167ef95eadee21
    io.github.jeremylong.openvulnerability.client.nvd.CvssV2c598dccdeb0796d4
    io.github.jeremylong.openvulnerability.client.nvd.CvssV2.Typec8a5f42e14588744
    io.github.jeremylong.openvulnerability.client.nvd.CvssV2Data46cf1489bdb16e2c
    io.github.jeremylong.openvulnerability.client.nvd.CvssV2Data.AccessComplexityType4b727756fd7afc8f
    io.github.jeremylong.openvulnerability.client.nvd.CvssV2Data.AccessVectorType9be7812343637a98
    io.github.jeremylong.openvulnerability.client.nvd.CvssV2Data.AuthenticationTypef9e66c082b7d5b7f
    io.github.jeremylong.openvulnerability.client.nvd.CvssV2Data.CiaType6825e093146ac4fd
    io.github.jeremylong.openvulnerability.client.nvd.CvssV2Data.Version29d3f3d317564b7c
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3bed953eb3208b3b5
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3.Type4ffc8b69f1ebf953
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3Data5b1476d2f8696d14
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3Data.AttackComplexityType0c7b7fa26bb8364e
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3Data.AttackVectorTypef9692d23fc4d0814
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3Data.CiaRequirementTypee25b27974539d0e2
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3Data.CiaType65b3e0a08371ce41
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3Data.ConfidenceTypefe24e867fbd6445d
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3Data.ExploitCodeMaturityTyped0c528d24ff9be40
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3Data.ModifiedAttackComplexityTypeb9c63569c8d42c4f
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3Data.ModifiedAttackVectorTypee055d6e53e32180d
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3Data.ModifiedCiaTypedafe385378718922
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3Data.ModifiedPrivilegesRequiredType8e153d53da7dbccb
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3Data.ModifiedScopeTypeeac977b8fdb58555
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3Data.ModifiedUserInteractionTyped0242304dffe7c2c
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3Data.PrivilegesRequiredTypec6b3e30c55fedb48
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3Data.RemediationLevelType5bfb96dfad679414
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3Data.ScopeTyped521a47d32508edc
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3Data.SeverityType7dba5f64a6708bdf
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3Data.UserInteractionTypee65ee421331e824b
    io.github.jeremylong.openvulnerability.client.nvd.CvssV3Data.Versiondb94623c16eb505c
    io.github.jeremylong.openvulnerability.client.nvd.DefCveItem9ad305442ad670bb
    io.github.jeremylong.openvulnerability.client.nvd.LangString2adbe707e58eb9bf
    io.github.jeremylong.openvulnerability.client.nvd.Metrics4e7732dce645d124
    io.github.jeremylong.openvulnerability.client.nvd.Node0f06cf05a91a1603
    io.github.jeremylong.openvulnerability.client.nvd.Node.Operatorff1e145b9c081100
    io.github.jeremylong.openvulnerability.client.nvd.Reference32347bbabaad713b
    io.github.jeremylong.openvulnerability.client.nvd.Weakness9da09a66fcb44e81
    mockit.Invocationa96336e1f386171f
    mockit.MockUpe8171f437ed496ae
    mockit.asm.AnnotatedReadercd282e0a5a53baea
    mockit.asm.BaseWriter582f5e60cf7a7aa4
    mockit.asm.SignatureWriterdf63ed411efbf4b6
    mockit.asm.annotations.AnnotationReader1a8efb95d77d1cc4
    mockit.asm.classes.ClassInfo373729acd80f0ac2
    mockit.asm.classes.ClassReader35b19ee242b52e68
    mockit.asm.classes.ClassVisitorecc8c148efb1fb05
    mockit.asm.classes.ClassWriter138f6d9fdc880f33
    mockit.asm.classes.ConstantPoolCopyinge69830abde6594e3
    mockit.asm.classes.InnerClassesWriter161eb63681ff89cf
    mockit.asm.classes.InterfaceWriter50ed3e595493fede
    mockit.asm.classes.SourceFileWritere8fc300748dc0805
    mockit.asm.classes.WrappingClassVisitor05ea9f6f99307be6
    mockit.asm.constantPool.AttributeWriter14f301dde0efc458
    mockit.asm.constantPool.ClassMemberItemaa126e5329780a07
    mockit.asm.constantPool.ConstantPoolGeneration0fa17a48409c3309
    mockit.asm.constantPool.DoubleItem34f414546b36c4df
    mockit.asm.constantPool.DynamicItem3cea8c55017846c0
    mockit.asm.constantPool.FloatItembd61b107266c3b95
    mockit.asm.constantPool.IntItemd97e2f1dc717a13e
    mockit.asm.constantPool.IntValueItem98e99f11b2caca0e
    mockit.asm.constantPool.Itemd068fa4ff3fcee61
    mockit.asm.constantPool.LongItem6b22c746ea1433c1
    mockit.asm.constantPool.LongValueItem2ccc0f1c20cad69e
    mockit.asm.constantPool.MergedTypeTableItem0d0b1da6270fd88c
    mockit.asm.constantPool.MethodHandleItem39bcee524a8a7b98
    mockit.asm.constantPool.NameAndTypeItemb7bb836a0ec0d51d
    mockit.asm.constantPool.NormalTypeTableItem0f252ab8f9880312
    mockit.asm.constantPool.StringItem88ca5a93ae8a30e1
    mockit.asm.constantPool.TypeOrMemberItemdab75af23a47e2b1
    mockit.asm.constantPool.TypeTableItemd8a8ef64ff3ac452
    mockit.asm.constantPool.UninitializedTypeTableItem370461ef51a65392
    mockit.asm.controlFlow.CFGAnalysisa06e124c809928c9
    mockit.asm.controlFlow.Edge5d83111f9538c66f
    mockit.asm.controlFlow.Frame386d35773c19369a
    mockit.asm.controlFlow.Label5bca527bd719557c
    mockit.asm.controlFlow.StackMapTableWriter7bcdf022caa20775
    mockit.asm.exceptionHandling.ExceptionHandling286f458f00be3947
    mockit.asm.fields.FieldReader053ae610f8947b76
    mockit.asm.fields.FieldVisitor6c321d4980a2d7f3
    mockit.asm.jvmConstants.Access642ded812da66040
    mockit.asm.jvmConstants.JVMInstructiondeeb476cf4f7665b
    mockit.asm.metadata.ClassMetadataReader86fe7615054981b5
    mockit.asm.metadata.ClassMetadataReader.AnnotationInfobc09c40a0f38e185
    mockit.asm.metadata.ClassMetadataReader.Attribute6d901176eb06252c
    mockit.asm.metadata.ClassMetadataReader.ConstantPoolTag83ba5ffd57f73b11
    mockit.asm.metadata.ClassMetadataReader.MemberInfodd16bea0c59df08f
    mockit.asm.metadata.ClassMetadataReader.MethodInfo3e1c9829877de254
    mockit.asm.metadata.ObjectWithAttributese089abe59f8ade12
    mockit.asm.methods.ExceptionsWritere5e41e85406ed2b8
    mockit.asm.methods.LineNumberTableWriter7fa755996e63e0b5
    mockit.asm.methods.LocalVariableTableWriter0ff2250f9d363442
    mockit.asm.methods.MethodReader0d46bdb10e1cb567
    mockit.asm.methods.MethodVisitor6aafdb0e0bd9f04d
    mockit.asm.methods.MethodWriterc77ca17c110fc381
    mockit.asm.methods.WrappingMethodVisitorfe2114a373ed09e3
    mockit.asm.types.ArrayType3897ad248dad3058
    mockit.asm.types.JavaType6a617aca55015b96
    mockit.asm.types.ObjectType439dacb2d6b69467
    mockit.asm.types.PrimitiveType9907457aea9de70c
    mockit.asm.types.ReferenceTypec3a32354b2fe0c85
    mockit.asm.util.ByteVectoradf5209dcdaf01d5
    mockit.asm.util.BytecodeReaderad4c2af17a40d4d0
    mockit.coverage.CodeCoverage57c4b93cf9705048
    mockit.coverage.Configuration0f191cfcb58e3996
    mockit.coverage.testRedundancy.TestCoveragee7294c8646aeb601
    mockit.integration.TestRunnerDecorator10c6d4d07e4bb526
    mockit.integration.junit4.FakeFrameworkMethod202fa832304031cd
    mockit.integration.junit4.FakeRunNotifierf2d8e332a2590c60
    mockit.integration.junit4.JUnit4TestRunnerDecoratorc2eadb5bf6beaf6c
    mockit.internal.BaseClassModifiere801aefb4d7fd037
    mockit.internal.BaseClassModifier.1cd1242b388012ca6
    mockit.internal.BaseClassModifier.DynamicModifierc5d17ff8720815cc
    mockit.internal.BaseInvocationf7de466f17f4adbb
    mockit.internal.ClassFile41b638065ae166a7
    mockit.internal.ClassLoadingBridgee658793228cc4a49
    mockit.internal.expectations.RecordAndReplayExecutionf879ec0212b83007
    mockit.internal.expectations.mocking.FieldTypeRedefinitionsc4cb3bcb5359dd6a
    mockit.internal.expectations.mocking.MockedBridge331090874886c8c7
    mockit.internal.expectations.mocking.MockedTypeb261d998676dfb65
    mockit.internal.expectations.mocking.TypeRedefinitions055dc33e135fb36a
    mockit.internal.expectations.state.CascadingTypesb9acfb27aa4a8790
    mockit.internal.expectations.state.ExecutingTestacf34225777d2f3b
    mockit.internal.expectations.state.ExecutingTest.13b09910b1e29a191
    mockit.internal.expectations.transformation.ExpectationsTransformereaac4e9336d5ca40
    mockit.internal.faking.FakeBridgeda78f19ce898d263
    mockit.internal.faking.FakeClassSetupe4606a4618ad323c
    mockit.internal.faking.FakeClasses3cd46eb6591366cb
    mockit.internal.faking.FakeClasses.SavePointfecc58d760c6ed06
    mockit.internal.faking.FakeInvocatione3e355bfb78d2072
    mockit.internal.faking.FakeMethodBridge2fd5b959860f5d53
    mockit.internal.faking.FakeMethodCollectoraa97db550361bc87
    mockit.internal.faking.FakeMethods471e51097727667e
    mockit.internal.faking.FakeMethods.FakeMethodb5d99f462770e149
    mockit.internal.faking.FakeState01259986b514ed46
    mockit.internal.faking.FakeStatese760ab91481812c0
    mockit.internal.faking.FakedClassModifier28fa1e02ea9dd34f
    mockit.internal.injection.InjectionPoint872aa5b219261f64
    mockit.internal.injection.InjectionPoint.KindOfInjectionPoint041b00ce689e65c0
    mockit.internal.injection.InjectionProvider1076f7e808be8615
    mockit.internal.injection.InjectionProviders62b38f89bfedb6c7
    mockit.internal.injection.InjectionState6e9537644e97642f
    mockit.internal.injection.Injector4ff47fa912f63618
    mockit.internal.injection.InterfaceResolutionc5428bf18cac5f85
    mockit.internal.injection.InterfaceResolution.130a49c92c2d8b04f
    mockit.internal.injection.LifecycleMethodsed1a5aaae6cf42e3
    mockit.internal.injection.TestedClassd76cf885566451d1
    mockit.internal.injection.TestedClassInstantiationsbfc9ebb0ae421152
    mockit.internal.injection.TestedField9aacd38abc210052
    mockit.internal.injection.TestedObjectbdd0e59488a17cbb
    mockit.internal.injection.TestedObjectCreation48c6d6a50501e864
    mockit.internal.injection.constructor.ConstructorInjection960b7bb54a98707e
    mockit.internal.injection.constructor.ConstructorSearch7ff788771021cb2c
    mockit.internal.injection.constructor.ConstructorSearch.13853d0031525a038
    mockit.internal.injection.field.FieldInjection0337d293a6ebe59a
    mockit.internal.injection.field.FieldToInject7ef0966a4aee5a45
    mockit.internal.reflection.ConstructorReflection9b22876825249d28
    mockit.internal.reflection.FieldReflection9bc5ffc5070fbac5
    mockit.internal.reflection.GenericTypeReflectiona556abe88b104f52
    mockit.internal.reflection.MethodReflection1dbef6dbfa2e952c
    mockit.internal.reflection.ParameterReflectionbcce5f023dd0cd1c
    mockit.internal.startup.ClassLoadingBridgeFields29d0d6d7f507fa33
    mockit.internal.startup.ClassLoadingBridgeFields.FieldAdditionTransformer682a4d5236ea1c37
    mockit.internal.startup.ClassLoadingBridgeFields.FieldAdditionTransformer.12e9fd2fdf39cd8c3
    mockit.internal.startup.JMockitInitialization1f5ea374ed1901b8
    mockit.internal.startup.Startup177b14c50aa68246
    mockit.internal.state.CachedClassfiles231a21c71ced4214
    mockit.internal.state.MockFixture394c3264450f978b
    mockit.internal.state.ParameterNames9f70a2910daf7cd7
    mockit.internal.state.SavePointda4c7e434f406431
    mockit.internal.state.TestRun6409fd3c8b761b63
    mockit.internal.state.TestRun.17d6ccf983062f278
    mockit.internal.util.AutoBoxingc40175661b1ad22a
    mockit.internal.util.ClassLoad5bd538d4254708e6
    mockit.internal.util.ClassNaming53e8188d1e80d2e0
    mockit.internal.util.DefaultValuesef05257af12a99c9
    mockit.internal.util.DefaultValues.162f4d730e55d8be8
    mockit.internal.util.DefaultValues.2621af0a0fceb45db
    mockit.internal.util.DefaultValues.31d048754f5398a62
    mockit.internal.util.GeneratedClassesd6753b83268ef779
    mockit.internal.util.ParameterNameExtractor23af23efb21b6d24
    mockit.internal.util.TypeConversione064dff353fc3c14
    mockit.internal.util.TypeDescriptor24a81b29cb32532c
    mockit.internal.util.Utilitiesd7b5e7b685099df9
    org.apache.commons.beanutils.converters.BooleanConverter9f89ec58883cffbd
    org.apache.commons.beanutils.converters.StringConvertercaa9cd635fd2eef4
    org.apache.commons.cli.CommandLine898519779c1a0659
    org.apache.commons.cli.GnuParser0063b94644c4f6c5
    org.apache.commons.cli.Option5a5a90ec35947640
    org.apache.commons.cli.Option.Builder2bd9841ab4ebfb96
    org.apache.commons.cli.OptionValidator8460ae0c519233e9
    org.apache.commons.cli.Optionsff6d868f12d157b7
    org.apache.commons.cli.Parserc8dbca9206c0ef5d
    org.apache.commons.cli.Util41c582299b209f90
    org.apache.commons.collections.ExtendedProperties7ac18e1d5423c71e
    org.apache.commons.collections.ExtendedProperties.PropertiesReader9b945c4174dc8b84
    org.apache.commons.collections.ExtendedProperties.PropertiesTokenizera27ba406f43af743
    org.apache.commons.collections.map.AbstractHashedMap0ffd2ece819fe2bb
    org.apache.commons.collections.map.AbstractHashedMap0e5cf5a1e742538a
    org.apache.commons.collections.map.AbstractHashedMap.HashEntryf4c34a83588fece9
    org.apache.commons.collections.map.AbstractHashedMap.HashEntry06168f711b5d9f03
    org.apache.commons.collections.map.AbstractLinkedMapac943871a5016f97
    org.apache.commons.collections.map.AbstractLinkedMap.LinkEntryd5ea79246ae99cb8
    org.apache.commons.collections.map.AbstractReferenceMap24c5cfa48d1b3dc0
    org.apache.commons.collections.map.AbstractReferenceMap.ReferenceEntry527d4048e51dfc8b
    org.apache.commons.collections.map.AbstractReferenceMap.SoftRef87effea5a7f83649
    org.apache.commons.collections.map.LRUMape559c522101aeb13
    org.apache.commons.collections.map.ReferenceMapde0ddfb544d7f809
    org.apache.commons.compress.utils.IOUtils1bbef919f9fe90cf
    org.apache.commons.dbcp2.AbandonedTraceca6d746e5eecfa26
    org.apache.commons.dbcp2.BasicDataSource8f01e6e1f3426242
    org.apache.commons.dbcp2.ConnectionFactoryFactory5ee86737323f033e
    org.apache.commons.dbcp2.DataSourceMXBeanaef3515de3dd4cd7
    org.apache.commons.dbcp2.DelegatingCallableStatement02e1cdadfc5ac1b0
    org.apache.commons.dbcp2.DelegatingConnection4ce1222f6c8b1f43
    org.apache.commons.dbcp2.DelegatingPreparedStatement2577746074f2a300
    org.apache.commons.dbcp2.DelegatingResultSet3e7d628a34a233d5
    org.apache.commons.dbcp2.DelegatingStatement3eececad9c1f49a4
    org.apache.commons.dbcp2.DriverConnectionFactory587516231985bd76
    org.apache.commons.dbcp2.DriverFactory2e2b684de502c2b5
    org.apache.commons.dbcp2.ObjectNameWrapper60e6f7ddb2d7e6c9
    org.apache.commons.dbcp2.PoolableConnectionbaf5bf7087e41b95
    org.apache.commons.dbcp2.PoolableConnectionFactoryb8db125bd27adcfb
    org.apache.commons.dbcp2.PoolingDataSource4006b0952a9497bf
    org.apache.commons.dbcp2.PoolingDataSource.PoolGuardConnectionWrapper231a4e4e28d22d6c
    org.apache.commons.dbcp2.SwallowedExceptionLogger169d551a035fbaac
    org.apache.commons.dbcp2.Utilsee3a6af61d9672d1
    org.apache.commons.io.ByteOrderMark72bc2458d6ae539e
    org.apache.commons.io.Charsets8ae1973f359dec29
    org.apache.commons.io.FileSystem01b6ca84e51e84c9
    org.apache.commons.io.FileUtilsb05a09ee270979e9
    org.apache.commons.io.FilenameUtils3144089e135875ac
    org.apache.commons.io.IOCaseeb2adab60f66048e
    org.apache.commons.io.IOUtils6ee4556e7885ab91
    org.apache.commons.io.StandardLineSeparator40b593b9edc3531e
    org.apache.commons.io.build.AbstractOriginSupplierb96822d8a43fddbd
    org.apache.commons.io.build.AbstractStreamBuilder57c8b0ea90b8d3a8
    org.apache.commons.io.build.AbstractSupplier21e479bcc7c6d9d4
    org.apache.commons.io.file.Counters3347b40442150325
    org.apache.commons.io.file.Counters.AbstractPathCountersf029129367b66185
    org.apache.commons.io.file.Counters.LongCounter8a0e15c3b7aab6f0
    org.apache.commons.io.file.Counters.LongPathCounters4d05a3ec2389a891
    org.apache.commons.io.file.CountingPathVisitor1a0297f6692d68b7
    org.apache.commons.io.file.DeletingPathVisitor380d01f344f0b03a
    org.apache.commons.io.file.PathUtilsc186f18e4d52fa5b
    org.apache.commons.io.file.SimplePathVisitor42930704cb1f97c1
    org.apache.commons.io.file.StandardDeleteOption670e1c1e2863e0b5
    org.apache.commons.io.filefilter.AbstractFileFilter92dd8bb7f7b80944
    org.apache.commons.io.filefilter.IOFileFilter4896a5eee1f88d05
    org.apache.commons.io.filefilter.NameFileFilterc5f07e722b3a2343
    org.apache.commons.io.filefilter.OrFileFilter6742278773fc9137
    org.apache.commons.io.filefilter.SuffixFileFilterd8b318786a82151d
    org.apache.commons.io.filefilter.SymbolicLinkFileFilterd7784b41fab5d1af
    org.apache.commons.io.filefilter.TrueFileFilterfabf6490458c9b57
    org.apache.commons.io.function.IOConsumer7aab5cab2aee4ea3
    org.apache.commons.io.input.BOMInputStream6b5d217ef3da5d6c
    org.apache.commons.io.input.BOMInputStream.Builderefe9786c70781fac
    org.apache.commons.io.input.ProxyInputStream76d45bc21d35b3af
    org.apache.commons.io.output.AbstractByteArrayOutputStream4d87285f56eadbde
    org.apache.commons.io.output.StringBuilderWriter56db39b128a95142
    org.apache.commons.io.output.ThresholdingOutputStream6ee432e618670fc2
    org.apache.commons.io.output.UnsynchronizedByteArrayOutputStream9536e30200253d9c
    org.apache.commons.io.output.UnsynchronizedByteArrayOutputStream.Builder13c61069da7ce3e3
    org.apache.commons.jcs3.JCS8f519401d676cf6b
    org.apache.commons.jcs3.access.AbstractCacheAccesse81ba2880f7423d5
    org.apache.commons.jcs3.access.CacheAccess60fee977c9a4f6ef
    org.apache.commons.jcs3.admin.JCSAdminBean335bac09272c6ddd
    org.apache.commons.jcs3.auxiliary.AbstractAuxiliaryCachec3b435f52c91e41d
    org.apache.commons.jcs3.auxiliary.AbstractAuxiliaryCacheAttributesc42716886bb512ba
    org.apache.commons.jcs3.auxiliary.AbstractAuxiliaryCacheEventLogginga78f5b7138667460
    org.apache.commons.jcs3.auxiliary.AbstractAuxiliaryCacheFactory79d59581986a1bdd
    org.apache.commons.jcs3.auxiliary.AuxiliaryCacheConfigurator4f03af1ec3db3c06
    org.apache.commons.jcs3.auxiliary.AuxiliaryCacheFactory0321a405678228d2
    org.apache.commons.jcs3.auxiliary.disk.AbstractDiskCache67671715de055295
    org.apache.commons.jcs3.auxiliary.disk.AbstractDiskCache.MyCacheListenerc9cbc2ab7af25ca4
    org.apache.commons.jcs3.auxiliary.disk.AbstractDiskCacheAttributesedebc5b24fc7e7ec
    org.apache.commons.jcs3.auxiliary.disk.behavior.IDiskCacheAttributes.DiskLimitType9c89d487ae2639b0
    org.apache.commons.jcs3.auxiliary.disk.indexed.IndexedDisk3159cf09ae265a44
    org.apache.commons.jcs3.auxiliary.disk.indexed.IndexedDiskCachedb85afec6bd28591
    org.apache.commons.jcs3.auxiliary.disk.indexed.IndexedDiskCache.LRUMapCountLimited3e0dcede1f60ced6
    org.apache.commons.jcs3.auxiliary.disk.indexed.IndexedDiskCache.PositionComparator6a375a20224a6491
    org.apache.commons.jcs3.auxiliary.disk.indexed.IndexedDiskCacheAttributes3e721f210f5f73d7
    org.apache.commons.jcs3.auxiliary.disk.indexed.IndexedDiskCacheFactoryf3d2fd9bfe5fcbcc
    org.apache.commons.jcs3.engine.AbstractCacheEventQueue1dd87bdda01b32c9
    org.apache.commons.jcs3.engine.CacheEventQueueFactoryd47896e66d68cd29
    org.apache.commons.jcs3.engine.CacheInfodc3fc0a57a91cc16
    org.apache.commons.jcs3.engine.CacheStatus9e643f244bdbedd6
    org.apache.commons.jcs3.engine.CompositeCacheAttributesdc56debe6e362ccc
    org.apache.commons.jcs3.engine.ElementAttributesc298365f45057415
    org.apache.commons.jcs3.engine.PooledCacheEventQueue1f5b5ca7363a76c5
    org.apache.commons.jcs3.engine.behavior.ICacheEventQueue.QueueTyped36e1adea94244a8
    org.apache.commons.jcs3.engine.behavior.ICacheType.CacheTypee15e922fbbc521a9
    org.apache.commons.jcs3.engine.behavior.ICompositeCacheAttributes.DiskUsagePattern065fe6118e459fb8
    org.apache.commons.jcs3.engine.behavior.IElementSerializer4e17fbd8ff5fa2eb
    org.apache.commons.jcs3.engine.behavior.IElementSerializer.153d5ac924a980857
    org.apache.commons.jcs3.engine.control.CompositeCache2f4c41ef1df85706
    org.apache.commons.jcs3.engine.control.CompositeCacheConfiguratorda10a9e1882f0a7e
    org.apache.commons.jcs3.engine.control.CompositeCacheManager7a43e45c9078f783
    org.apache.commons.jcs3.engine.control.event.ElementEventQueuecb2c41edee90aabe
    org.apache.commons.jcs3.engine.logging.CacheEvente10345bb4afea3ce
    org.apache.commons.jcs3.engine.match.KeyMatcherPatternImpl06d95d21fd7250d0
    org.apache.commons.jcs3.engine.memory.AbstractDoubleLinkedListMemoryCachee3eb93db1ef1802e
    org.apache.commons.jcs3.engine.memory.AbstractMemoryCachebf41e6296592d86a
    org.apache.commons.jcs3.engine.memory.lru.LRUMemoryCachea13109c445649a8d
    org.apache.commons.jcs3.log.JulLogAdapterc4b31a7fd59500b5
    org.apache.commons.jcs3.log.JulLogFactorya8b084a513d8f2ac
    org.apache.commons.jcs3.log.LogManager0cd6d34c5624f85e
    org.apache.commons.jcs3.log.LogManager.LogFactoryHolder99d60610207d179b
    org.apache.commons.jcs3.log.MessageFormatter905aee8d53c43735
    org.apache.commons.jcs3.utils.config.OptionConverterb6be9d611cb399e3
    org.apache.commons.jcs3.utils.config.PropertySetter9ce8929e58315d98
    org.apache.commons.jcs3.utils.serialization.StandardSerializerc3182262f045cc00
    org.apache.commons.jcs3.utils.struct.AbstractLRUMap8710b38b6376d281
    org.apache.commons.jcs3.utils.struct.DoubleLinkedList96b73a167e3dd555
    org.apache.commons.jcs3.utils.struct.LRUMap134ebdccaf71b63a
    org.apache.commons.jcs3.utils.threadpool.DaemonThreadFactory90fe18bad604a2e0
    org.apache.commons.jcs3.utils.threadpool.PoolConfiguratione30c6c5b19e2121a
    org.apache.commons.jcs3.utils.threadpool.PoolConfiguration.WhenBlockedPolicyebdbc72499040e4a
    org.apache.commons.jcs3.utils.threadpool.ThreadPoolManagerce4c901d54ed755c
    org.apache.commons.jcs3.utils.threadpool.ThreadPoolManager.101b790dc167d2bc8
    org.apache.commons.jcs3.utils.threadpool.ThreadPoolManager.ThreadPoolManagerHolder6d5c097ee63ac3ce
    org.apache.commons.jcs3.utils.timing.ElapsedTimeredfda6ab2faf0ae5
    org.apache.commons.lang.ArrayUtils0434d75d5c23136d
    org.apache.commons.lang.StringUtilse5fe358e1ff7bddf
    org.apache.commons.lang.text.StrBuilder97bf18c01728d011
    org.apache.commons.lang3.ArrayUtils55cd090cc4afae67
    org.apache.commons.lang3.CharSequenceUtils34f2613940096184
    org.apache.commons.lang3.JavaVersion7945ce1bf92a4f0f
    org.apache.commons.lang3.ObjectUtils1c157e9ecfc781f4
    org.apache.commons.lang3.ObjectUtils.Nullbc56db2ba4a397f4
    org.apache.commons.lang3.Range7a388bd8ca7c6565
    org.apache.commons.lang3.Range.ComparableComparator31209bc50fe79100
    org.apache.commons.lang3.StringUtilsfc322170295e44d0
    org.apache.commons.lang3.StringUtilsb53e9ceb7cab46c1
    org.apache.commons.lang3.SystemUtils504844ce7a097cad
    org.apache.commons.lang3.Validate783f8386602de97d
    org.apache.commons.lang3.Validate1641aabfdb381324
    org.apache.commons.lang3.builder.CompareToBuilder0535d4fc6cf3c03f
    org.apache.commons.lang3.builder.EqualsBuilderaa8ad870ff53852c
    org.apache.commons.lang3.builder.HashCodeBuilder2143ccbdbc7e1ea5
    org.apache.commons.lang3.math.NumberUtils9afcd6909b261d69
    org.apache.commons.lang3.mutable.MutableInt69453bf70a893014
    org.apache.commons.lang3.reflect.TypeUtilsdf817998efe361cb
    org.apache.commons.lang3.reflect.TypeUtils.WildcardTypeBuilder5936e9c8d409a438
    org.apache.commons.lang3.reflect.TypeUtils.WildcardTypeImpl5c07c9d0130a96a3
    org.apache.commons.lang3.stream.LangCollectors3ea5549a7ed3c3d7
    org.apache.commons.lang3.stream.LangCollectors.SimpleCollector91fc89bcf302c34b
    org.apache.commons.lang3.stream.Streams954246a3678faf93
    org.apache.commons.lang3.tuple.ImmutablePairea1fdd387104f342
    org.apache.commons.lang3.tuple.Pair24fcf8d25a997dff
    org.apache.commons.logging.LogFactorye2b26f2f6d64e2e1
    org.apache.commons.logging.LogFactory5c9b6286a0ecaeeb
    org.apache.commons.logging.LogFactory.135cd3441e691f91d
    org.apache.commons.logging.LogFactory.2f1244e6e80ab4e4c
    org.apache.commons.logging.LogFactory.308e35df1f60483aa
    org.apache.commons.logging.LogFactory.4fb4611c54b1bc610
    org.apache.commons.logging.LogFactory.6367c055e3172a33e
    org.apache.commons.logging.impl.SLF4JLogce165f20e303ae60
    org.apache.commons.logging.impl.SLF4JLogFactoryd78e8c8092c84bef
    org.apache.commons.logging.impl.WeakHashtablebda06549392c232d
    org.apache.commons.logging.impl.WeakHashtable.Referenced7e6bd0a967376754
    org.apache.commons.logging.impl.WeakHashtable.WeakKey3c62431e0d7eba54
    org.apache.commons.pool2.BaseObjecta9dd39289abe1d31
    org.apache.commons.pool2.DestroyMode5d1105fc83d83c0d
    org.apache.commons.pool2.ObjectPoolccb6589e8f774501
    org.apache.commons.pool2.PooledObject726d4666486bb8f9
    org.apache.commons.pool2.PooledObjectStatefb0e5d346be6cd55
    org.apache.commons.pool2.impl.BaseGenericObjectPool070a5acff5535437
    org.apache.commons.pool2.impl.BaseGenericObjectPool.IdentityWrapper434e773f29c6ef0b
    org.apache.commons.pool2.impl.BaseGenericObjectPool.StatsStore514c54abe01e16c7
    org.apache.commons.pool2.impl.BaseObjectPoolConfig9bee83eab719802c
    org.apache.commons.pool2.impl.DefaultEvictionPolicy56c4bc556e98d1be
    org.apache.commons.pool2.impl.DefaultPooledObjectddc5b9974a86b680
    org.apache.commons.pool2.impl.GenericObjectPoolfe1a47c0c894e580
    org.apache.commons.pool2.impl.GenericObjectPoolConfig2215008ece83d1da
    org.apache.commons.pool2.impl.InterruptibleReentrantLockef01e1d3943b5184
    org.apache.commons.pool2.impl.LinkedBlockingDequebb1a4d70c6b14c3f
    org.apache.commons.pool2.impl.LinkedBlockingDeque.Node78ac878c7ddd5998
    org.apache.commons.pool2.impl.NoOpCallStacke7f11c61124edc8b
    org.apache.commons.pool2.impl.PoolImplUtils65b544d8439b4d9e
    org.apache.commons.text.StringEscapeUtils5bc5b74e30d7e8bf
    org.apache.commons.text.StringEscapeUtils.XsiUnescaper5a061ee95766f1d3
    org.apache.commons.text.StringSubstitutor3074045dbff7aefd
    org.apache.commons.text.StringSubstitutor.Resultd1377d718b9a4b29
    org.apache.commons.text.TextStringBuilder53129701a3631326
    org.apache.commons.text.WordUtilsf85094830885a3dc
    org.apache.commons.text.matcher.AbstractStringMatcher5f2d66c0bac903d1
    org.apache.commons.text.matcher.AbstractStringMatcher.CharArrayMatcherbc3ea03e56f01c0e
    org.apache.commons.text.matcher.AbstractStringMatcher.CharMatcherb83862079330a0a0
    org.apache.commons.text.matcher.AbstractStringMatcher.CharSetMatcherdef2ef72cf33ffd3
    org.apache.commons.text.matcher.AbstractStringMatcher.NoneMatcher63ccdfd44061b0b4
    org.apache.commons.text.matcher.AbstractStringMatcher.TrimMatcher6399c16c90b1dc79
    org.apache.commons.text.matcher.StringMatcherFactory3355efa06769e538
    org.apache.commons.text.translate.AggregateTranslator9e2a5e3e1c4ed249
    org.apache.commons.text.translate.CharSequenceTranslator84c8f5343c402da6
    org.apache.commons.text.translate.CodePointTranslatorea9fcdc7e5c87a70
    org.apache.commons.text.translate.CsvTranslators.CsvEscaperbe76c35fab7f3dc3
    org.apache.commons.text.translate.CsvTranslators.CsvUnescaper09ac0d4ea60a4c5a
    org.apache.commons.text.translate.EntityArrayseff4bd7528ae958b
    org.apache.commons.text.translate.JavaUnicodeEscaperba174f1a55a33368
    org.apache.commons.text.translate.LookupTranslatorb47bcb49ef353b91
    org.apache.commons.text.translate.NumericEntityEscaperfed36f3c6d451e6b
    org.apache.commons.text.translate.NumericEntityUnescapercca6054255a84ade
    org.apache.commons.text.translate.NumericEntityUnescaper.OPTIONcd3ec6bfbd85a55d
    org.apache.commons.text.translate.OctalUnescaperc72a48b363be373d
    org.apache.commons.text.translate.SinglePassTranslator49d6016a555b6c1a
    org.apache.commons.text.translate.UnicodeEscaper9dad545c5206284f
    org.apache.commons.text.translate.UnicodeUnescapere15b1cf1266b58bf
    org.apache.commons.text.translate.UnicodeUnpairedSurrogateRemover678cce4230e90a18
    org.apache.lucene.analysis.Analyzerb3fbc3d4c894fea4
    org.apache.lucene.analysis.Analyzer.12588c4a52a03d489
    org.apache.lucene.analysis.Analyzer.2b11ec0b046fb0739
    org.apache.lucene.analysis.Analyzer.ReuseStrategy373c30afd7c4e7e0
    org.apache.lucene.analysis.Analyzer.TokenStreamComponents07ec7e6a7685910d
    org.apache.lucene.analysis.AnalyzerWrapperfea68ba019e933f5
    org.apache.lucene.analysis.CachingTokenFilter7948742bc70cfc8a
    org.apache.lucene.analysis.CharArrayMap5b74a1ab488fac15
    org.apache.lucene.analysis.CharArrayMap.EmptyCharArrayMap6ce1b3c28f6c4a11
    org.apache.lucene.analysis.CharArrayMap.EntryIteratora87ee307a838f240
    org.apache.lucene.analysis.CharArrayMap.EntrySet2025bc28ce5f11cc
    org.apache.lucene.analysis.CharArrayMap.MapEntry73ae6df3a549c4af
    org.apache.lucene.analysis.CharArrayMap.UnmodifiableCharArrayMap8bab8a3a7f9cd4a6
    org.apache.lucene.analysis.CharArraySet111b4a78749d9f46
    org.apache.lucene.analysis.CharacterUtilsb8ca5cbf25fdfeed
    org.apache.lucene.analysis.CharacterUtils.CharacterBuffer18d395cdbdb60911
    org.apache.lucene.analysis.DelegatingAnalyzerWrapper9c301ae9d9f5cd8a
    org.apache.lucene.analysis.DelegatingAnalyzerWrapper.DelegatingReuseStrategy76fa58dd625c2849
    org.apache.lucene.analysis.FilteringTokenFilterf403409105fbb533
    org.apache.lucene.analysis.LowerCaseFilterbcfd3a6a56a4fadf
    org.apache.lucene.analysis.ReusableStringReaderc9f6ec8eb7023f1c
    org.apache.lucene.analysis.StopFilter4230021c4e77a6d7
    org.apache.lucene.analysis.TokenFilter9e43d230548551cf
    org.apache.lucene.analysis.TokenStream184dbe299c64e6c6
    org.apache.lucene.analysis.Tokenizer7379ed627ab2912a
    org.apache.lucene.analysis.Tokenizer.1bc547a7b9c0cc19f
    org.apache.lucene.analysis.core.KeywordAnalyzer698cf9e1f8021717
    org.apache.lucene.analysis.core.LowerCaseFilterba2c1b7980c14a72
    org.apache.lucene.analysis.core.StopFilter8641c6193f901c17
    org.apache.lucene.analysis.core.WhitespaceTokenizer115580a151439e88
    org.apache.lucene.analysis.en.EnglishAnalyzercc688ebf7db7d878
    org.apache.lucene.analysis.miscellaneous.PerFieldAnalyzerWrapperdad7892fd718e4df
    org.apache.lucene.analysis.miscellaneous.WordDelimiterGraphFilterbc9fe7a967fdcfa0
    org.apache.lucene.analysis.miscellaneous.WordDelimiterGraphFilter.PositionSorter2cd32a2ee34c7dce
    org.apache.lucene.analysis.miscellaneous.WordDelimiterGraphFilter.WordDelimiterConcatenation460ee77062ef67d3
    org.apache.lucene.analysis.miscellaneous.WordDelimiterIterator28629af5aededfc5
    org.apache.lucene.analysis.tokenattributes.CharTermAttributeImpl6f123fa71f95b8a2
    org.apache.lucene.analysis.tokenattributes.KeywordAttributeImpl1407e968afc08f38
    org.apache.lucene.analysis.tokenattributes.PackedTokenAttributeImplc920cac0bdae9098
    org.apache.lucene.analysis.util.CharTokenizer6ca65685e9be18b0
    org.apache.lucene.codecs.BlockTermStateae9ca3d409bef070
    org.apache.lucene.codecs.Codec7d385f022790e396
    org.apache.lucene.codecs.Codec.Holder954feab31b29306c
    org.apache.lucene.codecs.CodecUtil157ab3df291cad53
    org.apache.lucene.codecs.CompetitiveImpactAccumulator3313639ea91339f0
    org.apache.lucene.codecs.CompetitiveImpactAccumulator.1cbf4c621aff70903
    org.apache.lucene.codecs.CompoundDirectory105adc33fae31203
    org.apache.lucene.codecs.CompoundFormatb6f7adfa57db14e8
    org.apache.lucene.codecs.DocValuesFormat59fc29b0272a381d
    org.apache.lucene.codecs.FieldInfosFormatbbc25871d2052537
    org.apache.lucene.codecs.FieldsConsumer8ac90826db599118
    org.apache.lucene.codecs.FieldsProducer5414d54969b0a428
    org.apache.lucene.codecs.LiveDocsFormat37ab5fda48936c8e
    org.apache.lucene.codecs.MultiLevelSkipListWriter271c1c2a90febec5
    org.apache.lucene.codecs.NormsFormat666a4c99b55172f0
    org.apache.lucene.codecs.PointsFormat893fa9d6f57ed303
    org.apache.lucene.codecs.PointsFormat.1b7e29ffebcefbee5
    org.apache.lucene.codecs.PostingsFormat5c5d51d1200cda53
    org.apache.lucene.codecs.PostingsFormat.Holdercd21b5e5af08083b
    org.apache.lucene.codecs.PostingsReaderBase69fbc8d7a772c1ba
    org.apache.lucene.codecs.PostingsWriterBase70833c5afb411658
    org.apache.lucene.codecs.PushPostingsWriterBase09459ba2fcc66071
    org.apache.lucene.codecs.SegmentInfoFormat186f50b8ba40fe34
    org.apache.lucene.codecs.StoredFieldsFormatf0635529da3f816b
    org.apache.lucene.codecs.StoredFieldsReader44377ce9cabec7b7
    org.apache.lucene.codecs.StoredFieldsWriter18287965dde32b41
    org.apache.lucene.codecs.TermVectorsFormatabae86cbdd868241
    org.apache.lucene.codecs.blocktree.BlockTreeTermsReader4a5eb3e67f7fa9f7
    org.apache.lucene.codecs.blocktree.BlockTreeTermsWriterb036adb9f5245c23
    org.apache.lucene.codecs.blocktree.BlockTreeTermsWriter.PendingBlockc6f4f170bf8bd277
    org.apache.lucene.codecs.blocktree.BlockTreeTermsWriter.PendingEntryf940bc41257f9ec1
    org.apache.lucene.codecs.blocktree.BlockTreeTermsWriter.PendingTerm6e393f062014fa45
    org.apache.lucene.codecs.blocktree.BlockTreeTermsWriter.StatsWriteradd454e2523a11b5
    org.apache.lucene.codecs.blocktree.BlockTreeTermsWriter.TermsWriter0fc215d15cf4d2ff
    org.apache.lucene.codecs.blocktree.CompressionAlgorithmcd5f2e1bcb83ac78
    org.apache.lucene.codecs.blocktree.CompressionAlgorithm.1b89067b1068100c6
    org.apache.lucene.codecs.blocktree.CompressionAlgorithm.25d39130de56dffa9
    org.apache.lucene.codecs.blocktree.CompressionAlgorithm.373218b346be9521d
    org.apache.lucene.codecs.blocktree.FieldReader9ffc10d155e4863b
    org.apache.lucene.codecs.blocktree.SegmentTermsEnumce57a3db048cb9ef
    org.apache.lucene.codecs.blocktree.SegmentTermsEnumFramedcfdb1defbeb4bf6
    org.apache.lucene.codecs.compressing.CompressingStoredFieldsFormat896fa678ffe81c92
    org.apache.lucene.codecs.compressing.CompressingStoredFieldsReaderfed51f9077208bb6
    org.apache.lucene.codecs.compressing.CompressingStoredFieldsReader.17bddfb5935f04284
    org.apache.lucene.codecs.compressing.CompressingStoredFieldsReader.BlockStated3812bfab13be812
    org.apache.lucene.codecs.compressing.CompressingStoredFieldsReader.SerializedDocument4cc23a5abef95aaf
    org.apache.lucene.codecs.compressing.CompressingStoredFieldsWriter2dad7ad136db8d57
    org.apache.lucene.codecs.compressing.CompressingTermVectorsFormat873c98aa0b112460
    org.apache.lucene.codecs.compressing.CompressionMode40a206f9a035f885
    org.apache.lucene.codecs.compressing.CompressionMode.15222ebc3d273a019
    org.apache.lucene.codecs.compressing.CompressionMode.2f6685a7e7bb3771a
    org.apache.lucene.codecs.compressing.CompressionMode.3196e0c9c4cbfa662
    org.apache.lucene.codecs.compressing.CompressionMode.477d32d5ef9354e6e
    org.apache.lucene.codecs.compressing.Compressorb0dd429aca65b80e
    org.apache.lucene.codecs.compressing.Decompressor5a441b8b2ca96e65
    org.apache.lucene.codecs.compressing.FieldsIndexe7d850a894e41f41
    org.apache.lucene.codecs.compressing.FieldsIndexReaderefa174465074bfbd
    org.apache.lucene.codecs.compressing.FieldsIndexWriter10a973070f4bf7a4
    org.apache.lucene.codecs.idversion.IDVersionPostingsFormatc2da72d126aba544
    org.apache.lucene.codecs.lucene50.Lucene50CompoundFormat385a35dbd700d7bd
    org.apache.lucene.codecs.lucene50.Lucene50CompoundReaderf79625b845ff1a72
    org.apache.lucene.codecs.lucene50.Lucene50CompoundReader.FileEntryca388693c592b376
    org.apache.lucene.codecs.lucene50.Lucene50LiveDocsFormatdad069b09c8ebe30
    org.apache.lucene.codecs.lucene50.Lucene50TermVectorsFormate177ce04f8f4313d
    org.apache.lucene.codecs.lucene60.Lucene60FieldInfosFormatbea4d612bda522b3
    org.apache.lucene.codecs.lucene60.Lucene60FieldInfosFormat.1a5faf788eebfcf53
    org.apache.lucene.codecs.lucene80.Lucene80DocValuesFormat18b32b386e539057
    org.apache.lucene.codecs.lucene80.Lucene80DocValuesFormat.Mode86ca2b1c37fd2c44
    org.apache.lucene.codecs.lucene80.Lucene80NormsFormat1e44bf93a20abf13
    org.apache.lucene.codecs.lucene84.ForDeltaUtilbfe1bbad9d2e544b
    org.apache.lucene.codecs.lucene84.ForUtilde15f512bc648fc1
    org.apache.lucene.codecs.lucene84.Lucene84PostingsFormatbf59ad8fdebd5d74
    org.apache.lucene.codecs.lucene84.Lucene84PostingsFormat.IntBlockTermStatef10b9e05ba79b752
    org.apache.lucene.codecs.lucene84.Lucene84PostingsReader429c11d1836706b4
    org.apache.lucene.codecs.lucene84.Lucene84PostingsReader.BlockDocsEnum757838073fe69387
    org.apache.lucene.codecs.lucene84.Lucene84PostingsWriter2cab59acfc3bb8a5
    org.apache.lucene.codecs.lucene84.Lucene84SkipWriter76f5bd9c5e6e9e31
    org.apache.lucene.codecs.lucene84.PForUtile08db33b54b22cfd
    org.apache.lucene.codecs.lucene86.Lucene86PointsFormatf64406f00a5abe31
    org.apache.lucene.codecs.lucene86.Lucene86SegmentInfoFormat586cf6377df4154e
    org.apache.lucene.codecs.lucene87.DeflateWithPresetDictCompressionModeeef2871dedd17ce4
    org.apache.lucene.codecs.lucene87.LZ4WithPresetDictCompressionModed862ddb8f965ccb4
    org.apache.lucene.codecs.lucene87.LZ4WithPresetDictCompressionMode.LZ4WithPresetDictCompressore6d7dc198735025e
    org.apache.lucene.codecs.lucene87.LZ4WithPresetDictCompressionMode.LZ4WithPresetDictDecompressorcdef0ff6ed46a9fd
    org.apache.lucene.codecs.lucene87.Lucene87Codec9911310a45d92bb3
    org.apache.lucene.codecs.lucene87.Lucene87Codec.128723482ca6440d7
    org.apache.lucene.codecs.lucene87.Lucene87Codec.206911be072d66b12
    org.apache.lucene.codecs.lucene87.Lucene87Codec.Mode0cdb8b76874bda63
    org.apache.lucene.codecs.lucene87.Lucene87StoredFieldsFormat95ec1a8a217a9696
    org.apache.lucene.codecs.lucene87.Lucene87StoredFieldsFormat.1df56e677e7cde89d
    org.apache.lucene.codecs.lucene87.Lucene87StoredFieldsFormat.Mode54f5b49dea8b8336
    org.apache.lucene.codecs.perfield.PerFieldDocValuesFormat999be7b49946c809
    org.apache.lucene.codecs.perfield.PerFieldPostingsFormatf4cf062fe4480103
    org.apache.lucene.codecs.perfield.PerFieldPostingsFormat.FieldsGroupa9f65c90021ba143
    org.apache.lucene.codecs.perfield.PerFieldPostingsFormat.FieldsGroup.Buildercf3e5a1c6f5d87c6
    org.apache.lucene.codecs.perfield.PerFieldPostingsFormat.FieldsReader23133a0a2e3e3d10
    org.apache.lucene.codecs.perfield.PerFieldPostingsFormat.FieldsWriter39e6a18f2c347e15
    org.apache.lucene.codecs.perfield.PerFieldPostingsFormat.FieldsWriter.1d45ea394ce4e87d2
    org.apache.lucene.document.Documente1b4f587d42b8bee
    org.apache.lucene.document.DocumentStoredFieldVisitor66c1e4b20aa4d347
    org.apache.lucene.document.Field7f482656d4ca1583
    org.apache.lucene.document.FieldTypeb7c621c07031e9cf
    org.apache.lucene.document.StoredFieldc2d3990da920bf93
    org.apache.lucene.document.TextField3884cff56ab2e8d5
    org.apache.lucene.index.BaseCompositeReaderd97e90ccc7f968ed
    org.apache.lucene.index.BaseTermsEnum98f6b1ecedb5374e
    org.apache.lucene.index.BufferedUpdates87ddb653a8568589
    org.apache.lucene.index.BufferedUpdatesStream826f0e27162b764b
    org.apache.lucene.index.BufferedUpdatesStream.FinishedSegments16a71e5037793419
    org.apache.lucene.index.ByteSliceReader013997c1da8668b7
    org.apache.lucene.index.CodecReader664ad067a4634f30
    org.apache.lucene.index.CompositeReader1ac667c88af4f805
    org.apache.lucene.index.CompositeReaderContext7e031115b0dba787
    org.apache.lucene.index.CompositeReaderContext.Builder071e9447b79df71a
    org.apache.lucene.index.ConcurrentMergeScheduler7192a79827ef3c6d
    org.apache.lucene.index.DefaultIndexingChaind2d4569721a2c208
    org.apache.lucene.index.DefaultIndexingChain.IntBlockAllocatorf8ba5af8ae2348f4
    org.apache.lucene.index.DefaultIndexingChain.PerFieldcce61152033abf01
    org.apache.lucene.index.DirectoryReader872b9ecc9a6593a5
    org.apache.lucene.index.DocConsumere1f0c74a0a5799b0
    org.apache.lucene.index.DocValuesType7e1ae71ed4ea7003
    org.apache.lucene.index.DocsWithFieldSet8d19e1081ed95385
    org.apache.lucene.index.DocumentsWriter7cc357393fcb7704
    org.apache.lucene.index.DocumentsWriterDeleteQueue13f9cf08d569e3e2
    org.apache.lucene.index.DocumentsWriterDeleteQueue.DeleteSlicef1270dfe524b0475
    org.apache.lucene.index.DocumentsWriterDeleteQueue.Nodee35b7bfe790524e5
    org.apache.lucene.index.DocumentsWriterFlushControlf0c2fa30940cc6eb
    org.apache.lucene.index.DocumentsWriterFlushQueue2c7673b354c8e663
    org.apache.lucene.index.DocumentsWriterFlushQueue.FlushTicket89df1c2221a6fcc6
    org.apache.lucene.index.DocumentsWriterPerThread04669483a6b45471
    org.apache.lucene.index.DocumentsWriterPerThread.12e2a89a263831e28
    org.apache.lucene.index.DocumentsWriterPerThread.FlushedSegment0b6ff5c256c820c9
    org.apache.lucene.index.DocumentsWriterPerThread.IndexingChaina80ec889dc78a499
    org.apache.lucene.index.DocumentsWriterPerThreadPoolebeda4d160ec6dcd
    org.apache.lucene.index.DocumentsWriterStallControl58d97a046f2a5e61
    org.apache.lucene.index.FieldInfo5d3240edb51a9c8e
    org.apache.lucene.index.FieldInfos0cd129ec82608462
    org.apache.lucene.index.FieldInfos.Builder172eff8db3205492
    org.apache.lucene.index.FieldInfos.FieldNumbers32bc1472e7a4ffd6
    org.apache.lucene.index.FieldInvertState9d275e86858587ac
    org.apache.lucene.index.Fieldseef2020978da652b
    org.apache.lucene.index.FilterLeafReader.FilterFieldsfa901dce56bcbd4a
    org.apache.lucene.index.FlushByRamOrCountsPolicy88d230f4879c8846
    org.apache.lucene.index.FlushPolicyf82b82ae268a26e6
    org.apache.lucene.index.FreqProxFieldse7a3eefa6739fbaf
    org.apache.lucene.index.FreqProxFields.FreqProxDocsEnum9b5450dfccaeb430
    org.apache.lucene.index.FreqProxFields.FreqProxTermsdedfdef25735032c
    org.apache.lucene.index.FreqProxFields.FreqProxTermsEnum3601506a252c0835
    org.apache.lucene.index.FreqProxTermsWriterdd9e5dfaa06e7132
    org.apache.lucene.index.FreqProxTermsWriterPerField1e6792a1afdb8706
    org.apache.lucene.index.FreqProxTermsWriterPerField.FreqProxPostingsArraya2d8410c7d62b204
    org.apache.lucene.index.Impact882e84c41ed12353
    org.apache.lucene.index.Impacts86133783ef6f8339
    org.apache.lucene.index.ImpactsEnum952b956e16147b18
    org.apache.lucene.index.IndexCommit2c603d2695fc5325
    org.apache.lucene.index.IndexDeletionPolicy74de12c334f0ff0b
    org.apache.lucene.index.IndexFileDeleter864842f2ab2489df
    org.apache.lucene.index.IndexFileDeleter.CommitPointb03c283521652ed6
    org.apache.lucene.index.IndexFileDeleter.RefCount9d0a0ab0f621189a
    org.apache.lucene.index.IndexFileNames5a0676f33d0dd869
    org.apache.lucene.index.IndexOptions3f91d827d790b03c
    org.apache.lucene.index.IndexReader7350521cd77caecb
    org.apache.lucene.index.IndexReader.CacheKeyb51d6a55a323e37e
    org.apache.lucene.index.IndexReaderContext04e32f4b9c330127
    org.apache.lucene.index.IndexWritere0325aeb804ee9cd
    org.apache.lucene.index.IndexWriter.11648142e65802354
    org.apache.lucene.index.IndexWriter.4f13f02d787c63977
    org.apache.lucene.index.IndexWriter.EventQueue036f9bbdb7eaba28
    org.apache.lucene.index.IndexWriter.IndexWriterMergeSourcecf8a98cb877c1183
    org.apache.lucene.index.IndexWriter.Merges2e1fc51eb330086c
    org.apache.lucene.index.IndexWriterConfigd701914f0d6658b6
    org.apache.lucene.index.IndexWriterConfig.OpenMode7cb49344ea5c6351
    org.apache.lucene.index.KeepOnlyLastCommitDeletionPolicy9f22fe8c738d9952
    org.apache.lucene.index.LeafMetaDatabbff7ff01b4134e0
    org.apache.lucene.index.LeafReaderfa1ce8df2ae26a6e
    org.apache.lucene.index.LeafReaderContextfc6c719b81d116df
    org.apache.lucene.index.LiveIndexWriterConfiga2067f8ef3677fdc
    org.apache.lucene.index.MergePolicye4754a4a63055e7b
    org.apache.lucene.index.MergeScheduler647d19e97498fe90
    org.apache.lucene.index.MergeTrigger8b1aa8130dc2b264
    org.apache.lucene.index.NormValuesWriter46f5e71221ca6e02
    org.apache.lucene.index.OrdTermState43005a4850ff3eee
    org.apache.lucene.index.ParallelPostingsArray9e8709952ddc86a9
    org.apache.lucene.index.PostingsEnum13ee3bbe2a9a135b
    org.apache.lucene.index.ReaderPool196c2a1e4e1cb021
    org.apache.lucene.index.ReaderUtil4a74f8dbf0455564
    org.apache.lucene.index.SegmentCommitInfo361389f17f161615
    org.apache.lucene.index.SegmentCoreReaders329963e565bed71e
    org.apache.lucene.index.SegmentCoreReaders.14c22a3a7e7a3464b
    org.apache.lucene.index.SegmentCoreReaders.2f94d04d48a8e6732
    org.apache.lucene.index.SegmentCoreReaders.30dcca50ca892de5e
    org.apache.lucene.index.SegmentDocValues8c267f5425938996
    org.apache.lucene.index.SegmentInfod59792dbd411f918
    org.apache.lucene.index.SegmentInfos8e0cfc1c34a793bc
    org.apache.lucene.index.SegmentInfos.FindSegmentsFile57064a938b60a18c
    org.apache.lucene.index.SegmentReadStatef7f57f7389b9e4aa
    org.apache.lucene.index.SegmentReader63c8cf9560aa58ed
    org.apache.lucene.index.SegmentReader.1007c5e078ca5b49c
    org.apache.lucene.index.SegmentReader.2f1871b747f8ea7f6
    org.apache.lucene.index.SegmentWriteState3df2c751683e36f5
    org.apache.lucene.index.SlowImpactsEnum1474c9337a65b539
    org.apache.lucene.index.SlowImpactsEnum.1d5bb02ac6cfb08ba
    org.apache.lucene.index.StandardDirectoryReader3fc892a97e1fcf74
    org.apache.lucene.index.StandardDirectoryReader.170ecfd4176b47247
    org.apache.lucene.index.StandardDirectoryReader.3ca361c5e2d8fe939
    org.apache.lucene.index.StoredFieldVisitorc234cad09dc1c771
    org.apache.lucene.index.StoredFieldVisitor.Status9cb9d093a6117d87
    org.apache.lucene.index.StoredFieldsConsumer3e50d154a538cc4a
    org.apache.lucene.index.Term998f0369ca56ca77
    org.apache.lucene.index.TermStated94a8fc5aa8fb053
    org.apache.lucene.index.TermStates51833d55b04ca4cd
    org.apache.lucene.index.TermStates.1ec6a01c059b307f9
    org.apache.lucene.index.TermVectorsConsumer5da357250a0de7f2
    org.apache.lucene.index.TermVectorsConsumerPerField1208c70ca8670152
    org.apache.lucene.index.TermVectorsConsumerPerField.TermVectorsPostingsArrayc0105255a2cecf00
    org.apache.lucene.index.Terms7ca39f3bdd238e2b
    org.apache.lucene.index.TermsEnumdfe1f9b0994d664f
    org.apache.lucene.index.TermsEnum.1249f31e05c710308
    org.apache.lucene.index.TermsEnum.SeekStatus8b3a7bcd9e7da648
    org.apache.lucene.index.TermsHashc630c8de6506aac1
    org.apache.lucene.index.TermsHashPerField1b7a39be6c997509
    org.apache.lucene.index.TermsHashPerField.PostingsBytesStartArray5e5e00daabc62112
    org.apache.lucene.index.TieredMergePolicyc430a128b00f05d4
    org.apache.lucene.index.TieredMergePolicy.MERGE_TYPEee4ce8703565589c
    org.apache.lucene.index.TieredMergePolicy.SegmentSizeAndDocs13066978ebee0cf5
    org.apache.lucene.queryparser.classic.FastCharStream921f61bd34d336b7
    org.apache.lucene.queryparser.classic.QueryParser58a639d223811485
    org.apache.lucene.queryparser.classic.QueryParser.JJCallsb4aa6347602075fe
    org.apache.lucene.queryparser.classic.QueryParser.LookaheadSuccess1e68eb728086b64d
    org.apache.lucene.queryparser.classic.QueryParser.Operatorc369979182f4a099
    org.apache.lucene.queryparser.classic.QueryParserBasec083122d7fdf3d7d
    org.apache.lucene.queryparser.classic.QueryParserTokenManager98e97e8b3adc403b
    org.apache.lucene.queryparser.classic.Tokend87570aef642ebc9
    org.apache.lucene.search.BlockMaxConjunctionScorer061e44a27a9e97e7
    org.apache.lucene.search.BlockMaxConjunctionScorer.174c433408ff6b3bd
    org.apache.lucene.search.BlockMaxConjunctionScorer.23ea95fe22eaa4f92
    org.apache.lucene.search.Boolean2ScorerSupplierc583418a25057486
    org.apache.lucene.search.BooleanClause5517b155135643c4
    org.apache.lucene.search.BooleanClause.Occur734a3ee59f624d3a
    org.apache.lucene.search.BooleanClause.Occur.1844152c852706967
    org.apache.lucene.search.BooleanClause.Occur.2314312e6be9e3919
    org.apache.lucene.search.BooleanClause.Occur.382ed509b5f202c18
    org.apache.lucene.search.BooleanClause.Occur.4daeb1927527fbfcf
    org.apache.lucene.search.BooleanQuery96c1ac631fbd6b0e
    org.apache.lucene.search.BooleanQuery.Builder7e6d4552da2ff245
    org.apache.lucene.search.BooleanWeight174f45125f19caf2
    org.apache.lucene.search.BooleanWeight.WeightedBooleanClause166652adc0fe198e
    org.apache.lucene.search.BoostAttributeImplf093b8b530992fa9
    org.apache.lucene.search.BoostQuery83694dbca36799f8
    org.apache.lucene.search.BulkScorer0cdfc6b4ad3daf0c
    org.apache.lucene.search.CollectionStatistics5ec48820d8f08861
    org.apache.lucene.search.DisiPriorityQueuecd6e7ceb6bb4a75c
    org.apache.lucene.search.DisiWrapperc464918fcb4dc917
    org.apache.lucene.search.DocIdSet5365aa0bacf9a6e7
    org.apache.lucene.search.DocIdSet.131119c239a3307e0
    org.apache.lucene.search.DocIdSetIteratorb2f8b47fe6931904
    org.apache.lucene.search.Explanationf9b8483b4a27fc0e
    org.apache.lucene.search.HitQueue1b55fd31915c139a
    org.apache.lucene.search.HitsThresholdCheckercbcf7b80177ffd7d
    org.apache.lucene.search.HitsThresholdChecker.LocalHitsThresholdChecker0af70e4877c39078
    org.apache.lucene.search.ImpactsDISI13342a2866448a60
    org.apache.lucene.search.IndexSearcher73336568d9558b83
    org.apache.lucene.search.IndexSearcher.28a80822a11869ba3
    org.apache.lucene.search.LRUQueryCachef119ed15eba21643
    org.apache.lucene.search.LRUQueryCache.MinSegmentSizePredicatee8546c497dd5c047
    org.apache.lucene.search.LeafCollector610577ef49520501
    org.apache.lucene.search.LeafSimScorerdae74001f09e0d4b
    org.apache.lucene.search.MaxScoreCacheb0fab390a2eeb1ff
    org.apache.lucene.search.MaxScoreSumPropagator5a91caaf7298e99b
    org.apache.lucene.search.MaxScoreSumPropagator.15ee8239fddd1a671
    org.apache.lucene.search.MultiTermQuery2b75d54f87e0a440
    org.apache.lucene.search.MultiTermQuery.16c9d933f8b8f27ac
    org.apache.lucene.search.MultiTermQuery.RewriteMethoddccbda72605e36e9
    org.apache.lucene.search.Multiset19d136ff7551a790
    org.apache.lucene.search.Multiset.13b110197a7d930cc
    org.apache.lucene.search.Queryc165f884ce594f28
    org.apache.lucene.search.Scorablece3faa2bf0d13526
    org.apache.lucene.search.ScoreDoc7bfc4d6df3c15e4f
    org.apache.lucene.search.ScoreMode5083adba207caf07
    org.apache.lucene.search.Scorera2e3c4802bca7246
    org.apache.lucene.search.ScorerSupplier50ccb984640f5a29
    org.apache.lucene.search.ScorerUtil4858996195e514c9
    org.apache.lucene.search.ScorerUtil.10d12a67987763dd8
    org.apache.lucene.search.ScoringRewrite53dda8cd115a1b80
    org.apache.lucene.search.ScoringRewrite.1726bc5187a7d9169
    org.apache.lucene.search.ScoringRewrite.2c8ed0d3ea02d9ba7
    org.apache.lucene.search.TermCollectingRewrite3c6917b7de289c31
    org.apache.lucene.search.TermQuery32c14fb4749e12de
    org.apache.lucene.search.TermQuery.TermWeight8232b1155cdcaa35
    org.apache.lucene.search.TermScorerc300e5abbc794b3b
    org.apache.lucene.search.TermStatistics2889bba2906e16a2
    org.apache.lucene.search.TopDocs012373f68cd76882
    org.apache.lucene.search.TopDocs.ScoreMergeSortQueue0d229ef686a287eb
    org.apache.lucene.search.TopDocs.ShardRef645ec85cd874e13e
    org.apache.lucene.search.TopDocsCollectord619b8b8e24362ae
    org.apache.lucene.search.TopScoreDocCollectorf0f271377b503622
    org.apache.lucene.search.TopScoreDocCollector.ScorerLeafCollector0916b64fdd6310f8
    org.apache.lucene.search.TopScoreDocCollector.SimpleTopScoreDocCollectore89ce7447d46c23d
    org.apache.lucene.search.TopScoreDocCollector.SimpleTopScoreDocCollector.1b7fd297ad7b8e993
    org.apache.lucene.search.TotalHitsc054cc870c4bc713
    org.apache.lucene.search.TotalHits.Relationcd9e19742f0a5fea
    org.apache.lucene.search.TwoPhaseIteratorf59ed4e6ee883076
    org.apache.lucene.search.TwoPhaseIterator.TwoPhaseIteratorAsDocIdSetIteratorbde4888d90c9b71d
    org.apache.lucene.search.UsageTrackingQueryCachingPolicyb8f47b0b4f586c84
    org.apache.lucene.search.WANDScorer9b455d37735417e4
    org.apache.lucene.search.WANDScorer.1677f7eae4aa6e58d
    org.apache.lucene.search.WANDScorer.27f071d191fb7cb28
    org.apache.lucene.search.Weightf9b0b832cbdab9cc
    org.apache.lucene.search.Weight.19ae964d7e7004115
    org.apache.lucene.search.Weight.DefaultBulkScorer3367fcb4d4550921
    org.apache.lucene.search.similarities.BM25Similarityd69466947ed0f51c
    org.apache.lucene.search.similarities.BM25Similarity.BM25Scorera177d5b0724f1baa
    org.apache.lucene.search.similarities.Similaritya3b6d2798ce43d71
    org.apache.lucene.search.similarities.Similarity.SimScorer67d544ce9feeb21a
    org.apache.lucene.store.BaseDirectory6900d05994ed44b3
    org.apache.lucene.store.BufferedChecksumb94ebe893a9d3711
    org.apache.lucene.store.BufferedChecksumIndexInput173e2b9c65b07cb6
    org.apache.lucene.store.ByteArrayDataInput78632b2460b70e07
    org.apache.lucene.store.ByteArrayDataOutput7e14c81e582b7d2c
    org.apache.lucene.store.ByteBufferGuard259b97c11bbdc71b
    org.apache.lucene.store.ByteBufferIndexInput4167f4c1126b89a3
    org.apache.lucene.store.ByteBufferIndexInput.SingleBufferImpl2a840aec159d9c7d
    org.apache.lucene.store.ByteBuffersDataOutput15456a13d6afd12c
    org.apache.lucene.store.ByteBuffersDataOutput.ByteBufferRecyclerfe108a40cf58b7b1
    org.apache.lucene.store.ChecksumIndexInput76f48af3f68865dd
    org.apache.lucene.store.DataInput5aa170af6f1e947b
    org.apache.lucene.store.DataOutput492e17024cc912e6
    org.apache.lucene.store.Directory7704110da65f03e8
    org.apache.lucene.store.FSDirectory0e228e59762da3b0
    org.apache.lucene.store.FSDirectory.FSIndexOutputd2beb768917b54a0
    org.apache.lucene.store.FSDirectory.FSIndexOutput.1ec3754510e19ee3f
    org.apache.lucene.store.FSLockFactory742892e30a14e87a
    org.apache.lucene.store.FilterDirectoryb2c8389cd77c4d55
    org.apache.lucene.store.FlushInfof9d01f0e9bbb7c7c
    org.apache.lucene.store.IOContext5f42cca474854a9d
    org.apache.lucene.store.IOContext.Context921bb55758e6d8ff
    org.apache.lucene.store.IndexInput06ce5eb19b42b06b
    org.apache.lucene.store.IndexOutput6f483ded93cfafd7
    org.apache.lucene.store.Lock432af1bf641692dc
    org.apache.lucene.store.LockFactoryece396b0fec91411
    org.apache.lucene.store.LockValidatingDirectoryWrapper560f0d73f379987c
    org.apache.lucene.store.MMapDirectorya9942ea0e3192b38
    org.apache.lucene.store.NativeFSLockFactory1cd03d5dd607e96c
    org.apache.lucene.store.NativeFSLockFactory.NativeFSLockc3307e40ef2e24c7
    org.apache.lucene.store.OutputStreamIndexOutput90073bdd6eaf9312
    org.apache.lucene.store.RAMFilea543facba1c62f7f
    org.apache.lucene.store.RAMOutputStreama4d3d0444d01318d
    org.apache.lucene.store.TrackingDirectoryWrapper8f84be302b2ff933
    org.apache.lucene.util.Accountable9caec5fbf170e939
    org.apache.lucene.util.ArrayUtil5954c5d90665398b
    org.apache.lucene.util.AttributeFactoryb1bf0e54e4016761
    org.apache.lucene.util.AttributeFactory.157348402ad295daa
    org.apache.lucene.util.AttributeFactory.DefaultAttributeFactory400586c34d95eefd
    org.apache.lucene.util.AttributeFactory.DefaultAttributeFactory.1e37cb5b075d39222
    org.apache.lucene.util.AttributeFactory.StaticImplementationAttributeFactory7835b4eaf27ad5e5
    org.apache.lucene.util.AttributeImpld2e818115d53c6c8
    org.apache.lucene.util.AttributeSource9ed2301ac94454b9
    org.apache.lucene.util.AttributeSource.2627a422f8bda783c
    org.apache.lucene.util.AttributeSource.Stateee682f69cc19d165
    org.apache.lucene.util.BitSet5a574c88f9713d83
    org.apache.lucene.util.BitUtilfb8b4d3d71d70037
    org.apache.lucene.util.ByteBlockPoolc1f7c99648018d91
    org.apache.lucene.util.ByteBlockPool.Allocatore4273ccf741d8276
    org.apache.lucene.util.ByteBlockPool.DirectTrackingAllocator9bf47627846516db
    org.apache.lucene.util.BytesRef5dc0661c38a5f442
    org.apache.lucene.util.BytesRefBuilder6b39f0d53b571bfe
    org.apache.lucene.util.BytesRefHash86e748e8ab5fa687
    org.apache.lucene.util.BytesRefHash.1e19faf8fa62ab4f4
    org.apache.lucene.util.BytesRefHash.BytesStartArray06370cc4bd47788d
    org.apache.lucene.util.CloseableThreadLocalc837a4897f406f88
    org.apache.lucene.util.CollectionUtild405772039814236
    org.apache.lucene.util.CollectionUtil.ListIntroSorter272e33df47ff8a28
    org.apache.lucene.util.Constants71711c9ebda826d2
    org.apache.lucene.util.Counterdd1fe6fe36dc8723
    org.apache.lucene.util.Counter.AtomicCounter702c4b53893ac12e
    org.apache.lucene.util.Counter.SerialCounter577da4101cbc325f
    org.apache.lucene.util.FixedBitSet92d1cd1d5e4309b2
    org.apache.lucene.util.FrequencyTrackingRingBufferf4e55c7fd66a81d5
    org.apache.lucene.util.FrequencyTrackingRingBuffer.IntBag5de9feffb74916c0
    org.apache.lucene.util.FutureArrayseead70d27728315f
    org.apache.lucene.util.FutureObjectsbb12722ddc092a6a
    org.apache.lucene.util.IOUtilsf9815136f890b195
    org.apache.lucene.util.InPlaceMergeSortera72a3702a3f4d8f1
    org.apache.lucene.util.InfoStream5c1d197ea5ba7a73
    org.apache.lucene.util.InfoStream.NoOutputd0750f16f6d2766e
    org.apache.lucene.util.IntBlockPool73804d638cfb8a37
    org.apache.lucene.util.IntBlockPool.Allocator024ee289b8aaee46
    org.apache.lucene.util.IntroSorter08519c1f1ba4a7de
    org.apache.lucene.util.IntsReff9b7dc817ff99274
    org.apache.lucene.util.IntsRefBuilderb5175ed4b449f9b7
    org.apache.lucene.util.LongValues7d8aee853134ae83
    org.apache.lucene.util.LongValues.1f9fa8f9d563676c5
    org.apache.lucene.util.LongValues.216b39160a62d65d4
    org.apache.lucene.util.LongsRefab3dbc979e310089
    org.apache.lucene.util.MSBRadixSorter9adaa4c4786de287
    org.apache.lucene.util.MathUtil6446df2aeb4ba1d0
    org.apache.lucene.util.NamedSPILoaderbd69495c1a655c32
    org.apache.lucene.util.PriorityQueue86214d87630b6122
    org.apache.lucene.util.PriorityQueue.160a8e49cec5e67af
    org.apache.lucene.util.QueryBuilderf8cdd17d51e120bf
    org.apache.lucene.util.QueryBuilder.TermAndBoost7379a586bc344983
    org.apache.lucene.util.RamUsageEstimator90dd0e4b91d1e1b1
    org.apache.lucene.util.RamUsageEstimator.170b7c06b4a2ba803
    org.apache.lucene.util.SPIClassIterator77e3e7ca7aea78ee
    org.apache.lucene.util.SetOnce1f43b17a7dfc86e4
    org.apache.lucene.util.SetOnce.Wrapperfbdf6ca0565e5886
    org.apache.lucene.util.SmallFloat4b4c055a7d5e7c3d
    org.apache.lucene.util.Sorter91a27f89e094d240
    org.apache.lucene.util.StringHelper548b4986a5429a71
    org.apache.lucene.util.StringMSBRadixSorter09fc2a082184e6e8
    org.apache.lucene.util.StringMSBRadixSorter.12864f721fdd69ffd
    org.apache.lucene.util.UnicodeUtilaa9656ee8c7acf93
    org.apache.lucene.util.Versiond5dc79d50f2c2d1d
    org.apache.lucene.util.compress.LZ474e78555e9692654
    org.apache.lucene.util.compress.LZ4.FastCompressionHashTable455953436870f53c
    org.apache.lucene.util.compress.LZ4.HashTablea875bb203fc16df5
    org.apache.lucene.util.compress.LZ4.HighCompressionHashTablefe6aeae6ddf42ee2
    org.apache.lucene.util.compress.LowercaseAsciiCompressionf447544a6d96e316
    org.apache.lucene.util.fst.BitTableUtilae7a3159aea08377
    org.apache.lucene.util.fst.Builder100b4b21b6b35e4f
    org.apache.lucene.util.fst.Builder.Arc03d7ea3d6f291b24
    org.apache.lucene.util.fst.Builder.CompiledNode611103c7aadde65d
    org.apache.lucene.util.fst.Builder.FixedLengthArcsBufferdc3feeb45753c9cf
    org.apache.lucene.util.fst.Builder.UnCompiledNode008d6d1bfef92929
    org.apache.lucene.util.fst.ByteSequenceOutputs143ca7cb1094029b
    org.apache.lucene.util.fst.BytesRefFSTEnum8c5ff799d80df73e
    org.apache.lucene.util.fst.BytesRefFSTEnum.InputOutputfdff5845aec3a017
    org.apache.lucene.util.fst.BytesStore862a096cc44582bf
    org.apache.lucene.util.fst.BytesStore.265e27783d1fb59c4
    org.apache.lucene.util.fst.FST22daed3fbd13fe0f
    org.apache.lucene.util.fst.FST.Arc87a6bbce0deea5dc
    org.apache.lucene.util.fst.FST.Arc.BitTablecd08373a793c76e2
    org.apache.lucene.util.fst.FST.BytesReader9774f9c52f512c2f
    org.apache.lucene.util.fst.FST.INPUT_TYPE4cca0a4d7eb0fc65
    org.apache.lucene.util.fst.FSTEnumb20a467cecfe037b
    org.apache.lucene.util.fst.NodeHashe5fbe5551fd06a18
    org.apache.lucene.util.fst.OffHeapFSTStorec45fc9986debb081
    org.apache.lucene.util.fst.Outputs01b4adaf56ba7d3f
    org.apache.lucene.util.fst.ReverseBytesReader13eb20434ceaa349
    org.apache.lucene.util.fst.ReverseRandomAccessReader8ca4cafc0fd06de6
    org.apache.lucene.util.fst.Utile497ee1ca74a697c
    org.apache.lucene.util.packed.AbstractPagedMutablec34fc67babfbb425
    org.apache.lucene.util.packed.BulkOperatione703484622617102
    org.apache.lucene.util.packed.BulkOperation.18ed6abb8f3648cf6
    org.apache.lucene.util.packed.BulkOperationPacked829a236b3c71b9c5
    org.apache.lucene.util.packed.BulkOperationPacked14bd02140efa827ba
    org.apache.lucene.util.packed.BulkOperationPacked107871df76ca8b0a6d
    org.apache.lucene.util.packed.BulkOperationPacked1131012a043511a3c2
    org.apache.lucene.util.packed.BulkOperationPacked128c9d61a1c0c22fe2
    org.apache.lucene.util.packed.BulkOperationPacked137c3f7554b1c18d1d
    org.apache.lucene.util.packed.BulkOperationPacked1421e5b4c1bd2627b3
    org.apache.lucene.util.packed.BulkOperationPacked1589157585ca7e8aaf
    org.apache.lucene.util.packed.BulkOperationPacked16bd7857d6862d8611
    org.apache.lucene.util.packed.BulkOperationPacked17ee9c6581a4299e15
    org.apache.lucene.util.packed.BulkOperationPacked18559a5bb48c2c0381
    org.apache.lucene.util.packed.BulkOperationPacked19ce141b930277706f
    org.apache.lucene.util.packed.BulkOperationPacked2af735fb9c7872456
    org.apache.lucene.util.packed.BulkOperationPacked20ec750496cb2b69fc
    org.apache.lucene.util.packed.BulkOperationPacked21fd5faea41a357d0e
    org.apache.lucene.util.packed.BulkOperationPacked22b8b2caf3fa40412b
    org.apache.lucene.util.packed.BulkOperationPacked23d3700bb7e9bbb9e7
    org.apache.lucene.util.packed.BulkOperationPacked2497d220c44b683800
    org.apache.lucene.util.packed.BulkOperationPacked31318d5978b9e3782
    org.apache.lucene.util.packed.BulkOperationPacked470c3af2facc8f326
    org.apache.lucene.util.packed.BulkOperationPacked5d206eeee69238498
    org.apache.lucene.util.packed.BulkOperationPacked62dc5d4490742e4f9
    org.apache.lucene.util.packed.BulkOperationPacked7cf065f84c953d1aa
    org.apache.lucene.util.packed.BulkOperationPacked8f743f629bc8f2eec
    org.apache.lucene.util.packed.BulkOperationPacked920af58a528f116a1
    org.apache.lucene.util.packed.BulkOperationPackedSingleBlocked80270f7be26e06
    org.apache.lucene.util.packed.DeltaPackedLongValues.Builder058b56d9e425c2ec
    org.apache.lucene.util.packed.Direct81681d7da6313a8e2
    org.apache.lucene.util.packed.DirectMonotonicReader4ca3c68dd3a989a8
    org.apache.lucene.util.packed.DirectMonotonicReader.1ac026cbf03289925
    org.apache.lucene.util.packed.DirectMonotonicReader.Metabd8400ac2b5a5d97
    org.apache.lucene.util.packed.DirectMonotonicWriterab3c850c35c1869b
    org.apache.lucene.util.packed.GrowableWriter5e5c4629c1cacb32
    org.apache.lucene.util.packed.Packed64SingleBlock3ee3158eebfb2583
    org.apache.lucene.util.packed.Packed64SingleBlock.Packed64SingleBlock125137e3efb8081112
    org.apache.lucene.util.packed.Packed64SingleBlock.Packed64SingleBlock57bf123852dfc28da
    org.apache.lucene.util.packed.PackedInts5fce3648bb81aba7
    org.apache.lucene.util.packed.PackedInts.1b5e362f7e4f2669f
    org.apache.lucene.util.packed.PackedInts.Formatf66df8d6fa1eb0bf
    org.apache.lucene.util.packed.PackedInts.Format.13b829c5020510e1e
    org.apache.lucene.util.packed.PackedInts.Format.284c5dbb1792af026
    org.apache.lucene.util.packed.PackedInts.FormatAndBits94bd3ad750fed485
    org.apache.lucene.util.packed.PackedInts.Mutable4220eb680213cd52
    org.apache.lucene.util.packed.PackedInts.MutableImpl07f6a90e6a6b8629
    org.apache.lucene.util.packed.PackedInts.Readerada558745edc141a
    org.apache.lucene.util.packed.PackedInts.ReaderIteratorImpld0ab15244e49ac29
    org.apache.lucene.util.packed.PackedInts.Writera09c912336957fca
    org.apache.lucene.util.packed.PackedLongValuesfcf07dff85fee5e0
    org.apache.lucene.util.packed.PackedLongValues.Builder57417b5ca6cc2f7f
    org.apache.lucene.util.packed.PackedReaderIterator9150185835a6e045
    org.apache.lucene.util.packed.PackedWriterf401186d92e3dfd7
    org.apache.lucene.util.packed.PagedGrowableWriterbf064fd5aabfaffd
    org.apache.maven.DefaultMaven663dd8c0b18de2ae
    org.apache.maven.ReactorReadera077a742bb3b3e4b
    org.apache.maven.RepositoryUtils008948b406a1908f
    org.apache.maven.RepositoryUtils.MavenArtifactTypeRegistryfd6255c87301f695
    org.apache.maven.archiver.ManifestConfigurationb2bbc26d75362f40
    org.apache.maven.archiver.MavenArchiveConfigurationad3871f2200f7fc6
    org.apache.maven.archiver.MavenArchiver91cd22f7e9fc83d8
    org.apache.maven.archiver.PomPropertiesUtil6cc68daabb8372ba
    org.apache.maven.artifact.Artifactbb58e99c3bd78a82
    org.apache.maven.artifact.ArtifactUtilsdae262ec115c7afa
    org.apache.maven.artifact.DefaultArtifactd6f1875d0c532bd4
    org.apache.maven.artifact.factory.DefaultArtifactFactory9a3c19f149c10231
    org.apache.maven.artifact.handler.DefaultArtifactHandler44ec077f3dc8b8f1
    org.apache.maven.artifact.handler.manager.DefaultArtifactHandlerManager036e9432c0ccd78a
    org.apache.maven.artifact.installer.DefaultArtifactInstaller5b4bd0624fffd27a
    org.apache.maven.artifact.metadata.AbstractArtifactMetadata62fa26d896c1c068
    org.apache.maven.artifact.repository.ArtifactRepositoryPolicyc5c9059a22dea423
    org.apache.maven.artifact.repository.LegacyLocalRepositoryManager9f15698c9b58dac7
    org.apache.maven.artifact.repository.MavenArtifactRepositoryc3ed59352688de5f
    org.apache.maven.artifact.repository.layout.DefaultRepositoryLayoutd41672f0c3ad07f1
    org.apache.maven.artifact.repository.metadata.AbstractRepositoryMetadata0dd629abe67d7b13
    org.apache.maven.artifact.repository.metadata.ArtifactRepositoryMetadatad2ad476f339e560d
    org.apache.maven.artifact.repository.metadata.DefaultRepositoryMetadataManager800de159b3ba4564
    org.apache.maven.artifact.repository.metadata.Metadata1431bacf90aafa52
    org.apache.maven.artifact.repository.metadata.Snapshot73510d6b18b64a0b
    org.apache.maven.artifact.repository.metadata.SnapshotArtifactRepositoryMetadataa8d506da390a9330
    org.apache.maven.artifact.repository.metadata.SnapshotVersionffe2cae841487941
    org.apache.maven.artifact.repository.metadata.Versioning163cbddd85c2d9f9
    org.apache.maven.artifact.repository.metadata.io.DefaultMetadataReader064c3792d1ab7183
    org.apache.maven.artifact.repository.metadata.io.xpp3.MetadataXpp3Reader22ef2deba7d4b698
    org.apache.maven.artifact.repository.metadata.io.xpp3.MetadataXpp3Reader.18e16cc69d75ef4ab
    org.apache.maven.artifact.repository.metadata.io.xpp3.MetadataXpp3Writer96b02f849842881d
    org.apache.maven.artifact.resolver.DefaultArtifactCollector23ce02a53a9bbf55
    org.apache.maven.artifact.resolver.DefaultArtifactResolverc318f68e333530af
    org.apache.maven.artifact.resolver.DefaultArtifactResolver.DaemonThreadCreatorfc36498fbfb0708e
    org.apache.maven.artifact.resolver.DefaultResolutionErrorHandler72dec917697e6ec6
    org.apache.maven.artifact.resolver.filter.AbstractScopeArtifactFilterea78cf252bc7237e
    org.apache.maven.artifact.resolver.filter.CumulativeScopeArtifactFilter4de5915fcc9c7e71
    org.apache.maven.artifact.resolver.filter.ExcludesArtifactFilter4da4a3a6a885adc5
    org.apache.maven.artifact.resolver.filter.ExclusionArtifactFilterd27463573ebbeecd
    org.apache.maven.artifact.resolver.filter.IncludesArtifactFilter088d52870788ac06
    org.apache.maven.artifact.resolver.filter.ScopeArtifactFiltere09e2cc80a5ef316
    org.apache.maven.artifact.versioning.ComparableVersionc409ce50f6bc468b
    org.apache.maven.artifact.versioning.ComparableVersion.IntItemb41f50e44a9d9c64
    org.apache.maven.artifact.versioning.ComparableVersion.ListItem3c222ba6a11eb9cd
    org.apache.maven.artifact.versioning.ComparableVersion.StringItem48a3b021319c0f1b
    org.apache.maven.artifact.versioning.DefaultArtifactVersion3c2c97b958c40a2b
    org.apache.maven.artifact.versioning.Restriction80a91ba1c9366d5a
    org.apache.maven.artifact.versioning.VersionRangeab7245e50f6b2899
    org.apache.maven.bridge.MavenRepositorySystemaa6109e15600b9d1
    org.apache.maven.building.DefaultProblemCollector38dd9f057392a8de
    org.apache.maven.building.FileSource7d8f076bd9b04a1b
    org.apache.maven.building.ProblemCollectorFactory86088eef6da47a52
    org.apache.maven.classrealm.ArtifactClassRealmConstituentea13da510c51a60a
    org.apache.maven.classrealm.ClassRealmRequest.RealmType7e19b9f9b610df8b
    org.apache.maven.classrealm.DefaultClassRealmManager8e96f812ce732b21
    org.apache.maven.cli.CLIManagerfb223c35b8991aab
    org.apache.maven.cli.CLIReportingUtils8bb9bb8a434c653f
    org.apache.maven.cli.CleanArgument7da8b829830a6cb2
    org.apache.maven.cli.CliRequestf7252692e709746f
    org.apache.maven.cli.MavenCli0ff3ecd139b8af16
    org.apache.maven.cli.MavenCli.1576b12ab27e89d82
    org.apache.maven.cli.ResolveFiled71f162fc6323ac2
    org.apache.maven.cli.configuration.SettingsXmlConfigurationProcessor18471682d6e58377
    org.apache.maven.cli.event.DefaultEventSpyContext72fe7fd27b1c8ef5
    org.apache.maven.cli.event.ExecutionEventLogger4c308f2c52a04ac8
    org.apache.maven.cli.logging.BaseSlf4jConfiguration143187f9ff16d495
    org.apache.maven.cli.logging.Slf4jConfiguration.Level66cb7f437538eac2
    org.apache.maven.cli.logging.Slf4jConfigurationFactory5290ad2a79d1ce00
    org.apache.maven.cli.logging.Slf4jLoggerbe4f1b24d085da93
    org.apache.maven.cli.logging.Slf4jLoggerManager286c49d63c5d3e7e
    org.apache.maven.cli.logging.Slf4jStdoutLogger78b29989b04f02b1
    org.apache.maven.cli.logging.impl.Slf4jSimpleConfiguration571aa9f18948347d
    org.apache.maven.cli.logging.impl.Slf4jSimpleConfiguration.1e1ad50bd25d6f5b7
    org.apache.maven.cli.transfer.QuietMavenTransferListener4d5e6633110d43e1
    org.apache.maven.doxia.DefaultDoxiacfb718b53f8fc3f5
    org.apache.maven.doxia.logging.SystemStreamLog991b2140f6e0201e
    org.apache.maven.doxia.markup.HtmlMarkupa1c78a63b1123343
    org.apache.maven.doxia.markup.HtmlMarkup.16f04370cccfe3525
    org.apache.maven.doxia.markup.HtmlMarkup.105cc10d87bab3bafe
    org.apache.maven.doxia.markup.HtmlMarkup.11e4d33d9245d248ac
    org.apache.maven.doxia.markup.HtmlMarkup.1252c9e5085d1b0437
    org.apache.maven.doxia.markup.HtmlMarkup.13e2d1d2728deafde2
    org.apache.maven.doxia.markup.HtmlMarkup.146878973c07872c8b
    org.apache.maven.doxia.markup.HtmlMarkup.15b8150662c3b12b7b
    org.apache.maven.doxia.markup.HtmlMarkup.165550a2ff39b8938b
    org.apache.maven.doxia.markup.HtmlMarkup.17563ba42466ce2f40
    org.apache.maven.doxia.markup.HtmlMarkup.18f3c0932e551dfc66
    org.apache.maven.doxia.markup.HtmlMarkup.2f9f5a31309a6095f
    org.apache.maven.doxia.markup.HtmlMarkup.3210bbac2f4b1a19d
    org.apache.maven.doxia.markup.HtmlMarkup.4ab20fee8578c3ee6
    org.apache.maven.doxia.markup.HtmlMarkup.584c8db8eed118b02
    org.apache.maven.doxia.markup.HtmlMarkup.61f3a7495506bc226
    org.apache.maven.doxia.markup.HtmlMarkup.710f5a92d437dfcbe
    org.apache.maven.doxia.markup.HtmlMarkup.89d9c188be5fcd084
    org.apache.maven.doxia.markup.HtmlMarkup.92dd7ea8406601fba
    org.apache.maven.doxia.markup.Markup3cf4bb5a4f77b9c2
    org.apache.maven.doxia.module.fml.FmlParserModule57a0d571cc77b8a9
    org.apache.maven.doxia.module.xdoc.XdocParserModule9f6d82e7121eaae6
    org.apache.maven.doxia.module.xhtml.XhtmlSink8f852baa8b1322b9
    org.apache.maven.doxia.parser.manager.DefaultParserManagerbd9ccb2bcb352b7d
    org.apache.maven.doxia.parser.module.AbstractParserModuledc49676ba8e59599
    org.apache.maven.doxia.parser.module.DefaultParserModuleManagerff4640ea8a224615
    org.apache.maven.doxia.sink.impl.AbstractSink5a0c2fd7f7584d94
    org.apache.maven.doxia.sink.impl.AbstractXmlSinkdbc420e7d6ab7a3a
    org.apache.maven.doxia.sink.impl.SinkAdapter795920cdf20aba79
    org.apache.maven.doxia.sink.impl.SinkEventAttributeSet90d398c0554fbe92
    org.apache.maven.doxia.sink.impl.SinkUtils251d7d9129d06215
    org.apache.maven.doxia.sink.impl.XhtmlBaseSinkd5bbcadd1fafc245
    org.apache.maven.doxia.site.decoration.Bannera6189d798bed6382
    org.apache.maven.doxia.site.decoration.Body820c97155a482b65
    org.apache.maven.doxia.site.decoration.DecorationModele764d2a12cafbc53
    org.apache.maven.doxia.site.decoration.DecorationUtils912b9cbd0764b4e9
    org.apache.maven.doxia.site.decoration.LinkItem1a4eb87e7d218f1b
    org.apache.maven.doxia.site.decoration.Menu3b51a49f22ee05df
    org.apache.maven.doxia.site.decoration.MenuItem860dc61702776a44
    org.apache.maven.doxia.site.decoration.PublishDatef2649ed7863529f6
    org.apache.maven.doxia.site.decoration.Skindf5593ea3451a6e7
    org.apache.maven.doxia.site.decoration.Versione8a55f520fc5412e
    org.apache.maven.doxia.site.decoration.inheritance.DefaultDecorationModelInheritanceAssembler57cda10c3ed5d569
    org.apache.maven.doxia.site.decoration.io.xpp3.DecorationXpp3Reader44449ba55e042174
    org.apache.maven.doxia.site.decoration.io.xpp3.DecorationXpp3Writer7ae66bc3129c037d
    org.apache.maven.doxia.site.skin.Prerequisites7e6299db99aee411
    org.apache.maven.doxia.site.skin.SkinModel9a62eeada88cbf37
    org.apache.maven.doxia.site.skin.io.xpp3.SkinXpp3Reader9d7ebd0c985f7ac6
    org.apache.maven.doxia.siterenderer.DefaultSiteRendererada5c365b9ec04ae
    org.apache.maven.doxia.siterenderer.ExtraDoxiaModuleReferencee15f92f95ccbf689
    org.apache.maven.doxia.siterenderer.RenderingContext88b754a49d107a0d
    org.apache.maven.doxia.siterenderer.SiteRenderingContextb2b6397331992bdf
    org.apache.maven.doxia.siterenderer.sink.SiteRendererSinkc79abafb2a9de797
    org.apache.maven.doxia.tools.DefaultSiteTool4d0455a29103f716
    org.apache.maven.doxia.tools.MojoLogWrapper309a3d79c049178b
    org.apache.maven.doxia.tools.SiteToolfaeef006d99e6c3b
    org.apache.maven.doxia.util.DoxiaUtils71a777ba1107f5cd
    org.apache.maven.doxia.util.HtmlTools1f14b5cd1cc4b7ba
    org.apache.maven.eventspy.internal.EventSpyDispatcher40c7d122eb4b395e
    org.apache.maven.exception.DefaultExceptionHandler6245f05b374533a8
    org.apache.maven.exception.ExceptionSummary7c4dc516d0af7aa3
    org.apache.maven.execution.AbstractExecutionListener371ab3e4de4ab6ce
    org.apache.maven.execution.BuildFailure31d9c476d5d1c7b4
    org.apache.maven.execution.BuildSuccessb2af7e63033912e1
    org.apache.maven.execution.BuildSummary362b8e7087a269b6
    org.apache.maven.execution.DefaultMavenExecutionRequest49c7faad6402167c
    org.apache.maven.execution.DefaultMavenExecutionRequestPopulatorc066c65c857673d4
    org.apache.maven.execution.DefaultMavenExecutionResult88441ddbb3beae0b
    org.apache.maven.execution.ExecutionEvent.Type1a653ea6273fdf50
    org.apache.maven.execution.MavenSession7dc905fe11b71ed7
    org.apache.maven.execution.MojoExecutionEvent767f3727df5a720a
    org.apache.maven.execution.ProjectExecutionEvent0e2974424f7e4eff
    org.apache.maven.execution.SettingsAdapter9f754f1c6c35f95d
    org.apache.maven.execution.scope.internal.MojoExecutionScopead61f0c5d631f170
    org.apache.maven.execution.scope.internal.MojoExecutionScope.161615ffb6dbbd00e
    org.apache.maven.execution.scope.internal.MojoExecutionScope.28b590c48505b2f3c
    org.apache.maven.execution.scope.internal.MojoExecutionScope.ScopeState72c7cb1cc3e0cb30
    org.apache.maven.execution.scope.internal.MojoExecutionScopeCoreModuleab48cfb450077195
    org.apache.maven.execution.scope.internal.MojoExecutionScopeModule28b0d8ecf551a705
    org.apache.maven.extension.internal.CoreExportsf6c6eadf304766f3
    org.apache.maven.extension.internal.CoreExtensionEntryaeabee7b1c15aa43
    org.apache.maven.graph.DefaultGraphBuilderbae8af041487afa2
    org.apache.maven.graph.DefaultProjectDependencyGraph79a0f46122f540a1
    org.apache.maven.graph.DefaultProjectDependencyGraph.MavenProjectComparatore87af0c8117b9e87
    org.apache.maven.internal.aether.DefaultRepositorySystemSessionFactory164b82b0698f2fb2
    org.apache.maven.internal.aether.LoggingRepositoryListener081dcf1ee7887dd0
    org.apache.maven.internal.aether.MavenChainedWorkspaceReader938dfcbc513f2a81
    org.apache.maven.lifecycle.DefaultLifecycleExecutor995e5375fd702682
    org.apache.maven.lifecycle.DefaultLifecycles67670454f955f196
    org.apache.maven.lifecycle.Lifecyclef42aa66bf52f190a
    org.apache.maven.lifecycle.LifecycleExecutionException4ea4cd84c78fbbcb
    org.apache.maven.lifecycle.MavenExecutionPlan3105598b45cc7136
    org.apache.maven.lifecycle.internal.BuildListCalculator2d11b956e88fadf1
    org.apache.maven.lifecycle.internal.BuildThreadFactory98c0db5bf92f25a7
    org.apache.maven.lifecycle.internal.CompoundProjectExecutionListener769107952711272d
    org.apache.maven.lifecycle.internal.DefaultExecutionEventf8dc12862b0f3d64
    org.apache.maven.lifecycle.internal.DefaultExecutionEventCatapulta7f64245e424371a
    org.apache.maven.lifecycle.internal.DefaultExecutionEventCatapult.1787ee64ae3f8ecdc
    org.apache.maven.lifecycle.internal.DefaultLifecycleExecutionPlanCalculator7521894dfe37c343
    org.apache.maven.lifecycle.internal.DefaultLifecycleMappingDelegate9f725fb058634981
    org.apache.maven.lifecycle.internal.DefaultLifecyclePluginAnalyzer8d070c763c701b5b
    org.apache.maven.lifecycle.internal.DefaultLifecyclePluginAnalyzer.150f013f7205b4b89
    org.apache.maven.lifecycle.internal.DefaultLifecyclePluginAnalyzer.GoalSpecec0c97cff2e1156b
    org.apache.maven.lifecycle.internal.DefaultLifecycleTaskSegmentCalculator906a2a43d10e1281
    org.apache.maven.lifecycle.internal.DefaultMojoExecutionConfiguratorb0bf6bb2092c8f32
    org.apache.maven.lifecycle.internal.DefaultProjectArtifactFactoryce1d766cbe4dfabe
    org.apache.maven.lifecycle.internal.DependencyContextfbef5aff778f1524
    org.apache.maven.lifecycle.internal.ExecutionPlanItem2af4595a6d5cbdf0
    org.apache.maven.lifecycle.internal.GoalTask7a6593cf7237abe6
    org.apache.maven.lifecycle.internal.LifecycleDebugLogger8e8cbd5ace66ca35
    org.apache.maven.lifecycle.internal.LifecycleDependencyResolver2a2ac6c7a54a814e
    org.apache.maven.lifecycle.internal.LifecycleDependencyResolver.ReactorDependencyFilter3c49e98af1ba8dca
    org.apache.maven.lifecycle.internal.LifecycleModuleBuilderc1d2c74f2689321b
    org.apache.maven.lifecycle.internal.LifecyclePluginResolver3e1c2ad4cbe5e132
    org.apache.maven.lifecycle.internal.LifecycleStarter88af777af5e0f244
    org.apache.maven.lifecycle.internal.LifecycleTask24614eeb04a702bc
    org.apache.maven.lifecycle.internal.MojoDescriptorCreatorb17e245b6234c324
    org.apache.maven.lifecycle.internal.MojoExecutor83b02c65cc0b455f
    org.apache.maven.lifecycle.internal.MojoExecutor.OwnerReentrantLock34264bb3bc46887f
    org.apache.maven.lifecycle.internal.MojoExecutor.OwnerReentrantReadWriteLock968bdc2e28d864cb
    org.apache.maven.lifecycle.internal.MojoExecutor.ProjectLock628c84381bb91c41
    org.apache.maven.lifecycle.internal.PhaseRecorder00b09238f82b4404
    org.apache.maven.lifecycle.internal.ProjectBuildList62c45238e3ab7cf2
    org.apache.maven.lifecycle.internal.ProjectIndex6da4b2f3ce92bd5f
    org.apache.maven.lifecycle.internal.ProjectSegment31c2d595cd7f3a96
    org.apache.maven.lifecycle.internal.ReactorBuildStatus16c94ccee4acf513
    org.apache.maven.lifecycle.internal.ReactorContext948e2a740ede9c7b
    org.apache.maven.lifecycle.internal.TaskSegment90f56c887416c67f
    org.apache.maven.lifecycle.internal.builder.BuilderCommon05312804b40c9dd7
    org.apache.maven.lifecycle.internal.builder.multithreaded.ConcurrencyDependencyGraphd68e66a3e25123c0
    org.apache.maven.lifecycle.internal.builder.multithreaded.MultiThreadedBuilderae1ba1d1500f211e
    org.apache.maven.lifecycle.internal.builder.multithreaded.MultiThreadedBuilder.174fbc7664afbf954
    org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder4b332446a49b2045
    org.apache.maven.lifecycle.mapping.DefaultLifecycleMappingdeb18163999b535d
    org.apache.maven.lifecycle.mapping.Lifecycle1dc3d7be1105be35
    org.apache.maven.lifecycle.mapping.LifecycleMojo1fa155b526006233
    org.apache.maven.lifecycle.mapping.LifecyclePhase81d6f62b03a38cfc
    org.apache.maven.model.Activation127d6fb1caa7cbfc
    org.apache.maven.model.ActivationFile6918fa48629992bc
    org.apache.maven.model.ActivationOSe2c8d4633e296ec5
    org.apache.maven.model.ActivationProperty34dea0ccb21f9d81
    org.apache.maven.model.Build586c94b4faf502cf
    org.apache.maven.model.BuildBasef4f9725d4d8e35b7
    org.apache.maven.model.CiManagement0735292e9d3627df
    org.apache.maven.model.ConfigurationContainerca511653f04e54b2
    org.apache.maven.model.Contributor0bd0c5b2eeebba7f
    org.apache.maven.model.Dependencyf4818368fe1dc529
    org.apache.maven.model.DependencyManagement96a6959a122c6309
    org.apache.maven.model.DeploymentRepository348cc37446723800
    org.apache.maven.model.Developer13ee47ebcac1cdaa
    org.apache.maven.model.DistributionManagementcb6f89faf25d02d9
    org.apache.maven.model.Exclusionfa7b09be4d095bf4
    org.apache.maven.model.Extension23c7fc62d212bb6a
    org.apache.maven.model.FileSetb9f051bbb8963e3e
    org.apache.maven.model.InputLocationb75ed12094732df3
    org.apache.maven.model.InputSource15e52947aeaf128c
    org.apache.maven.model.IssueManagement14ac43526671b0b5
    org.apache.maven.model.Licensefcc89d3e97402038
    org.apache.maven.model.MailingListd19bf49a9b24096b
    org.apache.maven.model.Model7261616d3970fd8c
    org.apache.maven.model.Modelc2ad28605cbe2a1f
    org.apache.maven.model.ModelBasead655e7f0be9f952
    org.apache.maven.model.ModelBase3086df0483f69ed5
    org.apache.maven.model.Notifier6a376ce3502d4f73
    org.apache.maven.model.Organization495445360f5021c6
    org.apache.maven.model.Parent8ee4588afb064839
    org.apache.maven.model.PatternSet9b33ba0bfd5260cd
    org.apache.maven.model.Plugin4accc98a17788676
    org.apache.maven.model.PluginConfigurationf640c4edaf85e6a4
    org.apache.maven.model.PluginContainerf0a1c12344df819b
    org.apache.maven.model.PluginExecution5caf91448fdb7181
    org.apache.maven.model.PluginManagementf63d25fd7410c2ad
    org.apache.maven.model.Prerequisitesd19b7693e280d593
    org.apache.maven.model.Profile5428252d911b66b5
    org.apache.maven.model.ReportPlugin846906a8664268af
    org.apache.maven.model.ReportSete1f4879bc65f6388
    org.apache.maven.model.Reporting316a973fffcc7b81
    org.apache.maven.model.Repositoryad7e36666bfb84e8
    org.apache.maven.model.RepositoryBase094cd22f6a2762aa
    org.apache.maven.model.RepositoryPolicy71816beb3c52bd41
    org.apache.maven.model.Resource81eed22d888fda78
    org.apache.maven.model.Scm8dddf05550c1cab4
    org.apache.maven.model.Site0e078a9da732657b
    org.apache.maven.model.building.AbstractModelBuildingListenerf2fb1db35cafaae8
    org.apache.maven.model.building.DefaultModelBuilder7a4a787fb68c7ac1
    org.apache.maven.model.building.DefaultModelBuildingEventfe77a72caf71e974
    org.apache.maven.model.building.DefaultModelBuildingRequest4bc86602f8030524
    org.apache.maven.model.building.DefaultModelBuildingResultb5545923adff3a86
    org.apache.maven.model.building.DefaultModelProblem59bb6157cfb780e1
    org.apache.maven.model.building.DefaultModelProblemCollector8cf469953fd3689e
    org.apache.maven.model.building.DefaultModelProcessor05d8a30e8aabddee
    org.apache.maven.model.building.FileModelSource9d4c1d09ac77fe4a
    org.apache.maven.model.building.ModelBuildingEventCatapulta641b26f6557cc4a
    org.apache.maven.model.building.ModelBuildingEventCatapult.11e8dab1e4128cb1f
    org.apache.maven.model.building.ModelCacheTag188eeb0a2399e567
    org.apache.maven.model.building.ModelCacheTag.1b4c4a0b72bb56ab7
    org.apache.maven.model.building.ModelCacheTag.25ced26ea75599fba
    org.apache.maven.model.building.ModelDataec19554a770abeb6
    org.apache.maven.model.building.ModelProblem.Severityc3135bfd3a344a02
    org.apache.maven.model.building.ModelProblem.Versiona37255b4cfba34c0
    org.apache.maven.model.building.ModelProblemCollectorRequest5bc407c25cd68f33
    org.apache.maven.model.building.ModelProblemUtils13d430dcd2b10985
    org.apache.maven.model.building.Result2b8857f14eae74da
    org.apache.maven.model.composition.DefaultDependencyManagementImporterbb0896c3a6b0b111
    org.apache.maven.model.inheritance.DefaultInheritanceAssembler8d73f353fa93c2c9
    org.apache.maven.model.inheritance.DefaultInheritanceAssembler.InheritanceModelMerger446e5bfa1b2ed46f
    org.apache.maven.model.interpolation.AbstractStringBasedModelInterpolator51d16b91f5af2b0d
    org.apache.maven.model.interpolation.AbstractStringBasedModelInterpolator.1fdb8d4fbaf2c582f
    org.apache.maven.model.interpolation.AbstractStringBasedModelInterpolator.2faf9bc85020619ee
    org.apache.maven.model.interpolation.AbstractStringBasedModelInterpolator.3a50dc9105dcd21cb
    org.apache.maven.model.interpolation.BuildTimestampValueSourcefb00440ab41d4c62
    org.apache.maven.model.interpolation.DefaultModelVersionProcessor08468c296b8c7ce4
    org.apache.maven.model.interpolation.MavenBuildTimestampd0dbf2efa8455836
    org.apache.maven.model.interpolation.PathTranslatingPostProcessor20a5961c643ccbf4
    org.apache.maven.model.interpolation.ProblemDetectingValueSource7a4e2e11109158b5
    org.apache.maven.model.interpolation.StringVisitorModelInterpolator46b16c3ec961a055
    org.apache.maven.model.interpolation.StringVisitorModelInterpolator.1158e7f0fccf99071
    org.apache.maven.model.interpolation.StringVisitorModelInterpolator.ModelVisitor8d3f71f3faee4a58
    org.apache.maven.model.interpolation.UrlNormalizingPostProcessorb391109bf4771332
    org.apache.maven.model.io.DefaultModelReader242c0752d482d78f
    org.apache.maven.model.io.xpp3.MavenXpp3Readeraadeba45ec24635a
    org.apache.maven.model.io.xpp3.MavenXpp3Reader.1e1ac1cdcf39dabe2
    org.apache.maven.model.io.xpp3.MavenXpp3ReaderEx4a83d30cf19804e6
    org.apache.maven.model.io.xpp3.MavenXpp3ReaderEx.18677a213a27aa103
    org.apache.maven.model.io.xpp3.MavenXpp3ReaderEx.Xpp3DomBuilderInputLocationBuilder73b3535cf5b7f37b
    org.apache.maven.model.locator.DefaultModelLocator46b4c87ac8de828f
    org.apache.maven.model.management.DefaultDependencyManagementInjector727ebf9853c3d223
    org.apache.maven.model.management.DefaultDependencyManagementInjector.ManagementModelMergerd186f833b79e4b00
    org.apache.maven.model.management.DefaultPluginManagementInjectorde7cab6a2034fc9d
    org.apache.maven.model.management.DefaultPluginManagementInjector.ManagementModelMerger844272fadd6e016c
    org.apache.maven.model.merge.MavenModelMerger486b3782ef938bbb
    org.apache.maven.model.merge.ModelMerger0edfa727169294c2
    org.apache.maven.model.merge.ModelMerger.DependencyKeyComputer29a61266a6fd18df
    org.apache.maven.model.merge.ModelMerger.ExtensionKeyComputer7dc0cf5680eecfe5
    org.apache.maven.model.merge.ModelMerger.MergingList01bfea13e58b2433
    org.apache.maven.model.merge.ModelMerger.NotifierKeyComputerc65751c5c31ce742
    org.apache.maven.model.merge.ModelMerger.ResourceKeyComputer0ddacab1a7bc0d43
    org.apache.maven.model.merge.ModelMerger.SourceDominant592443e87f42def2
    org.apache.maven.model.normalization.DefaultModelNormalizer35a5e093c59515fd
    org.apache.maven.model.normalization.DefaultModelNormalizer.DuplicateMerger17e0ee3519a30253
    org.apache.maven.model.path.DefaultModelPathTranslatore83fda529251b319
    org.apache.maven.model.path.DefaultModelUrlNormalizera23dc64e5192927b
    org.apache.maven.model.path.DefaultPathTranslator783cb76f8efd6224
    org.apache.maven.model.path.DefaultUrlNormalizer264f5bbdf33e8550
    org.apache.maven.model.path.ProfileActivationFilePathInterpolator9c9475892d825424
    org.apache.maven.model.plugin.DefaultLifecycleBindingsInjectord7910ffc5bcad1b7
    org.apache.maven.model.plugin.DefaultLifecycleBindingsInjector.LifecycleBindingsMerger6b66e9a1eeb6ce7a
    org.apache.maven.model.plugin.DefaultPluginConfigurationExpanderf29cfac4b67f84d2
    org.apache.maven.model.plugin.DefaultReportConfigurationExpanderda0e1caddd2c2851
    org.apache.maven.model.plugin.DefaultReportingConverterb898c874c58bbb25
    org.apache.maven.model.profile.DefaultProfileActivationContext5dd8fc4af4fa5c82
    org.apache.maven.model.profile.DefaultProfileInjectore6ee63a19df47b3d
    org.apache.maven.model.profile.DefaultProfileInjector.ProfileModelMerger2ef37a2594605c69
    org.apache.maven.model.profile.DefaultProfileSelector1f8bcb1898ef0720
    org.apache.maven.model.profile.activation.FileProfileActivatoraca2fd2c8b32d0e4
    org.apache.maven.model.profile.activation.JdkVersionProfileActivator175ee1d3b59b832c
    org.apache.maven.model.profile.activation.JdkVersionProfileActivator.RangeValued3916d2981fc936c
    org.apache.maven.model.profile.activation.OperatingSystemProfileActivator0f67ccff8c2a2d7d
    org.apache.maven.model.profile.activation.PropertyProfileActivator240c49897bac05ac
    org.apache.maven.model.superpom.DefaultSuperPomProviderf0cdb9f83506cd58
    org.apache.maven.model.validation.DefaultModelValidatorc1387e900d854b7a
    org.apache.maven.monitor.logging.DefaultLog9ee3d8da8629c828
    org.apache.maven.plugin.AbstractMojo6fd40c2f3711a082
    org.apache.maven.plugin.AbstractMojo77591c82f34b876c
    org.apache.maven.plugin.AbstractMojoExecutionException374c1055e3ebeaf0
    org.apache.maven.plugin.CacheUtilscd69778e6dec4e8c
    org.apache.maven.plugin.CompoundMojoExecutionListener8dc28c743f8fac2f
    org.apache.maven.plugin.DebugConfigurationListener739ee2b01bb60433
    org.apache.maven.plugin.DefaultBuildPluginManager52067230ee816949
    org.apache.maven.plugin.DefaultExtensionRealmCacheb04884bfe1e2b85d
    org.apache.maven.plugin.DefaultPluginArtifactsCache619921af5c56c263
    org.apache.maven.plugin.DefaultPluginDescriptorCache333aa1583e1437fb
    org.apache.maven.plugin.DefaultPluginDescriptorCache.CacheKey4c88c53e2b6c394a
    org.apache.maven.plugin.DefaultPluginRealmCache14fa9d3d67f317b7
    org.apache.maven.plugin.DefaultPluginRealmCache.CacheKey35357a4dd57698e1
    org.apache.maven.plugin.MavenPluginValidator3e6eda443421e029
    org.apache.maven.plugin.Mojoda06d74d52e516f2
    org.apache.maven.plugin.MojoExecution383fda1d10386928
    org.apache.maven.plugin.MojoExecution.Source92f62ffe6c58ab35
    org.apache.maven.plugin.MojoExecutionException8824c92cf2184191
    org.apache.maven.plugin.PluginParameterExpressionEvaluator012566f2819a633e
    org.apache.maven.plugin.PluginRealmCache.CacheRecord8da50a57f750ce7b
    org.apache.maven.plugin.compiler.AbstractCompilerMojoba9c0f73d20cd36f
    org.apache.maven.plugin.compiler.CompilerMojoaeae9e57d0dc2374
    org.apache.maven.plugin.compiler.TestCompilerMojob59c474be832d348
    org.apache.maven.plugin.descriptor.MojoDescriptor05943ad6fe7163b4
    org.apache.maven.plugin.descriptor.Parameter004c16d34dc77e01
    org.apache.maven.plugin.descriptor.PluginDescriptor3271a81378a3e91a
    org.apache.maven.plugin.descriptor.PluginDescriptorBuilder5c23c4fe2d52fd9a
    org.apache.maven.plugin.ear.AbstractEarModule250153ef3566b4ae
    org.apache.maven.plugin.ear.AbstractEarMojobba3dc9cf4b4aeab
    org.apache.maven.plugin.ear.AbstractXmlWriterac65ab337bc3eb47
    org.apache.maven.plugin.ear.ApplicationXmlWriter71a7fd2106093e10
    org.apache.maven.plugin.ear.ApplicationXmlWriterContext596c60c6f09e560b
    org.apache.maven.plugin.ear.EarExecutionContext5a5815206453a9e4
    org.apache.maven.plugin.ear.EarModuleFactoryb5806b535b7f79d5
    org.apache.maven.plugin.ear.EarMojo687b33408cbe4513
    org.apache.maven.plugin.ear.GenerateApplicationXmlMojo00d332561683c2ef
    org.apache.maven.plugin.ear.WebModulebaf4ce95905919b2
    org.apache.maven.plugin.ear.output.AbstractFileNameMappingf12c2b7f23ded246
    org.apache.maven.plugin.ear.output.FileNameMappingFactory0198bedfd2a473fc
    org.apache.maven.plugin.ear.output.StandardFileNameMappinge2aa919de9efce99
    org.apache.maven.plugin.ear.util.ArtifactRepository85346cb6c6033c61
    org.apache.maven.plugin.ear.util.ArtifactTypeMappingService70ddfb2bd6a50795
    org.apache.maven.plugin.ear.util.EarMavenArchiver4f6c798268468ba8
    org.apache.maven.plugin.ear.util.JavaEEVersione687eda659f060ae
    org.apache.maven.plugin.install.AbstractInstallMojo9d4537af7cbf672a
    org.apache.maven.plugin.install.InstallMojob0c80c2fedd3661f
    org.apache.maven.plugin.internal.DefaultLegacySupporta649e273a0fe5fff
    org.apache.maven.plugin.internal.DefaultMavenPluginManager9e2c8c33b385ce70
    org.apache.maven.plugin.internal.DefaultPluginDependenciesResolverd0dc2db3104d1b87
    org.apache.maven.plugin.internal.DefaultPluginDependenciesResolver.GraphLoggerb0f5c7ce0f46129f
    org.apache.maven.plugin.internal.PlexusUtilsInjector98772aa58f03bf32
    org.apache.maven.plugin.internal.ValidatingConfigurationListener7c482fd253b4a28f
    org.apache.maven.plugin.internal.WagonExcluderf1cb28aac2a204e7
    org.apache.maven.plugin.jar.AbstractJarMojo96e3fc925c2f6e8d
    org.apache.maven.plugin.jar.JarMojo13cb105b902b63a6
    org.apache.maven.plugin.logging.SystemStreamLog0d4e49faace3b532
    org.apache.maven.plugin.prefix.internal.DefaultPluginPrefixResolverbc3de5287b6117d0
    org.apache.maven.plugin.resources.ResourcesMojo4ea33ec81ff2db0e
    org.apache.maven.plugin.resources.TestResourcesMojo293cd1797c6742fb
    org.apache.maven.plugin.surefire.AbstractSurefireMojoec6ff84d6f425979
    org.apache.maven.plugin.surefire.Summary186857283283a526
    org.apache.maven.plugin.surefire.SurefireDependencyResolverc943baf5aae1d0f9
    org.apache.maven.plugin.surefire.SurefireHelper9a21e5425b57d20a
    org.apache.maven.plugin.surefire.SurefirePlugin248e5a6e95a2a662
    org.apache.maven.plugin.surefire.SurefireProperties9647cc3d29fdef5a
    org.apache.maven.plugin.surefire.booterclient.ChecksumCalculator5d9b8b5834d28f80
    org.apache.maven.plugin.surefire.log.api.NullConsoleLogger9e19e8c6ec7e2af1
    org.apache.maven.plugin.surefire.util.DirectoryScannerbf29eacb94f5e8d8
    org.apache.maven.plugin.surefire.util.SpecificFileFilter8e33620a3d4b0b39
    org.apache.maven.plugin.version.DefaultPluginVersionRequest5ac18e8bae9da446
    org.apache.maven.plugin.version.internal.DefaultPluginVersionResolver218653f0ff040816
    org.apache.maven.plugin.version.internal.DefaultPluginVersionResolver.Key49af9bd0cb2dc1a8
    org.apache.maven.plugin.version.internal.DefaultPluginVersionResolver.Versionse7e40bb05f9e964f
    org.apache.maven.plugin.version.internal.DefaultPluginVersionResult1b09eb59a47048e8
    org.apache.maven.plugin.war.AbstractWarMojo79127c861cc86a11
    org.apache.maven.plugin.war.AbstractWarMojo.DefaultWarPackagingContextaa857f0d1621ffca
    org.apache.maven.plugin.war.Overlayfd3a232adcd9b8f2
    org.apache.maven.plugin.war.WarMojo8f0af8fc2770a4f7
    org.apache.maven.plugin.war.overlay.OverlayManager6a4130fc9c37ef36
    org.apache.maven.plugin.war.packaging.AbstractWarPackagingTask90f0fd4b4a528fd7
    org.apache.maven.plugin.war.packaging.AbstractWarPackagingTask.17f06a1373d6301cb
    org.apache.maven.plugin.war.packaging.ArtifactsPackagingTask926eb92648505b0c
    org.apache.maven.plugin.war.packaging.ClassesPackagingTaskb6f19589e472d7cc
    org.apache.maven.plugin.war.packaging.WarProjectPackagingTaskf7cfc6f214ccd188
    org.apache.maven.plugin.war.util.DependencyInfoe0dd241e59735f3a
    org.apache.maven.plugin.war.util.MappingUtils247290610cb4c541
    org.apache.maven.plugin.war.util.PathSet9c8a725583872a1d
    org.apache.maven.plugin.war.util.WarUtils072c76638b6ebea6
    org.apache.maven.plugin.war.util.WebappStructuree2b6943cd45dbd6f
    org.apache.maven.plugin.war.util.WebappStructureSerializer16ce19c0a2d6f437
    org.apache.maven.plugins.site.AbstractSiteMojo9c2cad7ee5f99d3e
    org.apache.maven.plugins.site.descriptor.AbstractSiteDescriptorMojo523bf72c44a2ec06
    org.apache.maven.plugins.site.render.AbstractSiteRenderingMojo373d7312c588ab8a
    org.apache.maven.plugins.site.render.CategorySummaryDocumentRendererbe39ae913b240b17
    org.apache.maven.plugins.site.render.ReportDocumentRenderer1b1ede1b7798b865
    org.apache.maven.plugins.site.render.ReportDocumentRenderer.MultiPageSinkFactoryb8e1e316f037cb53
    org.apache.maven.plugins.site.render.SiteMojo966a8f500b4b78d1
    org.apache.maven.project.DefaultDependencyResolutionRequest3f76895c936ac901
    org.apache.maven.project.DefaultDependencyResolutionResult80c70ab08122b7b9
    org.apache.maven.project.DefaultMavenProjectBuilder907b1aaad445e135
    org.apache.maven.project.DefaultMavenProjectHelper16785317153d48eb
    org.apache.maven.project.DefaultModelBuildingListener5289b18115537217
    org.apache.maven.project.DefaultProjectBuilder5d4d6db14dafa835
    org.apache.maven.project.DefaultProjectBuilder.1d5e06b4c2a925ef8
    org.apache.maven.project.DefaultProjectBuilder.InterimResult135f4c0851177af0
    org.apache.maven.project.DefaultProjectBuilder.InternalConfigfaace54ed7faefc6
    org.apache.maven.project.DefaultProjectBuildingHelpera76d41da388fc82c
    org.apache.maven.project.DefaultProjectBuildingRequestc00ab39911a15c13
    org.apache.maven.project.DefaultProjectBuildingResult7f3552100197ff28
    org.apache.maven.project.DefaultProjectDependenciesResolver9ff892847e4d30f0
    org.apache.maven.project.DefaultProjectDependenciesResolver.GraphLoggerff75e036460daa1d
    org.apache.maven.project.DefaultProjectRealmCacheaca5487af05d2832
    org.apache.maven.project.DependencyResolutionExceptionf9204957da94c46b
    org.apache.maven.project.ExtensionDescriptor3c3d37b531b4aeec
    org.apache.maven.project.ExtensionDescriptorBuildereef9800e07662eb4
    org.apache.maven.project.MavenProjectc2c37269fdd4e714
    org.apache.maven.project.MavenProjecte278c13fea0cfd3d
    org.apache.maven.project.ProjectBuildingRequest.RepositoryMerging0520415edfbbb44b
    org.apache.maven.project.ProjectModelResolverfaf8e235fbb93e8e
    org.apache.maven.project.ProjectRealmCache.CacheRecord6587ce8f4b8cda0d
    org.apache.maven.project.ProjectSorter8a8eb76e987f39d1
    org.apache.maven.project.ReactorModelCached5ed964a9d4a6ac6
    org.apache.maven.project.ReactorModelCache.CacheKeyd3096b88b82843b0
    org.apache.maven.project.ReactorModelPool306d9de30c04c141
    org.apache.maven.project.ReactorModelPool.CacheKeyd8a20dfc073f7afe
    org.apache.maven.project.artifact.DefaultMavenMetadataCache7f26ec3fe200ae87
    org.apache.maven.project.artifact.DefaultMetadataSourcea4a55364e6758833
    org.apache.maven.project.artifact.DefaultProjectArtifactsCache26ce32bbf6830cfb
    org.apache.maven.project.artifact.DefaultProjectArtifactsCache.CacheKeyf3c2ceec143debe5
    org.apache.maven.project.artifact.MavenMetadataSource4dc38476d6d5b94a
    org.apache.maven.project.artifact.ProjectArtifactMetadatafe1ce563b869735a
    org.apache.maven.project.artifact.ProjectArtifactsCache.CacheRecord353f88da7af54c74
    org.apache.maven.properties.internal.EnvironmentUtils2628ab9215387f81
    org.apache.maven.properties.internal.SystemPropertiesd4064fbbc1f63bdb
    org.apache.maven.reporting.exec.DefaultMavenPluginManagerHelpere6cdad14f6fcb893
    org.apache.maven.reporting.exec.DefaultMavenReportExecutore373e2a2993b9921
    org.apache.maven.reporting.exec.DefaultMavenReportExecutor.GoalWithConf336c5eb62ad9d519
    org.apache.maven.reporting.exec.MavenReportExecution53db797021677a1c
    org.apache.maven.reporting.exec.MavenReportExecutorRequest4634a69f56666a8c
    org.apache.maven.reporting.exec.ReportPlugin9d5a6289ab36a93d
    org.apache.maven.repository.DefaultMirrorSelector8a65b90f6aad901a
    org.apache.maven.repository.internal.ArtifactDescriptorReaderDelegate7e70e08338ec1aca
    org.apache.maven.repository.internal.ArtifactDescriptorUtils9d1e3ddbbd2f7b14
    org.apache.maven.repository.internal.DefaultArtifactDescriptorReader569fc18cc6af4996
    org.apache.maven.repository.internal.DefaultModelCache3f365bd3e7e56178
    org.apache.maven.repository.internal.DefaultModelCache.Key64612d28a095c9ef
    org.apache.maven.repository.internal.DefaultModelResolver793b3762523d2abc
    org.apache.maven.repository.internal.DefaultVersionRangeResolver9f1cb33d90a500ad
    org.apache.maven.repository.internal.DefaultVersionResolver2befff7e2a41bfe0
    org.apache.maven.repository.internal.DefaultVersionResolver.Key943b66adfe731778
    org.apache.maven.repository.internal.DefaultVersionResolver.Record2dd759bd6d8c4266
    org.apache.maven.repository.internal.DefaultVersionResolver.VersionInfo96c5e32cd09a2755
    org.apache.maven.repository.internal.LocalSnapshotMetadataa0ce1645d5a77f25
    org.apache.maven.repository.internal.LocalSnapshotMetadataGenerator0cc88bcd5c18ce74
    org.apache.maven.repository.internal.MavenMetadatad17906f0d50e9b5c
    org.apache.maven.repository.internal.MavenRepositorySystemUtils2b9b02d890c263cd
    org.apache.maven.repository.internal.SnapshotMetadataGeneratorFactoryb077989198dfaff0
    org.apache.maven.repository.internal.VersionsMetadatac4b7d8473d623dec
    org.apache.maven.repository.internal.VersionsMetadataGenerator5dd0193a4f5f9f5d
    org.apache.maven.repository.internal.VersionsMetadataGeneratorFactory6242b9178c7f3c1e
    org.apache.maven.repository.legacy.DefaultUpdateCheckManagerbddad9088260e069
    org.apache.maven.repository.legacy.DefaultWagonManager31c95e8342fd50ca
    org.apache.maven.repository.legacy.LegacyRepositorySystem1aaf466637035e35
    org.apache.maven.repository.legacy.metadata.AbstractArtifactMetadata6561371c2901224d
    org.apache.maven.repository.legacy.repository.DefaultArtifactRepositoryFactory9062587906e7d134
    org.apache.maven.repository.legacy.resolver.DefaultLegacyArtifactCollectora40bd9ebe550c91f
    org.apache.maven.repository.legacy.resolver.conflict.NearestConflictResolver32dd4fc55a60dd14
    org.apache.maven.rtinfo.internal.DefaultRuntimeInformationcc1edbb1cb3a69ab
    org.apache.maven.session.scope.internal.SessionScope894f2f95c1d4e66d
    org.apache.maven.session.scope.internal.SessionScope.11675c4960c2da569
    org.apache.maven.session.scope.internal.SessionScope.288e7382ed876d967
    org.apache.maven.session.scope.internal.SessionScope.Memento05d751a1ab9a6e51
    org.apache.maven.session.scope.internal.SessionScope.ScopeState1da870a44df3550f
    org.apache.maven.session.scope.internal.SessionScopeModule35e35490f42d1f39
    org.apache.maven.settings.IdentifiableBasee84b02a08dcdb5a7
    org.apache.maven.settings.Mirrorbb214fdcb93da0f8
    org.apache.maven.settings.Profile75438452d9233405
    org.apache.maven.settings.RuntimeInfo3069c92225166432
    org.apache.maven.settings.Server380bed3b5573ff46
    org.apache.maven.settings.Settings13e0cfa680a5d487
    org.apache.maven.settings.SettingsUtils3a4cf7f1c097e2fa
    org.apache.maven.settings.TrackableBaseb4c406ae420ab03b
    org.apache.maven.settings.building.DefaultSettingsBuilderd52ea4345555b7b2
    org.apache.maven.settings.building.DefaultSettingsBuilder.1c2baf10b09161c33
    org.apache.maven.settings.building.DefaultSettingsBuildingRequest7c3dee552d0a27b3
    org.apache.maven.settings.building.DefaultSettingsBuildingResultf4a6bb8335ec3fa7
    org.apache.maven.settings.building.DefaultSettingsProblemCollector8672d2edcfc211a2
    org.apache.maven.settings.building.SettingsProblem.Severitybf915ce36bfa9883
    org.apache.maven.settings.crypto.DefaultSettingsDecrypter0bc80e3fa18b5d6b
    org.apache.maven.settings.crypto.DefaultSettingsDecryptionRequestfd95806424bf28db
    org.apache.maven.settings.crypto.DefaultSettingsDecryptionResult5e8fbf71f400792e
    org.apache.maven.settings.io.DefaultSettingsReader3b64025e89111b6e
    org.apache.maven.settings.io.DefaultSettingsWritera49d25fbc5875e27
    org.apache.maven.settings.io.xpp3.SettingsXpp3Readere907a49a1fa055ae
    org.apache.maven.settings.io.xpp3.SettingsXpp3Reader.1f8a30db20a05c00b
    org.apache.maven.settings.io.xpp3.SettingsXpp3Writer2bb56d573e63ace8
    org.apache.maven.settings.merge.MavenSettingsMerger45c814df7f230f72
    org.apache.maven.settings.validation.DefaultSettingsValidatord7a0778b02f2b8df
    org.apache.maven.shared.artifact.filter.PatternExcludesArtifactFilterac6b91b7d37cbedb
    org.apache.maven.shared.artifact.filter.PatternIncludesArtifactFilter064523c90f1c4b65
    org.apache.maven.shared.dependency.graph.filter.ArtifactDependencyNodeFilterd0f82d5ab2ac3e0f
    org.apache.maven.shared.dependency.graph.internal.DefaultDependencyGraphBuilder254fd652478825f3
    org.apache.maven.shared.dependency.graph.internal.DefaultDependencyNode4878a23fac194475
    org.apache.maven.shared.dependency.graph.traversal.FilteringDependencyNodeVisitor41fac8a7c3659f21
    org.apache.maven.shared.filtering.AbstractMavenFilteringRequestbaae422bbd3c9551
    org.apache.maven.shared.filtering.DefaultMavenFileFilter6dbd193a2228d2ee
    org.apache.maven.shared.filtering.DefaultMavenFileFilter8da6fb81cab363dd
    org.apache.maven.shared.filtering.DefaultMavenFileFilter.1e3566494266e31dd
    org.apache.maven.shared.filtering.DefaultMavenFileFilter.2fafd35ef5e15886e
    org.apache.maven.shared.filtering.DefaultMavenFileFilter.3c054362a6fe6a87d
    org.apache.maven.shared.filtering.DefaultMavenFileFilter.4a7bed75da6be1879
    org.apache.maven.shared.filtering.DefaultMavenFileFilter.Wrapper766a1228854527c0
    org.apache.maven.shared.filtering.DefaultMavenResourcesFiltering1a9868cc8cc032ea
    org.apache.maven.shared.filtering.DefaultMavenResourcesFiltering5ed1dd572743aacf
    org.apache.maven.shared.filtering.MavenResourcesExecutiond94df2db724d44c9
    org.apache.maven.shared.filtering.MavenResourcesExecution43f2a5235f130449
    org.apache.maven.shared.filtering.PropertiesEscapingBackSlashValueSource3e62d6c5a1c65f02
    org.apache.maven.shared.model.fileset.FileSet4f3d37f5d8b399c5
    org.apache.maven.shared.model.fileset.Mapper5ed0cf0893103af2
    org.apache.maven.shared.model.fileset.SetBase88e4554b79b9264b
    org.apache.maven.shared.model.fileset.util.FileSetManager445fcba0ad24202f
    org.apache.maven.shared.transfer.artifact.DefaultArtifactCoordinate5cc798acf1ef643f
    org.apache.maven.shared.transfer.artifact.resolve.ArtifactResolverExceptioncf16e606a1f82c38
    org.apache.maven.shared.transfer.artifact.resolve.internal.DefaultArtifactResolver3206f88fce9c951d
    org.apache.maven.shared.transfer.artifact.resolve.internal.Invokere6434bb81c030846
    org.apache.maven.shared.transfer.artifact.resolve.internal.Maven31ArtifactResolvercaf119c3c1702bb6
    org.apache.maven.shared.transfer.artifact.resolve.internal.Maven31ArtifactResult89a6dc37eda1be7a
    org.apache.maven.shared.transfer.dependencies.resolve.DependencyResolverException2e91f0c976fde124
    org.apache.maven.shared.transfer.dependencies.resolve.internal.DefaultDependencyResolverab829e75967a7a87
    org.apache.maven.shared.transfer.dependencies.resolve.internal.Invoker854fed10c7b7650a
    org.apache.maven.shared.transfer.dependencies.resolve.internal.Maven31ArtifactResult3aa2a43870042030
    org.apache.maven.shared.transfer.dependencies.resolve.internal.Maven31DependencyResolver3ac17df47071f85c
    org.apache.maven.shared.transfer.dependencies.resolve.internal.Maven31DependencyResolver.1686656983f54e016
    org.apache.maven.shared.transfer.dependencies.resolve.internal.Maven31DependencyResolverException35f1a87372a37221
    org.apache.maven.shared.utils.StringUtilsb19fb801d90f8265
    org.apache.maven.shared.utils.logging.AnsiMessageBuilder189f070594b0090d
    org.apache.maven.shared.utils.logging.AnsiMessageBuilderfc8b7bad9307d343
    org.apache.maven.shared.utils.logging.MessageUtils0a7503bfaf36e7ad
    org.apache.maven.shared.utils.logging.MessageUtils354e3d7a8bf69f48
    org.apache.maven.shared.utils.logging.MessageUtils.142a702753bd90cb8
    org.apache.maven.shared.utils.logging.Styledb669895128758c3
    org.apache.maven.shared.utils.logging.Style2b8cf22fc65c2178
    org.apache.maven.surefire.api.booter.BaseProviderFactory3859e78bd81eea39
    org.apache.maven.surefire.api.booter.BiPropertyd22c13c56d5b4593
    org.apache.maven.surefire.api.booter.Command3cd54166633f8826
    org.apache.maven.surefire.api.booter.Constantsdecb9de81c53dc77
    org.apache.maven.surefire.api.booter.DumpErrorSingleton0fb68b22eecee565
    org.apache.maven.surefire.api.booter.ForkedProcessEventTypefb813c97649a2cb4
    org.apache.maven.surefire.api.booter.ForkingReporterFactory43a09ed486105416
    org.apache.maven.surefire.api.booter.ForkingRunListener72fc487c27ef5b8d
    org.apache.maven.surefire.api.booter.MasterProcessCommand4638438d1f9cb2b7
    org.apache.maven.surefire.api.booter.Shutdown22c5299ca66a441d
    org.apache.maven.surefire.api.cli.CommandLineOption4a638448af60a346
    org.apache.maven.surefire.api.filter.NonAbstractClassFilterf9349f28027f7865
    org.apache.maven.surefire.api.provider.AbstractProvidera003e0bc84287c70
    org.apache.maven.surefire.api.report.ConsoleOutputCapture810c9018ba7d1ecc
    org.apache.maven.surefire.api.report.ConsoleOutputCapture.ForwardingPrintStream2c7c3dde8b37b8d9
    org.apache.maven.surefire.api.report.ConsoleOutputCapture.NullOutputStream5731848fa72c76c9
    org.apache.maven.surefire.api.report.ReporterConfigurationa4d0f02ee0a3ce3b
    org.apache.maven.surefire.api.report.RunMode99815bd2f7cf25b8
    org.apache.maven.surefire.api.report.SimpleReportEntrybe57bd60074f466f
    org.apache.maven.surefire.api.report.TestOutputReportEntryb7f0e6ae6773a3e5
    org.apache.maven.surefire.api.stream.AbstractStreamDecoderc51329e6fe95e03f
    org.apache.maven.surefire.api.stream.AbstractStreamDecoder.BufferedStream0e036d9195140045
    org.apache.maven.surefire.api.stream.AbstractStreamDecoder.Memento50fa22818cea4206
    org.apache.maven.surefire.api.stream.AbstractStreamDecoder.Segmentec7b2e9f3dc519b5
    org.apache.maven.surefire.api.stream.AbstractStreamDecoder.StreamReadStatusb28e22fff7af7760
    org.apache.maven.surefire.api.stream.AbstractStreamEncoder5b9d2cab05438b39
    org.apache.maven.surefire.api.stream.SegmentTypea352bcb443bb6539
    org.apache.maven.surefire.api.suite.RunResult14b135b9dcad68f4
    org.apache.maven.surefire.api.testset.DirectoryScannerParameters011c1405154cf543
    org.apache.maven.surefire.api.testset.IncludedExcludedPatternse9dcd696bf90972f
    org.apache.maven.surefire.api.testset.ResolvedTest89f52bebbeb73147
    org.apache.maven.surefire.api.testset.ResolvedTest.ClassMatcherc5f953b9f15d7ab4
    org.apache.maven.surefire.api.testset.ResolvedTest.MethodMatcher7b60e64bb228414b
    org.apache.maven.surefire.api.testset.ResolvedTest.Type2a3fe66966797e51
    org.apache.maven.surefire.api.testset.RunOrderParameters54e3b7abf0f0a29a
    org.apache.maven.surefire.api.testset.TestArtifactInfo534706d1cf843371
    org.apache.maven.surefire.api.testset.TestListResolverdf95312288764ee2
    org.apache.maven.surefire.api.testset.TestRequestc693581994b610fb
    org.apache.maven.surefire.api.util.CloseableIterator1bb59460a90e1562
    org.apache.maven.surefire.api.util.DefaultRunOrderCalculator2be55f855ffc9c23
    org.apache.maven.surefire.api.util.DefaultScanResult3abe973f1a2038a4
    org.apache.maven.surefire.api.util.ReflectionUtils463b61419dafb4bc
    org.apache.maven.surefire.api.util.RunOrdera5c43ed7ff239d28
    org.apache.maven.surefire.api.util.TestsToRun1a59fa62362c2dd4
    org.apache.maven.surefire.api.util.TestsToRun.ClassesIterator3054f1187d144893
    org.apache.maven.surefire.api.util.internal.AbstractNoninterruptibleReadableChannelb76efd5ee4f6a78a
    org.apache.maven.surefire.api.util.internal.AbstractNoninterruptibleWritableChannel7b40a9206100f626
    org.apache.maven.surefire.api.util.internal.Channelsa28ebb2dc3d003c6
    org.apache.maven.surefire.api.util.internal.Channels.31911457c5208109a
    org.apache.maven.surefire.api.util.internal.Channels.461df49d28956b732
    org.apache.maven.surefire.api.util.internal.ClassMethod831eee1f29d6b004
    org.apache.maven.surefire.api.util.internal.DaemonThreadFactory4065ee5e2ad99385
    org.apache.maven.surefire.api.util.internal.DaemonThreadFactory.NamedThreadFactory0dc63f2f250c8f58
    org.apache.maven.surefire.api.util.internal.DumpFileUtils260268350116ea1a
    org.apache.maven.surefire.api.util.internal.ImmutableMapc8d76b0bb433e1e6
    org.apache.maven.surefire.api.util.internal.ImmutableMap.Node61855d8450e86cb5
    org.apache.maven.surefire.api.util.internal.ObjectUtilsd0584b88701e9b97
    org.apache.maven.surefire.api.util.internal.TestClassMethodNameUtilsa01f540094a55e8c
    org.apache.maven.surefire.booter.AbstractPathConfiguration2ad3d057ec281500
    org.apache.maven.surefire.booter.BooterDeserializera2a1a3132d868a74
    org.apache.maven.surefire.booter.ClassLoaderConfiguration5bafac5e09ac0782
    org.apache.maven.surefire.booter.Classpath81f738f937cf4b38
    org.apache.maven.surefire.booter.ClasspathConfigurationb651758fedc3de2d
    org.apache.maven.surefire.booter.CommandReader440cf8805d3444be
    org.apache.maven.surefire.booter.CommandReader.16e995a711f46e676
    org.apache.maven.surefire.booter.CommandReader.CommandRunnable7f7bfee61ebca85e
    org.apache.maven.surefire.booter.ForkedBooterff24aeec916b680b
    org.apache.maven.surefire.booter.ForkedBooter.173179ebb6b41b643
    org.apache.maven.surefire.booter.ForkedBooter.3c51baabea2b75554
    org.apache.maven.surefire.booter.ForkedBooter.468ca1df4a9ada348
    org.apache.maven.surefire.booter.ForkedBooter.608fe853c879dd1a6
    org.apache.maven.surefire.booter.ForkedBooter.78cca77fe0fd3c98d
    org.apache.maven.surefire.booter.ForkedBooter.8779c6068c1dac1db
    org.apache.maven.surefire.booter.ForkedBooter.PingScheduler6e83f53202050979
    org.apache.maven.surefire.booter.ForkedNodeArge055a24d27c554f3
    org.apache.maven.surefire.booter.PpidChecker921ca312a6f63114
    org.apache.maven.surefire.booter.ProcessCheckerType9c8497621409bb1e
    org.apache.maven.surefire.booter.PropertiesWrapperc4362cb430c125af
    org.apache.maven.surefire.booter.ProviderConfiguration84eb716577efc3a7
    org.apache.maven.surefire.booter.StartupConfigurationf457135a627728a6
    org.apache.maven.surefire.booter.SystemPropertyManager0446c7c116836016
    org.apache.maven.surefire.booter.TypeEncodedValue1b039936542eee72
    org.apache.maven.surefire.booter.spi.AbstractMasterProcessChannelProcessorFactoryc30b5b062f066468
    org.apache.maven.surefire.booter.spi.AbstractMasterProcessChannelProcessorFactory.1644e111f23817fd3
    org.apache.maven.surefire.booter.spi.AbstractMasterProcessChannelProcessorFactory.247b08c480603fa8a
    org.apache.maven.surefire.booter.spi.CommandChannelDecoder65f2965c86411193
    org.apache.maven.surefire.booter.spi.EventChannelEncoder114071f00780f71e
    org.apache.maven.surefire.booter.spi.EventChannelEncoder.StackTracee7231bc2c7014c40
    org.apache.maven.surefire.booter.spi.LegacyMasterProcessChannelProcessorFactoryb54085754461a0d1
    org.apache.maven.surefire.booter.spi.SurefireMasterProcessChannelProcessorFactory132a213649249d64
    org.apache.maven.surefire.booter.stream.CommandDecoder0d40efcc428f82e2
    org.apache.maven.surefire.booter.stream.CommandDecoder.19d88d04fa41adab4
    org.apache.maven.surefire.booter.stream.EventEncoder4bdbe84daf58c435
    org.apache.maven.surefire.common.junit3.JUnit3TestCheckerbbad74a9945614a4
    org.apache.maven.surefire.common.junit4.JUnit4ProviderUtilfa2afc137d4ba7b3
    org.apache.maven.surefire.common.junit4.JUnit4Reflector23b83cd8942b7f95
    org.apache.maven.surefire.common.junit4.JUnit4RunListenerd8d5e5130dcf4b9b
    org.apache.maven.surefire.common.junit4.JUnit4RunListenerFactoryccfd1352f097d7b8
    org.apache.maven.surefire.common.junit4.JUnit4TestCheckerf6cf831ca6699119
    org.apache.maven.surefire.common.junit4.JUnitTestFailureListener03f07d8828d7aca4
    org.apache.maven.surefire.common.junit4.Notifiera943b086c230616e
    org.apache.maven.surefire.junit4.JUnit4Provider5d773610b092faec
    org.apache.maven.surefire.junit4.JUnit4Provider.1e7b4bc1546ba10b9
    org.apache.maven.surefire.report.ClassMethodIndexer8b31a053539323b7
    org.apache.maven.surefire.shared.lang3.JavaVersion4e21c3be19560aac
    org.apache.maven.surefire.shared.lang3.SystemUtilse5eafc9ce14dcbec
    org.apache.maven.surefire.shared.lang3.math.NumberUtils11e46630af73f131
    org.apache.maven.surefire.shared.utils.StringUtilsabd8480c7152bf46
    org.apache.maven.surefire.shared.utils.cli.ShutdownHookUtils011b23cd829ec86c
    org.apache.maven.surefire.suite.RunResult4f4ef8baf9a9eaed
    org.apache.maven.surefire.util.DefaultScanResult61b36318792d6986
    org.apache.maven.toolchain.DefaultToolchainManagerd3bc8ab79d9d2149
    org.apache.maven.toolchain.building.DefaultToolchainsBuilder5beed1d4ecfc183b
    org.apache.maven.toolchain.building.DefaultToolchainsBuilder.18c1240fa57fc6fe1
    org.apache.maven.toolchain.building.DefaultToolchainsBuildingRequest14074be7934bc5af
    org.apache.maven.toolchain.building.DefaultToolchainsBuildingResult1562e641f20c5203
    org.apache.maven.toolchain.io.DefaultToolchainsReader02afdf4f944e0788
    org.apache.maven.toolchain.io.DefaultToolchainsWriter562f61ad476a3603
    org.apache.maven.toolchain.merge.MavenToolchainMergerddb2d24277429787
    org.apache.maven.toolchain.model.PersistedToolchains455ea68a131835be
    org.apache.maven.toolchain.model.ToolchainModeld8c4444fcd9e1ee9
    org.apache.maven.toolchain.model.TrackableBase18fbbff8b571c756
    org.apache.maven.toolchain.model.io.xpp3.MavenToolchainsXpp3Reader29150b5b4962cdf3
    org.apache.maven.toolchain.model.io.xpp3.MavenToolchainsXpp3Reader.1917b5cda2c479740
    org.apache.maven.toolchain.model.io.xpp3.MavenToolchainsXpp3Writer3d28b2a599a785b4
    org.apache.maven.wagon.AbstractWagon5ae9397f8e601cb1
    org.apache.maven.wagon.InputDatafcd10bc3d147fbdc
    org.apache.maven.wagon.LazyFileOutputStreama7feec53fae87976
    org.apache.maven.wagon.PathUtils64ce8de8c8c358f9
    org.apache.maven.wagon.ResourceDoesNotExistException94c7c1a08ee61096
    org.apache.maven.wagon.StreamWagonc868d0804a14d226
    org.apache.maven.wagon.WagonException29cfde06e058bf34
    org.apache.maven.wagon.authentication.AuthenticationInfode871596e7d5a0da
    org.apache.maven.wagon.events.SessionEventd43f3ca1f620ba24
    org.apache.maven.wagon.events.SessionEventSupportcd0165b88f29289a
    org.apache.maven.wagon.events.TransferEvent72f0ea8b2c7f2420
    org.apache.maven.wagon.events.TransferEventSupport9e3874239004587a
    org.apache.maven.wagon.events.WagonEvent0a2f616d66499c1e
    org.apache.maven.wagon.observers.AbstractTransferListener5acab2b8e92e6b72
    org.apache.maven.wagon.providers.http.HttpWagon45b05fdab0b400e5
    org.apache.maven.wagon.providers.http.httpclient.Constsb37ce80ae2603069
    org.apache.maven.wagon.providers.http.httpclient.HttpHoste1124b9c5990dd4e
    org.apache.maven.wagon.providers.http.httpclient.HttpVersionb0a9eec935bc0f3b
    org.apache.maven.wagon.providers.http.httpclient.ProtocolVersiona0558c937b254010
    org.apache.maven.wagon.providers.http.httpclient.auth.AuthProtocolState9af8f086d721c2bd
    org.apache.maven.wagon.providers.http.httpclient.auth.AuthState613b2c45312dd01b
    org.apache.maven.wagon.providers.http.httpclient.client.config.RequestConfig6da264101c4b1a8f
    org.apache.maven.wagon.providers.http.httpclient.client.config.RequestConfig.Builder9650979f28dbf031
    org.apache.maven.wagon.providers.http.httpclient.client.entity.DeflateInputStreamFactory23dff7d4c131508b
    org.apache.maven.wagon.providers.http.httpclient.client.entity.GZIPInputStreamFactory329a65456e04df60
    org.apache.maven.wagon.providers.http.httpclient.client.methods.AbstractExecutionAwareRequest1cc4a232c9e1d1e3
    org.apache.maven.wagon.providers.http.httpclient.client.methods.HttpGet1b0023b610ae71fe
    org.apache.maven.wagon.providers.http.httpclient.client.methods.HttpHead8f302f57ae1cd002
    org.apache.maven.wagon.providers.http.httpclient.client.methods.HttpRequestBase4393762331dec4cb
    org.apache.maven.wagon.providers.http.httpclient.client.methods.HttpRequestWrappereaa09ece7af78e46
    org.apache.maven.wagon.providers.http.httpclient.client.methods.RequestBuilderdc65eda26d115dcd
    org.apache.maven.wagon.providers.http.httpclient.client.methods.RequestBuilder.InternalRequest160035fc7fd7bbf7
    org.apache.maven.wagon.providers.http.httpclient.client.protocol.HttpClientContext5d57d61f12b9af96
    org.apache.maven.wagon.providers.http.httpclient.client.protocol.RequestAcceptEncodinga5ca9d5c101404f1
    org.apache.maven.wagon.providers.http.httpclient.client.protocol.RequestAddCookiesc74f83cdcfc24db5
    org.apache.maven.wagon.providers.http.httpclient.client.protocol.RequestAuthCache5b5d1a101427c66a
    org.apache.maven.wagon.providers.http.httpclient.client.protocol.RequestClientConnControlfb3b8d2c173674d7
    org.apache.maven.wagon.providers.http.httpclient.client.protocol.RequestDefaultHeaders1437b5cbda30e735
    org.apache.maven.wagon.providers.http.httpclient.client.protocol.RequestExpectContinue3626c21ecdf1249e
    org.apache.maven.wagon.providers.http.httpclient.client.protocol.ResponseContentEncodinga64a879887711218
    org.apache.maven.wagon.providers.http.httpclient.client.protocol.ResponseProcessCookies437191fca73ec0dc
    org.apache.maven.wagon.providers.http.httpclient.client.utils.DateUtils9e7df9c4fb4937a2
    org.apache.maven.wagon.providers.http.httpclient.client.utils.DateUtils.DateFormatHolder8ac56481f1fcb2b8
    org.apache.maven.wagon.providers.http.httpclient.client.utils.URIBuilderd603714633cd626e
    org.apache.maven.wagon.providers.http.httpclient.client.utils.URIUtils20623ae29e172d87
    org.apache.maven.wagon.providers.http.httpclient.client.utils.URIUtils.UriFlag9c2ef1b231ac41a3
    org.apache.maven.wagon.providers.http.httpclient.client.utils.URLEncodedUtilsf1bae19df4153f20
    org.apache.maven.wagon.providers.http.httpclient.config.ConnectionConfig535ad23c06cfd7e0
    org.apache.maven.wagon.providers.http.httpclient.config.ConnectionConfig.Builder4444443bf9416efb
    org.apache.maven.wagon.providers.http.httpclient.config.MessageConstraints2c48c4999c40f268
    org.apache.maven.wagon.providers.http.httpclient.config.MessageConstraints.Buildere6934329f6e9b61b
    org.apache.maven.wagon.providers.http.httpclient.config.Registry3da8e88d7eca0b37
    org.apache.maven.wagon.providers.http.httpclient.config.RegistryBuildercb6260fc7658c1e2
    org.apache.maven.wagon.providers.http.httpclient.config.SocketConfig8933fcd12fd385ea
    org.apache.maven.wagon.providers.http.httpclient.config.SocketConfig.Builder0d60c94fc72ff19d
    org.apache.maven.wagon.providers.http.httpclient.conn.EofSensorInputStreambf3531fdff74c16d
    org.apache.maven.wagon.providers.http.httpclient.conn.routing.BasicRouteDirector7495cbe12f83146a
    org.apache.maven.wagon.providers.http.httpclient.conn.routing.HttpRoute712720d530bcb541
    org.apache.maven.wagon.providers.http.httpclient.conn.routing.RouteInfo.LayerType9679af32838a4775
    org.apache.maven.wagon.providers.http.httpclient.conn.routing.RouteInfo.TunnelTypecde6d63c71f1e3b1
    org.apache.maven.wagon.providers.http.httpclient.conn.routing.RouteTracker1befbe3b7f9929e5
    org.apache.maven.wagon.providers.http.httpclient.conn.socket.PlainConnectionSocketFactorya0e7c5819160df32
    org.apache.maven.wagon.providers.http.httpclient.conn.ssl.AbstractVerifierae2130da140d654b
    org.apache.maven.wagon.providers.http.httpclient.conn.ssl.AllowAllHostnameVerifiere895e2bce74cc51b
    org.apache.maven.wagon.providers.http.httpclient.conn.ssl.BrowserCompatHostnameVerifierf489ed0b533d4982
    org.apache.maven.wagon.providers.http.httpclient.conn.ssl.DefaultHostnameVerifier23aed894ba68bdc8
    org.apache.maven.wagon.providers.http.httpclient.conn.ssl.SSLConnectionSocketFactory03b0b14db734c198
    org.apache.maven.wagon.providers.http.httpclient.conn.ssl.StrictHostnameVerifier20154d4828d64a0c
    org.apache.maven.wagon.providers.http.httpclient.conn.ssl.SubjectNamed178eb43f3a57b7e
    org.apache.maven.wagon.providers.http.httpclient.conn.util.DomainTypef391afee0b9e389a
    org.apache.maven.wagon.providers.http.httpclient.conn.util.InetAddressUtils5d086a034de0ef15
    org.apache.maven.wagon.providers.http.httpclient.conn.util.PublicSuffixList88c53717d10d4941
    org.apache.maven.wagon.providers.http.httpclient.conn.util.PublicSuffixListParser512bc658ef93c215
    org.apache.maven.wagon.providers.http.httpclient.conn.util.PublicSuffixMatcher9147c1ef1812a040
    org.apache.maven.wagon.providers.http.httpclient.conn.util.PublicSuffixMatcherLoader94ef0c59a65cc330
    org.apache.maven.wagon.providers.http.httpclient.cookie.CookieIdentityComparator251511210e320127
    org.apache.maven.wagon.providers.http.httpclient.cookie.CookieOrigincf31afd9aca3031b
    org.apache.maven.wagon.providers.http.httpclient.entity.AbstractHttpEntity2abb0c85beb0ed02
    org.apache.maven.wagon.providers.http.httpclient.entity.BasicHttpEntityb3fd14a4a7a74088
    org.apache.maven.wagon.providers.http.httpclient.entity.HttpEntityWrapperdf810fc76492f7c7
    org.apache.maven.wagon.providers.http.httpclient.impl.BHttpConnectionBased1ad5f5983c0aed2
    org.apache.maven.wagon.providers.http.httpclient.impl.DefaultBHttpClientConnection2f86c147656d72e9
    org.apache.maven.wagon.providers.http.httpclient.impl.DefaultConnectionReuseStrategyfeefa5ecbec29e87
    org.apache.maven.wagon.providers.http.httpclient.impl.DefaultHttpResponseFactory5eddd3ad3da9adc5
    org.apache.maven.wagon.providers.http.httpclient.impl.EnglishReasonPhraseCatalog5fc3f6b20ee3f95c
    org.apache.maven.wagon.providers.http.httpclient.impl.HttpConnectionMetricsImpl5abacd6f572623be
    org.apache.maven.wagon.providers.http.httpclient.impl.auth.BasicSchemeFactory08fbe8c77088e427
    org.apache.maven.wagon.providers.http.httpclient.impl.auth.DigestSchemeFactory26e76c1fd24f9782
    org.apache.maven.wagon.providers.http.httpclient.impl.auth.HttpAuthenticatore2cd1c1de47e0ae6
    org.apache.maven.wagon.providers.http.httpclient.impl.auth.HttpAuthenticator.1c8104f9a2856cf9d
    org.apache.maven.wagon.providers.http.httpclient.impl.auth.NTLMSchemeFactorya5126b58dd673dc0
    org.apache.maven.wagon.providers.http.httpclient.impl.client.AuthenticationStrategyImpl0c976bbe47b9936f
    org.apache.maven.wagon.providers.http.httpclient.impl.client.BasicAuthCache743042a881d39ada
    org.apache.maven.wagon.providers.http.httpclient.impl.client.BasicCookieStore2060285068053086
    org.apache.maven.wagon.providers.http.httpclient.impl.client.BasicCredentialsProvider6b9faf4216c42f06
    org.apache.maven.wagon.providers.http.httpclient.impl.client.CloseableHttpClient74f982211ffa4ba6
    org.apache.maven.wagon.providers.http.httpclient.impl.client.CookieSpecRegistriese54de970f042a0aa
    org.apache.maven.wagon.providers.http.httpclient.impl.client.DefaultClientConnectionReuseStrategyec14ce3a62be2acf
    org.apache.maven.wagon.providers.http.httpclient.impl.client.DefaultConnectionKeepAliveStrategy85fa57787443f5e1
    org.apache.maven.wagon.providers.http.httpclient.impl.client.DefaultHttpRequestRetryHandler3a05bc4bc6d7a47d
    org.apache.maven.wagon.providers.http.httpclient.impl.client.DefaultRedirectStrategyd839a55459f5ad65
    org.apache.maven.wagon.providers.http.httpclient.impl.client.HttpClientBuilder7e824048d1e5bb6e
    org.apache.maven.wagon.providers.http.httpclient.impl.client.HttpClientBuilder.264a8cf9cd24625af
    org.apache.maven.wagon.providers.http.httpclient.impl.client.InternalHttpClientf26739b61c4d3a38
    org.apache.maven.wagon.providers.http.httpclient.impl.client.NoopUserTokenHandler0a4794c75ae0d605
    org.apache.maven.wagon.providers.http.httpclient.impl.client.ProxyAuthenticationStrategyde5d7301454120f9
    org.apache.maven.wagon.providers.http.httpclient.impl.client.RedirectLocations7f72cf1cd642f9d6
    org.apache.maven.wagon.providers.http.httpclient.impl.client.StandardHttpRequestRetryHandlerb8f89e152c95807c
    org.apache.maven.wagon.providers.http.httpclient.impl.client.SystemDefaultCredentialsProvider8d09482f3b1b9416
    org.apache.maven.wagon.providers.http.httpclient.impl.client.TargetAuthenticationStrategyaa2a1b792c8da7fc
    org.apache.maven.wagon.providers.http.httpclient.impl.conn.CPool93d6da2f2d344728
    org.apache.maven.wagon.providers.http.httpclient.impl.conn.CPoolEntry2a9681728d46891c
    org.apache.maven.wagon.providers.http.httpclient.impl.conn.CPoolProxy4539f61f4bf56cc2
    org.apache.maven.wagon.providers.http.httpclient.impl.conn.DefaultHttpClientConnectionOperator0545502c3279c3cc
    org.apache.maven.wagon.providers.http.httpclient.impl.conn.DefaultHttpResponseParser6438f7b496d34123
    org.apache.maven.wagon.providers.http.httpclient.impl.conn.DefaultHttpResponseParserFactory280ebebaf0f37f91
    org.apache.maven.wagon.providers.http.httpclient.impl.conn.DefaultManagedHttpClientConnectionb6b368a743731736
    org.apache.maven.wagon.providers.http.httpclient.impl.conn.DefaultRoutePlanner9adda2c1541cb484
    org.apache.maven.wagon.providers.http.httpclient.impl.conn.DefaultSchemePortResolver7a5efb4d9ce1059b
    org.apache.maven.wagon.providers.http.httpclient.impl.conn.LoggingManagedHttpClientConnection4493417d7e3a237e
    org.apache.maven.wagon.providers.http.httpclient.impl.conn.ManagedHttpClientConnectionFactory8e243e72a8805770
    org.apache.maven.wagon.providers.http.httpclient.impl.conn.PoolingHttpClientConnectionManagera09d1d8ef4158d96
    org.apache.maven.wagon.providers.http.httpclient.impl.conn.PoolingHttpClientConnectionManager.173e723ca7fb6e098
    org.apache.maven.wagon.providers.http.httpclient.impl.conn.PoolingHttpClientConnectionManager.ConfigDatae51692fb32b2855a
    org.apache.maven.wagon.providers.http.httpclient.impl.conn.PoolingHttpClientConnectionManager.InternalConnectionFactory42038d6389f2dd06
    org.apache.maven.wagon.providers.http.httpclient.impl.conn.SystemDefaultDnsResolver9275dfa34a330ff7
    org.apache.maven.wagon.providers.http.httpclient.impl.conn.SystemDefaultRoutePlanner045dc9387752120e
    org.apache.maven.wagon.providers.http.httpclient.impl.conn.SystemDefaultRoutePlanner.176f062a4895046eb
    org.apache.maven.wagon.providers.http.httpclient.impl.conn.Wire9c9019b195aa8183
    org.apache.maven.wagon.providers.http.httpclient.impl.cookie.AbstractCookieAttributeHandler2ac3e932388319b9
    org.apache.maven.wagon.providers.http.httpclient.impl.cookie.AbstractCookieSpec9c2c66d45ef397c6
    org.apache.maven.wagon.providers.http.httpclient.impl.cookie.BasicCommentHandler72b2712ccf4883a9
    org.apache.maven.wagon.providers.http.httpclient.impl.cookie.BasicDomainHandler3d2fbf550b6dce03
    org.apache.maven.wagon.providers.http.httpclient.impl.cookie.BasicExpiresHandlera85c01bec415d55a
    org.apache.maven.wagon.providers.http.httpclient.impl.cookie.BasicMaxAgeHandler3c8169415abf44b6
    org.apache.maven.wagon.providers.http.httpclient.impl.cookie.BasicPathHandler279280c258e835f9
    org.apache.maven.wagon.providers.http.httpclient.impl.cookie.BasicSecureHandler66f2b392640ee089
    org.apache.maven.wagon.providers.http.httpclient.impl.cookie.CookieSpecBase1f9e4e4860a43e10
    org.apache.maven.wagon.providers.http.httpclient.impl.cookie.DefaultCookieSpec00d04cfe3800b297
    org.apache.maven.wagon.providers.http.httpclient.impl.cookie.DefaultCookieSpecProvidere3978ea7976b1728
    org.apache.maven.wagon.providers.http.httpclient.impl.cookie.DefaultCookieSpecProvider.CompatibilityLevelf8f0c58d8d502aa3
    org.apache.maven.wagon.providers.http.httpclient.impl.cookie.IgnoreSpecProvider4525a96689587646
    org.apache.maven.wagon.providers.http.httpclient.impl.cookie.NetscapeDraftSpeca9ab8cb57befc94e
    org.apache.maven.wagon.providers.http.httpclient.impl.cookie.NetscapeDraftSpecProvider6db145dd2aea27f8
    org.apache.maven.wagon.providers.http.httpclient.impl.cookie.PublicSuffixDomainFilter3fdd56641d3755bc
    org.apache.maven.wagon.providers.http.httpclient.impl.cookie.RFC2109DomainHandler1bccc1d60152e27b
    org.apache.maven.wagon.providers.http.httpclient.impl.cookie.RFC2109Spec713296e938046cdd
    org.apache.maven.wagon.providers.http.httpclient.impl.cookie.RFC2109VersionHandler8e414be10267da9a
    org.apache.maven.wagon.providers.http.httpclient.impl.cookie.RFC2965CommentUrlAttributeHandlerdf336238e09e9d52
    org.apache.maven.wagon.providers.http.httpclient.impl.cookie.RFC2965DiscardAttributeHandlerfbce62a166eeb9dc
    org.apache.maven.wagon.providers.http.httpclient.impl.cookie.RFC2965DomainAttributeHandler6c1ea8e67b3a20c6
    org.apache.maven.wagon.providers.http.httpclient.impl.cookie.RFC2965PortAttributeHandleraef46b16fc49a236
    org.apache.maven.wagon.providers.http.httpclient.impl.cookie.RFC2965Specbd29e1cf99ddf8df
    org.apache.maven.wagon.providers.http.httpclient.impl.cookie.RFC2965VersionAttributeHandlerb076fc5b33dbedb8
    org.apache.maven.wagon.providers.http.httpclient.impl.cookie.RFC6265CookieSpecProviderb89f030bff60e757
    org.apache.maven.wagon.providers.http.httpclient.impl.cookie.RFC6265CookieSpecProvider.CompatibilityLevel7b8cf617a205f110
    org.apache.maven.wagon.providers.http.httpclient.impl.entity.LaxContentLengthStrategyd9b1dc7c2b072ab9
    org.apache.maven.wagon.providers.http.httpclient.impl.entity.StrictContentLengthStrategy1fd307deadc56dfc
    org.apache.maven.wagon.providers.http.httpclient.impl.execchain.ConnectionHoldere4d1842928d05c04
    org.apache.maven.wagon.providers.http.httpclient.impl.execchain.HttpResponseProxy4169b60b48ef2996
    org.apache.maven.wagon.providers.http.httpclient.impl.execchain.MainClientExec8dfd913a3520c274
    org.apache.maven.wagon.providers.http.httpclient.impl.execchain.ProtocolExece71380158420814c
    org.apache.maven.wagon.providers.http.httpclient.impl.execchain.RedirectExec68a003df5a3868af
    org.apache.maven.wagon.providers.http.httpclient.impl.execchain.RequestEntityProxye33c77a4c6f99501
    org.apache.maven.wagon.providers.http.httpclient.impl.execchain.ResponseEntityProxy258c14e2f9900bc1
    org.apache.maven.wagon.providers.http.httpclient.impl.execchain.RetryExecdb48a26f5bbb103a
    org.apache.maven.wagon.providers.http.httpclient.impl.io.AbstractMessageParser92e668ebfc6d8aaa
    org.apache.maven.wagon.providers.http.httpclient.impl.io.AbstractMessageWriter49b183ca327abb5f
    org.apache.maven.wagon.providers.http.httpclient.impl.io.ChunkedInputStream53d86f20882399aa
    org.apache.maven.wagon.providers.http.httpclient.impl.io.ContentLengthInputStream8def5ad7047cfaee
    org.apache.maven.wagon.providers.http.httpclient.impl.io.DefaultHttpRequestWriter72ca02c98ccaf2e3
    org.apache.maven.wagon.providers.http.httpclient.impl.io.DefaultHttpRequestWriterFactoryd8895df57885c4f7
    org.apache.maven.wagon.providers.http.httpclient.impl.io.EmptyInputStreamce9425360817ce35
    org.apache.maven.wagon.providers.http.httpclient.impl.io.HttpTransportMetricsImpl14c4379e6643e8c9
    org.apache.maven.wagon.providers.http.httpclient.impl.io.SessionInputBufferImple2a86c6fd3ce8aea
    org.apache.maven.wagon.providers.http.httpclient.impl.io.SessionOutputBufferImple7e42f5f3b38bd12
    org.apache.maven.wagon.providers.http.httpclient.message.AbstractHttpMessageffd6c85394e0819f
    org.apache.maven.wagon.providers.http.httpclient.message.BasicHeader86f575a7f597cd8c
    org.apache.maven.wagon.providers.http.httpclient.message.BasicHeaderElement1784f15c719ee935
    org.apache.maven.wagon.providers.http.httpclient.message.BasicHeaderElementIteratore1b5cf0cb55bd089
    org.apache.maven.wagon.providers.http.httpclient.message.BasicHeaderIterator5ecf3e47521bc8d1
    org.apache.maven.wagon.providers.http.httpclient.message.BasicHeaderValueParserf19a7c27f0b7c170
    org.apache.maven.wagon.providers.http.httpclient.message.BasicHttpResponsedb29f25be4727165
    org.apache.maven.wagon.providers.http.httpclient.message.BasicLineFormatterfc9f1afa989b1148
    org.apache.maven.wagon.providers.http.httpclient.message.BasicLineParser65ab2537778f2427
    org.apache.maven.wagon.providers.http.httpclient.message.BasicListHeaderIterator8604cb54a35ad82e
    org.apache.maven.wagon.providers.http.httpclient.message.BasicNameValuePair86621cbff7ce69fd
    org.apache.maven.wagon.providers.http.httpclient.message.BasicRequestLine3d592cd9defecbe3
    org.apache.maven.wagon.providers.http.httpclient.message.BasicStatusLineaf541da3317c8c98
    org.apache.maven.wagon.providers.http.httpclient.message.BasicTokenIteratora20fa5a176b2c745
    org.apache.maven.wagon.providers.http.httpclient.message.BufferedHeader6329007479b60a03
    org.apache.maven.wagon.providers.http.httpclient.message.HeaderGroup323c4d1beef2c8f0
    org.apache.maven.wagon.providers.http.httpclient.message.ParserCursor6861e895b1d82ced
    org.apache.maven.wagon.providers.http.httpclient.message.TokenParser1d36fcdb8ebd78fb
    org.apache.maven.wagon.providers.http.httpclient.params.AbstractHttpParams6f55e576db585bb2
    org.apache.maven.wagon.providers.http.httpclient.params.BasicHttpParams9979d896835e32e8
    org.apache.maven.wagon.providers.http.httpclient.params.HttpProtocolParams4ab782763415fd6b
    org.apache.maven.wagon.providers.http.httpclient.pool.AbstractConnPool54b10f33c4117501
    org.apache.maven.wagon.providers.http.httpclient.pool.AbstractConnPool.1a94ad40467d01d44
    org.apache.maven.wagon.providers.http.httpclient.pool.AbstractConnPool.2a1e51c19dda2c649
    org.apache.maven.wagon.providers.http.httpclient.pool.PoolEntry31750b2abcf040b3
    org.apache.maven.wagon.providers.http.httpclient.pool.RouteSpecificPool3222ea71c11654d7
    org.apache.maven.wagon.providers.http.httpclient.protocol.BasicHttpContext8893900594796a22
    org.apache.maven.wagon.providers.http.httpclient.protocol.ChainBuilderc5fe5518b6e0d1ab
    org.apache.maven.wagon.providers.http.httpclient.protocol.HTTP7f5cf9193b63ada3
    org.apache.maven.wagon.providers.http.httpclient.protocol.HttpCoreContext5e33642e6bb1a7f2
    org.apache.maven.wagon.providers.http.httpclient.protocol.HttpProcessorBuilder8d52fe4c5deffa5d
    org.apache.maven.wagon.providers.http.httpclient.protocol.HttpRequestExecutorfbd884ef3972970a
    org.apache.maven.wagon.providers.http.httpclient.protocol.ImmutableHttpProcessord12202c0dcc1f3e6
    org.apache.maven.wagon.providers.http.httpclient.protocol.RequestContent079fd3f8aa99067b
    org.apache.maven.wagon.providers.http.httpclient.protocol.RequestTargetHost3902597983f466e2
    org.apache.maven.wagon.providers.http.httpclient.protocol.RequestUserAgent11e3d0be4c91b33b
    org.apache.maven.wagon.providers.http.httpclient.util.Argscebb1011ab142426
    org.apache.maven.wagon.providers.http.httpclient.util.Assertsa1e9b5a5f21546a0
    org.apache.maven.wagon.providers.http.httpclient.util.ByteArrayBuffer4fb78a0692151c82
    org.apache.maven.wagon.providers.http.httpclient.util.CharArrayBufferabf455a37f931b2e
    org.apache.maven.wagon.providers.http.httpclient.util.EntityUtils7aa68bcbe6769f64
    org.apache.maven.wagon.providers.http.httpclient.util.LangUtils253515c78e9a098a
    org.apache.maven.wagon.providers.http.httpclient.util.TextUtilsfad3b86198d62d8b
    org.apache.maven.wagon.providers.http.httpclient.util.VersionInfo1db136cd1155fb9f
    org.apache.maven.wagon.providers.http.wagon.shared.AbstractHttpClientWagona52d281688ee583f
    org.apache.maven.wagon.providers.http.wagon.shared.EncodingUtild4bcafebf236bce4
    org.apache.maven.wagon.providers.http.wagon.shared.HttpMessageUtilsb43ffc646c6b6a19
    org.apache.maven.wagon.providers.http.wagon.shared.WagonRedirectStrategy9e63775efe02b2da
    org.apache.maven.wagon.repository.Repository7c75eedbb607fc76
    org.apache.maven.wagon.repository.RepositoryPermissionsd47aae3f67c8a230
    org.apache.maven.wagon.resource.Resource4341e759de907edf
    org.apache.velocity.Templatefa63e5ea2eb85620
    org.apache.velocity.Templatec72326f66c085d1e
    org.apache.velocity.VelocityContexte6da42a16cd62ddf
    org.apache.velocity.VelocityContext8ed590292b87a588
    org.apache.velocity.app.VelocityEngine9c939265034e0ab2
    org.apache.velocity.app.VelocityEngine7dc6a8afabb6455c
    org.apache.velocity.app.event.EventCartridge777236b9cf217768
    org.apache.velocity.app.event.EventCartridgeded346c7951f1697
    org.apache.velocity.app.event.EventHandlerUtil5ac88b357fcf707c
    org.apache.velocity.app.event.EventHandlerUtil60cd1239c0b74c3e
    org.apache.velocity.app.event.IncludeEventHandler.IncludeEventExecutorb0d3546bba9f7c5a
    org.apache.velocity.app.event.InvalidReferenceEventHandler.InvalidGetMethodExecutored85d61c73ad3803
    org.apache.velocity.app.event.implement.IncludeRelativePath08e594a68c5a721c
    org.apache.velocity.context.AbstractContext2ab1e97d6fe26efe
    org.apache.velocity.context.AbstractContext7c2c19e800108a7b
    org.apache.velocity.context.ChainedInternalContextAdapter051b1acf72e73eb7
    org.apache.velocity.context.InternalContextAdapterImpl7718d6c7d6f01429
    org.apache.velocity.context.InternalContextAdapterImpla3711c583aba53c0
    org.apache.velocity.context.InternalContextBasec81a056da1a34611
    org.apache.velocity.context.InternalContextBase10fb0c7430dc4018
    org.apache.velocity.context.ProxyVMContextc44243aae69ea8e1
    org.apache.velocity.runtime.ParserConfigurationbcd56b6221db3c90
    org.apache.velocity.runtime.ParserPoolImpl8d6ac721acdee69a
    org.apache.velocity.runtime.ParserPoolImpl2a25b051a66adee1
    org.apache.velocity.runtime.RuntimeConstants.SpaceGobbling1008e6924d8f311e
    org.apache.velocity.runtime.RuntimeInstancef8e2f14c6655a562
    org.apache.velocity.runtime.RuntimeInstance8437dde488475ef2
    org.apache.velocity.runtime.VelocimacroFactory02e2fc8894633d0a
    org.apache.velocity.runtime.VelocimacroFactory1e9ea54492c3b0d1
    org.apache.velocity.runtime.VelocimacroManagerb53f57b557e7726b
    org.apache.velocity.runtime.VelocimacroManager01dfc0b62e0d84ab
    org.apache.velocity.runtime.VelocimacroManager.MacroEntry67376583db2bd002
    org.apache.velocity.runtime.VelocimacroManager.MacroEntry26d330eaf2fd31ac
    org.apache.velocity.runtime.directive.Block0dc2ea33bfdf1c8e
    org.apache.velocity.runtime.directive.Block7883cd8849aa4b9a
    org.apache.velocity.runtime.directive.Break9c4c04e7b7293d93
    org.apache.velocity.runtime.directive.Break0391c1b62491d5f3
    org.apache.velocity.runtime.directive.Defined6d0cfd9b55144fa
    org.apache.velocity.runtime.directive.Define2da211af6dc4adf2
    org.apache.velocity.runtime.directive.Directivee413e19099aebfd7
    org.apache.velocity.runtime.directive.Directive114c6db128f09cfd
    org.apache.velocity.runtime.directive.Evaluate50b97c5f74d236ca
    org.apache.velocity.runtime.directive.Evaluatef1de1a698437317b
    org.apache.velocity.runtime.directive.Foreach795e04f024e903bd
    org.apache.velocity.runtime.directive.Foreachf4216f28f33f1601
    org.apache.velocity.runtime.directive.ForeachScopef7ce50b2426b9f68
    org.apache.velocity.runtime.directive.ForeachScoped638aec353b474e0
    org.apache.velocity.runtime.directive.Include61a5a4d983938c4c
    org.apache.velocity.runtime.directive.Include38dbf0ece5fd3ed8
    org.apache.velocity.runtime.directive.InputBasefd6544ae6b149255
    org.apache.velocity.runtime.directive.InputBase7ab262413b0572f5
    org.apache.velocity.runtime.directive.Literal0ff6f981afc54578
    org.apache.velocity.runtime.directive.Macro042824fc869342bf
    org.apache.velocity.runtime.directive.Macro44425fcba4519651
    org.apache.velocity.runtime.directive.Macro.MacroArga252d6a716c1fbfc
    org.apache.velocity.runtime.directive.Parsec0394bac9889c494
    org.apache.velocity.runtime.directive.Parse73cd754f962b4f40
    org.apache.velocity.runtime.directive.RuntimeMacro14e1cfe11f4f825e
    org.apache.velocity.runtime.directive.RuntimeMacro11282b3ae9496214
    org.apache.velocity.runtime.directive.Scopef3423ca4953d5d82
    org.apache.velocity.runtime.directive.Scopedd64d33559d0c3b4
    org.apache.velocity.runtime.directive.Stop4a8d463f36f9ba3a
    org.apache.velocity.runtime.directive.Stop84d6bbe8168d4167
    org.apache.velocity.runtime.directive.Stop.146208084d16b60f9
    org.apache.velocity.runtime.directive.StopCommand13468231892e1528
    org.apache.velocity.runtime.directive.StopCommand025ac34415375a67
    org.apache.velocity.runtime.directive.VelocimacroProxycf4c3dee36bc22f4
    org.apache.velocity.runtime.directive.VelocimacroProxy42117ecd94da7939
    org.apache.velocity.runtime.log.HoldingLogChutec181404246279441
    org.apache.velocity.runtime.log.Log74188bfc85164ab1
    org.apache.velocity.runtime.log.LogDisplayWrapper7e09370e1f079722
    org.apache.velocity.runtime.log.LogManager90aed2b9bc96e92d
    org.apache.velocity.runtime.parser.JJTParserStateeccd0e168b93e244
    org.apache.velocity.runtime.parser.LogContext8bd2ab8c45781ea3
    org.apache.velocity.runtime.parser.LogContext.17793b8711118b163
    org.apache.velocity.runtime.parser.Parsere4801b5bb37f6031
    org.apache.velocity.runtime.parser.Parser8f391facff4e1764
    org.apache.velocity.runtime.parser.Parser.JJCalls0b5021c9bcbd0f07
    org.apache.velocity.runtime.parser.Parser.LookaheadSuccessfe7cf5de9342c88c
    org.apache.velocity.runtime.parser.ParserTokenManager5dc7921ce8a1bb3b
    org.apache.velocity.runtime.parser.ParserTokenManager.ParserState0ae5d229128b02d3
    org.apache.velocity.runtime.parser.StandardParser8eaabc4fd8395c5d
    org.apache.velocity.runtime.parser.StandardParser.JJCalls1cd79adce175f30b
    org.apache.velocity.runtime.parser.StandardParser.LookaheadSuccess217f6689d0bd148c
    org.apache.velocity.runtime.parser.StandardParserTokenManagerb513a058a5d25bce
    org.apache.velocity.runtime.parser.StandardParserTokenManager.ParserStatee58c59d922a2d1c0
    org.apache.velocity.runtime.parser.Token0f9d0729ac9acc9a
    org.apache.velocity.runtime.parser.Token035daceb00979634
    org.apache.velocity.runtime.parser.VelocityCharStream0fdd7275e5a6d511
    org.apache.velocity.runtime.parser.VelocityCharStream13deb348d06faf6d
    org.apache.velocity.runtime.parser.node.ASTAddNodefa1c3b05eb63c615
    org.apache.velocity.runtime.parser.node.ASTAddNodef7a360fd0ceeb41f
    org.apache.velocity.runtime.parser.node.ASTAndNodecd14b0b2bfc9c2ef
    org.apache.velocity.runtime.parser.node.ASTAndNodefac853b6c5fa485e
    org.apache.velocity.runtime.parser.node.ASTBinaryOperator8c2ae99e76bfc2d2
    org.apache.velocity.runtime.parser.node.ASTBlock7426c59d7df1a96a
    org.apache.velocity.runtime.parser.node.ASTBlock008b5ae51e7863c5
    org.apache.velocity.runtime.parser.node.ASTCommentb6f6e96d43d8ba8f
    org.apache.velocity.runtime.parser.node.ASTComment59a551b8d13e9674
    org.apache.velocity.runtime.parser.node.ASTComparisonNode7352bd9088770a83
    org.apache.velocity.runtime.parser.node.ASTDirective4684ec86b596afcd
    org.apache.velocity.runtime.parser.node.ASTDirectivebdd000d27e79daab
    org.apache.velocity.runtime.parser.node.ASTEQNode038ad51129be2ea8
    org.apache.velocity.runtime.parser.node.ASTEQNodea05682a5af313370
    org.apache.velocity.runtime.parser.node.ASTElseIfStatement7c5ed66f40ab032d
    org.apache.velocity.runtime.parser.node.ASTElseIfStatementcd01606457a3b636
    org.apache.velocity.runtime.parser.node.ASTElseStatementf80235d64da20ee5
    org.apache.velocity.runtime.parser.node.ASTElseStatement10b9ce434f126173
    org.apache.velocity.runtime.parser.node.ASTExpressione191b0102927df45
    org.apache.velocity.runtime.parser.node.ASTExpressionfe525965119f4cfd
    org.apache.velocity.runtime.parser.node.ASTFalseae662493482b805c
    org.apache.velocity.runtime.parser.node.ASTGENodedf404befde820934
    org.apache.velocity.runtime.parser.node.ASTGTNodef9db3055193b7cc5
    org.apache.velocity.runtime.parser.node.ASTGTNode429c741b43e4423e
    org.apache.velocity.runtime.parser.node.ASTIdentifierd07ecfb6322f9f6e
    org.apache.velocity.runtime.parser.node.ASTIdentifier681e842674a46467
    org.apache.velocity.runtime.parser.node.ASTIfStatement31f860e02eedf22c
    org.apache.velocity.runtime.parser.node.ASTIfStatement39cb3d2cbbef8dff
    org.apache.velocity.runtime.parser.node.ASTIntegerLiteral5c0166627304c95d
    org.apache.velocity.runtime.parser.node.ASTIntegerLiterale5e50c14ab3e4acc
    org.apache.velocity.runtime.parser.node.ASTLTNode23c5285841d49ed9
    org.apache.velocity.runtime.parser.node.ASTLogicalOperatorfa236397c36b4771
    org.apache.velocity.runtime.parser.node.ASTMathNode22d06eed949108ef
    org.apache.velocity.runtime.parser.node.ASTMathNoded76e35e93a6fab09
    org.apache.velocity.runtime.parser.node.ASTMethodef6a50dfd937ca0c
    org.apache.velocity.runtime.parser.node.ASTMethodcc1d6a841b9eec04
    org.apache.velocity.runtime.parser.node.ASTMethod.MethodCacheKeyaf9e51370239a9c4
    org.apache.velocity.runtime.parser.node.ASTMethod.MethodCacheKey84c5e9e936e62291
    org.apache.velocity.runtime.parser.node.ASTMulNode4b3194324ef888d5
    org.apache.velocity.runtime.parser.node.ASTNENode84af2c1d41d1a63b
    org.apache.velocity.runtime.parser.node.ASTNENode7b01e9808eb0a0ab
    org.apache.velocity.runtime.parser.node.ASTNotNode6660871438d192c7
    org.apache.velocity.runtime.parser.node.ASTNotNodea51f40cc97c36424
    org.apache.velocity.runtime.parser.node.ASTOrNoded0e443267103c4b8
    org.apache.velocity.runtime.parser.node.ASTOrNode02186e52b9c8c686
    org.apache.velocity.runtime.parser.node.ASTReferencec9c9373aa8849276
    org.apache.velocity.runtime.parser.node.ASTReferencea91cb9ff1eeb3ef6
    org.apache.velocity.runtime.parser.node.ASTSetDirective55fd0a5c9cb9c430
    org.apache.velocity.runtime.parser.node.ASTSetDirectivef078550d53e85f54
    org.apache.velocity.runtime.parser.node.ASTStringLiterald3328b40f6d92e9b
    org.apache.velocity.runtime.parser.node.ASTStringLiteral2f67a986ad5a26f3
    org.apache.velocity.runtime.parser.node.ASTText389346874b271430
    org.apache.velocity.runtime.parser.node.ASTTexta5d2dcd025db34b9
    org.apache.velocity.runtime.parser.node.ASTTextblocke99e39fdf682a6db
    org.apache.velocity.runtime.parser.node.ASTTrue9f862a189a23eacd
    org.apache.velocity.runtime.parser.node.ASTTrued1f94f133f80edab
    org.apache.velocity.runtime.parser.node.ASTWord66d75ec7205a4907
    org.apache.velocity.runtime.parser.node.ASTWordaca376c967a3042c
    org.apache.velocity.runtime.parser.node.ASTprocessf70aec2e52e59fd8
    org.apache.velocity.runtime.parser.node.ASTprocessde4ee2191c1ff63c
    org.apache.velocity.runtime.parser.node.AbstractExecutor2b84207c88930d28
    org.apache.velocity.runtime.parser.node.AbstractExecutora0e3576d80f60b4f
    org.apache.velocity.runtime.parser.node.BooleanPropertyExecutorfd4eb69c74029461
    org.apache.velocity.runtime.parser.node.BooleanPropertyExecutorec3dd0b36ed02cff
    org.apache.velocity.runtime.parser.node.GetExecutor2a235ba3f58955fd
    org.apache.velocity.runtime.parser.node.GetExecutor546c2e340ce7e8d2
    org.apache.velocity.runtime.parser.node.JJTStandardParserState47563f73993d088b
    org.apache.velocity.runtime.parser.node.MapGetExecutor7461d24a11538750
    org.apache.velocity.runtime.parser.node.MapGetExecutor28b15002420c0f31
    org.apache.velocity.runtime.parser.node.MathUtils36743f4dc547ee5e
    org.apache.velocity.runtime.parser.node.MathUtils477aca8e7cc3655b
    org.apache.velocity.runtime.parser.node.NodeUtilse759a21ab90b2cf9
    org.apache.velocity.runtime.parser.node.NodeUtils3c8679658a17f207
    org.apache.velocity.runtime.parser.node.PropertyExecutor94d607bd85fcb1de
    org.apache.velocity.runtime.parser.node.PropertyExecutor97f25afcffcc45a1
    org.apache.velocity.runtime.parser.node.SimpleNodea6429b277a91c37d
    org.apache.velocity.runtime.parser.node.SimpleNode9462478b614a02dd
    org.apache.velocity.runtime.resource.Resourcee1da0d5e9e84f4f3
    org.apache.velocity.runtime.resource.Resourcec31c474160f23248
    org.apache.velocity.runtime.resource.ResourceCacheImpl7ec381111390acb1
    org.apache.velocity.runtime.resource.ResourceCacheImpl7410de956204c1de
    org.apache.velocity.runtime.resource.ResourceCacheImpl.LRUMap25cb4289e6f518c8
    org.apache.velocity.runtime.resource.ResourceFactoryc11fb8be6fd16d32
    org.apache.velocity.runtime.resource.ResourceManagerImpla50249c3c61edcd2
    org.apache.velocity.runtime.resource.ResourceManagerImpl42057b6a48518a55
    org.apache.velocity.runtime.resource.loader.ClasspathResourceLoaderc1a5d084a0e9d423
    org.apache.velocity.runtime.resource.loader.FileResourceLoaderca4087a9d80404d7
    org.apache.velocity.runtime.resource.loader.FileResourceLoader61d50ebf2ba17760
    org.apache.velocity.runtime.resource.loader.ResourceLoader2633777475708d02
    org.apache.velocity.runtime.resource.loader.ResourceLoader8fe06021f04e44d1
    org.apache.velocity.runtime.resource.loader.ResourceLoaderFactory31de528be460ceb8
    org.apache.velocity.runtime.resource.loader.ResourceLoaderFactory184d14a10476fd52
    org.apache.velocity.shaded.commons.io.FilenameUtilsd4f97baf766e1dee
    org.apache.velocity.tools.ClassUtilsf896e3be996ecebe
    org.apache.velocity.tools.Scope583d7301c5685e0f
    org.apache.velocity.tools.ToolContext82f99cef694107ca
    org.apache.velocity.tools.ToolInfo0d3611e062aaf30f
    org.apache.velocity.tools.ToolManagere8c679b266efa960
    org.apache.velocity.tools.Toolbox80b2fac13a5b68cc
    org.apache.velocity.tools.ToolboxFactorye7be0a0d83162796
    org.apache.velocity.tools.config.CompoundConfigurationaeb34c069a91a5ef
    org.apache.velocity.tools.config.Configuration2d50870dcb0975aa
    org.apache.velocity.tools.config.ConfigurationUtilsb63372010c55ef94
    org.apache.velocity.tools.config.Dataf785b06b36e5ca7e
    org.apache.velocity.tools.config.Data.AutoConverter5d0270c790c09f90
    org.apache.velocity.tools.config.Data.FieldConverterbed467ef5168b94a
    org.apache.velocity.tools.config.Data.NumberConverter7289322ad89c1db2
    org.apache.velocity.tools.config.Data.Type279ee1d4a808e06f
    org.apache.velocity.tools.config.EasyFactoryConfigurationddeb685f8049fda4
    org.apache.velocity.tools.config.EasyFactoryConfiguration.EasyWrapad2f5e409c2ff604
    org.apache.velocity.tools.config.FactoryConfiguration73cf358d0c7edb7a
    org.apache.velocity.tools.config.Property9a88deb887bf8046
    org.apache.velocity.tools.config.ToolConfigurationea8e11488cb587fb
    org.apache.velocity.tools.config.ToolConfiguration.113a733526d337e33
    org.apache.velocity.tools.config.ToolConfiguration.Status5ef8878167ed8f5b
    org.apache.velocity.tools.config.ToolboxConfiguration14f4bd3e42998d6d
    org.apache.velocity.tools.generic.AlternatorTool5c8b9828f2a0529f
    org.apache.velocity.tools.generic.ClassTool73356ad17e9d9e49
    org.apache.velocity.tools.generic.ComparisonDateTool0c156ad486a31cb9
    org.apache.velocity.tools.generic.ContextTool45443393ac85b5bf
    org.apache.velocity.tools.generic.ConversionTool4f40ab64f6176812
    org.apache.velocity.tools.generic.DateTool7bbe3717fa1283ff
    org.apache.velocity.tools.generic.DisplayTool6e46983d2e05b26c
    org.apache.velocity.tools.generic.EscapeToole03f9e8f7d7c72ed
    org.apache.velocity.tools.generic.FieldTool7324f3b6de026d35
    org.apache.velocity.tools.generic.FormatConfig1d32259ea755388a
    org.apache.velocity.tools.generic.LinkToolf925b0769b8273a7
    org.apache.velocity.tools.generic.LocaleConfigd3639ba75a9556c8
    org.apache.velocity.tools.generic.LoopToolfdfe0c377e398043
    org.apache.velocity.tools.generic.MathTool8eee0bbddc522f27
    org.apache.velocity.tools.generic.NumberTool77e0dc553cb8fbe8
    org.apache.velocity.tools.generic.RenderTool0a7f803ca5ee171a
    org.apache.velocity.tools.generic.ResourceTool7c0b676b58d9b487
    org.apache.velocity.tools.generic.SafeConfigdabe7ccfd3fc549e
    org.apache.velocity.tools.generic.SortToolcb3b608ecb5c2575
    org.apache.velocity.tools.generic.XmlTool8c9a7f71bb9885a6
    org.apache.velocity.util.ArrayIterator61b1e41a87bed05f
    org.apache.velocity.util.ClassUtils4ac6dadd3315b1cd
    org.apache.velocity.util.ClassUtils0740c02f55974cb5
    org.apache.velocity.util.DeprecationAwareExtProperties27d5b5c05e6a6fec
    org.apache.velocity.util.DuckTypee50af2bb413f166d
    org.apache.velocity.util.DuckType.Typesbae2a6708b77175a
    org.apache.velocity.util.ExtPropertiesea3b60c6666140fe
    org.apache.velocity.util.ExtProperties.PropertiesReaderb618a7014140c253
    org.apache.velocity.util.MapFactory01403b5706397d47
    org.apache.velocity.util.SimplePool1f831c36a43ca1db
    org.apache.velocity.util.SimplePool4fae8cabf20b16fc
    org.apache.velocity.util.StringUtils10ca0618e43ab662
    org.apache.velocity.util.introspection.ClassFieldMap08c07ae2515b1084
    org.apache.velocity.util.introspection.ClassMapf95f93276a62b3ff
    org.apache.velocity.util.introspection.ClassMape8aa0059d0c24712
    org.apache.velocity.util.introspection.ClassMap.MethodCachee879a333bfa71058
    org.apache.velocity.util.introspection.ClassMap.MethodCachee32b1185fdf5c157
    org.apache.velocity.util.introspection.Info8c072c75838e52e9
    org.apache.velocity.util.introspection.Info7b0899deac2cfcb4
    org.apache.velocity.util.introspection.IntrospectionCacheData67498e4141cecf66
    org.apache.velocity.util.introspection.IntrospectionCacheDatada4e3622ea8bd189
    org.apache.velocity.util.introspection.IntrospectionUtils5600b482789873c7
    org.apache.velocity.util.introspection.Introspectorea0eb025828bb25b
    org.apache.velocity.util.introspection.Introspectorb7a95a29f4d5f221
    org.apache.velocity.util.introspection.IntrospectorBasea9523d1d3d9ec81c
    org.apache.velocity.util.introspection.IntrospectorBasead522d88b51fa99e
    org.apache.velocity.util.introspection.IntrospectorCachecf24bd3e12cff77b
    org.apache.velocity.util.introspection.IntrospectorCacheImplf5a8c373fcdecfa5
    org.apache.velocity.util.introspection.MethodMap5bc43b57e0eb708b
    org.apache.velocity.util.introspection.MethodMapacd10133e89c9e4b
    org.apache.velocity.util.introspection.MethodMap.Matche9df9a21d7dc07e3
    org.apache.velocity.util.introspection.TypeConversionHandlerImpl2739aba645c510f3
    org.apache.velocity.util.introspection.UberspectImpl9ff3662a2a574180
    org.apache.velocity.util.introspection.UberspectImple12310ead0215cd5
    org.apache.velocity.util.introspection.UberspectImpl.VelGetterImpl600761c1eb266a6b
    org.apache.velocity.util.introspection.UberspectImpl.VelGetterImplb6e5c050f55796f3
    org.apache.velocity.util.introspection.UberspectImpl.VelMethodImpla1520f1ed8867aa3
    org.apache.velocity.util.introspection.UberspectImpl.VelMethodImpla3cd5b57a527a67f
    org.codehaus.plexus.DefaultContainerConfiguration4d474a1bba662d1c
    org.codehaus.plexus.DefaultPlexusContainer9fdab68d987fbc96
    org.codehaus.plexus.DefaultPlexusContainer.BootModule029b114c77a18fa0
    org.codehaus.plexus.DefaultPlexusContainer.ContainerModuleb5da95a9c2e461a7
    org.codehaus.plexus.DefaultPlexusContainer.DefaultsModuledbd0b9631f1948d8
    org.codehaus.plexus.DefaultPlexusContainer.LoggerManagerProvider1dd65dc840ede2c0
    org.codehaus.plexus.DefaultPlexusContainer.LoggerProviderd965945f35bf4074
    org.codehaus.plexus.DefaultPlexusContainer.SLF4JLoggerFactoryProvider13a58bc152d07103
    org.codehaus.plexus.archiver.AbstractArchiver455045154469be96
    org.codehaus.plexus.archiver.AbstractArchiverbbab73c48d76dae1
    org.codehaus.plexus.archiver.AbstractArchiver.1fb6fb853ed87273e
    org.codehaus.plexus.archiver.AbstractArchiver.14b743e7e66c8227f
    org.codehaus.plexus.archiver.AbstractUnArchiverffb546e8e04c3b17
    org.codehaus.plexus.archiver.ArchiveEntry9acf389f27b948c4
    org.codehaus.plexus.archiver.jar.JarArchiver519ac29d489e3684
    org.codehaus.plexus.archiver.jar.JarArchiver8826a97199e7caad
    org.codehaus.plexus.archiver.jar.JdkManifestFactory6d6df7af090d5ed3
    org.codehaus.plexus.archiver.jar.Manifest79d4572b6fbecd43
    org.codehaus.plexus.archiver.jar.Manifest17f5f74666c34890
    org.codehaus.plexus.archiver.jar.Manifest.Attributee8f762f25a4ac2bf
    org.codehaus.plexus.archiver.jar.Manifest.Attribute94cf4f24d344572a
    org.codehaus.plexus.archiver.jar.Manifest.BaseAttributee44b1091c882258a
    org.codehaus.plexus.archiver.jar.Manifest.BaseAttribute1c219bfec9d55380
    org.codehaus.plexus.archiver.jar.Manifest.Section564a527e2e460e50
    org.codehaus.plexus.archiver.jar.Manifest.Sectionfb39991126dc9dc9
    org.codehaus.plexus.archiver.manager.ArchiverManagercbb74e389108bcb4
    org.codehaus.plexus.archiver.manager.DefaultArchiverManager120e0c333055645a
    org.codehaus.plexus.archiver.manager.DefaultArchiverManager056d374c8060bd0e
    org.codehaus.plexus.archiver.util.AbstractFileSete5385d8741b94955
    org.codehaus.plexus.archiver.util.DefaultFileSet08e023d4fc031f86
    org.codehaus.plexus.archiver.util.ResourceUtilsc837e154f70d2b53
    org.codehaus.plexus.archiver.war.WarArchiver615f1606cefcf3ff
    org.codehaus.plexus.archiver.zip.AbstractZipArchiverc8b3e0f6fa634f4b
    org.codehaus.plexus.archiver.zip.AbstractZipUnArchiveread89730145c8528
    org.codehaus.plexus.archiver.zip.AsiExtraField5989c8c93708a59e
    org.codehaus.plexus.archiver.zip.ExtraFieldUtils21d2e31aeaafd4f0
    org.codehaus.plexus.archiver.zip.ZipArchiver7f703880640979f8
    org.codehaus.plexus.archiver.zip.ZipEntry55313614ff33f8b5
    org.codehaus.plexus.archiver.zip.ZipLong1daae3f5b5ffa47e
    org.codehaus.plexus.archiver.zip.ZipOutputStream6efab44f3d730eb3
    org.codehaus.plexus.archiver.zip.ZipShort858618f5b24c4e2d
    org.codehaus.plexus.archiver.zip.ZipUnArchiver66cda942fe76ed90
    org.codehaus.plexus.classworlds.ClassWorldd80d373f271f5929
    org.codehaus.plexus.classworlds.launcher.ConfigurationParser83c0fdafcd8ae316
    org.codehaus.plexus.classworlds.launcher.ConfigurationParser.16d438c9fe632867a
    org.codehaus.plexus.classworlds.launcher.Configuratorc15e567e8c6910a6
    org.codehaus.plexus.classworlds.launcher.Configurator.16bc7180ea01847c4
    org.codehaus.plexus.classworlds.launcher.Launcher6aa79293bcfc150f
    org.codehaus.plexus.classworlds.realm.ClassRealm01eed1e95ab657d5
    org.codehaus.plexus.classworlds.realm.Entry7e27ea1a680ea594
    org.codehaus.plexus.classworlds.strategy.AbstractStrategyaa2df8a25542de94
    org.codehaus.plexus.classworlds.strategy.SelfFirstStrategyc2c172cfa7cc8c01
    org.codehaus.plexus.classworlds.strategy.StrategyFactorye34a4de14e430bfa
    org.codehaus.plexus.compiler.AbstractCompilerb7b6891acdab6184
    org.codehaus.plexus.compiler.CompilerOutputStylec0dceff43f3a54c7
    org.codehaus.plexus.compiler.javac.JavacCompilerecda102c38e04f42
    org.codehaus.plexus.compiler.manager.DefaultCompilerManagerbb56ac7396359360
    org.codehaus.plexus.component.configurator.AbstractComponentConfiguratoraa69094092e9098e
    org.codehaus.plexus.component.configurator.BasicComponentConfigurator687ccaedbc34a1f4
    org.codehaus.plexus.component.configurator.ComponentConfigurationException4e034cd1be7b7976
    org.codehaus.plexus.component.configurator.converters.AbstractConfigurationConverter34a7155cf9094627
    org.codehaus.plexus.component.configurator.converters.basic.AbstractBasicConverterbdc651b44340ec1b
    org.codehaus.plexus.component.configurator.converters.basic.BooleanConverter9de3ad82c4bc9a23
    org.codehaus.plexus.component.configurator.converters.basic.ByteConvertere834612289baf3d6
    org.codehaus.plexus.component.configurator.converters.basic.CharConverter474083ccb380c244
    org.codehaus.plexus.component.configurator.converters.basic.DateConvertera666937d85101580
    org.codehaus.plexus.component.configurator.converters.basic.DoubleConverter711f1c94f0f75c33
    org.codehaus.plexus.component.configurator.converters.basic.EnumConverter5463a22280c2d17a
    org.codehaus.plexus.component.configurator.converters.basic.FileConverter50a05f08fed6858d
    org.codehaus.plexus.component.configurator.converters.basic.FloatConvertera9831f9478942c39
    org.codehaus.plexus.component.configurator.converters.basic.IntConverter1ec4f1fe36847c67
    org.codehaus.plexus.component.configurator.converters.basic.LongConverterb66bb61cedbfd313
    org.codehaus.plexus.component.configurator.converters.basic.ShortConverter8453d2a34c70c1b7
    org.codehaus.plexus.component.configurator.converters.basic.StringBufferConverter1ed19a18e43abea2
    org.codehaus.plexus.component.configurator.converters.basic.StringBuilderConverter81c1bf606b75659a
    org.codehaus.plexus.component.configurator.converters.basic.StringConverter26614176da45dc39
    org.codehaus.plexus.component.configurator.converters.basic.UriConverterfdb8ce9422278b4c
    org.codehaus.plexus.component.configurator.converters.basic.UrlConverter2e2cba69af7544fc
    org.codehaus.plexus.component.configurator.converters.composite.AbstractCollectionConverter1a58366c83eac89c
    org.codehaus.plexus.component.configurator.converters.composite.ArrayConverter58c98c834b8b5a92
    org.codehaus.plexus.component.configurator.converters.composite.CollectionConverter214da34c628ce98e
    org.codehaus.plexus.component.configurator.converters.composite.MapConverter323859f29c08a56f
    org.codehaus.plexus.component.configurator.converters.composite.ObjectWithFieldsConvertera5b833a9be4d2318
    org.codehaus.plexus.component.configurator.converters.composite.PlexusConfigurationConverter15cd97f39d410ab6
    org.codehaus.plexus.component.configurator.converters.composite.PropertiesConverter880064540e436d27
    org.codehaus.plexus.component.configurator.converters.lookup.DefaultConverterLookupc7a9d909eae11a58
    org.codehaus.plexus.component.configurator.converters.special.ClassRealmConverter227b3c4cd86803b7
    org.codehaus.plexus.component.configurator.expression.DefaultExpressionEvaluator44cd3c304e29d232
    org.codehaus.plexus.component.repository.ComponentDependencyed7c4a5667c02ac8
    org.codehaus.plexus.component.repository.ComponentDescriptorea3989475dc97c06
    org.codehaus.plexus.component.repository.ComponentRequirementd54306310d30fed8
    org.codehaus.plexus.component.repository.ComponentSetDescriptor3784a802884c4b16
    org.codehaus.plexus.components.io.attributes.FileAttributesbd797eb4d646004c
    org.codehaus.plexus.components.io.attributes.Java7FileAttributesb15be2f84ac0ee7c
    org.codehaus.plexus.components.io.attributes.Java7Reflectorbd6d3596686b1796
    org.codehaus.plexus.components.io.attributes.PlexusIoResourceAttributeUtils5d1630b9c7d7e4c6
    org.codehaus.plexus.components.io.attributes.PlexusIoResourceAttributeUtils870de5044186b52a
    org.codehaus.plexus.components.io.filemappers.PrefixFileMapperd19c79c38ef38ec0
    org.codehaus.plexus.components.io.resources.AbstractPlexusIoResource571beca40dbfca97
    org.codehaus.plexus.components.io.resources.AbstractPlexusIoResourceCollectionab87c4897c28ec1a
    org.codehaus.plexus.components.io.resources.AbstractPlexusIoResourceWithAttributes95bbcb42dc3b1a28
    org.codehaus.plexus.components.io.resources.PlexusIoFileResourcea3cbdf9ec322941f
    org.codehaus.plexus.components.io.resources.PlexusIoFileResourceCollection8eee98dacb61ad91
    org.codehaus.plexus.configuration.DefaultPlexusConfigurationd6f156c1d43d5358
    org.codehaus.plexus.configuration.xml.XmlPlexusConfigurationd0208f5f99fa76f1
    org.codehaus.plexus.context.ContextMapAdapter395fb55e464e3aec
    org.codehaus.plexus.context.DefaultContext20caf80ad3fc6937
    org.codehaus.plexus.digest.AbstractDigesterf4c80aa7a7db2c72
    org.codehaus.plexus.digest.AbstractStreamingDigester0978039fff8742de
    org.codehaus.plexus.digest.Md5Digesterafa99b92e4726988
    org.codehaus.plexus.digest.Sha1Digester160d658a9a357ee0
    org.codehaus.plexus.digest.StreamingMd5Digesterc092164a5284b82c
    org.codehaus.plexus.digest.StreamingSha1Digester1905a929cb4c6b5d
    org.codehaus.plexus.i18n.DefaultI18N2cb8d3d4ec04e307
    org.codehaus.plexus.interpolation.AbstractDelegatingValueSource02200a6385a5c967
    org.codehaus.plexus.interpolation.AbstractValueSource1ed2fb132ebe6823
    org.codehaus.plexus.interpolation.AbstractValueSource8d702836f770374e
    org.codehaus.plexus.interpolation.AbstractValueSourceab87af1f248af7bb
    org.codehaus.plexus.interpolation.EnvarBasedValueSource84f75c29d4ca7565
    org.codehaus.plexus.interpolation.EnvarBasedValueSourcea13418245e22da46
    org.codehaus.plexus.interpolation.MapBasedValueSource4f684de54a4cac77
    org.codehaus.plexus.interpolation.MapBasedValueSource84cf06d1a25889b2
    org.codehaus.plexus.interpolation.ObjectBasedValueSource397d315f0caea399
    org.codehaus.plexus.interpolation.ObjectBasedValueSource62d9bf75b515589d
    org.codehaus.plexus.interpolation.ObjectBasedValueSourcee77101c153cc6dad
    org.codehaus.plexus.interpolation.PrefixAwareRecursionInterceptor64308eb6aaf48edd
    org.codehaus.plexus.interpolation.PrefixedObjectValueSource91373cccf90f3995
    org.codehaus.plexus.interpolation.PrefixedValueSourceWrapperdd42f9f7a579f578
    org.codehaus.plexus.interpolation.PropertiesBasedValueSourcef59a7b8c5f2ab5e1
    org.codehaus.plexus.interpolation.PropertiesBasedValueSourceb4a2ab502f384128
    org.codehaus.plexus.interpolation.PropertiesBasedValueSource39d4a73e62252e0c
    org.codehaus.plexus.interpolation.RegexBasedInterpolatordfd26cbd19606ac8
    org.codehaus.plexus.interpolation.RegexBasedInterpolatorcf245a3142899503
    org.codehaus.plexus.interpolation.RegexBasedInterpolator709c2e4d5f30f622
    org.codehaus.plexus.interpolation.SimpleRecursionInterceptor4d8571a2c13e9cfb
    org.codehaus.plexus.interpolation.SimpleRecursionInterceptor7fca4d1c08095cea
    org.codehaus.plexus.interpolation.SimpleRecursionInterceptor523e83575f901ee0
    org.codehaus.plexus.interpolation.StringSearchInterpolator85c357dd830edb57
    org.codehaus.plexus.interpolation.os.OperatingSystemUtils25296357f5789343
    org.codehaus.plexus.interpolation.os.OperatingSystemUtilsc4e7b13c9919a85a
    org.codehaus.plexus.interpolation.os.OperatingSystemUtils.DefaultEnvVarSource274ba6b70898d56d
    org.codehaus.plexus.interpolation.os.Os785f58695acf5fd9
    org.codehaus.plexus.interpolation.reflection.ClassMap8f9de793323118e9
    org.codehaus.plexus.interpolation.reflection.ClassMap78262d7d00686093
    org.codehaus.plexus.interpolation.reflection.ClassMap359c06ede0cbe480
    org.codehaus.plexus.interpolation.reflection.ClassMap.CacheMiss62ec3388459d7100
    org.codehaus.plexus.interpolation.reflection.ClassMap.CacheMissd56cd72bfabb8afd
    org.codehaus.plexus.interpolation.reflection.ClassMap.CacheMissbdc7a0515793ff45
    org.codehaus.plexus.interpolation.reflection.MethodMap73529820403c6b5e
    org.codehaus.plexus.interpolation.reflection.MethodMap958c877d48645d9b
    org.codehaus.plexus.interpolation.reflection.MethodMap4dd456c4024b16ec
    org.codehaus.plexus.interpolation.reflection.ReflectionValueExtractord2045ea1d350e986
    org.codehaus.plexus.interpolation.reflection.ReflectionValueExtractor20052faa06c3f6c4
    org.codehaus.plexus.interpolation.reflection.ReflectionValueExtractorfb38a31772aa9573
    org.codehaus.plexus.interpolation.reflection.ReflectionValueExtractor.Tokenizer292117dc89b3bf92
    org.codehaus.plexus.interpolation.util.StringUtils9ab6a52a129b8b51
    org.codehaus.plexus.interpolation.util.StringUtils9b262a3519c4e146
    org.codehaus.plexus.interpolation.util.StringUtilsfb1a41cdc59f0d4a
    org.codehaus.plexus.interpolation.util.ValueSourceUtilse0fb098897479d0c
    org.codehaus.plexus.logging.AbstractLogEnabledb2b42aa44b994998
    org.codehaus.plexus.logging.AbstractLogger088c807c95d2da57
    org.codehaus.plexus.logging.AbstractLoggerManager142afa59e978ad3c
    org.codehaus.plexus.logging.console.ConsoleLoggere81d7397f0f1f4ae
    org.codehaus.plexus.logging.console.ConsoleLoggerManager4f262ca2067c0c89
    org.codehaus.plexus.util.AbstractScanner7ea65747b96be1a1
    org.codehaus.plexus.util.AbstractScanner57cca07a94c5d0f8
    org.codehaus.plexus.util.AbstractScanner267c8320dd3b8730
    org.codehaus.plexus.util.DirectoryScannerbed874cf6bffa08b
    org.codehaus.plexus.util.DirectoryScannerb7dd6f61f2134fdc
    org.codehaus.plexus.util.DirectoryScannerafa4e027c2087287
    org.codehaus.plexus.util.FileUtils974537ef1b937a20
    org.codehaus.plexus.util.FileUtils32f4dd0be46a9ac0
    org.codehaus.plexus.util.FileUtils0d0b16e42c8348ea
    org.codehaus.plexus.util.FileUtils.FilterWrapperade5dd599c04e458
    org.codehaus.plexus.util.FileUtils.FilterWrappere1fb35acef11a7f0
    org.codehaus.plexus.util.IOUtil3ec5e764368d0472
    org.codehaus.plexus.util.IOUtilb20c0272d9cdf167
    org.codehaus.plexus.util.IOUtile21cc86436ae45be
    org.codehaus.plexus.util.IOUtil6b711ad12bf040d6
    org.codehaus.plexus.util.InterpolationFilterReader51388cb3f207dede
    org.codehaus.plexus.util.MatchPatterncbd2489e4ea28649
    org.codehaus.plexus.util.MatchPatterns06e1f000f76da5b4
    org.codehaus.plexus.util.NioFilesdc1176e4614306e6
    org.codehaus.plexus.util.Oscbe2b37d03985b64
    org.codehaus.plexus.util.Osd33a782f7098a75f
    org.codehaus.plexus.util.PathTool8bc51bed32e62a33
    org.codehaus.plexus.util.PropertyUtils527feac8ad3bfba0
    org.codehaus.plexus.util.PropertyUtils2f8e7fbab681375f
    org.codehaus.plexus.util.ReaderFactory70c3ae7450366a6b
    org.codehaus.plexus.util.ReaderFactorybcca7dcb50be1af2
    org.codehaus.plexus.util.ReaderFactory17f817cb73de7e57
    org.codehaus.plexus.util.SelectorUtils5d722081f1028445
    org.codehaus.plexus.util.SelectorUtilsa62330f54f63f33a
    org.codehaus.plexus.util.SelectorUtils77218f645da67fed
    org.codehaus.plexus.util.StringUtils837339467b13c5cf
    org.codehaus.plexus.util.StringUtilsf96c1107a2b1a76f
    org.codehaus.plexus.util.StringUtilsba82409ead4f5843
    org.codehaus.plexus.util.StringUtilsce83bb397755561d
    org.codehaus.plexus.util.StringUtilscc51a432afe4ff59
    org.codehaus.plexus.util.WriterFactoryad3706502b7b225e
    org.codehaus.plexus.util.WriterFactory6e8404450ef70bfa
    org.codehaus.plexus.util.dag.CycleDetector26256d65c872be4c
    org.codehaus.plexus.util.dag.DAGda15810bebcb8487
    org.codehaus.plexus.util.dag.TopologicalSorter45f59fda7f3045a6
    org.codehaus.plexus.util.dag.Vertex368a701ab9773395
    org.codehaus.plexus.util.introspection.ClassMap30ca8da223cbf453
    org.codehaus.plexus.util.introspection.ClassMap.CacheMiss7ed0b9e2f48cf664
    org.codehaus.plexus.util.introspection.MethodMapad08485dfe6ac7db
    org.codehaus.plexus.util.introspection.ReflectionValueExtractorb932885387f31059
    org.codehaus.plexus.util.introspection.ReflectionValueExtractor.Tokenizere60d35915d7672de
    org.codehaus.plexus.util.io.FileInputStreamFacadea99d89e6a076a192
    org.codehaus.plexus.util.io.FileInputStreamFacadee30cb27d1e10dc65
    org.codehaus.plexus.util.xml.PrettyPrintXMLWriter40639e9be5dd3f04
    org.codehaus.plexus.util.xml.PrettyPrintXMLWriter969525dadc376b25
    org.codehaus.plexus.util.xml.SerializerXMLWriterddaabb19c936eea9
    org.codehaus.plexus.util.xml.XmlReader2ca42681128ebb7d
    org.codehaus.plexus.util.xml.XmlReader5f439f73dd573266
    org.codehaus.plexus.util.xml.XmlReader0f49e53f172485e2
    org.codehaus.plexus.util.xml.XmlStreamReader54bb454f4a044649
    org.codehaus.plexus.util.xml.XmlStreamReaderd20f4d181fb21d46
    org.codehaus.plexus.util.xml.XmlStreamWriter473ad58b594de26f
    org.codehaus.plexus.util.xml.XmlStreamWriter3714ec0b7e5d9f12
    org.codehaus.plexus.util.xml.Xpp3Dome431013c30e337fa
    org.codehaus.plexus.util.xml.Xpp3DomBuilder308d11e94e936b28
    org.codehaus.plexus.util.xml.Xpp3DomUtilse35c97b67a8b147f
    org.codehaus.plexus.util.xml.Xpp3DomWriter5c67736950c76e11
    org.codehaus.plexus.util.xml.pull.EntityReplacementMapab96c0b4ac038784
    org.codehaus.plexus.util.xml.pull.EntityReplacementMap0697dc724c9eafa2
    org.codehaus.plexus.util.xml.pull.MXParser095ad3d28970e1e9
    org.codehaus.plexus.util.xml.pull.MXParser40b91c056b9889a3
    org.codehaus.plexus.util.xml.pull.MXSerializer8c88670f3b87d59f
    org.codehaus.plexus.util.xml.pull.MXSerializerb3773308f85294a8
    org.codehaus.plexus.velocity.DefaultVelocityComponent4bd0733f20515016
    org.eclipse.aether.AbstractRepositoryListener085b475a721ec542
    org.eclipse.aether.DefaultRepositoryCachebb4b2517c5c62cf4
    org.eclipse.aether.DefaultRepositorySystemSession7de27e524ea5846e
    org.eclipse.aether.DefaultRepositorySystemSession.NullArtifactTypeRegistryc054fb191ebfdbb0
    org.eclipse.aether.DefaultRepositorySystemSession.NullAuthenticationSelectore9c4a381a87cf9e7
    org.eclipse.aether.DefaultRepositorySystemSession.NullFileTransformerManager5861da90f83e8566
    org.eclipse.aether.DefaultRepositorySystemSession.NullMirrorSelector08c9a543f55ef620
    org.eclipse.aether.DefaultRepositorySystemSession.NullProxySelector7a995668eadb76a3
    org.eclipse.aether.DefaultSessionDatac1dde0eca2fe72e3
    org.eclipse.aether.RepositoryEvent9c23c6cff9a0db3a
    org.eclipse.aether.RepositoryEvent.Buildere20064e257a52637
    org.eclipse.aether.RepositoryEvent.EventType7d2c1f9517cbceaf
    org.eclipse.aether.RepositoryException2533646b22707d09
    org.eclipse.aether.RequestTraceee6168f833e48cf2
    org.eclipse.aether.artifact.AbstractArtifactc7a6b14048008679
    org.eclipse.aether.artifact.DefaultArtifactb897ee7425b93ce2
    org.eclipse.aether.artifact.DefaultArtifactType9e46ed8c3b089798
    org.eclipse.aether.collection.CollectRequestf1132f48f74e3232
    org.eclipse.aether.collection.CollectResultdf21ce1db987ef14
    org.eclipse.aether.collection.DependencyManagement839f45654988f52f
    org.eclipse.aether.connector.basic.ArtifactTransportListenerdc859608c1db0588
    org.eclipse.aether.connector.basic.BasicRepositoryConnector30615d286059c083
    org.eclipse.aether.connector.basic.BasicRepositoryConnector.DirectExecutor6ce20a9693bab8f0
    org.eclipse.aether.connector.basic.BasicRepositoryConnector.GetTaskRunner6586e8a722111080
    org.eclipse.aether.connector.basic.BasicRepositoryConnector.TaskRunner09dedbb5badc7324
    org.eclipse.aether.connector.basic.BasicRepositoryConnectorFactoryc2803bce2e5c8a14
    org.eclipse.aether.connector.basic.ChecksumCalculator3aebd6968533f12c
    org.eclipse.aether.connector.basic.ChecksumCalculator.Checksumb9d6a847c73d6a15
    org.eclipse.aether.connector.basic.ChecksumValidator921b936ee4ce4743
    org.eclipse.aether.connector.basic.MetadataTransportListener76a23c31ed44ddf8
    org.eclipse.aether.connector.basic.PartialFiled24bf328c1955884
    org.eclipse.aether.connector.basic.PartialFile.Factory26008abde73303da
    org.eclipse.aether.connector.basic.PartialFile.LockFile1f1aee50e80129a9
    org.eclipse.aether.connector.basic.TransferTransportListenerad10f25a41876164
    org.eclipse.aether.graph.DefaultDependencyNode9b14b07208ac5239
    org.eclipse.aether.graph.Dependency33929702856c7fcf
    org.eclipse.aether.graph.Dependency.Exclusions4306f15752e05dca
    org.eclipse.aether.graph.Dependency.Exclusions.1d11f78db8180eb34
    org.eclipse.aether.graph.Exclusion1ebfea9347eb9ec4
    org.eclipse.aether.impl.UpdateCheck1266a3103f6c8a4b
    org.eclipse.aether.installation.InstallRequest4401eaac5a303e5c
    org.eclipse.aether.installation.InstallResult560fd4a2fb4c6b66
    org.eclipse.aether.internal.impl.AbstractChecksumPolicyd1ea8ecc9b5f3a55
    org.eclipse.aether.internal.impl.ArtifactRequestBuilder298a87576d4d9d76
    org.eclipse.aether.internal.impl.DefaultArtifactResolver1023af4b9ac0027b
    org.eclipse.aether.internal.impl.DefaultArtifactResolver.ResolutionGroup4fbbad1280f38989
    org.eclipse.aether.internal.impl.DefaultArtifactResolver.ResolutionItem4baad02cd29a9c4e
    org.eclipse.aether.internal.impl.DefaultChecksumPolicyProvider6adefa7d53c259b2
    org.eclipse.aether.internal.impl.DefaultDeployer1d4139293cba4f0a
    org.eclipse.aether.internal.impl.DefaultFileProcessorc9d35be93ee86218
    org.eclipse.aether.internal.impl.DefaultInstaller5482b7d7ad53c064
    org.eclipse.aether.internal.impl.DefaultLocalRepositoryProviderd3f6231b8646af59
    org.eclipse.aether.internal.impl.DefaultMetadataResolverd526de7b486a3321
    org.eclipse.aether.internal.impl.DefaultMetadataResolver.1409f310d9441df9f
    org.eclipse.aether.internal.impl.DefaultMetadataResolver.ResolveTaskee5310fb66a7d4e7
    org.eclipse.aether.internal.impl.DefaultOfflineControllera70b7c59972a1391
    org.eclipse.aether.internal.impl.DefaultRemoteRepositoryManager1ba0007bf0e353ad
    org.eclipse.aether.internal.impl.DefaultRemoteRepositoryManager.LoggedMirror11edbaa3af1c0e0c
    org.eclipse.aether.internal.impl.DefaultRepositoryConnectorProvider4a1d14f6f414b4c0
    org.eclipse.aether.internal.impl.DefaultRepositoryEventDispatcher90c2c6ae4c5cc7ca
    org.eclipse.aether.internal.impl.DefaultRepositoryEventDispatcher.182cdad633695bfe1
    org.eclipse.aether.internal.impl.DefaultRepositoryLayoutProvidere3c18c0a5465baba
    org.eclipse.aether.internal.impl.DefaultRepositorySystemf505352bb48cda43
    org.eclipse.aether.internal.impl.DefaultSyncContextFactorye2cc22101557ecb7
    org.eclipse.aether.internal.impl.DefaultSyncContextFactory.DefaultSyncContext7473313343e79fbd
    org.eclipse.aether.internal.impl.DefaultTransporterProvider3c2f9edc9a575a39
    org.eclipse.aether.internal.impl.DefaultUpdateCheckManagere33c8f24c5b20839
    org.eclipse.aether.internal.impl.DefaultUpdatePolicyAnalyzerba048432499bb90b
    org.eclipse.aether.internal.impl.EnhancedLocalRepositoryManagere1ef0c9d6fd1ea46
    org.eclipse.aether.internal.impl.EnhancedLocalRepositoryManagerFactorye7be2147ba0035b6
    org.eclipse.aether.internal.impl.Maven2RepositoryLayoutFactory54741d6d92da5749
    org.eclipse.aether.internal.impl.Maven2RepositoryLayoutFactory.Maven2RepositoryLayout2825912993b09435
    org.eclipse.aether.internal.impl.Maven2RepositoryLayoutFactory.Maven2RepositoryLayoutExb18f6739de7e8db0
    org.eclipse.aether.internal.impl.PrioritizedComponent00ff171869401e29
    org.eclipse.aether.internal.impl.PrioritizedComponentse71bba9ec0d8643e
    org.eclipse.aether.internal.impl.SafeTransferListener86b72877ce6c2f11
    org.eclipse.aether.internal.impl.SimpleLocalRepositoryManagere2eca6318b1c6f18
    org.eclipse.aether.internal.impl.SimpleLocalRepositoryManagerFactory149d3d19a25a4651
    org.eclipse.aether.internal.impl.TrackingFileManager5db271d2770ec74f
    org.eclipse.aether.internal.impl.Utils0b9aae9d602a8fc6
    org.eclipse.aether.internal.impl.WarnChecksumPolicybcf8c83b7a21ab61
    org.eclipse.aether.internal.impl.collect.CachingArtifactTypeRegistrye31d6bf3045fe461
    org.eclipse.aether.internal.impl.collect.DataPoolcb523f2c86026ea8
    org.eclipse.aether.internal.impl.collect.DataPool.Constraint297d975a009c1cad
    org.eclipse.aether.internal.impl.collect.DataPool.Constraint.VersionRepoe026cd2e9531c7ac
    org.eclipse.aether.internal.impl.collect.DataPool.ConstraintKey92269e939665d5fd
    org.eclipse.aether.internal.impl.collect.DataPool.Descriptor4834f73bec0ff33a
    org.eclipse.aether.internal.impl.collect.DataPool.GoodDescriptor7e9418c2ac3ca5f3
    org.eclipse.aether.internal.impl.collect.DataPool.GraphKey958d8a8ccf4068e0
    org.eclipse.aether.internal.impl.collect.DefaultDependencyCollectionContext5c0ba7329dc5de2d
    org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector4fffc0144badb661
    org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.Argsb9c000ffbaac6586
    org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.PremanagedDependency4676573d7e615a00
    org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.Results9ad2f685b92b7bee
    org.eclipse.aether.internal.impl.collect.DefaultDependencyGraphTransformationContext5340191c305613aa
    org.eclipse.aether.internal.impl.collect.DefaultVersionFilterContext856f4a5af1db1d54
    org.eclipse.aether.internal.impl.collect.NodeStack5f23250f61c74232
    org.eclipse.aether.internal.impl.collect.ObjectPool492861fa76b8b647
    org.eclipse.aether.internal.transport.wagon.PlexusWagonConfigurator1a795b3f796927c1
    org.eclipse.aether.internal.transport.wagon.PlexusWagonProvider92b25e44d9979242
    org.eclipse.aether.metadata.AbstractMetadata89255ad9799af096
    org.eclipse.aether.metadata.DefaultMetadata7823a887728f4a4b
    org.eclipse.aether.metadata.Metadata.Nature86f7033611aed5f9
    org.eclipse.aether.repository.AuthenticationContextf8825677a1b80f5a
    org.eclipse.aether.repository.AuthenticationDigest620c2b8249b21250
    org.eclipse.aether.repository.LocalArtifactRegistration9d6ec5a53efe9f43
    org.eclipse.aether.repository.LocalArtifactRequesta97b2fb0c0e17ce1
    org.eclipse.aether.repository.LocalArtifactResult9b22af0d46347ba9
    org.eclipse.aether.repository.LocalMetadataRegistrationf9def7374f8e2bec
    org.eclipse.aether.repository.LocalMetadataRequest0b767696dce21fb8
    org.eclipse.aether.repository.LocalMetadataResult88c9659148facaa9
    org.eclipse.aether.repository.LocalRepository5ea794752c978af5
    org.eclipse.aether.repository.RemoteRepository5d32dbd91a5a48c2
    org.eclipse.aether.repository.RemoteRepository.Builderb830595178867abe
    org.eclipse.aether.repository.RepositoryPolicy162e096967b124ce
    org.eclipse.aether.repository.WorkspaceRepository58526db8e833f3bc
    org.eclipse.aether.resolution.ArtifactDescriptorRequestbc5de0103510b4eb
    org.eclipse.aether.resolution.ArtifactDescriptorResult162ab67d42a96c42
    org.eclipse.aether.resolution.ArtifactRequest8416dcf3b5eafa7d
    org.eclipse.aether.resolution.ArtifactResolutionException1152f6118ae24679
    org.eclipse.aether.resolution.ArtifactResult5a9d67985178487e
    org.eclipse.aether.resolution.DependencyRequestb8393ee708e9f3fd
    org.eclipse.aether.resolution.DependencyResolutionException60be24e809cebe0b
    org.eclipse.aether.resolution.DependencyResult3a90b671ff8f4d07
    org.eclipse.aether.resolution.MetadataRequest6afe6d7ae41cae9f
    org.eclipse.aether.resolution.MetadataResult8e94a0e8e5a4adcf
    org.eclipse.aether.resolution.ResolutionErrorPolicyRequest3be95ab8c26360e0
    org.eclipse.aether.resolution.VersionRangeRequest763bcb32b868f094
    org.eclipse.aether.resolution.VersionRangeResulta247773d53f818c9
    org.eclipse.aether.resolution.VersionRequestf5c083f1a8563480
    org.eclipse.aether.resolution.VersionResult9c35cc28f40f1430
    org.eclipse.aether.spi.connector.ArtifactDownload2476e4f22f5847c6
    org.eclipse.aether.spi.connector.ArtifactTransferf3cb184b2f20fd49
    org.eclipse.aether.spi.connector.MetadataDownloadbcc9e801fa367fbe
    org.eclipse.aether.spi.connector.MetadataTransfer3a4bd38546c210df
    org.eclipse.aether.spi.connector.Transferd803c8771afd1ec4
    org.eclipse.aether.spi.connector.layout.RepositoryLayout.Checksum8e7c08fbfc25d36b
    org.eclipse.aether.spi.connector.transport.GetTask01daa9b27db1eebf
    org.eclipse.aether.spi.connector.transport.PeekTask2f56fd7c44a9a1a3
    org.eclipse.aether.spi.connector.transport.TransportListener760c4efaa0fceeb2
    org.eclipse.aether.spi.connector.transport.TransportTask163fcff2bd35927f
    org.eclipse.aether.spi.connector.transport.TransportTask.1f15cbc222c364acc
    org.eclipse.aether.transfer.AbstractTransferListener4c692296a190381d
    org.eclipse.aether.transfer.ArtifactNotFoundException8aa33fc80dd72b1a
    org.eclipse.aether.transfer.ArtifactTransferException4516c17573ac787f
    org.eclipse.aether.transfer.MetadataNotFoundExceptione035fe97f69b7331
    org.eclipse.aether.transfer.MetadataTransferExceptionc8c67c2410a8cef2
    org.eclipse.aether.transfer.TransferEventc9660918ee23a6f2
    org.eclipse.aether.transfer.TransferEvent.12586de18df0d28cb
    org.eclipse.aether.transfer.TransferEvent.Builderb148c3a3848dfe78
    org.eclipse.aether.transfer.TransferEvent.EventType362b95fbb9615076
    org.eclipse.aether.transfer.TransferEvent.RequestType8b16b603e6f6e313
    org.eclipse.aether.transfer.TransferResourceacbe44f330e5854f
    org.eclipse.aether.transport.wagon.WagonTransferListenerb85f448dfe16317d
    org.eclipse.aether.transport.wagon.WagonTransporter7e0c67fbae092309
    org.eclipse.aether.transport.wagon.WagonTransporter.GetTaskRunner5625099fd4f8cc62
    org.eclipse.aether.transport.wagon.WagonTransporter.PeekTaskRunner46affff02df9047e
    org.eclipse.aether.transport.wagon.WagonTransporterFactory26cdecfb9aef9364
    org.eclipse.aether.util.ChecksumUtils4ee95be05732225b
    org.eclipse.aether.util.ConfigUtils99edab18eab6465d
    org.eclipse.aether.util.artifact.ArtifactIdUtils25364b8ec4986efa
    org.eclipse.aether.util.artifact.DefaultArtifactTypeRegistry9a2e2c6c8da38e66
    org.eclipse.aether.util.artifact.SimpleArtifactTypeRegistrya73c4cdc580faca7
    org.eclipse.aether.util.artifact.SubArtifact1e6cbeda010a69a5
    org.eclipse.aether.util.concurrency.RunnableErrorForwarderde46016e5a5cf0c0
    org.eclipse.aether.util.concurrency.RunnableErrorForwarder.1b44b32862894cd19
    org.eclipse.aether.util.concurrency.WorkerThreadFactorye10875ad94a86603
    org.eclipse.aether.util.filter.AndDependencyFilter98b2bc3f2587ea9d
    org.eclipse.aether.util.filter.ExclusionsDependencyFilterc24c27082e0cb567
    org.eclipse.aether.util.filter.ScopeDependencyFilterbb5cc8b16ec35ffc
    org.eclipse.aether.util.graph.manager.ClassicDependencyManagerc0d9663f796727f1
    org.eclipse.aether.util.graph.manager.ClassicDependencyManager.Key24ab4f49ea6b4d5b
    org.eclipse.aether.util.graph.manager.DependencyManagerUtilsdf54a5a1b6bdff14
    org.eclipse.aether.util.graph.manager.DependencyManagerUtils692fe4094e27b407
    org.eclipse.aether.util.graph.selector.AndDependencySelector0029ca9b39eedfa5
    org.eclipse.aether.util.graph.selector.ExclusionDependencySelector7a0b7fad3d8f6e2c
    org.eclipse.aether.util.graph.selector.ExclusionDependencySelector.ExclusionComparatorc3ff65eb43cb703c
    org.eclipse.aether.util.graph.selector.OptionalDependencySelectorc2e081d7b4ec589b
    org.eclipse.aether.util.graph.selector.ScopeDependencySelector60bf8b0620a7bdcf
    org.eclipse.aether.util.graph.transformer.ChainedDependencyGraphTransformer2d884f89bcd2b987
    org.eclipse.aether.util.graph.transformer.ConflictIdSorter2ee1a0956a716d80
    org.eclipse.aether.util.graph.transformer.ConflictIdSorter.ConflictIdb20aea3e7924b084
    org.eclipse.aether.util.graph.transformer.ConflictIdSorter.RootQueued0dcb3c160e916ae
    org.eclipse.aether.util.graph.transformer.ConflictMarkerd24d6884c0bd4006
    org.eclipse.aether.util.graph.transformer.ConflictMarker.ConflictGroup98dc15c2652d8368
    org.eclipse.aether.util.graph.transformer.ConflictMarker.Keye5c7e5495a87181c
    org.eclipse.aether.util.graph.transformer.ConflictResolver384899dde7152cfd
    org.eclipse.aether.util.graph.transformer.ConflictResolver.ConflictContext21540bf8bbcfcb37
    org.eclipse.aether.util.graph.transformer.ConflictResolver.ConflictItem7b0221cb2a9842b4
    org.eclipse.aether.util.graph.transformer.ConflictResolver.NodeInfo40c05858d298dcd4
    org.eclipse.aether.util.graph.transformer.ConflictResolver.OptionalitySelector4d61314c86ea58be
    org.eclipse.aether.util.graph.transformer.ConflictResolver.ScopeContext717cd55d6f5c7875
    org.eclipse.aether.util.graph.transformer.ConflictResolver.ScopeDerivere48b35c97f7b30c5
    org.eclipse.aether.util.graph.transformer.ConflictResolver.ScopeSelectorba49ff8486e5e3ea
    org.eclipse.aether.util.graph.transformer.ConflictResolver.State02aa46d4b9b9d472
    org.eclipse.aether.util.graph.transformer.ConflictResolver.VersionSelector528be6a4caf19dac
    org.eclipse.aether.util.graph.transformer.JavaDependencyContextRefiner4ac264a1231fda7d
    org.eclipse.aether.util.graph.transformer.JavaScopeDeriver8f04bd4e69312d78
    org.eclipse.aether.util.graph.transformer.JavaScopeSelector53b4b13dabb0b9c8
    org.eclipse.aether.util.graph.transformer.NearestVersionSelectorf80aa36e79d5502a
    org.eclipse.aether.util.graph.transformer.NearestVersionSelector.ConflictGroupfd25946b2a3230c7
    org.eclipse.aether.util.graph.transformer.SimpleOptionalitySelectorf1cbeaf1df16e347
    org.eclipse.aether.util.graph.transformer.TransformationContextKeys47d2e0455710b0bb
    org.eclipse.aether.util.graph.traverser.FatArtifactTraverser520c4f85500aeda8
    org.eclipse.aether.util.graph.visitor.AbstractDepthFirstNodeListGeneratorb528c53b3e3d63bf
    org.eclipse.aether.util.graph.visitor.FilteringDependencyVisitor0632aa8e80120714
    org.eclipse.aether.util.graph.visitor.PreorderNodeListGenerator42c8f689b8d6f9c5
    org.eclipse.aether.util.graph.visitor.Stack69f1bab9de4c0f8a
    org.eclipse.aether.util.graph.visitor.TreeDependencyVisitor8a7ee664d551622b
    org.eclipse.aether.util.repository.AuthenticationBuilder1065187b864ce909
    org.eclipse.aether.util.repository.ChainedAuthentication7b5cc95ab5c295fb
    org.eclipse.aether.util.repository.DefaultAuthenticationSelectorfe9c00a311fa38c4
    org.eclipse.aether.util.repository.DefaultMirrorSelector1dc27f5d35a0e009
    org.eclipse.aether.util.repository.DefaultMirrorSelector.MirrorDef9d65cce8d0648f06
    org.eclipse.aether.util.repository.DefaultProxySelector9621e5be87bdb9f8
    org.eclipse.aether.util.repository.SecretAuthentication2830ca28afd99bca
    org.eclipse.aether.util.repository.SimpleArtifactDescriptorPolicyd9324cc47219fb78
    org.eclipse.aether.util.repository.SimpleResolutionErrorPolicyb73605ce18f21a2b
    org.eclipse.aether.util.repository.StringAuthenticatione19d323f2ad9cab2
    org.eclipse.aether.util.version.GenericVersiona266d7c35c0161a8
    org.eclipse.aether.util.version.GenericVersion.Itema48cc569adf33ed7
    org.eclipse.aether.util.version.GenericVersion.Tokenizerb58979a813b61ca6
    org.eclipse.aether.util.version.GenericVersionConstraintd93ef3cf971c88cd
    org.eclipse.aether.util.version.GenericVersionRangef578b3ce465e3e07
    org.eclipse.aether.util.version.GenericVersionScheme89376c2464a88630
    org.eclipse.aether.util.version.UnionVersionRange99dca4884c76615b
    org.eclipse.aether.version.VersionRange.Bound7b40aed05448cb78
    org.eclipse.sisu.bean.BeanInjector2e8128055d5e610a
    org.eclipse.sisu.bean.BeanLifecycleb0c5a491ba014120
    org.eclipse.sisu.bean.BeanListener8f3309ac88d4a306
    org.eclipse.sisu.bean.BeanProperties6316b62780e3c9a8
    org.eclipse.sisu.bean.BeanPropertyField6b4d7d3b9567ca45
    org.eclipse.sisu.bean.BeanPropertyIterator04afcbd45c9e2ab4
    org.eclipse.sisu.bean.BeanPropertySetterc2d6f87fb22f864d
    org.eclipse.sisu.bean.BeanScheduler876f5c9222255f3e
    org.eclipse.sisu.bean.BeanScheduler.1750408aabd323c88
    org.eclipse.sisu.bean.BeanScheduler.CycleActivator6963b7e245dca1e8
    org.eclipse.sisu.bean.BeanScheduler.CycleActivator.155be160728ddbabd
    org.eclipse.sisu.bean.DeclaredMembersb83abaaacefb18d5
    org.eclipse.sisu.bean.DeclaredMembers.MemberIterator0111a86717d0edbb
    org.eclipse.sisu.bean.DeclaredMembers.View5314d4b610dd651f
    org.eclipse.sisu.bean.DeclaredMembers.View.19a35d81d7c5ae01b
    org.eclipse.sisu.bean.DeclaredMembers.View.2d422012db5310abc
    org.eclipse.sisu.bean.DeclaredMembers.View.3b159c18059e5e0b4
    org.eclipse.sisu.bean.LifecycleBuilder9ea784224b9576ac
    org.eclipse.sisu.bean.LifecycleManager7429430a787a2a50
    org.eclipse.sisu.bean.PropertyBinder7fa4d797a5981f5e
    org.eclipse.sisu.bean.PropertyBinder.17353603749636130
    org.eclipse.sisu.inject.BeanCache382d1242da97f2d8
    org.eclipse.sisu.inject.DefaultBeanLocatorf98506689d3ad436
    org.eclipse.sisu.inject.DefaultRankingFunction5a4747cbe30b78bc
    org.eclipse.sisu.inject.DescriptionSource39e80e695c2f655c
    org.eclipse.sisu.inject.Guice48b4a273507bbb3d7
    org.eclipse.sisu.inject.Guice4.13f4094932b69986b
    org.eclipse.sisu.inject.HiddenSource04dae8c8851d9c0d
    org.eclipse.sisu.inject.Implementationscce875273a764270
    org.eclipse.sisu.inject.Implementations.ClassFinderda033f0f8e37fbd9
    org.eclipse.sisu.inject.ImplicitBindingsa3e53ab8b0a1e826
    org.eclipse.sisu.inject.InjectorBindings37dbe094dd1a38fc
    org.eclipse.sisu.inject.LazyBeanEntry329d2f10f0ef9263
    org.eclipse.sisu.inject.LazyBeanEntry.JsrNamed31b028e5ca582cfb
    org.eclipse.sisu.inject.LocatedBeans9c89c19bb7a74473
    org.eclipse.sisu.inject.LocatedBeans.Itrc8158d871a7a969d
    org.eclipse.sisu.inject.Logsa45a946b19c9652d
    org.eclipse.sisu.inject.Logs.SLF4JSink18a87a880874a3ff
    org.eclipse.sisu.inject.MildConcurrentKeys4600a52f00ac409c
    org.eclipse.sisu.inject.MildConcurrentValues3495d973c56091dc
    org.eclipse.sisu.inject.MildElementsc9ff59135cc7a8ff
    org.eclipse.sisu.inject.MildElements.Itr1b09176c6f3198d6
    org.eclipse.sisu.inject.MildElements.Weakb4318b70ce079cfe
    org.eclipse.sisu.inject.MildKeys3645a21915ab7db5
    org.eclipse.sisu.inject.MildKeys.Weaka0e2ed97b804deb5
    org.eclipse.sisu.inject.MildValuesd4a77afa4a6b2720
    org.eclipse.sisu.inject.MildValues.1345eb22f591f659c
    org.eclipse.sisu.inject.MildValues.ValueItr671642afdba076d9
    org.eclipse.sisu.inject.MildValues.Weak5366cbd5c215c6c4
    org.eclipse.sisu.inject.QualifyingStrategy8bdb6cf996d384e6
    org.eclipse.sisu.inject.QualifyingStrategy.13dffb4a9169768cb
    org.eclipse.sisu.inject.QualifyingStrategy.27b2580cc2278d9b2
    org.eclipse.sisu.inject.QualifyingStrategy.35123ae136b09c808
    org.eclipse.sisu.inject.QualifyingStrategy.4b7961e0501c00750
    org.eclipse.sisu.inject.QualifyingStrategy.55d168112cd5bb83b
    org.eclipse.sisu.inject.RankedBindings2385eaa929888d4d
    org.eclipse.sisu.inject.RankedBindings.Itrb2478d26d7b67724
    org.eclipse.sisu.inject.RankedSequence3e3f8987cdb6638b
    org.eclipse.sisu.inject.RankedSequence.Content39b8e930cc8de80b
    org.eclipse.sisu.inject.RankedSequence.Itr302179e26af647f8
    org.eclipse.sisu.inject.Sourcesf8c144be16599d7d
    org.eclipse.sisu.inject.TypeArguments97104112aa141900
    org.eclipse.sisu.inject.Weak51c35b72949f369c
    org.eclipse.sisu.plexus.ClassRealmManagereff43a12844a0372
    org.eclipse.sisu.plexus.ComponentDescriptorBeanModuledac87483ed026793
    org.eclipse.sisu.plexus.ComponentDescriptorBeanModule.ComponentMetadata2f4c35498aff75ee
    org.eclipse.sisu.plexus.ComponentDescriptorBeanModule.PlexusDescriptorBeanSource7bb22fcc1b0d0ee8
    org.eclipse.sisu.plexus.ComponentImpl5f6f11d91ae645cd
    org.eclipse.sisu.plexus.CompositeBeanHelperb5032db2bb6c6642
    org.eclipse.sisu.plexus.CompositeBeanHelper.13d86c6539c413522
    org.eclipse.sisu.plexus.ConfigurationImpl54bdb32e4e2a8cef
    org.eclipse.sisu.plexus.DefaultPlexusBeanLocatord1ca86cf7bb007bc
    org.eclipse.sisu.plexus.DefaultPlexusBeansd4daaac1da5db52c
    org.eclipse.sisu.plexus.DefaultPlexusBeans.Itr983e3d179b89a3d7
    org.eclipse.sisu.plexus.Hints4c47135ff4a2697d
    org.eclipse.sisu.plexus.LazyPlexusBean6797fd180a7015e2
    org.eclipse.sisu.plexus.PlexusAnnotatedBeanModule31a5bb0ac23b667e
    org.eclipse.sisu.plexus.PlexusAnnotatedBeanModule.1dc94fe2fc4cef5d2
    org.eclipse.sisu.plexus.PlexusAnnotatedBeanModule.PlexusAnnotatedBeanSource4d8d82854df77d0a
    org.eclipse.sisu.plexus.PlexusAnnotatedMetadata14f4c9e3883377a5
    org.eclipse.sisu.plexus.PlexusBeanBinder9e78e453651c5e38
    org.eclipse.sisu.plexus.PlexusBindingModulebcf44a7f8faa2c07
    org.eclipse.sisu.plexus.PlexusConfigurationsd54af3b088c76bd2
    org.eclipse.sisu.plexus.PlexusConfigurations.ConfigurationProvider6609c53fc644ca0d
    org.eclipse.sisu.plexus.PlexusDateTypeConverter19820cce7e83310f
    org.eclipse.sisu.plexus.PlexusLifecycleManager6ea67a37e01bcfc4
    org.eclipse.sisu.plexus.PlexusLifecycleManager.20b18a7efdccf18cb
    org.eclipse.sisu.plexus.PlexusPropertyBinderb3215114faa82eca
    org.eclipse.sisu.plexus.PlexusRequirementse960093da3d5c797
    org.eclipse.sisu.plexus.PlexusRequirements.AbstractRequirementProvider376b2b5224173d64
    org.eclipse.sisu.plexus.PlexusRequirements.RequirementListProviderb4896fdb5eed1908
    org.eclipse.sisu.plexus.PlexusRequirements.RequirementMapProvider5685ae776a880ee7
    org.eclipse.sisu.plexus.PlexusRequirements.RequirementProviderf9f67de58b78d187
    org.eclipse.sisu.plexus.PlexusTypeBinder1149679244a0e2bd
    org.eclipse.sisu.plexus.PlexusTypeRegistry6e35f638f7e48b32
    org.eclipse.sisu.plexus.PlexusTypeVisitor498c619653a30c86
    org.eclipse.sisu.plexus.PlexusTypeVisitor.ComponentAnnotationVisitor43872cc593f043c3
    org.eclipse.sisu.plexus.PlexusXmlBeanConverterdd5e7c1db4c2fc66
    org.eclipse.sisu.plexus.PlexusXmlBeanModule17de3c4c622b0ba0
    org.eclipse.sisu.plexus.PlexusXmlBeanModule.PlexusXmlBeanSourcef9a3d9aa92aae278
    org.eclipse.sisu.plexus.PlexusXmlMetadata2ad6a4c89e36b586
    org.eclipse.sisu.plexus.PlexusXmlScanner4ed0e681b9751bcf
    org.eclipse.sisu.plexus.ProvidedPropertyBinding6e081e8eec09bace
    org.eclipse.sisu.plexus.RealmFilteredBeans2a33dbb15b63935f
    org.eclipse.sisu.plexus.RealmFilteredBeans.FilteredItrb132e32aab5c3470
    org.eclipse.sisu.plexus.RequirementImpl61b519a8d750980f
    org.eclipse.sisu.plexus.Roles3e24f232efcf06ed
    org.eclipse.sisu.space.AbstractDeferredClass472c038c46595259
    org.eclipse.sisu.space.BeanScanning07b4ee3c550af352
    org.eclipse.sisu.space.CloningClassSpace66896ef167f44981
    org.eclipse.sisu.space.CloningClassSpace.1f1c9af3d2616e5bf
    org.eclipse.sisu.space.CloningClassSpace.CloningClassLoadere5469d76825bae28
    org.eclipse.sisu.space.DefaultClassFinderdb8ec25c6c67da87
    org.eclipse.sisu.space.FileEntryIterator4b5cf72ecb98491a
    org.eclipse.sisu.space.GlobberStrategy52df76d177fcdd86
    org.eclipse.sisu.space.GlobberStrategy.11a4c9d7f41111f1f
    org.eclipse.sisu.space.GlobberStrategy.2ce75be2e561eeecf
    org.eclipse.sisu.space.GlobberStrategy.3915761cede2dc7f0
    org.eclipse.sisu.space.GlobberStrategy.4d677d8e552a6721a
    org.eclipse.sisu.space.GlobberStrategy.510e247c5314cdfd0
    org.eclipse.sisu.space.IndexedClassFinderf2e79d8f9ef36d64
    org.eclipse.sisu.space.IndexedClassFinder.1ed4c027efa4fe02b
    org.eclipse.sisu.space.LoadedClassfdb46d891f167a1e
    org.eclipse.sisu.space.NamedClassebcad2cc154f68aa
    org.eclipse.sisu.space.QualifiedTypeBinder2b88f38f3eed029b
    org.eclipse.sisu.space.QualifiedTypeBinder.1e1bac4e059005d54
    org.eclipse.sisu.space.QualifiedTypeVisitord660080247bedc87
    org.eclipse.sisu.space.QualifierCache7c9e49612f04ffec
    org.eclipse.sisu.space.ResourceEnumeration310c00490124a409
    org.eclipse.sisu.space.SpaceModulec092f3277f07a7af
    org.eclipse.sisu.space.SpaceModule.Strategy082cdd800f5667ee
    org.eclipse.sisu.space.SpaceModule.Strategy.1b736ccb10af9108d
    org.eclipse.sisu.space.SpaceScannere97d8c3b6d397ae2
    org.eclipse.sisu.space.SpaceScanner.14f9f4db2b57e0f5e
    org.eclipse.sisu.space.Streams40e8ed23eba0c0c6
    org.eclipse.sisu.space.URLClassSpaceb934d107477ddd50
    org.eclipse.sisu.space.WildcardKey8970655c2c325473
    org.eclipse.sisu.space.WildcardKey.QualifiedImpl4459e1715740d94a
    org.eclipse.sisu.space.asm.ByteVector7b683bf2c588ab80
    org.eclipse.sisu.space.asm.ClassReader8a3e7d9ac8705663
    org.eclipse.sisu.space.asm.ClassVisitor4115141f4504a662
    org.eclipse.sisu.space.asm.ClassWriter67ee68ad268c1e97
    org.eclipse.sisu.space.asm.Contextd73d35f5ec45cc3d
    org.eclipse.sisu.space.asm.Item1f077e0f837ab619
    org.eclipse.sisu.space.asm.MethodVisitorc5f1682359b76688
    org.eclipse.sisu.space.asm.MethodWriter4c2f6611ec463c4f
    org.eclipse.sisu.wire.AbstractTypeConverter180ea9e40c23f34d
    org.eclipse.sisu.wire.BeanProviders2a23cb82bfe38cdc
    org.eclipse.sisu.wire.BeanProviders.11d71bd41c29add1e
    org.eclipse.sisu.wire.BeanProviders.381adc8b611362e07
    org.eclipse.sisu.wire.BeanProviders.465ef0930b998dad9
    org.eclipse.sisu.wire.BeanProviders.6d7dec0f370f737fa
    org.eclipse.sisu.wire.BeanProviders.71227d6f66239af91
    org.eclipse.sisu.wire.DependencyAnalyzer433ba24439953fac
    org.eclipse.sisu.wire.ElementAnalyzer424ca87526c18853
    org.eclipse.sisu.wire.ElementAnalyzer.1870e46aba4bbea7d
    org.eclipse.sisu.wire.EntryListAdapterbf77e6c5b374bf62
    org.eclipse.sisu.wire.EntryListAdapter.ValueIterator903be58572efe633
    org.eclipse.sisu.wire.EntryMapAdapter91d53462f884e42e
    org.eclipse.sisu.wire.EntryMapAdapter.EntrySet911738927485631c
    org.eclipse.sisu.wire.EntrySetAdapterdf44dc5ac6730d32
    org.eclipse.sisu.wire.EntrySetAdapter.ValueIterator5bb7409aaf62c054
    org.eclipse.sisu.wire.FileTypeConverter8dd4f6b96bb34090
    org.eclipse.sisu.wire.LocatorWiringec69df8483f00eba
    org.eclipse.sisu.wire.MergedPropertiesa5846853caa6992b
    org.eclipse.sisu.wire.NamedIterableAdapterd4e047de0ce39487
    org.eclipse.sisu.wire.ParameterKeysffc8de45e6eeca25
    org.eclipse.sisu.wire.PlaceholderBeanProviderb43eaba18c721b8a
    org.eclipse.sisu.wire.TypeConverterCachef0821bccda91a0b1
    org.eclipse.sisu.wire.URLTypeConverterd13cc26c27375694
    org.eclipse.sisu.wire.WireModule08f5efc75914a064
    org.eclipse.sisu.wire.WireModule.Strategy012f689a554ea078
    org.eclipse.sisu.wire.WireModule.Strategy.131bc5d0e450bd7fc
    org.fusesource.jansi.Ansi603f2b957c03acf7
    org.fusesource.jansi.Ansi.1519e5ff2c03936da
    org.fusesource.jansi.Ansi.2778e54530194f40d
    org.fusesource.jansi.Ansi.Attribute28d1c58ca82605fc
    org.fusesource.jansi.Ansi.Color04458ab8591a1201
    org.fusesource.jansi.Ansi.NoAnsi5eea646c764bdecd
    org.fusesource.jansi.AnsiColors17fd04959e69fbbd
    org.fusesource.jansi.AnsiConsole9842904853451d7e
    org.fusesource.jansi.AnsiMode5d91c521069ccee5
    org.fusesource.jansi.AnsiPrintStreama10f086dd5691836
    org.fusesource.jansi.AnsiTypeb8b00cb9480283cf
    org.fusesource.jansi.internal.CLibrary4f4b5321cd03e7f0
    org.fusesource.jansi.internal.JansiLoader99d490183bbb095d
    org.fusesource.jansi.internal.JansiLoader.1672b483c5f08a2ff
    org.fusesource.jansi.internal.OSInfo6518ec52b6fc8d17
    org.fusesource.jansi.io.AnsiOutputStream3aba47ad2d5f3bec
    org.fusesource.jansi.io.AnsiOutputStream.ZeroWidthSupplier0fce085599d7b97b
    org.fusesource.jansi.io.AnsiProcessorf588fd7249a419bb
    org.fusesource.jansi.io.FastBufferedOutputStream1e4560be87e3283c
    org.h2.Driver1f044461dbd822a6
    org.h2.api.ErrorCode840ef5ab229bbf49
    org.h2.api.IntervalQualifier246aae6a9c36f2b7
    org.h2.api.IntervalQualifier.1bf97f880f3318a4a
    org.h2.command.Commandf15559eee5a4b67d
    org.h2.command.CommandContainer7f1438019fc91d17
    org.h2.command.CommandContainer.GeneratedKeysCollector5cf7b5e7aba73e8d
    org.h2.command.CommandListfddd5691a587a13e
    org.h2.command.Parser2bb8f9e5a4a70b2e
    org.h2.command.Parser.1cb4488aad45d295c
    org.h2.command.Parser.NullConstraintType1f57cffeb49c7540
    org.h2.command.Prepared2afc45f364116e7c
    org.h2.command.Token9041f63f56392fb0
    org.h2.command.Token.CharacterStringTokendfb98b3bd2551690
    org.h2.command.Token.EndOfInputTokence0acd08cca36d96
    org.h2.command.Token.IdentifierToken96fa97b12ec39d26
    org.h2.command.Token.IntegerToken706265d29c73ee40
    org.h2.command.Token.KeywordToken89175f50cf553a38
    org.h2.command.Token.LiteralToken55ac31d811877860
    org.h2.command.Token.ParameterTokena1dbfddba95ea8c7
    org.h2.command.Tokenizer43f9aad9c9c53267
    org.h2.command.ddl.AlterTable7aa39625dc5b307b
    org.h2.command.ddl.AlterTableAddConstraint6b675b8c9348065a
    org.h2.command.ddl.Analyzed44dcecb13e7b816
    org.h2.command.ddl.Analyze.SelectivityData9d2bf75f8d5ea568
    org.h2.command.ddl.CommandWithColumns5d9315b33ee69573
    org.h2.command.ddl.CreateFunctionAliasd2883f3f10fd8091
    org.h2.command.ddl.CreateIndexf31feb6e3685ea46
    org.h2.command.ddl.CreateSequencef0b8c2a1c5e12476
    org.h2.command.ddl.CreateTablee7275c1615ebec1c
    org.h2.command.ddl.CreateTableData3569f1ca31e74768
    org.h2.command.ddl.CreateUser2695390fae1d1c8e
    org.h2.command.ddl.DefineCommandcdddc9c95e413810
    org.h2.command.ddl.DropFunctionAlias631cd825046dbdf1
    org.h2.command.ddl.DropTablec459b4654874bc90
    org.h2.command.ddl.DropTable.SchemaAndTable6a855d249c69374b
    org.h2.command.ddl.SchemaCommand37562b22aa4d46eb
    org.h2.command.ddl.SchemaOwnerCommandd933ca320cd38b16
    org.h2.command.ddl.SequenceOptionsac62424e14dc3d1f
    org.h2.command.dml.Call4aac04baa26dbb5c
    org.h2.command.dml.CommandWithValuesfe71d1b4348da45a
    org.h2.command.dml.DataChangeStatement33e9a83e6aa9a2b0
    org.h2.command.dml.Deleteb0c0aa15ef7ffca8
    org.h2.command.dml.FilteredDataChangeStatementd1f06c41064db97d
    org.h2.command.dml.Insert92b352a399a37d13
    org.h2.command.dml.Mergef44a09337cc1f188
    org.h2.command.dml.NoOperation45224ad69233db9a
    org.h2.command.dml.Setd21842a092a85228
    org.h2.command.dml.SetClauseList8d7af84401b9e26f
    org.h2.command.dml.SetClauseList.SetSimple8f716343f11c7e82
    org.h2.command.dml.SetClauseList.UpdateAction1eb72da8fe8e5057
    org.h2.command.dml.SetTypes016d945a5f04106d
    org.h2.command.dml.TransactionCommand3d756d024aef2b4e
    org.h2.command.dml.Update1bc1970970fb06be
    org.h2.command.query.AllColumnsForPlan450f809346d1808b
    org.h2.command.query.Optimizer46f986c336d6a3f6
    org.h2.command.query.Queryb4b2ce90b74182d5
    org.h2.command.query.Query.OffsetFetch19fb6b1d83396f8a
    org.h2.command.query.QueryOrderBy23777a00278ca3a2
    org.h2.command.query.Selectf5dc2c718161fa97
    org.h2.command.query.Select.LazyResultGroupSortedc599665435c0d17c
    org.h2.command.query.Select.LazyResultQueryFlat85da5085987fa500
    org.h2.command.query.Select.LazyResultSelectbccfb20cef56dd5e
    org.h2.command.query.SelectGroups31af3273b4e64a1c
    org.h2.command.query.SelectGroups.Groupede4db5aab5499ea40
    org.h2.compress.CompressLZF4b905f980eac239a
    org.h2.constraint.Constraintf020b750ed00e5a4
    org.h2.constraint.Constraint.Type22cd7378e3a10d3f
    org.h2.constraint.ConstraintActionType5628afb57ab6e865
    org.h2.constraint.ConstraintReferential2a77c026aeb8aab4
    org.h2.constraint.ConstraintUniqued487c96b0517f1bf
    org.h2.engine.ConnectionInfo343d6a137cb5b573
    org.h2.engine.Database83e12c5a8547f3c5
    org.h2.engine.DbObjecta1d54de7a70f69aa
    org.h2.engine.DbSettingsc16ca39af0b52094
    org.h2.engine.Engine8d1bef8b32a84ba9
    org.h2.engine.Engine.DatabaseHolderf3e1da4d84fad7c4
    org.h2.engine.IsolationLeveldc3d1e0f909bb346
    org.h2.engine.MetaRecord29bceca9a65575ba
    org.h2.engine.Moded125cf383981bd10
    org.h2.engine.Mode.CharPadding8cf8ff3cbc571739
    org.h2.engine.Mode.ExpressionNames88384897021057f2
    org.h2.engine.Mode.ModeEnuma38cd43a6cd506a3
    org.h2.engine.Mode.UniqueIndexNullsHandling502dde04362c0a05
    org.h2.engine.Mode.ViewExpressionNames5d52fc04ceb58107
    org.h2.engine.OnExitDatabaseCloserbf4571800d7637b7
    org.h2.engine.RightOwnerc6021e43f64032ac
    org.h2.engine.Role094194bad60e1b75
    org.h2.engine.Session64d6d72ad82917c2
    org.h2.engine.SessionLocal51a58f8ace245808
    org.h2.engine.SessionLocal.155f9583f8325b772
    org.h2.engine.SessionLocal.Savepoint781800cec7d35e7d
    org.h2.engine.SessionLocal.State1a3f8ed61a9b559b
    org.h2.engine.SessionRemotef37ba123636968a3
    org.h2.engine.Settingc86b1d51f590b2b5
    org.h2.engine.SettingsBase47dcfc6eb02612ad
    org.h2.engine.SysProperties738fc14326e6697a
    org.h2.engine.User6642d70796bd346f
    org.h2.expression.Alias47aad16dec6f33d9
    org.h2.expression.Expressionbb4614abe3a7154a
    org.h2.expression.ExpressionColumnf3c03411ffc0fd1f
    org.h2.expression.ExpressionVisitorcabab1ad46664b16
    org.h2.expression.Operation0b942a11663e00451
    org.h2.expression.Parameter9867f0e8942380a2
    org.h2.expression.Subqueryeff6c6c3dc5e12a9
    org.h2.expression.ValueExpressionb0947d3b406882f5
    org.h2.expression.Wildcardd50b73091423744c
    org.h2.expression.aggregate.AbstractAggregatea1557954a9f0e0fd
    org.h2.expression.aggregate.Aggregatede37080964c8db3d
    org.h2.expression.aggregate.Aggregate.128b7d61d336b32ba
    org.h2.expression.aggregate.AggregateType1f12aa2df974eb3f
    org.h2.expression.analysis.DataAnalysisOperation0b8d4789dc81b499
    org.h2.expression.analysis.WindowFunctionType9edb2feb98f39fd3
    org.h2.expression.condition.CompareLikebfca5d36f3721656
    org.h2.expression.condition.CompareLike.LikeTypee95df3a5894c0c26
    org.h2.expression.condition.Comparisonab7a87af7f1330e7
    org.h2.expression.condition.Conditionbb2da5a03aff382e
    org.h2.expression.condition.ConditionAndOr2634baba9064882c
    org.h2.expression.condition.ConditionAndOrN0491a0d6c6b89083
    org.h2.expression.condition.ConditionAndOrN.1cfd803b14c295199
    org.h2.expression.condition.ConditionIne017bd7adb1fec4c
    org.h2.expression.condition.ConditionInConstantSetaddc1ef3077dfa02
    org.h2.expression.condition.ConditionInQuery83b77a124dc49b44
    org.h2.expression.condition.ConditionNot1a7a1eba3b305bb4
    org.h2.expression.condition.ExistsPredicatee7bcaf34917488c9
    org.h2.expression.condition.NullPredicate21b0526630ed4e26
    org.h2.expression.condition.PredicateWithSubquery46eace853cd5ff8a
    org.h2.expression.condition.SimplePredicate0f9b739d0f1359bd
    org.h2.expression.function.BuiltinFunctions78766f5d309e1eec
    org.h2.expression.function.JavaFunction8391ba07cf63097b
    org.h2.expression.function.table.JavaTableFunction8cb1238ea869184a
    org.h2.expression.function.table.TableFunction5addabe4c1cbb08e
    org.h2.index.Index1437895d5bdaf159
    org.h2.index.Index.1a3373b1a421e99ac
    org.h2.index.IndexCondition0e9d41fbd2afa93d
    org.h2.index.IndexCursor21f3911a0d80a7b2
    org.h2.index.IndexTypedb20d5927a484411
    org.h2.index.QueryExpressionCursorc53cb48c5a0bf1f0
    org.h2.index.QueryExpressionIndex2b0eaa3b6eb43f26
    org.h2.index.SingleRowCursor6f2da13a23aba782
    org.h2.index.VirtualConstructedTableIndexc17d7a1400792d7a
    org.h2.index.VirtualTableCursor8db1a2842eb0be15
    org.h2.index.VirtualTableIndex44e06dac7b5e3d1d
    org.h2.jdbc.JdbcCallableStatement36a9537027d01f49
    org.h2.jdbc.JdbcConnectionaa9112f98496def0
    org.h2.jdbc.JdbcDatabaseMetaData4b65250c88adaaa7
    org.h2.jdbc.JdbcPreparedStatement0aaec231f77e8af1
    org.h2.jdbc.JdbcResultSet6616d9dd2dd82d4f
    org.h2.jdbc.JdbcSQLSyntaxErrorException2bd1ec0ceace2a26
    org.h2.jdbc.JdbcStatementdf8e9ff4d1b735bd
    org.h2.jdbc.meta.DatabaseMeta379d6005c31973cb
    org.h2.jdbc.meta.DatabaseMetaLocal9825c2b1e6cec520
    org.h2.jdbc.meta.DatabaseMetaLocalBasea42ca75579848556
    org.h2.message.DbException3f0e60c471f39e98
    org.h2.message.Trace491f3dad3147c898
    org.h2.message.TraceObjectc9beab9cd4384a9d
    org.h2.message.TraceSystemaa8bb0c0af8cc8c0
    org.h2.mode.DefaultNullOrderingd83aa2fead8d7efe
    org.h2.mode.ModeFunction03b3e1d15a53837f
    org.h2.mvstore.Chunk2b8a58455a4c2e7c
    org.h2.mvstore.Cursor5d963e5e8ab0be55
    org.h2.mvstore.CursorPosd146fb9483aa8712
    org.h2.mvstore.DataUtils6f9e8b0e67603e41
    org.h2.mvstore.FileStore4d01e40aea5428e5
    org.h2.mvstore.FreeSpaceBitSet55db07b87d11e2d4
    org.h2.mvstore.MVMap32c3349a2372c157
    org.h2.mvstore.MVMap.27df089698418071c
    org.h2.mvstore.MVMap.2.106461ea1c3079cfc
    org.h2.mvstore.MVMap.48673b0dfdf29edc4
    org.h2.mvstore.MVMap.BasicBuilder12a8106056e3784e
    org.h2.mvstore.MVMap.Builder51c13779e4e1a2de
    org.h2.mvstore.MVMap.Decision2391341a8b4c7da2
    org.h2.mvstore.MVMap.DecisionMaker7fe21a9c95f0236a
    org.h2.mvstore.MVMap.DecisionMaker.159f115a410484a7f
    org.h2.mvstore.MVMap.DecisionMaker.26070fe88d005eac4
    org.h2.mvstore.MVMap.DecisionMaker.3be1c10e28ff6d6ed
    org.h2.mvstore.MVMap.DecisionMaker.4f9827774c99da346
    org.h2.mvstore.MVMap.DecisionMaker.5275afe4d593556c7
    org.h2.mvstore.MVMap.IntValueHolderfb1881f08df938cf
    org.h2.mvstore.MVMap.RewriteDecisionMaker3e5cd264616ca1dc
    org.h2.mvstore.MVStore4fc94bbd472340df
    org.h2.mvstore.MVStore.BackgroundWriterThread5e4fe6f9b6650f62
    org.h2.mvstore.MVStore.Builder22b94348c270ef84
    org.h2.mvstore.MVStore.RemovedPageInfo31c493fb15eead92
    org.h2.mvstore.MVStore.TxCounterf5c51e97efd048ff
    org.h2.mvstore.MVStoreTool40622d2c8e8a8fae
    org.h2.mvstore.MVStoreTool.GenericDataTypeabe626abc33a1797
    org.h2.mvstore.Page5b32006674721ed6
    org.h2.mvstore.Page.IncompleteNonLeaf94e31503b59e3d33
    org.h2.mvstore.Page.Leaf48d9ba9ba9662350
    org.h2.mvstore.Page.NonLeafbd593ef4c947b0e0
    org.h2.mvstore.Page.PageReferencea98dbb4602145de4
    org.h2.mvstore.RootReference8b29fe57e28baad2
    org.h2.mvstore.StreamStorea4b55720e4fa8a71
    org.h2.mvstore.WriteBufferf98e4194dfd876cb
    org.h2.mvstore.cache.CacheLongKeyLIRS70a2cf8ef58af26d
    org.h2.mvstore.cache.CacheLongKeyLIRS.Configab6a58ffa39c6717
    org.h2.mvstore.cache.CacheLongKeyLIRS.Entry7e7768c4cf65b4d3
    org.h2.mvstore.cache.CacheLongKeyLIRS.Segmentf45e9bdce23b5c6a
    org.h2.mvstore.cache.FilePathCache5cc88ecfa563617d
    org.h2.mvstore.db.LobStorageMapeee0296b34855abd
    org.h2.mvstore.db.LobStorageMap.BlobMeta.Type56a8bacb3e75d3c8
    org.h2.mvstore.db.LobStorageMap.BlobReference.Type9792efaa202c63aa
    org.h2.mvstore.db.MVDelegateIndex75a01b645f8a059b
    org.h2.mvstore.db.MVIndex30888e50fac82aa6
    org.h2.mvstore.db.MVPrimaryIndex4f32c68b3cab90d0
    org.h2.mvstore.db.MVPrimaryIndex.MVStoreCursorca89bfad0dcdffb4
    org.h2.mvstore.db.MVSecondaryIndex9c8fdcc12dea3c65
    org.h2.mvstore.db.MVSecondaryIndex.MVStoreCursor790db329af86c31a
    org.h2.mvstore.db.MVTablef4e542fe436bca97
    org.h2.mvstore.db.MVTable.TraceLockEvent2c65ff40346dd416
    org.h2.mvstore.db.NullValueDataType75887b246893f2df
    org.h2.mvstore.db.RowDataType415fc270aba4597d
    org.h2.mvstore.db.RowDataType.Factory61377fce7824577e
    org.h2.mvstore.db.Store9aa6802d26be5c1b
    org.h2.mvstore.db.ValueDataTypeddc57cbd4a05c876
    org.h2.mvstore.db.ValueDataType.Factory03156b0134bc4c6d
    org.h2.mvstore.tx.CommitDecisionMakerae621b8defbb83c6
    org.h2.mvstore.tx.Record254f69f363a486df
    org.h2.mvstore.tx.Record.Type13c88f7aecc610aa
    org.h2.mvstore.tx.Snapshot7825bd583d62dd0e
    org.h2.mvstore.tx.Transaction75932f57c40d96dc
    org.h2.mvstore.tx.TransactionMapa4908653e3ce2a56
    org.h2.mvstore.tx.TransactionMap.25cafec78b793e40f
    org.h2.mvstore.tx.TransactionMap.CommittedIterator22e94be11a21d3ac
    org.h2.mvstore.tx.TransactionMap.TMIterator80572a0d1caf43d1
    org.h2.mvstore.tx.TransactionMap.UncommittedIterator57853f3b6dbd4d83
    org.h2.mvstore.tx.TransactionMap.ValidationIterator75ff7710527bb148
    org.h2.mvstore.tx.TransactionStore5a88a95b9fb34fd5
    org.h2.mvstore.tx.TransactionStore.TxMapBuilder57e161cc52d96ce9
    org.h2.mvstore.tx.TransactionStore.TxMapBuilder.TMVMapf60431e734e35b1e
    org.h2.mvstore.tx.TxDecisionMaker85e444859e7357fd
    org.h2.mvstore.tx.TxDecisionMaker.LockDecisionMaker7ea1a788b9a585d7
    org.h2.mvstore.tx.TxDecisionMaker.PutIfAbsentDecisionMaker1259ec8cbd8d5f8c
    org.h2.mvstore.tx.VersionedBitSetcb03917e9303dd05
    org.h2.mvstore.tx.VersionedValueCommitted1f63835704f93873
    org.h2.mvstore.tx.VersionedValueTypee90353e002224186
    org.h2.mvstore.tx.VersionedValueType.Factoryb6f7352cd3439a49
    org.h2.mvstore.tx.VersionedValueUncommitted5871ba85ec76be11
    org.h2.mvstore.type.BasicDataType21b8242aa76782c6
    org.h2.mvstore.type.ByteArrayDataTypee926b9099661c292
    org.h2.mvstore.type.LongDataTypea03799f8c42a57d4
    org.h2.mvstore.type.MetaType1b436879079fb452
    org.h2.mvstore.type.ObjectDataType0579ed66fbb3a9d1
    org.h2.mvstore.type.ObjectDataType.AutoDetectDataTyped93d15cbc56bc2c0
    org.h2.mvstore.type.ObjectDataType.NullType9b8599d75350eb1b
    org.h2.mvstore.type.StringDataType4997f0a656a9b7fc
    org.h2.result.DefaultRowa9aef564d7a9fe69
    org.h2.result.FetchedResult2008c917d16b1cc3
    org.h2.result.LazyResult432ec92435f96622
    org.h2.result.LocalResult9de4335bee1fec76
    org.h2.result.MergedResult5e6094386dade22b
    org.h2.result.ResultWithGeneratedKeys56dd718df0035863
    org.h2.result.ResultWithGeneratedKeys.WithKeys81453e840e25f068
    org.h2.result.Rowe004551f934d55a4
    org.h2.result.RowFactory301cd649330026d4
    org.h2.result.RowFactory.DefaultRowFactory5ab0b7f9f28099de
    org.h2.result.RowFactory.Holder41f1cc54c079c8d7
    org.h2.result.SearchRowd20e3d81378dc409
    org.h2.result.SimpleResult920b7e7276e08e34
    org.h2.result.SimpleRowValueb7d88298dd608b52
    org.h2.result.SortOrder497173c7c397dac3
    org.h2.result.Sparseb44a8f52a128b90c
    org.h2.schema.FunctionAlias2e55d18c6db10dae
    org.h2.schema.FunctionAlias.JavaMethod85554b6f739981d5
    org.h2.schema.InformationSchema5e171fc1d52567fb
    org.h2.schema.MetaSchemac20f6c35b912334c
    org.h2.schema.Schemaf6454b28cba42d52
    org.h2.schema.SchemaObject36331feedf964ee6
    org.h2.schema.Sequence11a6133ecefc8aa4
    org.h2.schema.Sequence.Cycleb813b944f3b57fe2
    org.h2.schema.UserDefinedFunctionfbc4095ef115a3ff
    org.h2.security.SHA2561377489050965973
    org.h2.store.FileLockMethod0a5e8bccdf92e35d
    org.h2.store.fs.FilePath3e0e7373c74033d1
    org.h2.store.fs.FilePathWrapper87d875796781afee
    org.h2.store.fs.FileUtils060a02c4aa2ff96e
    org.h2.store.fs.async.FilePathAsync16b33a44b1b5c235
    org.h2.store.fs.disk.FilePathDisk9ad70347c3c53b77
    org.h2.store.fs.mem.FileMemData659f85e22c47f221
    org.h2.store.fs.mem.FileMemData.Cachec73e11e6de2d8b69
    org.h2.store.fs.mem.FilePathMem595d031b8b0ce4b0
    org.h2.store.fs.mem.FilePathMemLZFfd5d7643ab9b5c2f
    org.h2.store.fs.niomapped.FilePathNioMapped67f5832e83405fcb
    org.h2.store.fs.niomem.FilePathNioMemf67f0322fbf112b5
    org.h2.store.fs.niomem.FilePathNioMemLZF132bbce83f940aba
    org.h2.store.fs.retry.FilePathRetryOnInterrupt3d5668f3ef57ef12
    org.h2.store.fs.split.FilePathSplite0332cdbd53823fa
    org.h2.store.fs.zip.FilePathZip571394bd7911f1b6
    org.h2.table.Column500d643f327e8cd1
    org.h2.table.ColumnResolver4b2aaf94f471a049
    org.h2.table.DataChangeDeltaTablecfef12b2b35a029b
    org.h2.table.DataChangeDeltaTable.ResultOption73e3b4dbc5058973
    org.h2.table.DerivedTable118d6bbae0b93081
    org.h2.table.FunctionTable7a3beca58af5af30
    org.h2.table.IndexColumnc5ce22adf3f59bf5
    org.h2.table.Plan612dabb67cb62cc8
    org.h2.table.PlanItem2def26bf3b87d892
    org.h2.table.QueryExpressionTablefe6c39461916bf29
    org.h2.table.QueryExpressionTable.CacheKey02ff6fc199caa9e1
    org.h2.table.Tableed8d3f8796b74a1d
    org.h2.table.TableBasef9650065ef79d0f9
    org.h2.table.TableFilter1580e6e3d1837400
    org.h2.table.TableFilter.MapColumnsVisitor931d604ec2d424fa
    org.h2.table.TableType56836f7ea831c8ba
    org.h2.table.TableView637347b8559c044a
    org.h2.table.VirtualConstructedTable36afa3d203d149cd
    org.h2.table.VirtualTable248eb390e7f82f29
    org.h2.tools.SimpleResultSet4bd50af4f2edb6c8
    org.h2.util.CloseWatcherd678edef8d7cbcbd
    org.h2.util.DateTimeUtilsacbb58d9000f572f
    org.h2.util.IOUtils06d92b9f3551d003
    org.h2.util.IntArray2d524574ca63a248
    org.h2.util.JdbcUtilsa7cfc728a8939a3e
    org.h2.util.MathUtilsbdf93c5de1c6efb3
    org.h2.util.MemoryEstimator7bd6b84998f4470b
    org.h2.util.ParserUtil398474903b80ed1c
    org.h2.util.Permutations1c369f58220c466d
    org.h2.util.SimpleColumnInfo6da39ea447f1aa63
    org.h2.util.SmallLRUCache63a9505e4a72e86e
    org.h2.util.StringUtilscf6054820621813b
    org.h2.util.TempFileDeletere68e70f0f01e6e19
    org.h2.util.TimeZoneProvidera9c2d46d5ee1d017
    org.h2.util.TimeZoneProvider.Simpled186373cefabcbb3
    org.h2.util.Utils2e2bbc2f742b19b6
    org.h2.value.CompareMode58b22695ed1120a6
    org.h2.value.DataTypebe6090f80ecffcac
    org.h2.value.ExtTypeInfo8a940de3624beb39
    org.h2.value.ExtTypeInfoNumeric3f914c76eef2be60
    org.h2.value.ExtTypeInfoRowdeaab78daddc8908
    org.h2.value.TypeInfo9580e5a8b9802809
    org.h2.value.Valuead2c19061ba2725c
    org.h2.value.ValueBigDecimalBase215bf47c3c8205bb
    org.h2.value.ValueBigint8ec2db6a6c646098
    org.h2.value.ValueBoolean4f6af7c87c5a47ef
    org.h2.value.ValueChar05adce8c2875c4f5
    org.h2.value.ValueCollectionBase4d2c057a6367985a
    org.h2.value.ValueDouble55ab9e06cecb16f6
    org.h2.value.ValueInteger3d79aac636fd91c9
    org.h2.value.ValueNull51a52bf735d3f5c0
    org.h2.value.ValueNumeric0d8483876bb2fdff
    org.h2.value.ValueReal424bbbec6dc1114e
    org.h2.value.ValueRowdeeea47dab148817
    org.h2.value.ValueSmallintb08c69d5b0149bd7
    org.h2.value.ValueStringBaseeb1bace27aaac6ab
    org.h2.value.ValueTimestampTimeZonee96caed7fa609eb6
    org.h2.value.ValueToObjectConverter2eb11fd432392fbc
    org.h2.value.ValueToObjectConverter25f48ffd2c93ddbd9
    org.h2.value.ValueUuid5eb695cdd938f028
    org.h2.value.ValueVarchara2d834fe0bd70399
    org.h2.value.VersionedValueb8b9a78f680ab7c6
    org.hamcrest.BaseMatcherf52733a4a58e8a8e
    org.hamcrest.MatcherAssert375cdaed635186e8
    org.hamcrest.core.Is1b4bc96017d7a098
    org.hamcrest.core.IsEqualdf3c8def58c301e5
    org.json.JSONbaec6cdb200e359d
    org.json.JSONArray6b86c0cea058a8d1
    org.json.JSONObjectab674655a5f57b72
    org.json.JSONObject.18c249464b0673518
    org.json.JSONTokenerfc4574aa57cb5d24
    org.junit.Asserteda6db924019425b
    org.junit.internal.Checks5f543b0bb87b92da
    org.junit.internal.MethodSortera26607ae067f7352
    org.junit.internal.MethodSorter.1d3997b4bdb7889c1
    org.junit.internal.MethodSorter.2c8e6351cbf098013
    org.junit.internal.builders.AllDefaultPossibilitiesBuilder4f18a1d7932cb8ab
    org.junit.internal.builders.AnnotatedBuilder0faf353d180c9332
    org.junit.internal.builders.IgnoredBuildere152f333c53967a6
    org.junit.internal.builders.JUnit3Builder4a2cc8e608e1275e
    org.junit.internal.builders.JUnit4Builderf2e00a3e1fc23005
    org.junit.internal.builders.SuiteMethodBuilder1df136431e07e393
    org.junit.internal.requests.ClassRequest47dbc61675e5a92e
    org.junit.internal.requests.ClassRequest.CustomAllDefaultPossibilitiesBuilderea1c269d9656f543
    org.junit.internal.requests.ClassRequest.CustomSuiteMethodBuilder03d01020b1c503c7
    org.junit.internal.requests.MemoizingRequest1e70801476dbab8f
    org.junit.internal.runners.model.EachTestNotifier077481995383e000
    org.junit.internal.runners.model.ReflectiveCallabled591724635588bcb
    org.junit.internal.runners.rules.RuleMemberValidator95b5ee2068ec6875
    org.junit.internal.runners.rules.RuleMemberValidator.Builderf24845fa6fd065af
    org.junit.internal.runners.rules.RuleMemberValidator.DeclaringClassMustBePublic1de994463c748d89
    org.junit.internal.runners.rules.RuleMemberValidator.FieldMustBeARulee24e9f59de6fe5b7
    org.junit.internal.runners.rules.RuleMemberValidator.FieldMustBeATestRule690823bd2992f52e
    org.junit.internal.runners.rules.RuleMemberValidator.MemberMustBeNonStaticOrAlsoClassRule1e703fb3e7f4e533
    org.junit.internal.runners.rules.RuleMemberValidator.MemberMustBePublic806c174eb921b478
    org.junit.internal.runners.rules.RuleMemberValidator.MemberMustBeStaticac28a03dd36b2b5a
    org.junit.internal.runners.rules.RuleMemberValidator.MethodMustBeARule88ea4a2237de2b8b
    org.junit.internal.runners.rules.RuleMemberValidator.MethodMustBeATestRule9f4dd18a26005c18
    org.junit.internal.runners.statements.InvokeMethod05a7aa636afa2c39
    org.junit.internal.runners.statements.RunAfters14a998d07920cd7b
    org.junit.internal.runners.statements.RunBeforesef86a61ca3ab20ba
    org.junit.runner.Description1d6f7ddbbf223f9a
    org.junit.runner.Request214d9ade1c7dc38d
    org.junit.runner.Resultecf6c1c04298ff7d
    org.junit.runner.Result.Listenercf649a4ffbe55db9
    org.junit.runner.Runnerf5abacc70e2e08a4
    org.junit.runner.notification.RunListener69d2c783b42f6720
    org.junit.runner.notification.RunNotifierf6313076e2224ebb
    org.junit.runner.notification.RunNotifier.1e31025c12b4dbdee
    org.junit.runner.notification.RunNotifier.24c7314c6d595dc3e
    org.junit.runner.notification.RunNotifier.3df2bada5cb3794f3
    org.junit.runner.notification.RunNotifier.4fbdd84204c215de7
    org.junit.runner.notification.RunNotifier.5f62dc396b601f8bd
    org.junit.runner.notification.RunNotifier.9c3c3d54b8ed47ee1
    org.junit.runner.notification.RunNotifier.SafeNotifier0b43c10299733bfb
    org.junit.runner.notification.SynchronizedRunListener2b59d5cb3b105225
    org.junit.runners.BlockJUnit4ClassRunner95752fb34ff12f3f
    org.junit.runners.BlockJUnit4ClassRunner.1d0f63145230a5f42
    org.junit.runners.BlockJUnit4ClassRunner.2f93eace695ddd30e
    org.junit.runners.BlockJUnit4ClassRunner.RuleCollector9c768e710e39c989
    org.junit.runners.JUnit46d26e2305347fe01
    org.junit.runners.Parameterized963841242a61a1e2
    org.junit.runners.Parameterized.RunnersFactoryc5ee5b5ac59f40b0
    org.junit.runners.ParentRunner335ee90b10f96ea1
    org.junit.runners.ParentRunner.1ecc6961e8bc209c4
    org.junit.runners.ParentRunner.2c5cb913a629ec4c8
    org.junit.runners.ParentRunner.320bad8188aebc0f2
    org.junit.runners.ParentRunner.480476dbdcb8d52cc
    org.junit.runners.ParentRunner.ClassRuleCollector26f7fb338afcd13b
    org.junit.runners.RuleContainerd44c3ba6dc65af53
    org.junit.runners.RuleContainer.157bbc73f6f47763b
    org.junit.runners.Suite154944342f498508
    org.junit.runners.model.FrameworkField2fe27c284e7d39f4
    org.junit.runners.model.FrameworkMemberbfd059486f267475
    org.junit.runners.model.FrameworkMethodf293b82d5aa86323
    org.junit.runners.model.FrameworkMethod.18fd5e02769c0e0c2
    org.junit.runners.model.MultipleFailureException187a72c573c34bac
    org.junit.runners.model.RunnerBuilder585cad2d320dc86e
    org.junit.runners.model.Statement9a75aa5de27bf4d5
    org.junit.runners.model.TestClass7e71209792391ee8
    org.junit.runners.model.TestClass.FieldComparator1b96cd3d5c4aeb07
    org.junit.runners.model.TestClass.MethodComparator0369eb29eb04248a
    org.junit.runners.parameterized.BlockJUnit4ClassRunnerWithParametersebeaa09f1f8eb6f3
    org.junit.runners.parameterized.BlockJUnit4ClassRunnerWithParameters.1c4024da18ca412c5
    org.junit.runners.parameterized.BlockJUnit4ClassRunnerWithParameters.InjectionType4a7c5c9856e4e9f4
    org.junit.runners.parameterized.BlockJUnit4ClassRunnerWithParametersFactory6f2e3a2b7ea357b7
    org.junit.runners.parameterized.TestWithParameters0ec69411e744952d
    org.junit.validator.AnnotationValidatorFactorye1e5570798173ab9
    org.junit.validator.AnnotationsValidator6cbe8454c9a93bb8
    org.junit.validator.AnnotationsValidator.AnnotatableValidatord211a963f22be103
    org.junit.validator.AnnotationsValidator.ClassValidator1b463c4e6642e880
    org.junit.validator.AnnotationsValidator.FieldValidator64068b954dc56a31
    org.junit.validator.AnnotationsValidator.MethodValidatorf16b57f17c787036
    org.junit.validator.PublicClassValidator3bac248cf06b18e4
    org.owasp.dependencycheck.AnalysisTaske7c73a60a930646f
    org.owasp.dependencycheck.Engine9eb4069cf91f3cee
    org.owasp.dependencycheck.Engine.Mode3f6a6fa06c5db5ef
    org.owasp.dependencycheck.agent.DependencyCheckScanAgentde6949324a1aad84
    org.owasp.dependencycheck.analyzer.AbstractAnalyzer53c2c707332e447f
    org.owasp.dependencycheck.analyzer.AbstractDependencyComparingAnalyzere5687426d9a0f66f
    org.owasp.dependencycheck.analyzer.AbstractFileTypeAnalyzercb75e41db9829ee7
    org.owasp.dependencycheck.analyzer.AbstractNpmAnalyzerf1f4584a14215949
    org.owasp.dependencycheck.analyzer.AbstractSuppressionAnalyzerfac2a53fa568132a
    org.owasp.dependencycheck.analyzer.AnalysisPhase8a2dd7e79126521a
    org.owasp.dependencycheck.analyzer.AnalyzerServicec83777cdc46bc2d2
    org.owasp.dependencycheck.analyzer.ArchiveAnalyzerc4afb05e99324933
    org.owasp.dependencycheck.analyzer.ArtifactoryAnalyzeraba5274b7a2d3c9c
    org.owasp.dependencycheck.analyzer.AssemblyAnalyzerb4f040a2e12ea447
    org.owasp.dependencycheck.analyzer.AutoconfAnalyzera61c7303a707d079
    org.owasp.dependencycheck.analyzer.CMakeAnalyzer466e5b6cfb32f8a0
    org.owasp.dependencycheck.analyzer.CPEAnalyzer8a5ab88772203ff1
    org.owasp.dependencycheck.analyzer.CPEAnalyzer.IdentifierConfidence68c0332006ac0f99
    org.owasp.dependencycheck.analyzer.CPEAnalyzer.IdentifierMatch92606f5613402d4c
    org.owasp.dependencycheck.analyzer.CentralAnalyzer8510025c8aaa3199
    org.owasp.dependencycheck.analyzer.CocoaPodsAnalyzer109d2f01d2ded1e1
    org.owasp.dependencycheck.analyzer.ComposerLockAnalyzer9d4ee64cf0474215
    org.owasp.dependencycheck.analyzer.CpeSuppressionAnalyzer0e15da288e35d32d
    org.owasp.dependencycheck.analyzer.DartAnalyzeraa59897e89b30f0b
    org.owasp.dependencycheck.analyzer.DependencyBundlingAnalyzer07c8f954686b5590
    org.owasp.dependencycheck.analyzer.DependencyMergingAnalyzer5b61b9ea1c73787a
    org.owasp.dependencycheck.analyzer.ElixirMixAuditAnalyzerdc7b13faacac2682
    org.owasp.dependencycheck.analyzer.FalsePositiveAnalyzer5d1e642680217c34
    org.owasp.dependencycheck.analyzer.FileNameAnalyzer6bd5616bd35b083c
    org.owasp.dependencycheck.analyzer.GolangDepAnalyzerfecafc9c62047e06
    org.owasp.dependencycheck.analyzer.GolangModAnalyzerb227db299327983e
    org.owasp.dependencycheck.analyzer.HintAnalyzer06857ac00a5b69bc
    org.owasp.dependencycheck.analyzer.JarAnalyzerd0852a5718eb3822
    org.owasp.dependencycheck.analyzer.JarAnalyzer.ClassNameInformationf7a6b8b47c825c6a
    org.owasp.dependencycheck.analyzer.KnownExploitedVulnerabilityAnalyzer3af076909f651f0b
    org.owasp.dependencycheck.analyzer.LibmanAnalyzerb71bb3bbd512db80
    org.owasp.dependencycheck.analyzer.MSBuildProjectAnalyzer0c1951f7a7176b6a
    org.owasp.dependencycheck.analyzer.NexusAnalyzer0e8b9d66c36140bb
    org.owasp.dependencycheck.analyzer.NodeAuditAnalyzer9b08dc840a569526
    org.owasp.dependencycheck.analyzer.NodePackageAnalyzer4f9c2855819b2a43
    org.owasp.dependencycheck.analyzer.NpmCPEAnalyzerc3b313265c0390a9
    org.owasp.dependencycheck.analyzer.NugetconfAnalyzerd7864bd059634c88
    org.owasp.dependencycheck.analyzer.NuspecAnalyzer51b5c3840fe8ede7
    org.owasp.dependencycheck.analyzer.NvdCveAnalyzer462c94a163d9bd80
    org.owasp.dependencycheck.analyzer.OpenSSLAnalyzerc05ed6ced1a77cd1
    org.owasp.dependencycheck.analyzer.OssIndexAnalyzere0ec285a8210cefd
    org.owasp.dependencycheck.analyzer.PEAnalyzerf1cf15bf017a345f
    org.owasp.dependencycheck.analyzer.PerlCpanfileAnalyzerf460b2c9a36956f5
    org.owasp.dependencycheck.analyzer.PinnedMavenInstallAnalyzerbabb05304288744c
    org.owasp.dependencycheck.analyzer.PipAnalyzer4eb3e3df5fc1d9eb
    org.owasp.dependencycheck.analyzer.PipfileAnalyzer94f81965a1d6f8bb
    org.owasp.dependencycheck.analyzer.PipfilelockAnalyzer090000f0d80906ed
    org.owasp.dependencycheck.analyzer.PnpmAuditAnalyzer8a0332fc7129d211
    org.owasp.dependencycheck.analyzer.PoetryAnalyzerfd3b1fd402042898
    org.owasp.dependencycheck.analyzer.PythonDistributionAnalyzer48872d7099105b81
    org.owasp.dependencycheck.analyzer.PythonPackageAnalyzer9e40fde1c8c573e3
    org.owasp.dependencycheck.analyzer.RetireJsAnalyzerbb886f09d58624f9
    org.owasp.dependencycheck.analyzer.RubyBundleAuditAnalyzere2fc7cdb41f163c8
    org.owasp.dependencycheck.analyzer.RubyBundlerAnalyzer5d486951fecfd610
    org.owasp.dependencycheck.analyzer.RubyGemspecAnalyzera1eb61175c0b726b
    org.owasp.dependencycheck.analyzer.SwiftPackageManagerAnalyzer2b236be3ad4379b4
    org.owasp.dependencycheck.analyzer.SwiftPackageResolvedAnalyzer602846b272882529
    org.owasp.dependencycheck.analyzer.UnusedSuppressionRuleAnalyzer96a130c36e2feb7c
    org.owasp.dependencycheck.analyzer.VersionFilterAnalyzerbccf328c51e5abce
    org.owasp.dependencycheck.analyzer.VulnerabilitySuppressionAnalyzer120f6770a484b62e
    org.owasp.dependencycheck.analyzer.YarnAuditAnalyzer29123c83238a50f8
    org.owasp.dependencycheck.data.cache.DataCache45c535388c562524
    org.owasp.dependencycheck.data.cache.DataCacheFactory1f8c9b237297367c
    org.owasp.dependencycheck.data.cache.DataCacheFactory.CacheType137a3e5cbb2df174
    org.owasp.dependencycheck.data.cpe.AbstractMemoryIndex2ed8bf08d002c7f0
    org.owasp.dependencycheck.data.cpe.CpeMemoryIndex90c84bb62b80575d
    org.owasp.dependencycheck.data.cpe.IndexEntry21d883b53737f9ed
    org.owasp.dependencycheck.data.cpe.NpmCpeMemoryIndexe19e64e36ca1c862
    org.owasp.dependencycheck.data.cwe.CweDB4b200943564bdb3c
    org.owasp.dependencycheck.data.knownexploited.json.KnownExploitedVulnerabilitiesSchemad546a111ceca8d0e
    org.owasp.dependencycheck.data.knownexploited.json.Vulnerabilityb34347081c0c84bd
    org.owasp.dependencycheck.data.lucene.AbstractTokenizingFilteref2bdf555ac30e13
    org.owasp.dependencycheck.data.lucene.AlphaNumericFilterd338a5925b823b3a
    org.owasp.dependencycheck.data.lucene.LuceneUtils3f465d0437852575
    org.owasp.dependencycheck.data.lucene.SearchFieldAnalyzer8c548705eb3be048
    org.owasp.dependencycheck.data.lucene.TokenPairConcatenatingFilter66727c35667a1e7f
    org.owasp.dependencycheck.data.lucene.UrlTokenizingFilter195de16b342dfeb9
    org.owasp.dependencycheck.data.nexus.MavenArtifact8181821aeb4d216d
    org.owasp.dependencycheck.data.nvd.ecosystem.CveEcosystemMapper9bdc31c451b3a195
    org.owasp.dependencycheck.data.nvd.ecosystem.DescriptionEcosystemMapper4b4fd8da48e1076a
    org.owasp.dependencycheck.data.nvd.ecosystem.DescriptionKeywordHint6e7e292d907035b1
    org.owasp.dependencycheck.data.nvd.ecosystem.Ecosystemf52dd17aa636a878
    org.owasp.dependencycheck.data.nvd.ecosystem.EcosystemHintNature6ecb7375a8182f28
    org.owasp.dependencycheck.data.nvd.ecosystem.FileExtensionHinteea097469cc99fb8
    org.owasp.dependencycheck.data.nvd.ecosystem.StringAhoCorasickDoubleArrayTrie7b86ffa8686f7317
    org.owasp.dependencycheck.data.nvd.ecosystem.UrlEcosystemMapperea6af3b5cb98e2dc
    org.owasp.dependencycheck.data.nvd.ecosystem.UrlHostHint05ec63c3d7dae0d3
    org.owasp.dependencycheck.data.nvd.ecosystem.UrlPathHintfa84ec515b0a7722
    org.owasp.dependencycheck.data.nvdcve.CveDB273b25a563ba79ba
    org.owasp.dependencycheck.data.nvdcve.CveDB.PreparedStatementCveDb412e4dfd99bf4695
    org.owasp.dependencycheck.data.nvdcve.CveItemOperatoreab73d1ca7076e35
    org.owasp.dependencycheck.data.nvdcve.DatabaseManagerc8bfc4255f1ef4d5
    org.owasp.dependencycheck.data.nvdcve.DatabasePropertiesc7b0ef841dbb8d78
    org.owasp.dependencycheck.data.nvdcve.DriverLoader6f00b4d9849d8d88
    org.owasp.dependencycheck.data.nvdcve.DriverShim100a9676ec7c4389
    org.owasp.dependencycheck.data.nvdcve.H2Functionsc63c11be650da77d
    org.owasp.dependencycheck.data.update.EngineVersionCheckbeeed550972293ac
    org.owasp.dependencycheck.data.update.HostedSuppressionsDataSource73b26292db648f4e
    org.owasp.dependencycheck.data.update.KnownExploitedDataSource6f668dcee22ae298
    org.owasp.dependencycheck.data.update.NvdApiDataSourcee10a6e75393d2e78
    org.owasp.dependencycheck.data.update.NvdApiDataSource.UrlData7b82533596421951
    org.owasp.dependencycheck.data.update.RetireJSDataSource90bcb0e202f4fd67
    org.owasp.dependencycheck.data.update.UpdateService5591427be2b53e13
    org.owasp.dependencycheck.data.update.cisa.KnownExploitedVulnerabilityParser61e861793461ad61
    org.owasp.dependencycheck.data.update.cpe.CpeEcosystemCache776eb215e56504e7
    org.owasp.dependencycheck.data.update.cpe.CpePlusa4daec4d8fade7cd
    org.owasp.dependencycheck.data.update.nvd.api.DownloadTaskf8fe92f35c99fe96
    org.owasp.dependencycheck.data.update.nvd.api.NvdApiProcessor196bb29e0c17712b
    org.owasp.dependencycheck.dependency.Confidence8b1646fd73165f3d
    org.owasp.dependencycheck.dependency.CweSet92d71b148062e632
    org.owasp.dependencycheck.dependency.Dependencyad6f1800ed8875c2
    org.owasp.dependencycheck.dependency.Evidencea56eb960dbb41fa1
    org.owasp.dependencycheck.dependency.EvidenceCollection796f8ebade5a0ac6
    org.owasp.dependencycheck.dependency.EvidenceCollection.1c43d6c035fe1f0ab
    org.owasp.dependencycheck.dependency.EvidenceCollection.263ec251053ab3814
    org.owasp.dependencycheck.dependency.EvidenceCollection.339c4b6f5b69d425d
    org.owasp.dependencycheck.dependency.EvidenceCollection.486c481e087971d1f
    org.owasp.dependencycheck.dependency.EvidenceCollection.56d0ef220d6d3eb18
    org.owasp.dependencycheck.dependency.EvidenceType80374dc893ee62b6
    org.owasp.dependencycheck.dependency.IncludedByReference1540b7fa34678690
    org.owasp.dependencycheck.dependency.Referencea2e6d658cd4f904f
    org.owasp.dependencycheck.dependency.Vulnerability5547976019a46a50
    org.owasp.dependencycheck.dependency.Vulnerability.Source972bf446c0b0bb2a
    org.owasp.dependencycheck.dependency.VulnerableSoftware8585e0e1fa3beeb8
    org.owasp.dependencycheck.dependency.VulnerableSoftwareBuildere0de1be074de33d1
    org.owasp.dependencycheck.dependency.naming.CpeIdentifierf5758c4da3e20472
    org.owasp.dependencycheck.dependency.naming.PurlIdentifiereacb89219564694c
    org.owasp.dependencycheck.exception.DependencyNotFoundExceptionb4cab8da18f34240
    org.owasp.dependencycheck.exception.ExceptionCollection42d79b8e2574a10f
    org.owasp.dependencycheck.exception.InitializationExceptionf942605a89a6d856
    org.owasp.dependencycheck.maven.AggregateMojo6c6e8f0fc03c34c3
    org.owasp.dependencycheck.maven.ArtifactScopeExcludedff75da2945cf5364
    org.owasp.dependencycheck.maven.ArtifactScopeExcludedTest2dec9bf22c451095
    org.owasp.dependencycheck.maven.ArtifactScopeExcludedTest.ArtifactScopeExcludedTestBuilder526c0efe902ea6c2
    org.owasp.dependencycheck.maven.ArtifactTypeExcluded1dc9c172c14306ee
    org.owasp.dependencycheck.maven.ArtifactTypeExcludedTestf872f55ff66aae1e
    org.owasp.dependencycheck.maven.BaseDependencyCheckMojo9de9958b26c9ef26
    org.owasp.dependencycheck.maven.BaseDependencyCheckMojoTestd09fb9f97170db0a
    org.owasp.dependencycheck.maven.BaseDependencyCheckMojoTest.1d90b15c4a155341f
    org.owasp.dependencycheck.maven.BaseDependencyCheckMojoTest.2ceb3cbb91d5a7870
    org.owasp.dependencycheck.maven.BaseDependencyCheckMojoTest.31353b5264e265afd
    org.owasp.dependencycheck.maven.BaseDependencyCheckMojoTest.47108479fdb8ca30e
    org.owasp.dependencycheck.maven.BaseDependencyCheckMojoTest.BaseDependencyCheckMojoImpld75e804b9af6c332
    org.owasp.dependencycheck.maven.BaseTest9849788da5f3fcba
    org.owasp.dependencycheck.maven.CheckMojo6aa36aca8d84fc73
    org.owasp.dependencycheck.maven.CollectingRootDependencyGraphVisitorf785ecfb5aa2c3d6
    org.owasp.dependencycheck.maven.FilteringDependencyTransitiveNodeVisitor9a601eb2b192202a
    org.owasp.dependencycheck.maven.Mshared998Utilea9d617375f6e933
    org.owasp.dependencycheck.maven.Mshared998Util.M31ArtifactResultc17d447de8c089b4
    org.owasp.dependencycheck.maven.Retirejs812dc2311977dacb
    org.owasp.dependencycheck.maven.UpdateMojoa0b2e816709c7223
    org.owasp.dependencycheck.processing.GrokAssemblyProcessor5b08cc9c89348774
    org.owasp.dependencycheck.reporting.EscapeToolcf686f5c98110b7f
    org.owasp.dependencycheck.reporting.ReportGeneratorb3e530fe266a825a
    org.owasp.dependencycheck.reporting.ReportGenerator.Formatc008dae7884b691a
    org.owasp.dependencycheck.reporting.ReportTool6d98d89de82875d4
    org.owasp.dependencycheck.utils.Checksumd3d032adcf9f83ac
    org.owasp.dependencycheck.utils.Checksum.FileChecksumsee01483ef72b41eb
    org.owasp.dependencycheck.utils.DBUtils5a736a1e9db30930
    org.owasp.dependencycheck.utils.DateUtil767aee70b6802f05
    org.owasp.dependencycheck.utils.DependencyVersionc76be697ccf1be3e
    org.owasp.dependencycheck.utils.DependencyVersionUtil6a41259161e9d641
    org.owasp.dependencycheck.utils.Downloader2535d5a88e84b460
    org.owasp.dependencycheck.utils.ExtractionUtil0e88fa19a5d5b6f8
    org.owasp.dependencycheck.utils.FileFilterBuilderb6f3bba13d18ff4a
    org.owasp.dependencycheck.utils.FileUtilsb4bc6fabbcb815d7
    org.owasp.dependencycheck.utils.Filterdf3734618639a9b3
    org.owasp.dependencycheck.utils.Filter.FilterIteratord1a81c541dfce734
    org.owasp.dependencycheck.utils.HttpResourceConnection3ec0169837be2310
    org.owasp.dependencycheck.utils.InterpolationUtilbf107010177e4d1e
    org.owasp.dependencycheck.utils.InterpolationUtil.PropertyLookup5b1e3b5a7f62328a
    org.owasp.dependencycheck.utils.InterpolationUtil.SyntaxStyle89f3ebbe8ef62093
    org.owasp.dependencycheck.utils.Pair7b0fe8cac5057419
    org.owasp.dependencycheck.utils.SSLSocketFactoryExcba4c39911275cd8
    org.owasp.dependencycheck.utils.Settings22a4155a48302848
    org.owasp.dependencycheck.utils.SeverityUtil2aa3a7803e3bc489
    org.owasp.dependencycheck.utils.URLConnectionFactory20a3b96d5b95a4c9
    org.owasp.dependencycheck.utils.UrlStringUtils13ac88d7b902ba2e
    org.owasp.dependencycheck.utils.Utils2388cf60ae13d515
    org.owasp.dependencycheck.utils.WriteLock38fa2d9af95f448e
    org.owasp.dependencycheck.utils.WriteLockCleanupHookf4959b4938fb442b
    org.owasp.dependencycheck.utils.WriteLockShutdownHook53b3f5b037d6b82e
    org.owasp.dependencycheck.utils.WriteLockShutdownHookFactory7856e6c15668c9d5
    org.owasp.dependencycheck.utils.XmlUtils3db31a3238d69ec0
    org.owasp.dependencycheck.utils.processing.ProcessReader0afc367a946b9c57
    org.owasp.dependencycheck.utils.processing.ProcessReader.Gobbler61ba8ef7823a8474
    org.owasp.dependencycheck.utils.processing.Processor54d82509a803683c
    org.owasp.dependencycheck.xml.XmlEntity66e5eed82ef0963b
    org.owasp.dependencycheck.xml.XmlInputStreameeef9b35cd9d2c10
    org.owasp.dependencycheck.xml.assembly.AssemblyData40fcba4a7dc5fa6e
    org.owasp.dependencycheck.xml.assembly.GrokErrorHandler455b926a72c7a449
    org.owasp.dependencycheck.xml.assembly.GrokHandlerfe21aa0c14ae6b1e
    org.owasp.dependencycheck.xml.assembly.GrokParser0c137c352235f734
    org.owasp.dependencycheck.xml.hints.EvidenceMatcherce8cbfbe4740ac69
    org.owasp.dependencycheck.xml.hints.HintErrorHandleraa3882d7c7c5cc67
    org.owasp.dependencycheck.xml.hints.HintHandlere93cf0a863214916
    org.owasp.dependencycheck.xml.hints.HintHandler.1a7e8cba20e8af505
    org.owasp.dependencycheck.xml.hints.HintHandler.ParentTypef24faabcce5f4c72
    org.owasp.dependencycheck.xml.hints.HintParserd88f1d17c3864870
    org.owasp.dependencycheck.xml.hints.HintRule58dd9d52018d064f
    org.owasp.dependencycheck.xml.hints.VendorDuplicatingHintRulef590e0aa1fffc212
    org.owasp.dependencycheck.xml.pom.Developer464a73d3a131fa1a
    org.owasp.dependencycheck.xml.pom.License2922b99dd5b791bf
    org.owasp.dependencycheck.xml.pom.Model1a4e32bf68ae7b1c
    org.owasp.dependencycheck.xml.pom.PomHandler1dd6925cb0dd2e80
    org.owasp.dependencycheck.xml.pom.PomParser5d76ef6cff2aa125
    org.owasp.dependencycheck.xml.pom.PomProjectInputStreamf1ac6922e08319a5
    org.owasp.dependencycheck.xml.pom.PomUtils2eb9b189fe53a4c9
    org.owasp.dependencycheck.xml.suppression.PropertyType88e0dda4979f444f
    org.owasp.dependencycheck.xml.suppression.SuppressionErrorHandlerf0b45bf0579463da
    org.owasp.dependencycheck.xml.suppression.SuppressionHandler4ba9da2c9f4c384b
    org.owasp.dependencycheck.xml.suppression.SuppressionParseException97a15067a82d77c3
    org.owasp.dependencycheck.xml.suppression.SuppressionParserd5b7ee2be33418e9
    org.owasp.dependencycheck.xml.suppression.SuppressionParser.ClassloaderResolver166296f9153760dd
    org.owasp.dependencycheck.xml.suppression.SuppressionRule1e5fc4cd38ec8b4d
    org.slf4j.LoggerFactorya381b7ddf19bf47d
    org.slf4j.MavenSlf4jFriendbadfba51ec46113c
    org.slf4j.helpers.FormattingTuple46e388b1eb4cb5c1
    org.slf4j.helpers.MarkerIgnoringBase7ebf011a62144edb
    org.slf4j.helpers.MessageFormatter42e7db43bad15507
    org.slf4j.helpers.NOPLoggerb3164f3c3f1a085c
    org.slf4j.helpers.NOPLoggerFactory54f5632bfcb8d8d5
    org.slf4j.helpers.NamedLoggerBase528e06b7f120faa1
    org.slf4j.helpers.SubstituteLoggerFactorydc7efc0107a4a62d
    org.slf4j.helpers.Util857ff3acc0576435
    org.slf4j.impl.MavenSimpleLoggere8131069bff040a5
    org.slf4j.impl.MavenSimpleLoggerFactory96021020e4bba56d
    org.slf4j.impl.MavenSlf4jSimpleFriendb18c02f0ebaaff0f
    org.slf4j.impl.OutputChoicedbf8b17dfdfba8ef
    org.slf4j.impl.OutputChoice.12e796e83f697007d
    org.slf4j.impl.OutputChoice.OutputChoiceTypec4771d2a1b718196
    org.slf4j.impl.SimpleLogger203f15dc0cf1db09
    org.slf4j.impl.SimpleLoggerConfiguration4d34fb421063165b
    org.slf4j.impl.SimpleLoggerConfiguration.1ba0c573913158071
    org.slf4j.impl.SimpleLoggerFactory40e0c44ca71374c3
    org.slf4j.impl.StaticLoggerBinder79da9c4f821359f4
    org.sonatype.plexus.build.incremental.DefaultBuildContextaa79a63b7c4cf54a
    org.sonatype.plexus.build.incremental.EmptyScanner45b8b1e83669fb98
    org.sonatype.plexus.components.cipher.DefaultPlexusCipher5ddac845843100c4
    org.sonatype.plexus.components.cipher.DefaultPlexusCipher2034aec5993049c4
    org.sonatype.plexus.components.cipher.PBECipher638c060c25cd0952
    org.sonatype.plexus.components.cipher.PBECipher7574a45d7b0c7bb6
    org.sonatype.plexus.components.sec.dispatcher.DefaultSecDispatcher9f23657f6deab0d1
    org.sonatype.plexus.components.sec.dispatcher.DefaultSecDispatchercefb2853d1bc2e49
    sun.security.ec.ECDHKeyAgreement98786957379e8052
    sun.security.ec.ECDSASignaturea87c8a3b4c249cae
    sun.security.ec.ECDSASignature.Raw34fd4d4f3f7b07d0
    sun.security.ec.ECDSASignature.SHA19a8c8c1fccb702ae
    sun.security.ec.ECDSASignature.SHA2244ab113fda835de86
    sun.security.ec.ECDSASignature.SHA256b847f3aa86c638a1
    sun.security.ec.ECDSASignature.SHA3841f1f0bb690cec78f
    sun.security.ec.ECDSASignature.SHA512ca949e76b48c64db
    sun.security.ec.ECKeyFactory5ffb1bf65edd3e5b
    sun.security.ec.ECKeyPairGeneratord54779aa8847492b
    sun.security.ec.ECOperations8b042a6db0c7d250
    sun.security.ec.ECPrivateKeyImple88e88043bb769c8
    sun.security.ec.ECPublicKeyImpl579a0a9fbecbe2cb
    sun.security.ec.SunECed7aaa5d851afecd
    sun.security.ec.SunEC.12aaa42d831e10c34
    sun.security.ec.SunECEntries1fc66cad07ebf775
    sun.security.ec.point.AffinePoint4473cc59511e4f38
    sun.security.ec.point.ProjectivePoint42bfa254a41c4522
    sun.security.ec.point.ProjectivePoint.Immutablef385d4fcc17d6f05
    sun.security.ec.point.ProjectivePoint.Mutableb5e8bd959990211c
    us.springett.parsers.cpe.Cpe6dcbf890483207ec
    us.springett.parsers.cpe.CpeBuildera8a545e97ba6c683
    us.springett.parsers.cpe.CpeParser3c229a3e9a3a6e7e
    us.springett.parsers.cpe.internal.util.Cpe23PartIterator9634fe4d9e5c19d9
    us.springett.parsers.cpe.util.Convertd44be2fdb506753e
    us.springett.parsers.cpe.util.Statusa1e82b1c21855dd4
    us.springett.parsers.cpe.util.Validate4c1a3e0799b4658a
    us.springett.parsers.cpe.values.LogicalValue77dbdb0651fff32c
    us.springett.parsers.cpe.values.Partc2b878523b4c15a0
    \ No newline at end of file diff --git a/dependency-check-maven/jacoco/jacoco.csv b/dependency-check-maven/jacoco/jacoco.csv index 4e272c11fc9..ca549133b23 100644 --- a/dependency-check-maven/jacoco/jacoco.csv +++ b/dependency-check-maven/jacoco/jacoco.csv @@ -4,8 +4,8 @@ Dependency-Check Maven Plugin,org.owasp.dependencycheck.maven,ProxyConfig,27,0,0 Dependency-Check Maven Plugin,org.owasp.dependencycheck.maven,PurgeMojo,37,0,0,0,11,0,7,0,7,0 Dependency-Check Maven Plugin,org.owasp.dependencycheck.maven,Mshared998Util.M31ArtifactResult,0,11,0,0,0,4,0,2,0,2 Dependency-Check Maven Plugin,org.owasp.dependencycheck.maven,ArtifactTypeExcluded,0,22,0,6,0,4,0,5,0,2 -Dependency-Check Maven Plugin,org.owasp.dependencycheck.maven,BaseDependencyCheckMojo,2018,2667,327,171,418,539,229,84,17,47 Dependency-Check Maven Plugin,org.owasp.dependencycheck.maven,UpdateMojo,68,21,7,1,20,7,9,2,5,2 +Dependency-Check Maven Plugin,org.owasp.dependencycheck.maven,BaseDependencyCheckMojo,2018,2707,327,173,418,543,229,85,17,47 Dependency-Check Maven Plugin,org.owasp.dependencycheck.maven,CheckMojo,10,44,2,2,3,12,3,5,1,5 Dependency-Check Maven Plugin,org.owasp.dependencycheck.maven,AggregateMojo,163,358,36,56,30,68,31,28,5,8 Dependency-Check Maven Plugin,org.owasp.dependencycheck.maven,Mshared998Util,0,30,1,3,0,7,1,2,0,1 diff --git a/dependency-check-maven/jacoco/jacoco.xml b/dependency-check-maven/jacoco/jacoco.xml index b9d460e324f..afaad2a5f40 100644 --- a/dependency-check-maven/jacoco/jacoco.xml +++ b/dependency-check-maven/jacoco/jacoco.xml @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/dependency-check-maven/jacoco/org.owasp.dependencycheck.maven/BaseDependencyCheckMojo.html b/dependency-check-maven/jacoco/org.owasp.dependencycheck.maven/BaseDependencyCheckMojo.html index 4198b5fdc5d..a5e2dee77cb 100644 --- a/dependency-check-maven/jacoco/org.owasp.dependencycheck.maven/BaseDependencyCheckMojo.html +++ b/dependency-check-maven/jacoco/org.owasp.dependencycheck.maven/BaseDependencyCheckMojo.html @@ -1 +1 @@ -BaseDependencyCheckMojo

    BaseDependencyCheckMojo

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
    Total2,018 of 4,68556%327 of 49834%2293134189571764
    scanDependencyNode(DependencyNode, DependencyNode, Engine, MavenProject, List, ProjectBuildingRequest, boolean, ExceptionCollection)28916736%401831%25306310601
    populateSettings()26271973%602226%40425017401
    addPluginToDependencies(MavenProject, Engine, Artifact, String, ExceptionCollection)1750%260%1414424211
    checkForFailure(Dependency[])13211446%251740%1922193201
    scanPlugins(MavenProject, Engine, ExceptionCollection)1300%40%33292911
    addVirtualDependencyFromReactor(Engine, Artifact, MavenProject, String)8927475%13735%911155801
    processResolvedArtifact(File, List, String, String, String, DependencyNode, MavenProject, List, DependencyNode)848249%17522%1012153501
    handleSecDispatcherException(String, String, String, SecDispatcherException)780%100%66121211
    processPomArtifact(File, DependencyNode, MavenProject, Engine, ExceptionCollection)770%40%33212111
    runCheck()659459%131145%913164001
    handleAnalysisExceptions(ExceptionCollection, ExceptionCollection)502735%9325%67111801
    getOutputName()50915%1715%910141701
    configureServerCredentials(String, String, String)495%3125%23121401
    collectDependencies(Engine, MavenProject, Map, ProjectBuildingRequest, boolean)4527886%121453%914147201
    configureServerCredentialsApiKey(String, String)440%40%33121211
    toDependencyNode(List, ProjectBuildingRequest, DependencyNode, Dependency)4311272%81260%71183401
    getMavenProxy()391426%13318%8991301
    buildReference(String, String, String)361630%n/a013701
    resolveArtifactDependencies(DependableCoordinate, MavenProject)350%20%227711
    generate(Sink, Locale)272244%1150%1261301
    artifactsMatch(Dependency, Artifact)220%60%443311
    scanArtifacts(MavenProject, Engine, boolean)217277%n/a0141401
    getCorrectOutputDirectory(MavenProject)211236%6225%454701
    lambda$collectDependencies$1(String)160%n/a115511
    lambda$findVersion$0(String, String, DependencyNode)160%40%332211
    execute()142160%1150%121701
    isEqualOrNull(String, String)140%80%551111
    decryptPasswordFromSettings(String)140%20%223311
    lambda$getFormats$3(String)120%n/a111111
    lambda$getFormats$2(Set, String)110%n/a115511
    collectDependencyManagementDependencies(Engine, ProjectBuildingRequest, MavenProject, List, boolean)107988%6857%5832001
    getFormats()104180%5550%561901
    determineSuppressions()92674%1375%131701
    findVersion(List, String, String)1368%1150%121501
    getExcludes()54%1150%121301
    getCorrectOutputDirectory()0%n/a111111
    isGeneratingSite()0%n/a111111
    getConnectionString()0%n/a111111
    getOutputDirectory()0%n/a111111
    tryResolutionOnce(MavenProject, List, ProjectBuildingRequest)4795%1583%1411601
    addSnapshotReactorDependency(Engine, Artifact, MavenProject)1083%1150%121301
    collectMavenDependencies(Engine, MavenProject, Map, ProjectBuildingRequest, boolean)91100%6100%0401301
    sameArtifact(ArtifactResult, Artifact)75100%21083%2701101
    BaseDependencyCheckMojo()53100%n/a0101701
    findInAllDeps(List, Artifact, MavenProject)43100%6100%0401001
    newDependency(MavenProject)40100%4100%030801
    newResolveArtifactProjectBuildingRequest(MavenProject, List)16100%n/a010401
    createProjectReferenceName(MavenProject, DependencyNode)14100%n/a010101
    muteJCS()11100%2100%020401
    initializeEngine()100%n/a010201
    showSummary(MavenProject, Dependency[])100%1150%120301
    addReactorDependency(Engine, Artifact, MavenProject)100%n/a010101
    scanArtifacts(MavenProject, Engine)100%n/a010101
    static {...}100%n/a010101
    generate(Sink, Locale)100%n/a010201
    setReportOutputDirectory(File)100%n/a010201
    isFailOnError()100%n/a010101
    getReportOutputDirectory()100%n/a010101
    getProject()100%n/a010101
    getReactorProjects()100%n/a010101
    getArtifactScopeExcluded()100%n/a010101
    getSettings()100%n/a010101
    isExternalReport()100%n/a010101
    getCategoryName()100%n/a010101
    \ No newline at end of file +BaseDependencyCheckMojo

    BaseDependencyCheckMojo

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
    Total2,018 of 4,72557%327 of 50034%2293144189611764
    scanDependencyNode(DependencyNode, DependencyNode, Engine, MavenProject, List, ProjectBuildingRequest, boolean, ExceptionCollection)28916736%401831%25306310601
    populateSettings()26272573%602226%40425017501
    addPluginToDependencies(MavenProject, Engine, Artifact, String, ExceptionCollection)1750%260%1414424211
    checkForFailure(Dependency[])13211446%251740%1922193201
    scanPlugins(MavenProject, Engine, ExceptionCollection)1300%40%33292911
    addVirtualDependencyFromReactor(Engine, Artifact, MavenProject, String)8927475%13735%911155801
    processResolvedArtifact(File, List, String, String, String, DependencyNode, MavenProject, List, DependencyNode)848249%17522%1012153501
    handleSecDispatcherException(String, String, String, SecDispatcherException)780%100%66121211
    processPomArtifact(File, DependencyNode, MavenProject, Engine, ExceptionCollection)770%40%33212111
    runCheck()659459%131145%913164001
    handleAnalysisExceptions(ExceptionCollection, ExceptionCollection)502735%9325%67111801
    getOutputName()50915%1715%910141701
    configureServerCredentials(String, String, String)495%3125%23121401
    collectDependencies(Engine, MavenProject, Map, ProjectBuildingRequest, boolean)4527886%121453%914147201
    configureServerCredentialsApiKey(String, String)440%40%33121211
    toDependencyNode(List, ProjectBuildingRequest, DependencyNode, Dependency)4311272%81260%71183401
    getMavenProxy()391426%13318%8991301
    buildReference(String, String, String)361630%n/a013701
    resolveArtifactDependencies(DependableCoordinate, MavenProject)350%20%227711
    generate(Sink, Locale)272244%1150%1261301
    artifactsMatch(Dependency, Artifact)220%60%443311
    scanArtifacts(MavenProject, Engine, boolean)217277%n/a0141401
    getCorrectOutputDirectory(MavenProject)211236%6225%454701
    lambda$collectDependencies$1(String)160%n/a115511
    lambda$findVersion$0(String, String, DependencyNode)160%40%332211
    execute()142160%1150%121701
    isEqualOrNull(String, String)140%80%551111
    decryptPasswordFromSettings(String)140%20%223311
    lambda$getFormats$3(String)120%n/a111111
    lambda$getFormats$2(Set, String)110%n/a115511
    collectDependencyManagementDependencies(Engine, ProjectBuildingRequest, MavenProject, List, boolean)107988%6857%5832001
    getFormats()104180%5550%561901
    determineSuppressions()92674%1375%131701
    findVersion(List, String, String)1368%1150%121501
    getExcludes()54%1150%121301
    getCorrectOutputDirectory()0%n/a111111
    isGeneratingSite()0%n/a111111
    getConnectionString()0%n/a111111
    getOutputDirectory()0%n/a111111
    tryResolutionOnce(MavenProject, List, ProjectBuildingRequest)4795%1583%1411601
    addSnapshotReactorDependency(Engine, Artifact, MavenProject)1083%1150%121301
    collectMavenDependencies(Engine, MavenProject, Map, ProjectBuildingRequest, boolean)91100%6100%0401301
    sameArtifact(ArtifactResult, Artifact)75100%21083%2701101
    BaseDependencyCheckMojo()53100%n/a0101701
    muteNoisyLoggers()45100%4100%030701
    findInAllDeps(List, Artifact, MavenProject)43100%6100%0401001
    newDependency(MavenProject)40100%4100%030801
    newResolveArtifactProjectBuildingRequest(MavenProject, List)16100%n/a010401
    createProjectReferenceName(MavenProject, DependencyNode)14100%n/a010101
    initializeEngine()100%n/a010201
    showSummary(MavenProject, Dependency[])100%1150%120301
    addReactorDependency(Engine, Artifact, MavenProject)100%n/a010101
    scanArtifacts(MavenProject, Engine)100%n/a010101
    static {...}100%n/a010101
    generate(Sink, Locale)100%n/a010201
    setReportOutputDirectory(File)100%n/a010201
    isFailOnError()100%n/a010101
    getReportOutputDirectory()100%n/a010101
    getProject()100%n/a010101
    getReactorProjects()100%n/a010101
    getArtifactScopeExcluded()100%n/a010101
    getSettings()100%n/a010101
    isExternalReport()100%n/a010101
    getCategoryName()100%n/a010101
    \ No newline at end of file diff --git a/dependency-check-maven/jacoco/org.owasp.dependencycheck.maven/BaseDependencyCheckMojo.java.html b/dependency-check-maven/jacoco/org.owasp.dependencycheck.maven/BaseDependencyCheckMojo.java.html index 16ef371c5fc..6f945beb4f4 100644 --- a/dependency-check-maven/jacoco/org.owasp.dependencycheck.maven/BaseDependencyCheckMojo.java.html +++ b/dependency-check-maven/jacoco/org.owasp.dependencycheck.maven/BaseDependencyCheckMojo.java.html @@ -77,7 +77,6 @@ import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; -import java.lang.reflect.Field; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; @@ -108,15 +107,12 @@ import org.owasp.dependencycheck.utils.SeverityUtil; import org.owasp.dependencycheck.xml.pom.Model; import org.owasp.dependencycheck.xml.pom.PomUtils; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.slf4j.spi.LocationAwareLogger; //CSOFF: FileLength /** * @author Jeremy Long */ -public abstract class BaseDependencyCheckMojo extends AbstractMojo implements MavenReport { +public abstract class BaseDependencyCheckMojo extends AbstractMojo implements MavenReport { //<editor-fold defaultstate="collapsed" desc="Private fields"> /** @@ -126,7 +122,7 @@ /** * System specific new line character. */ - private static final String NEW_LINE = System.getProperty("line.separator", "\n").intern(); + private static final String NEW_LINE = System.getProperty("line.separator", "\n").intern(); /** * Pattern to include all files in a FileSet. */ @@ -134,15 +130,15 @@ /** * A flag indicating whether or not the Maven site is being generated. */ - private boolean generatingSite = false; + private boolean generatingSite = false; /** * The configured settings. */ - private Settings settings = null; + private Settings settings = null; /** * The list of files that have been scanned. */ - private final List<File> scannedFiles = new ArrayList<>(); + private final List<File> scannedFiles = new ArrayList<>(); //</editor-fold> // <editor-fold defaultstate="collapsed" desc="Maven bound parameters and components"> /** @@ -214,7 +210,7 @@ * level is identified. The default is 11 which means since the CVSS scores * are 0-10, by default the build will never fail. */ - @SuppressWarnings("CanBeFinal") + @SuppressWarnings("CanBeFinal") @Parameter(property = "failBuildOnCVSS", defaultValue = "11", required = true) private float failBuildOnCVSS = 11f; /** @@ -222,7 +218,7 @@ * generating a jUnit style report. The default value is 0 - all * vulnerabilities are considered a failure. */ - @SuppressWarnings("CanBeFinal") + @SuppressWarnings("CanBeFinal") @Parameter(property = "junitFailOnCVSS", defaultValue = "0", required = true) private float junitFailOnCVSS = 0; /** @@ -231,7 +227,7 @@ * @deprecated use {@link BaseDependencyCheckMojo#failBuildOnCVSS} with a * value of 0 instead */ - @SuppressWarnings("CanBeFinal") + @SuppressWarnings("CanBeFinal") @Parameter(property = "failBuildOnAnyVulnerability", defaultValue = "false", required = true) @Deprecated private boolean failBuildOnAnyVulnerability = false; @@ -297,7 +293,7 @@ * JENKINS, GITLAB, ALL). Multiple formats can be selected using a comma * delineated list. */ - @SuppressWarnings("CanBeFinal") + @SuppressWarnings("CanBeFinal") @Parameter(property = "format", defaultValue = "HTML", required = true) private String format = "HTML"; @@ -392,7 +388,7 @@ /** * Flag indicating whether or not to show a summary in the output. */ - @SuppressWarnings("CanBeFinal") + @SuppressWarnings("CanBeFinal") @Parameter(property = "showSummary", defaultValue = "true") private boolean showSummary = true; @@ -847,39 +843,39 @@ /** * Skip Dependency Check altogether. */ - @SuppressWarnings("CanBeFinal") + @SuppressWarnings("CanBeFinal") @Parameter(property = "dependency-check.skip", defaultValue = "false") private boolean skip = false; /** * Skip Analysis for Test Scope Dependencies. */ - @SuppressWarnings("CanBeFinal") + @SuppressWarnings("CanBeFinal") @Parameter(property = "skipTestScope", defaultValue = "true") private boolean skipTestScope = true; /** * Skip Analysis for Runtime Scope Dependencies. */ - @SuppressWarnings("CanBeFinal") + @SuppressWarnings("CanBeFinal") @Parameter(property = "skipRuntimeScope", defaultValue = "false") private boolean skipRuntimeScope = false; /** * Skip Analysis for Provided Scope Dependencies. */ - @SuppressWarnings("CanBeFinal") + @SuppressWarnings("CanBeFinal") @Parameter(property = "skipProvidedScope", defaultValue = "false") private boolean skipProvidedScope = false; /** * Skip Analysis for System Scope Dependencies. */ - @SuppressWarnings("CanBeFinal") + @SuppressWarnings("CanBeFinal") @Parameter(property = "skipSystemScope", defaultValue = "false") private boolean skipSystemScope = false; /** * Skip Analysis for dependencyManagement section. */ - @SuppressWarnings("CanBeFinal") + @SuppressWarnings("CanBeFinal") @Parameter(property = "skipDependencyManagement", defaultValue = "true") private boolean skipDependencyManagement = true; @@ -940,7 +936,12 @@ @SuppressWarnings("CanBeFinal") @Parameter(property = "nvdValidForHours") private Integer nvdValidForHours; - + /** + * The NVD API Endpoint; setting this is uncommon. + */ + @SuppressWarnings("CanBeFinal") + @Parameter(property = "nvdApiEndpoint") + private String nvdApiEndpoint; /** * The NVD API Data Feed URL. */ @@ -1063,13 +1064,13 @@ /** * Whether the project's plugins should also be scanned. */ - @SuppressWarnings("CanBeFinal") + @SuppressWarnings("CanBeFinal") @Parameter(property = "odc.plugins.scan", defaultValue = "false", required = false) private boolean scanPlugins = false; /** * Whether the project's dependencies should also be scanned. */ - @SuppressWarnings("CanBeFinal") + @SuppressWarnings("CanBeFinal") @Parameter(property = "odc.dependencies.scan", defaultValue = "true", required = false) private boolean scanDependencies = true; /** @@ -1089,9 +1090,9 @@ * @return true if the groupId, artifactId, and version match */ private static boolean artifactsMatch(org.apache.maven.model.Dependency d, Artifact a) { - return isEqualOrNull(a.getArtifactId(), d.getArtifactId()) - && isEqualOrNull(a.getGroupId(), d.getGroupId()) - && isEqualOrNull(a.getVersion(), d.getVersion()); + return isEqualOrNull(a.getArtifactId(), d.getArtifactId()) + && isEqualOrNull(a.getGroupId(), d.getGroupId()) + && isEqualOrNull(a.getVersion(), d.getVersion()); } /** @@ -1104,7 +1105,7 @@ * false. */ private static boolean isEqualOrNull(String left, String right) { - return (left != null && left.equals(right)) || (left == null && right == null); + return (left != null && left.equals(right)) || (left == null && right == null); } /** @@ -1116,15 +1117,15 @@ */ @Override public void execute() throws MojoExecutionException, MojoFailureException { - generatingSite = false; - final boolean shouldSkip = Boolean.parseBoolean(System.getProperty("dependency-check.skip", Boolean.toString(skip))); - if (shouldSkip) { - getLog().info("Skipping " + getName(Locale.US)); + generatingSite = false; + final boolean shouldSkip = Boolean.parseBoolean(System.getProperty("dependency-check.skip", Boolean.toString(skip))); + if (shouldSkip) { + getLog().info("Skipping " + getName(Locale.US)); } else { - project.setContextValue("dependency-check-output-dir", this.outputDirectory); - runCheck(); + project.setContextValue("dependency-check-output-dir", this.outputDirectory); + runCheck(); } - } + } /** * Generates the Dependency-Check Site Report. @@ -1138,8 +1139,8 @@ */ @Deprecated public final void generate(@SuppressWarnings("deprecation") org.codehaus.doxia.sink.Sink sink, Locale locale) throws MavenReportException { - generate((Sink) sink, locale); - } + generate((Sink) sink, locale); + } /** * Returns true if the Maven site is being generated. @@ -1147,7 +1148,7 @@ * @return true if the Maven site is being generated */ protected boolean isGeneratingSite() { - return generatingSite; + return generatingSite; } /** @@ -1156,7 +1157,7 @@ * @return the connection string */ protected String getConnectionString() { - return connectionString; + return connectionString; } /** @@ -1165,7 +1166,7 @@ * @return whether or not the mojo should fail the build */ protected boolean isFailOnError() { - return failOnError; + return failOnError; } /** @@ -1176,22 +1177,22 @@ * @throws MavenReportException if a maven report exception occurs */ public void generate(Sink sink, Locale locale) throws MavenReportException { - final boolean shouldSkip = Boolean.parseBoolean(System.getProperty("dependency-check.skip", Boolean.toString(skip))); - if (shouldSkip) { - getLog().info("Skipping report generation " + getName(Locale.US)); - return; + final boolean shouldSkip = Boolean.parseBoolean(System.getProperty("dependency-check.skip", Boolean.toString(skip))); + if (shouldSkip) { + getLog().info("Skipping report generation " + getName(Locale.US)); + return; } - generatingSite = true; - project.setContextValue("dependency-check-output-dir", getReportOutputDirectory()); + generatingSite = true; + project.setContextValue("dependency-check-output-dir", getReportOutputDirectory()); try { - runCheck(); - } catch (MojoExecutionException ex) { - throw new MavenReportException(ex.getMessage(), ex); - } catch (MojoFailureException ex) { - getLog().warn("Vulnerabilities were identifies that exceed the CVSS threshold for failing the build"); - } - } + runCheck(); + } catch (MojoExecutionException ex) { + throw new MavenReportException(ex.getMessage(), ex); + } catch (MojoFailureException ex) { + getLog().warn("Vulnerabilities were identifies that exceed the CVSS threshold for failing the build"); + } + } /** * Returns the correct output directory depending on if a site is being @@ -1202,7 +1203,7 @@ * file path */ protected File getCorrectOutputDirectory() throws MojoExecutionException { - return getCorrectOutputDirectory(this.project); + return getCorrectOutputDirectory(this.project); } /** @@ -1213,16 +1214,16 @@ * @return the directory to write the report(s) */ protected File getCorrectOutputDirectory(MavenProject current) { - final Object obj = current.getContextValue("dependency-check-output-dir"); - if (obj != null && obj instanceof File) { - return (File) obj; + final Object obj = current.getContextValue("dependency-check-output-dir"); + if (obj != null && obj instanceof File) { + return (File) obj; } //else we guess - File target = new File(current.getBuild().getDirectory()); - if (target.getParentFile() != null && "target".equals(target.getParentFile().getName())) { - target = target.getParentFile(); + File target = new File(current.getBuild().getDirectory()); + if (target.getParentFile() != null && "target".equals(target.getParentFile().getName())) { + target = target.getParentFile(); } - return target; + return target; } /** @@ -1235,7 +1236,7 @@ * and scanning the dependencies */ protected ExceptionCollection scanArtifacts(MavenProject project, Engine engine) { - return scanArtifacts(project, engine, false); + return scanArtifacts(project, engine, false); } /** @@ -1250,31 +1251,31 @@ */ protected ExceptionCollection scanArtifacts(MavenProject project, Engine engine, boolean aggregate) { try { - final List<String> filterItems = Collections.singletonList(String.format("%s:%s", project.getGroupId(), project.getArtifactId())); - final ProjectBuildingRequest buildingRequest = newResolveArtifactProjectBuildingRequest(project, project.getRemoteArtifactRepositories()); + final List<String> filterItems = Collections.singletonList(String.format("%s:%s", project.getGroupId(), project.getArtifactId())); + final ProjectBuildingRequest buildingRequest = newResolveArtifactProjectBuildingRequest(project, project.getRemoteArtifactRepositories()); //For some reason the filter does not filter out the project being analyzed //if we pass in the filter below instead of null to the dependencyGraphBuilder - final DependencyNode dn = dependencyGraphBuilder.buildDependencyGraph(buildingRequest, null); + final DependencyNode dn = dependencyGraphBuilder.buildDependencyGraph(buildingRequest, null); - final CollectingRootDependencyGraphVisitor collectorVisitor = new CollectingRootDependencyGraphVisitor(); + final CollectingRootDependencyGraphVisitor collectorVisitor = new CollectingRootDependencyGraphVisitor(); // exclude artifact by pattern and its dependencies - final DependencyNodeVisitor transitiveFilterVisitor = new FilteringDependencyTransitiveNodeVisitor(collectorVisitor, - new ArtifactDependencyNodeFilter(new PatternExcludesArtifactFilter(getExcludes()))); + final DependencyNodeVisitor transitiveFilterVisitor = new FilteringDependencyTransitiveNodeVisitor(collectorVisitor, + new ArtifactDependencyNodeFilter(new PatternExcludesArtifactFilter(getExcludes()))); // exclude exact artifact but not its dependencies, this filter must be appied on the root for first otherwise // in case the exclude has the same groupId of the current bundle its direct dependencies are not visited - final DependencyNodeVisitor artifactFilter = new FilteringDependencyNodeVisitor(transitiveFilterVisitor, + final DependencyNodeVisitor artifactFilter = new FilteringDependencyNodeVisitor(transitiveFilterVisitor, new ArtifactDependencyNodeFilter(new ExcludesArtifactFilter(filterItems))); - dn.accept(artifactFilter); + dn.accept(artifactFilter); //collect dependencies with the filter - see comment above. - final Map<DependencyNode, List<DependencyNode>> nodes = collectorVisitor.getNodes(); + final Map<DependencyNode, List<DependencyNode>> nodes = collectorVisitor.getNodes(); - return collectDependencies(engine, project, nodes, buildingRequest, aggregate); - } catch (DependencyGraphBuilderException ex) { - final String msg = String.format("Unable to build dependency graph on project %s", project.getName()); - getLog().debug(msg, ex); - return new ExceptionCollection(ex); + return collectDependencies(engine, project, nodes, buildingRequest, aggregate); + } catch (DependencyGraphBuilderException ex) { + final String msg = String.format("Unable to build dependency graph on project %s", project.getName()); + getLog().debug(msg, ex); + return new ExceptionCollection(ex); } } @@ -1290,130 +1291,130 @@ * and scanning the plugins and their dependencies */ protected ExceptionCollection scanPlugins(MavenProject project, Engine engine, ExceptionCollection exCollection) { - ExceptionCollection exCol = exCollection; - final Set<Artifact> plugins = new HashSet<>(); - final Set<Artifact> buildPlugins = getProject().getPluginArtifacts(); - final Set<Artifact> reportPlugins = getProject().getReportArtifacts(); - final Set<Artifact> extensions = getProject().getExtensionArtifacts(); - - plugins.addAll(buildPlugins); - plugins.addAll(reportPlugins); - plugins.addAll(extensions); - - final ProjectBuildingRequest buildingRequest = newResolveArtifactProjectBuildingRequest(project, project.getPluginArtifactRepositories()); - for (Artifact plugin : plugins) { + ExceptionCollection exCol = exCollection; + final Set<Artifact> plugins = new HashSet<>(); + final Set<Artifact> buildPlugins = getProject().getPluginArtifacts(); + final Set<Artifact> reportPlugins = getProject().getReportArtifacts(); + final Set<Artifact> extensions = getProject().getExtensionArtifacts(); + + plugins.addAll(buildPlugins); + plugins.addAll(reportPlugins); + plugins.addAll(extensions); + + final ProjectBuildingRequest buildingRequest = newResolveArtifactProjectBuildingRequest(project, project.getPluginArtifactRepositories()); + for (Artifact plugin : plugins) { try { - final Artifact resolved = artifactResolver.resolveArtifact(buildingRequest, plugin).getArtifact(); - - exCol = addPluginToDependencies(project, engine, resolved, "pom.xml (plugins)", exCol); - - final DefaultDependableCoordinate pluginCoordinate = new DefaultDependableCoordinate(); - pluginCoordinate.setGroupId(resolved.getGroupId()); - pluginCoordinate.setArtifactId(resolved.getArtifactId()); - pluginCoordinate.setVersion(resolved.getVersion()); - - final String parent = buildReference(resolved.getGroupId(), resolved.getArtifactId(), resolved.getVersion()); - for (Artifact artifact : resolveArtifactDependencies(pluginCoordinate, project)) { - exCol = addPluginToDependencies(project, engine, artifact, parent, exCol); - } - } catch (ArtifactResolverException ex) { - throw new RuntimeException(ex); - } catch (IllegalArgumentException ex) { - throw new RuntimeException(ex); - } catch (DependencyResolverException ex) { - throw new RuntimeException(ex); - } - } - - return null; + final Artifact resolved = artifactResolver.resolveArtifact(buildingRequest, plugin).getArtifact(); + + exCol = addPluginToDependencies(project, engine, resolved, "pom.xml (plugins)", exCol); + + final DefaultDependableCoordinate pluginCoordinate = new DefaultDependableCoordinate(); + pluginCoordinate.setGroupId(resolved.getGroupId()); + pluginCoordinate.setArtifactId(resolved.getArtifactId()); + pluginCoordinate.setVersion(resolved.getVersion()); + + final String parent = buildReference(resolved.getGroupId(), resolved.getArtifactId(), resolved.getVersion()); + for (Artifact artifact : resolveArtifactDependencies(pluginCoordinate, project)) { + exCol = addPluginToDependencies(project, engine, artifact, parent, exCol); + } + } catch (ArtifactResolverException ex) { + throw new RuntimeException(ex); + } catch (IllegalArgumentException ex) { + throw new RuntimeException(ex); + } catch (DependencyResolverException ex) { + throw new RuntimeException(ex); + } + } + + return null; } private ExceptionCollection addPluginToDependencies(MavenProject project, Engine engine, Artifact artifact, String parent, ExceptionCollection exCollection) { - ExceptionCollection exCol = exCollection; - final String groupId = artifact.getGroupId(); - final String artifactId = artifact.getArtifactId(); - final String version = artifact.getVersion(); - final File artifactFile = artifact.getFile(); - if (artifactFile.isFile()) { - final List<ArtifactVersion> availableVersions = artifact.getAvailableVersions(); - - final List<Dependency> deps = engine.scan(artifactFile.getAbsoluteFile(), - project.getName() + " (plugins)"); - if (deps != null) { - Dependency d = null; - if (deps.size() == 1) { - d = deps.get(0); + ExceptionCollection exCol = exCollection; + final String groupId = artifact.getGroupId(); + final String artifactId = artifact.getArtifactId(); + final String version = artifact.getVersion(); + final File artifactFile = artifact.getFile(); + if (artifactFile.isFile()) { + final List<ArtifactVersion> availableVersions = artifact.getAvailableVersions(); + + final List<Dependency> deps = engine.scan(artifactFile.getAbsoluteFile(), + project.getName() + " (plugins)"); + if (deps != null) { + Dependency d = null; + if (deps.size() == 1) { + d = deps.get(0); } else { - for (Dependency possible : deps) { - if (artifactFile.getAbsoluteFile().equals(possible.getActualFile())) { - d = possible; - break; + for (Dependency possible : deps) { + if (artifactFile.getAbsoluteFile().equals(possible.getActualFile())) { + d = possible; + break; } - } - for (Dependency dep : deps) { - if (d != null && d != dep) { - final String includedBy = buildReference(groupId, artifactId, version); - dep.addIncludedBy(includedBy, "plugins"); + } + for (Dependency dep : deps) { + if (d != null && d != dep) { + final String includedBy = buildReference(groupId, artifactId, version); + dep.addIncludedBy(includedBy, "plugins"); } - } + } } - if (d != null) { - final MavenArtifact ma = new MavenArtifact(groupId, artifactId, version); - d.addAsEvidence("pom", ma, Confidence.HIGHEST); - if (parent != null) { - d.addIncludedBy(parent, "plugins"); + if (d != null) { + final MavenArtifact ma = new MavenArtifact(groupId, artifactId, version); + d.addAsEvidence("pom", ma, Confidence.HIGHEST); + if (parent != null) { + d.addIncludedBy(parent, "plugins"); } else { - final String includedby = buildReference( - project.getGroupId(), - project.getArtifactId(), - project.getVersion()); - d.addIncludedBy(includedby, "plugins"); + final String includedby = buildReference( + project.getGroupId(), + project.getArtifactId(), + project.getVersion()); + d.addIncludedBy(includedby, "plugins"); } - if (availableVersions != null) { - for (ArtifactVersion av : availableVersions) { - d.addAvailableVersion(av.toString()); - } + if (availableVersions != null) { + for (ArtifactVersion av : availableVersions) { + d.addAvailableVersion(av.toString()); + } } } } - } else { - if (exCol == null) { - exCol = new ExceptionCollection(); + } else { + if (exCol == null) { + exCol = new ExceptionCollection(); } - exCol.addException(new DependencyNotFoundException("Unable to resolve plugin: " + exCol.addException(new DependencyNotFoundException("Unable to resolve plugin: " + groupId + ":" + artifactId + ":" + version)); } - return exCol; + return exCol; } private String buildReference(final String groupId, final String artifactId, final String version) { String includedBy; try { - final PackageURL purl = new PackageURL("maven", groupId, artifactId, version, null, null); - includedBy = purl.toString(); - } catch (MalformedPackageURLException ex) { - getLog().warn("Unable to generate build reference for " + groupId + final PackageURL purl = new PackageURL("maven", groupId, artifactId, version, null, null); + includedBy = purl.toString(); + } catch (MalformedPackageURLException ex) { + getLog().warn("Unable to generate build reference for " + groupId + ":" + artifactId + ":" + version, ex); - includedBy = groupId + ":" + artifactId + ":" + version; - } - return includedBy; + includedBy = groupId + ":" + artifactId + ":" + version; + } + return includedBy; } protected Set<Artifact> resolveArtifactDependencies(final DependableCoordinate artifact, MavenProject project) throws DependencyResolverException { - final ProjectBuildingRequest buildingRequest = newResolveArtifactProjectBuildingRequest(project, project.getRemoteArtifactRepositories()); + final ProjectBuildingRequest buildingRequest = newResolveArtifactProjectBuildingRequest(project, project.getRemoteArtifactRepositories()); - final Iterable<ArtifactResult> artifactResults = dependencyResolver.resolveDependencies(buildingRequest, artifact, null); + final Iterable<ArtifactResult> artifactResults = dependencyResolver.resolveDependencies(buildingRequest, artifact, null); - final Set<Artifact> artifacts = new HashSet<>(); + final Set<Artifact> artifacts = new HashSet<>(); - for (ArtifactResult artifactResult : artifactResults) { - artifacts.add(artifactResult.getArtifact()); - } + for (ArtifactResult artifactResult : artifactResults) { + artifacts.add(artifactResult.getArtifact()); + } - return artifacts; + return artifacts; } @@ -1431,53 +1432,53 @@ private DependencyNode toDependencyNode(List<DependencyNode> nodes, ProjectBuildingRequest buildingRequest, DependencyNode parent, org.apache.maven.model.Dependency dependency) throws ArtifactResolverException { - final DefaultArtifactCoordinate coordinate = new DefaultArtifactCoordinate(); + final DefaultArtifactCoordinate coordinate = new DefaultArtifactCoordinate(); - coordinate.setGroupId(dependency.getGroupId()); - coordinate.setArtifactId(dependency.getArtifactId()); - String version = null; + coordinate.setGroupId(dependency.getGroupId()); + coordinate.setArtifactId(dependency.getArtifactId()); + String version = null; final VersionRange vr; try { - vr = VersionRange.createFromVersionSpec(dependency.getVersion()); - } catch (InvalidVersionSpecificationException ex) { - throw new ArtifactResolverException("Invalid version specification: " - + dependency.getGroupId() + ":" - + dependency.getArtifactId() + ":" - + dependency.getVersion(), ex); - } - if (vr.hasRestrictions()) { - version = findVersion(nodes, dependency.getGroupId(), dependency.getArtifactId()); - if (version == null) { + vr = VersionRange.createFromVersionSpec(dependency.getVersion()); + } catch (InvalidVersionSpecificationException ex) { + throw new ArtifactResolverException("Invalid version specification: " + + dependency.getGroupId() + ":" + + dependency.getArtifactId() + ":" + + dependency.getVersion(), ex); + } + if (vr.hasRestrictions()) { + version = findVersion(nodes, dependency.getGroupId(), dependency.getArtifactId()); + if (version == null) { //TODO - this still may fail if the restriction is not a valid version number (i.e. only 2.9 instead of 2.9.1) //need to get available versions and filter on the restrictions. - if (vr.getRecommendedVersion() != null) { - version = vr.getRecommendedVersion().toString(); - } else if (vr.hasRestrictions()) { - for (Restriction restriction : vr.getRestrictions()) { - if (restriction.getLowerBound() != null) { - version = restriction.getLowerBound().toString(); + if (vr.getRecommendedVersion() != null) { + version = vr.getRecommendedVersion().toString(); + } else if (vr.hasRestrictions()) { + for (Restriction restriction : vr.getRestrictions()) { + if (restriction.getLowerBound() != null) { + version = restriction.getLowerBound().toString(); } - if (restriction.getUpperBound() != null) { - version = restriction.getUpperBound().toString(); + if (restriction.getUpperBound() != null) { + version = restriction.getUpperBound().toString(); } - } + } } else { - version = vr.toString(); + version = vr.toString(); } } } - if (version == null) { - version = dependency.getVersion(); + if (version == null) { + version = dependency.getVersion(); } - coordinate.setVersion(version); - - final ArtifactType type = session.getRepositorySession().getArtifactTypeRegistry().get(dependency.getType()); - coordinate.setExtension(type.getExtension()); - coordinate.setClassifier((null == dependency.getClassifier() || dependency.getClassifier().isEmpty()) - ? type.getClassifier() : dependency.getClassifier()); - final Artifact artifact = artifactResolver.resolveArtifact(buildingRequest, coordinate).getArtifact(); - artifact.setScope(dependency.getScope()); - return new DefaultDependencyNode(parent, artifact, dependency.getVersion(), dependency.getScope(), null); + coordinate.setVersion(version); + + final ArtifactType type = session.getRepositorySession().getArtifactTypeRegistry().get(dependency.getType()); + coordinate.setExtension(type.getExtension()); + coordinate.setClassifier((null == dependency.getClassifier() || dependency.getClassifier().isEmpty()) + ? type.getClassifier() : dependency.getClassifier()); + final Artifact artifact = artifactResolver.resolveArtifact(buildingRequest, coordinate).getArtifact(); + artifact.setScope(dependency.getScope()); + return new DefaultDependencyNode(parent, artifact, dependency.getVersion(), dependency.getScope(), null); } /** @@ -1491,13 +1492,13 @@ * and artifactID; otherwise <code>null</code> is returned */ private String findVersion(List<DependencyNode> nodes, String groupId, String artifactId) { - final Optional<DependencyNode> f = nodes.stream().filter(p - -> groupId.equals(p.getArtifact().getGroupId()) - && artifactId.equals(p.getArtifact().getArtifactId())).findFirst(); - if (f.isPresent()) { - return f.get().getArtifact().getVersion(); + final Optional<DependencyNode> f = nodes.stream().filter(p + -> groupId.equals(p.getArtifact().getGroupId()) + && artifactId.equals(p.getArtifact().getArtifactId())).findFirst(); + if (f.isPresent()) { + return f.get().getArtifact().getVersion(); } - return null; + return null; } /** @@ -1513,36 +1514,36 @@ */ private ExceptionCollection collectDependencyManagementDependencies(Engine engine, ProjectBuildingRequest buildingRequest, MavenProject project, List<DependencyNode> nodes, boolean aggregate) { - if (skipDependencyManagement || project.getDependencyManagement() == null) { - return null; + if (skipDependencyManagement || project.getDependencyManagement() == null) { + return null; } - ExceptionCollection exCol = null; - for (org.apache.maven.model.Dependency dependency : project.getDependencyManagement().getDependencies()) { + ExceptionCollection exCol = null; + for (org.apache.maven.model.Dependency dependency : project.getDependencyManagement().getDependencies()) { try { - nodes.add(toDependencyNode(nodes, buildingRequest, null, dependency)); - } catch (ArtifactResolverException ex) { - getLog().debug(String.format("Aggregate : %s", aggregate)); - boolean addException = true; + nodes.add(toDependencyNode(nodes, buildingRequest, null, dependency)); + } catch (ArtifactResolverException ex) { + getLog().debug(String.format("Aggregate : %s", aggregate)); + boolean addException = true; //CSOFF: EmptyBlock - if (!aggregate) { + if (!aggregate) { // do nothing, exception is to be reported - } else if (addReactorDependency(engine, - new DefaultArtifact(dependency.getGroupId(), dependency.getArtifactId(), - dependency.getVersion(), dependency.getScope(), dependency.getType(), dependency.getClassifier(), + } else if (addReactorDependency(engine, + new DefaultArtifact(dependency.getGroupId(), dependency.getArtifactId(), + dependency.getVersion(), dependency.getScope(), dependency.getType(), dependency.getClassifier(), new DefaultArtifactHandler()), project)) { - addException = false; + addException = false; } //CSON: EmptyBlock - if (addException) { - if (exCol == null) { - exCol = new ExceptionCollection(); + if (addException) { + if (exCol == null) { + exCol = new ExceptionCollection(); } - exCol.addException(ex); + exCol.addException(ex); } - } - } - return exCol; + } + } + return exCol; } /** @@ -1562,23 +1563,23 @@ private ExceptionCollection collectMavenDependencies(Engine engine, MavenProject project, Map<DependencyNode, List<DependencyNode>> nodeMap, ProjectBuildingRequest buildingRequest, boolean aggregate) { - final List<ArtifactResult> allResolvedDeps = new ArrayList<>(); + final List<ArtifactResult> allResolvedDeps = new ArrayList<>(); //dependency management - final List<DependencyNode> dmNodes = new ArrayList<>(); - ExceptionCollection exCol = collectDependencyManagementDependencies(engine, buildingRequest, project, dmNodes, aggregate); - for (DependencyNode dependencyNode : dmNodes) { - exCol = scanDependencyNode(dependencyNode, null, engine, project, allResolvedDeps, buildingRequest, aggregate, exCol); - } + final List<DependencyNode> dmNodes = new ArrayList<>(); + ExceptionCollection exCol = collectDependencyManagementDependencies(engine, buildingRequest, project, dmNodes, aggregate); + for (DependencyNode dependencyNode : dmNodes) { + exCol = scanDependencyNode(dependencyNode, null, engine, project, allResolvedDeps, buildingRequest, aggregate, exCol); + } //dependencies - for (Map.Entry<DependencyNode, List<DependencyNode>> entry : nodeMap.entrySet()) { - exCol = scanDependencyNode(entry.getKey(), null, engine, project, allResolvedDeps, buildingRequest, aggregate, exCol); - for (DependencyNode dependencyNode : entry.getValue()) { - exCol = scanDependencyNode(dependencyNode, entry.getKey(), engine, project, allResolvedDeps, buildingRequest, aggregate, exCol); - } - } - return exCol; + for (Map.Entry<DependencyNode, List<DependencyNode>> entry : nodeMap.entrySet()) { + exCol = scanDependencyNode(entry.getKey(), null, engine, project, allResolvedDeps, buildingRequest, aggregate, exCol); + for (DependencyNode dependencyNode : entry.getValue()) { + exCol = scanDependencyNode(dependencyNode, entry.getKey(), engine, project, allResolvedDeps, buildingRequest, aggregate, exCol); + } + } + return exCol; } //CSON: OperatorWrap @@ -1596,18 +1597,18 @@ private Artifact findInAllDeps(final List<ArtifactResult> allDeps, final Artifact unresolvedArtifact, final MavenProject project) throws DependencyNotFoundException { - Artifact result = null; - for (final ArtifactResult res : allDeps) { - if (sameArtifact(res, unresolvedArtifact)) { - result = res.getArtifact(); - break; + Artifact result = null; + for (final ArtifactResult res : allDeps) { + if (sameArtifact(res, unresolvedArtifact)) { + result = res.getArtifact(); + break; } - } - if (result == null) { - throw new DependencyNotFoundException(String.format("Expected dependency not found in resolved artifacts for " - + "dependency %s of project-artifact %s", unresolvedArtifact, project.getArtifactId())); + } + if (result == null) { + throw new DependencyNotFoundException(String.format("Expected dependency not found in resolved artifacts for " + + "dependency %s of project-artifact %s", unresolvedArtifact, project.getArtifactId())); } - return result; + return result; } /** @@ -1620,20 +1621,20 @@ * the artifact of res */ private boolean sameArtifact(final ArtifactResult res, final Artifact unresolvedArtifact) { - if (res == null || res.getArtifact() == null || unresolvedArtifact == null) { - return false; + if (res == null || res.getArtifact() == null || unresolvedArtifact == null) { + return false; } - boolean result = Objects.equals(res.getArtifact().getGroupId(), unresolvedArtifact.getGroupId()); - result &= Objects.equals(res.getArtifact().getArtifactId(), unresolvedArtifact.getArtifactId()); + boolean result = Objects.equals(res.getArtifact().getGroupId(), unresolvedArtifact.getGroupId()); + result &= Objects.equals(res.getArtifact().getArtifactId(), unresolvedArtifact.getArtifactId()); // accept any version as matching "LATEST" and any non-snapshot version as matching "RELEASE" meta-version - if ("RELEASE".equals(unresolvedArtifact.getBaseVersion())) { - result &= !res.getArtifact().isSnapshot(); - } else if (!"LATEST".equals(unresolvedArtifact.getBaseVersion())) { - result &= Objects.equals(res.getArtifact().getBaseVersion(), unresolvedArtifact.getBaseVersion()); + if ("RELEASE".equals(unresolvedArtifact.getBaseVersion())) { + result &= !res.getArtifact().isSnapshot(); + } else if (!"LATEST".equals(unresolvedArtifact.getBaseVersion())) { + result &= Objects.equals(res.getArtifact().getBaseVersion(), unresolvedArtifact.getBaseVersion()); } - result &= Objects.equals(res.getArtifact().getClassifier(), unresolvedArtifact.getClassifier()); - result &= Objects.equals(res.getArtifact().getType(), unresolvedArtifact.getType()); - return result; + result &= Objects.equals(res.getArtifact().getClassifier(), unresolvedArtifact.getClassifier()); + result &= Objects.equals(res.getArtifact().getType(), unresolvedArtifact.getType()); + return result; } /** @@ -1646,7 +1647,7 @@ * {@link DependencyNode#getArtifact() dependencyNode.getArtifact()}{@link Artifact#getScope() .getScope()}. */ protected String createProjectReferenceName(MavenProject project, DependencyNode dependencyNode) { - return project.getName() + ":" + dependencyNode.getArtifact().getScope(); + return project.getName() + ":" + dependencyNode.getArtifact().getScope(); } /** @@ -1666,104 +1667,104 @@ Map<DependencyNode, List<DependencyNode>> nodes, ProjectBuildingRequest buildingRequest, boolean aggregate) { ExceptionCollection exCol; - exCol = collectMavenDependencies(engine, project, nodes, buildingRequest, aggregate); + exCol = collectMavenDependencies(engine, project, nodes, buildingRequest, aggregate); final List<FileSet> projectScan; - if (scanDirectory != null && !scanDirectory.isEmpty()) { - if (scanSet == null) { - scanSet = new ArrayList<>(); + if (scanDirectory != null && !scanDirectory.isEmpty()) { + if (scanSet == null) { + scanSet = new ArrayList<>(); } - scanDirectory.forEach(d -> { - final FileSet fs = new FileSet(); - fs.setDirectory(d); - fs.addInclude(INCLUDE_ALL); - scanSet.add(fs); - }); + scanDirectory.forEach(d -> { + final FileSet fs = new FileSet(); + fs.setDirectory(d); + fs.addInclude(INCLUDE_ALL); + scanSet.add(fs); + }); } - if (scanSet == null || scanSet.isEmpty()) { + if (scanSet == null || scanSet.isEmpty()) { // Define the default FileSets - final FileSet resourcesSet = new FileSet(); - final FileSet filtersSet = new FileSet(); - final FileSet webappSet = new FileSet(); - final FileSet mixedLangSet = new FileSet(); + final FileSet resourcesSet = new FileSet(); + final FileSet filtersSet = new FileSet(); + final FileSet webappSet = new FileSet(); + final FileSet mixedLangSet = new FileSet(); try { - resourcesSet.setDirectory(new File(project.getBasedir(), "src/main/resources").getCanonicalPath()); - resourcesSet.addInclude(INCLUDE_ALL); - filtersSet.setDirectory(new File(project.getBasedir(), "src/main/filters").getCanonicalPath()); - filtersSet.addInclude(INCLUDE_ALL); - webappSet.setDirectory(new File(project.getBasedir(), "src/main/webapp").getCanonicalPath()); - webappSet.addInclude(INCLUDE_ALL); - mixedLangSet.setDirectory(project.getBasedir().getCanonicalPath()); - mixedLangSet.addInclude("package.json"); - mixedLangSet.addInclude("package-lock.json"); - mixedLangSet.addInclude("npm-shrinkwrap.json"); - mixedLangSet.addInclude("Gopkg.lock"); - mixedLangSet.addInclude("go.mod"); - mixedLangSet.addInclude("yarn.lock"); - mixedLangSet.addInclude("pnpm-lock.yaml"); - mixedLangSet.addExclude("/node_modules/"); - } catch (IOException ex) { - if (exCol == null) { - exCol = new ExceptionCollection(); + resourcesSet.setDirectory(new File(project.getBasedir(), "src/main/resources").getCanonicalPath()); + resourcesSet.addInclude(INCLUDE_ALL); + filtersSet.setDirectory(new File(project.getBasedir(), "src/main/filters").getCanonicalPath()); + filtersSet.addInclude(INCLUDE_ALL); + webappSet.setDirectory(new File(project.getBasedir(), "src/main/webapp").getCanonicalPath()); + webappSet.addInclude(INCLUDE_ALL); + mixedLangSet.setDirectory(project.getBasedir().getCanonicalPath()); + mixedLangSet.addInclude("package.json"); + mixedLangSet.addInclude("package-lock.json"); + mixedLangSet.addInclude("npm-shrinkwrap.json"); + mixedLangSet.addInclude("Gopkg.lock"); + mixedLangSet.addInclude("go.mod"); + mixedLangSet.addInclude("yarn.lock"); + mixedLangSet.addInclude("pnpm-lock.yaml"); + mixedLangSet.addExclude("/node_modules/"); + } catch (IOException ex) { + if (exCol == null) { + exCol = new ExceptionCollection(); } - exCol.addException(ex); - } - projectScan = new ArrayList<>(); - projectScan.add(resourcesSet); - projectScan.add(filtersSet); - projectScan.add(webappSet); - projectScan.add(mixedLangSet); - - } else if (aggregate) { - projectScan = new ArrayList<>(); - for (FileSet copyFrom : scanSet) { + exCol.addException(ex); + } + projectScan = new ArrayList<>(); + projectScan.add(resourcesSet); + projectScan.add(filtersSet); + projectScan.add(webappSet); + projectScan.add(mixedLangSet); + + } else if (aggregate) { + projectScan = new ArrayList<>(); + for (FileSet copyFrom : scanSet) { //deep copy of the FileSet - modifying the directory if it is not absolute. - final FileSet fsCopy = new FileSet(); - final File f = new File(copyFrom.getDirectory()); - if (f.isAbsolute()) { - fsCopy.setDirectory(copyFrom.getDirectory()); + final FileSet fsCopy = new FileSet(); + final File f = new File(copyFrom.getDirectory()); + if (f.isAbsolute()) { + fsCopy.setDirectory(copyFrom.getDirectory()); } else { try { - fsCopy.setDirectory(new File(project.getBasedir(), copyFrom.getDirectory()).getCanonicalPath()); - } catch (IOException ex) { - if (exCol == null) { - exCol = new ExceptionCollection(); + fsCopy.setDirectory(new File(project.getBasedir(), copyFrom.getDirectory()).getCanonicalPath()); + } catch (IOException ex) { + if (exCol == null) { + exCol = new ExceptionCollection(); } - exCol.addException(ex); - fsCopy.setDirectory(copyFrom.getDirectory()); - } + exCol.addException(ex); + fsCopy.setDirectory(copyFrom.getDirectory()); + } } - fsCopy.setDirectoryMode(copyFrom.getDirectoryMode()); - fsCopy.setExcludes(copyFrom.getExcludes()); - fsCopy.setFileMode(copyFrom.getFileMode()); - fsCopy.setFollowSymlinks(copyFrom.isFollowSymlinks()); - fsCopy.setIncludes(copyFrom.getIncludes()); - fsCopy.setLineEnding(copyFrom.getLineEnding()); - fsCopy.setMapper(copyFrom.getMapper()); - fsCopy.setModelEncoding(copyFrom.getModelEncoding()); - fsCopy.setOutputDirectory(copyFrom.getOutputDirectory()); - fsCopy.setUseDefaultExcludes(copyFrom.isUseDefaultExcludes()); - projectScan.add(fsCopy); - } + fsCopy.setDirectoryMode(copyFrom.getDirectoryMode()); + fsCopy.setExcludes(copyFrom.getExcludes()); + fsCopy.setFileMode(copyFrom.getFileMode()); + fsCopy.setFollowSymlinks(copyFrom.isFollowSymlinks()); + fsCopy.setIncludes(copyFrom.getIncludes()); + fsCopy.setLineEnding(copyFrom.getLineEnding()); + fsCopy.setMapper(copyFrom.getMapper()); + fsCopy.setModelEncoding(copyFrom.getModelEncoding()); + fsCopy.setOutputDirectory(copyFrom.getOutputDirectory()); + fsCopy.setUseDefaultExcludes(copyFrom.isUseDefaultExcludes()); + projectScan.add(fsCopy); + } } else { - projectScan = scanSet; + projectScan = scanSet; } // Iterate through FileSets and scan included files - final FileSetManager fileSetManager = new FileSetManager(); - for (FileSet fileSet : projectScan) { - getLog().debug("Scanning fileSet: " + fileSet.getDirectory()); - final String[] includedFiles = fileSetManager.getIncludedFiles(fileSet); - for (String include : includedFiles) { - final File includeFile = new File(fileSet.getDirectory(), include).getAbsoluteFile(); - if (includeFile.exists()) { - engine.scan(includeFile, project.getName()); + final FileSetManager fileSetManager = new FileSetManager(); + for (FileSet fileSet : projectScan) { + getLog().debug("Scanning fileSet: " + fileSet.getDirectory()); + final String[] includedFiles = fileSetManager.getIncludedFiles(fileSet); + for (String include : includedFiles) { + final File includeFile = new File(fileSet.getDirectory(), include).getAbsoluteFile(); + if (includeFile.exists()) { + engine.scan(includeFile, project.getName()); } } - } - return exCol; + } + return exCol; } /** @@ -1778,7 +1779,7 @@ * <code>false</code> */ private boolean addReactorDependency(Engine engine, Artifact artifact, final MavenProject depender) { - return addVirtualDependencyFromReactor(engine, artifact, depender, "Unable to resolve %s as it has not been built yet " + return addVirtualDependencyFromReactor(engine, artifact, depender, "Unable to resolve %s as it has not been built yet " + "- creating a virtual dependency instead."); } @@ -1799,91 +1800,91 @@ private boolean addVirtualDependencyFromReactor(Engine engine, Artifact artifact, final MavenProject depender, String infoLogTemplate) { - getLog().debug(String.format("Checking the reactor projects (%d) for %s:%s:%s", - reactorProjects.size(), - artifact.getGroupId(), artifact.getArtifactId(), artifact.getVersion())); + getLog().debug(String.format("Checking the reactor projects (%d) for %s:%s:%s", + reactorProjects.size(), + artifact.getGroupId(), artifact.getArtifactId(), artifact.getVersion())); - for (MavenProject prj : reactorProjects) { + for (MavenProject prj : reactorProjects) { - getLog().debug(String.format("Comparing %s:%s:%s to %s:%s:%s", - artifact.getGroupId(), artifact.getArtifactId(), artifact.getBaseVersion(), - prj.getGroupId(), prj.getArtifactId(), prj.getVersion())); + getLog().debug(String.format("Comparing %s:%s:%s to %s:%s:%s", + artifact.getGroupId(), artifact.getArtifactId(), artifact.getBaseVersion(), + prj.getGroupId(), prj.getArtifactId(), prj.getVersion())); - if (prj.getArtifactId().equals(artifact.getArtifactId()) - && prj.getGroupId().equals(artifact.getGroupId()) - && prj.getVersion().equals(artifact.getBaseVersion())) { + if (prj.getArtifactId().equals(artifact.getArtifactId()) + && prj.getGroupId().equals(artifact.getGroupId()) + && prj.getVersion().equals(artifact.getBaseVersion())) { - final String displayName = String.format("%s:%s:%s", - prj.getGroupId(), prj.getArtifactId(), prj.getVersion()); - getLog().info(String.format(infoLogTemplate, + final String displayName = String.format("%s:%s:%s", + prj.getGroupId(), prj.getArtifactId(), prj.getVersion()); + getLog().info(String.format(infoLogTemplate, displayName)); - final Dependency d = newDependency(prj); - final String key = String.format("%s:%s:%s", prj.getGroupId(), prj.getArtifactId(), prj.getVersion()); - d.setSha1sum(Checksum.getSHA1Checksum(key)); - d.setSha256sum(Checksum.getSHA256Checksum(key)); - d.setMd5sum(Checksum.getMD5Checksum(key)); - d.setEcosystem(JarAnalyzer.DEPENDENCY_ECOSYSTEM); - d.setDisplayFileName(displayName); - d.addProjectReference(depender.getName()); - final String includedby = buildReference( - depender.getGroupId(), - depender.getArtifactId(), - depender.getVersion()); - d.addIncludedBy(includedby); - d.addEvidence(EvidenceType.PRODUCT, "project", "artifactid", prj.getArtifactId(), Confidence.HIGHEST); - d.addEvidence(EvidenceType.VENDOR, "project", "artifactid", prj.getArtifactId(), Confidence.LOW); - - d.addEvidence(EvidenceType.VENDOR, "project", "groupid", prj.getGroupId(), Confidence.HIGHEST); - d.addEvidence(EvidenceType.PRODUCT, "project", "groupid", prj.getGroupId(), Confidence.LOW); - d.setEcosystem(JarAnalyzer.DEPENDENCY_ECOSYSTEM); + final Dependency d = newDependency(prj); + final String key = String.format("%s:%s:%s", prj.getGroupId(), prj.getArtifactId(), prj.getVersion()); + d.setSha1sum(Checksum.getSHA1Checksum(key)); + d.setSha256sum(Checksum.getSHA256Checksum(key)); + d.setMd5sum(Checksum.getMD5Checksum(key)); + d.setEcosystem(JarAnalyzer.DEPENDENCY_ECOSYSTEM); + d.setDisplayFileName(displayName); + d.addProjectReference(depender.getName()); + final String includedby = buildReference( + depender.getGroupId(), + depender.getArtifactId(), + depender.getVersion()); + d.addIncludedBy(includedby); + d.addEvidence(EvidenceType.PRODUCT, "project", "artifactid", prj.getArtifactId(), Confidence.HIGHEST); + d.addEvidence(EvidenceType.VENDOR, "project", "artifactid", prj.getArtifactId(), Confidence.LOW); + + d.addEvidence(EvidenceType.VENDOR, "project", "groupid", prj.getGroupId(), Confidence.HIGHEST); + d.addEvidence(EvidenceType.PRODUCT, "project", "groupid", prj.getGroupId(), Confidence.LOW); + d.setEcosystem(JarAnalyzer.DEPENDENCY_ECOSYSTEM); Identifier id; try { - id = new PurlIdentifier(StandardTypes.MAVEN, artifact.getGroupId(), - artifact.getArtifactId(), artifact.getVersion(), Confidence.HIGHEST); - } catch (MalformedPackageURLException ex) { - getLog().debug("Unable to create PackageURL object:" + key); - id = new GenericIdentifier("maven:" + key, Confidence.HIGHEST); - } - d.addSoftwareIdentifier(id); + id = new PurlIdentifier(StandardTypes.MAVEN, artifact.getGroupId(), + artifact.getArtifactId(), artifact.getVersion(), Confidence.HIGHEST); + } catch (MalformedPackageURLException ex) { + getLog().debug("Unable to create PackageURL object:" + key); + id = new GenericIdentifier("maven:" + key, Confidence.HIGHEST); + } + d.addSoftwareIdentifier(id); //TODO unify the setName/version and package path - they are equivelent ideas submitted by two seperate committers - d.setName(String.format("%s:%s", prj.getGroupId(), prj.getArtifactId())); - d.setVersion(prj.getVersion()); - d.setPackagePath(displayName); - if (prj.getDescription() != null) { - JarAnalyzer.addDescription(d, prj.getDescription(), "project", "description"); + d.setName(String.format("%s:%s", prj.getGroupId(), prj.getArtifactId())); + d.setVersion(prj.getVersion()); + d.setPackagePath(displayName); + if (prj.getDescription() != null) { + JarAnalyzer.addDescription(d, prj.getDescription(), "project", "description"); } - for (License l : prj.getLicenses()) { - final StringBuilder license = new StringBuilder(); - if (l.getName() != null) { - license.append(l.getName()); + for (License l : prj.getLicenses()) { + final StringBuilder license = new StringBuilder(); + if (l.getName() != null) { + license.append(l.getName()); } - if (l.getUrl() != null) { - license.append(" ").append(l.getUrl()); + if (l.getUrl() != null) { + license.append(" ").append(l.getUrl()); } - if (d.getLicense() == null) { - d.setLicense(license.toString()); - } else if (!d.getLicense().contains(license)) { - d.setLicense(String.format("%s%n%s", d.getLicense(), license)); + if (d.getLicense() == null) { + d.setLicense(license.toString()); + } else if (!d.getLicense().contains(license)) { + d.setLicense(String.format("%s%n%s", d.getLicense(), license)); } - } - engine.addDependency(d); - return true; + } + engine.addDependency(d); + return true; } - } - return false; + } + return false; } Dependency newDependency(MavenProject prj) { - final File pom = new File(prj.getBasedir(), "pom.xml"); - - if (pom.isFile()) { - getLog().debug("Adding virtual dependency from pom.xml"); - return new Dependency(pom, true); - } else if (prj.getFile().isFile()) { - getLog().debug("Adding virtual dependency from file"); - return new Dependency(prj.getFile(), true); + final File pom = new File(prj.getBasedir(), "pom.xml"); + + if (pom.isFile()) { + getLog().debug("Adding virtual dependency from pom.xml"); + return new Dependency(pom, true); + } else if (prj.getFile().isFile()) { + getLog().debug("Adding virtual dependency from file"); + return new Dependency(prj.getFile(), true); } else { - return new Dependency(true); + return new Dependency(true); } } @@ -1899,10 +1900,10 @@ * reactor; otherwise <code>false</code> */ private boolean addSnapshotReactorDependency(Engine engine, Artifact artifact, final MavenProject depender) { - if (!artifact.isSnapshot()) { - return false; + if (!artifact.isSnapshot()) { + return false; } - return addVirtualDependencyFromReactor(engine, artifact, depender, "Found snapshot reactor project in aggregate for %s - " + return addVirtualDependencyFromReactor(engine, artifact, depender, "Found snapshot reactor project in aggregate for %s - " + "creating a virtual dependency as the snapshot found in the repository may contain outdated dependencies."); } @@ -1914,10 +1915,10 @@ * artifacts. */ public ProjectBuildingRequest newResolveArtifactProjectBuildingRequest(MavenProject project, List<ArtifactRepository> repos) { - final ProjectBuildingRequest buildingRequest = new DefaultProjectBuildingRequest(session.getProjectBuildingRequest()); - buildingRequest.setRemoteRepositories(repos); - buildingRequest.setProject(project); - return buildingRequest; + final ProjectBuildingRequest buildingRequest = new DefaultProjectBuildingRequest(session.getProjectBuildingRequest()); + buildingRequest.setRemoteRepositories(repos); + buildingRequest.setProject(project); + return buildingRequest; } /** @@ -1929,64 +1930,64 @@ * fail the build */ protected void runCheck() throws MojoExecutionException, MojoFailureException { - muteJCS(); - try (Engine engine = initializeEngine()) { - ExceptionCollection exCol = null; - if (scanDependencies) { - exCol = scanDependencies(engine); + muteNoisyLoggers(); + try (Engine engine = initializeEngine()) { + ExceptionCollection exCol = null; + if (scanDependencies) { + exCol = scanDependencies(engine); } - if (scanPlugins) { - exCol = scanPlugins(engine, exCol); + if (scanPlugins) { + exCol = scanPlugins(engine, exCol); } try { - engine.analyzeDependencies(); - } catch (ExceptionCollection ex) { - exCol = handleAnalysisExceptions(exCol, ex); - } - if (exCol == null || !exCol.isFatal()) { - - File outputDir = getCorrectOutputDirectory(this.getProject()); - if (outputDir == null) { + engine.analyzeDependencies(); + } catch (ExceptionCollection ex) { + exCol = handleAnalysisExceptions(exCol, ex); + } + if (exCol == null || !exCol.isFatal()) { + + File outputDir = getCorrectOutputDirectory(this.getProject()); + if (outputDir == null) { //in some regards we shouldn't be writing this, but we are anyway. //we shouldn't write this because nothing is configured to generate this report. - outputDir = new File(this.getProject().getBuild().getDirectory()); + outputDir = new File(this.getProject().getBuild().getDirectory()); } try { - final MavenProject p = this.getProject(); - for (String f : getFormats()) { - engine.writeReports(p.getName(), p.getGroupId(), p.getArtifactId(), p.getVersion(), outputDir, f, exCol); - } - } catch (ReportException ex) { - if (exCol == null) { - exCol = new ExceptionCollection(ex); + final MavenProject p = this.getProject(); + for (String f : getFormats()) { + engine.writeReports(p.getName(), p.getGroupId(), p.getArtifactId(), p.getVersion(), outputDir, f, exCol); + } + } catch (ReportException ex) { + if (exCol == null) { + exCol = new ExceptionCollection(ex); } else { - exCol.addException(ex); + exCol.addException(ex); } - if (this.isFailOnError()) { - throw new MojoExecutionException("One or more exceptions occurred during dependency-check analysis", exCol); + if (this.isFailOnError()) { + throw new MojoExecutionException("One or more exceptions occurred during dependency-check analysis", exCol); } else { - getLog().debug("Error writing the report", ex); + getLog().debug("Error writing the report", ex); } - } - showSummary(this.getProject(), engine.getDependencies()); - checkForFailure(engine.getDependencies()); - if (exCol != null && this.isFailOnError()) { - throw new MojoExecutionException("One or more exceptions occurred during dependency-check analysis", exCol); + } + showSummary(this.getProject(), engine.getDependencies()); + checkForFailure(engine.getDependencies()); + if (exCol != null && this.isFailOnError()) { + throw new MojoExecutionException("One or more exceptions occurred during dependency-check analysis", exCol); } } - } catch (DatabaseException ex) { - if (getLog().isDebugEnabled()) { - getLog().debug("Database connection error", ex); + } catch (DatabaseException ex) { + if (getLog().isDebugEnabled()) { + getLog().debug("Database connection error", ex); } - final String msg = "An exception occurred connecting to the local database. Please see the log file for more details."; - if (this.isFailOnError()) { - throw new MojoExecutionException(msg, ex); + final String msg = "An exception occurred connecting to the local database. Please see the log file for more details."; + if (this.isFailOnError()) { + throw new MojoExecutionException(msg, ex); } - getLog().error(msg, ex); + getLog().error(msg, ex); } finally { - getSettings().cleanup(); + getSettings().cleanup(); } - } + } /** * Combines the two exception collections and if either are fatal, throw an @@ -1999,31 +2000,31 @@ * to fail on errors */ private ExceptionCollection handleAnalysisExceptions(ExceptionCollection currentEx, ExceptionCollection newEx) throws MojoExecutionException { - ExceptionCollection returnEx = currentEx; - if (returnEx == null) { - returnEx = newEx; + ExceptionCollection returnEx = currentEx; + if (returnEx == null) { + returnEx = newEx; } else { - returnEx.getExceptions().addAll(newEx.getExceptions()); - if (newEx.isFatal()) { - returnEx.setFatal(true); + returnEx.getExceptions().addAll(newEx.getExceptions()); + if (newEx.isFatal()) { + returnEx.setFatal(true); } } - if (returnEx.isFatal()) { - final String msg = String.format("Fatal exception(s) analyzing %s", getProject().getName()); - if (this.isFailOnError()) { - throw new MojoExecutionException(msg, returnEx); + if (returnEx.isFatal()) { + final String msg = String.format("Fatal exception(s) analyzing %s", getProject().getName()); + if (this.isFailOnError()) { + throw new MojoExecutionException(msg, returnEx); } - getLog().error(msg); - if (getLog().isDebugEnabled()) { - getLog().debug(returnEx); + getLog().error(msg); + if (getLog().isDebugEnabled()) { + getLog().debug(returnEx); } - } else { - final String msg = String.format("Exception(s) analyzing %s", getProject().getName()); - if (getLog().isDebugEnabled()) { - getLog().debug(msg, returnEx); + } else { + final String msg = String.format("Exception(s) analyzing %s", getProject().getName()); + if (getLog().isDebugEnabled()) { + getLog().debug(msg, returnEx); } } - return returnEx; + return returnEx; } /** @@ -2053,7 +2054,7 @@ */ @Override public File getReportOutputDirectory() { - return reportOutputDirectory; + return reportOutputDirectory; } /** @@ -2063,8 +2064,8 @@ */ @Override public void setReportOutputDirectory(File directory) { - reportOutputDirectory = directory; - } + reportOutputDirectory = directory; + } /** * Returns the output directory. @@ -2072,7 +2073,7 @@ * @return the output directory */ public File getOutputDirectory() { - return outputDirectory; + return outputDirectory; } /** @@ -2083,7 +2084,7 @@ */ @Override public final boolean isExternalReport() { - return true; + return true; } /** @@ -2093,24 +2094,24 @@ */ @Override public String getOutputName() { - final Set<String> selectedFormats = getFormats(); - if (selectedFormats.contains("HTML") || selectedFormats.contains("ALL") || selectedFormats.size() > 1) { - return "dependency-check-report"; - } else if (selectedFormats.contains("JENKINS")) { - return "dependency-check-jenkins.html"; - } else if (selectedFormats.contains("XML")) { - return "dependency-check-report.xml"; - } else if (selectedFormats.contains("JUNIT")) { - return "dependency-check-junit.xml"; - } else if (selectedFormats.contains("JSON")) { - return "dependency-check-report.json"; - } else if (selectedFormats.contains("SARIF")) { - return "dependency-check-report.sarif"; - } else if (selectedFormats.contains("CSV")) { - return "dependency-check-report.csv"; + final Set<String> selectedFormats = getFormats(); + if (selectedFormats.contains("HTML") || selectedFormats.contains("ALL") || selectedFormats.size() > 1) { + return "dependency-check-report"; + } else if (selectedFormats.contains("JENKINS")) { + return "dependency-check-jenkins.html"; + } else if (selectedFormats.contains("XML")) { + return "dependency-check-report.xml"; + } else if (selectedFormats.contains("JUNIT")) { + return "dependency-check-junit.xml"; + } else if (selectedFormats.contains("JSON")) { + return "dependency-check-report.json"; + } else if (selectedFormats.contains("SARIF")) { + return "dependency-check-report.sarif"; + } else if (selectedFormats.contains("CSV")) { + return "dependency-check-report.csv"; } else { - getLog().warn("Unknown report format used during site generation."); - return "dependency-check-report"; + getLog().warn("Unknown report format used during site generation."); + return "dependency-check-report"; } } @@ -2121,7 +2122,7 @@ */ @Override public String getCategoryName() { - return MavenReport.CATEGORY_PROJECT_REPORTS; + return MavenReport.CATEGORY_PROJECT_REPORTS; } //</editor-fold> @@ -2134,8 +2135,8 @@ * @throws DatabaseException thrown if there is a database exception */ protected Engine initializeEngine() throws DatabaseException { - populateSettings(); - return new Engine(settings); + populateSettings(); + return new Engine(settings); } //CSOFF: MethodLength @@ -2145,223 +2146,224 @@ * proxy URL, port, and connection timeout. */ protected void populateSettings() { - settings = new Settings(); - InputStream mojoProperties = null; + settings = new Settings(); + InputStream mojoProperties = null; try { - mojoProperties = this.getClass().getClassLoader().getResourceAsStream(PROPERTIES_FILE); - settings.mergeProperties(mojoProperties); - } catch (IOException ex) { - getLog().warn("Unable to load the dependency-check maven mojo.properties file."); - if (getLog().isDebugEnabled()) { - getLog().debug("", ex); + mojoProperties = this.getClass().getClassLoader().getResourceAsStream(PROPERTIES_FILE); + settings.mergeProperties(mojoProperties); + } catch (IOException ex) { + getLog().warn("Unable to load the dependency-check maven mojo.properties file."); + if (getLog().isDebugEnabled()) { + getLog().debug("", ex); } } finally { - if (mojoProperties != null) { + if (mojoProperties != null) { try { - mojoProperties.close(); - } catch (IOException ex) { - if (getLog().isDebugEnabled()) { - getLog().debug("", ex); + mojoProperties.close(); + } catch (IOException ex) { + if (getLog().isDebugEnabled()) { + getLog().debug("", ex); } - } + } } } - settings.setStringIfNotEmpty(Settings.KEYS.MAVEN_LOCAL_REPO, mavenSettings.getLocalRepository()); - settings.setBooleanIfNotNull(Settings.KEYS.AUTO_UPDATE, autoUpdate); - settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_EXPERIMENTAL_ENABLED, enableExperimental); - settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_RETIRED_ENABLED, enableRetired); - settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_GOLANG_DEP_ENABLED, golangDepEnabled); - settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_GOLANG_MOD_ENABLED, golangModEnabled); - settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_DART_ENABLED, dartAnalyzerEnabled); - settings.setStringIfNotNull(Settings.KEYS.ANALYZER_GOLANG_PATH, pathToGo); - settings.setStringIfNotNull(Settings.KEYS.ANALYZER_YARN_PATH, pathToYarn); - settings.setStringIfNotNull(Settings.KEYS.ANALYZER_PNPM_PATH, pathToPnpm); + settings.setStringIfNotEmpty(Settings.KEYS.MAVEN_LOCAL_REPO, mavenSettings.getLocalRepository()); + settings.setBooleanIfNotNull(Settings.KEYS.AUTO_UPDATE, autoUpdate); + settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_EXPERIMENTAL_ENABLED, enableExperimental); + settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_RETIRED_ENABLED, enableRetired); + settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_GOLANG_DEP_ENABLED, golangDepEnabled); + settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_GOLANG_MOD_ENABLED, golangModEnabled); + settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_DART_ENABLED, dartAnalyzerEnabled); + settings.setStringIfNotNull(Settings.KEYS.ANALYZER_GOLANG_PATH, pathToGo); + settings.setStringIfNotNull(Settings.KEYS.ANALYZER_YARN_PATH, pathToYarn); + settings.setStringIfNotNull(Settings.KEYS.ANALYZER_PNPM_PATH, pathToPnpm); // use global maven proxy if provided - final Proxy mavenProxy = getMavenProxy(); - if (mavenProxy != null) { - final String existing = System.getProperty("https.proxyHost"); - if (existing == null && mavenProxy.getHost() != null && !mavenProxy.getHost().isEmpty()) { - System.setProperty("https.proxyHost", mavenProxy.getHost()); - if (mavenProxy.getPort() > 0) { - System.setProperty("https.proxyPort", String.valueOf(mavenProxy.getPort())); + final Proxy mavenProxy = getMavenProxy(); + if (mavenProxy != null) { + final String existing = System.getProperty("https.proxyHost"); + if (existing == null && mavenProxy.getHost() != null && !mavenProxy.getHost().isEmpty()) { + System.setProperty("https.proxyHost", mavenProxy.getHost()); + if (mavenProxy.getPort() > 0) { + System.setProperty("https.proxyPort", String.valueOf(mavenProxy.getPort())); } - if (mavenProxy.getUsername() != null && !mavenProxy.getUsername().isEmpty()) { - System.setProperty("https.proxyUser", mavenProxy.getUsername()); + if (mavenProxy.getUsername() != null && !mavenProxy.getUsername().isEmpty()) { + System.setProperty("https.proxyUser", mavenProxy.getUsername()); } - if (mavenProxy.getPassword() != null && !mavenProxy.getPassword().isEmpty()) { - System.setProperty("https.proxyPassword", mavenProxy.getPassword()); + if (mavenProxy.getPassword() != null && !mavenProxy.getPassword().isEmpty()) { + System.setProperty("https.proxyPassword", mavenProxy.getPassword()); } - if (mavenProxy.getNonProxyHosts() != null && !mavenProxy.getNonProxyHosts().isEmpty()) { - System.setProperty("https.nonProxyHosts", mavenProxy.getNonProxyHosts()); + if (mavenProxy.getNonProxyHosts() != null && !mavenProxy.getNonProxyHosts().isEmpty()) { + System.setProperty("http.nonProxyHosts", mavenProxy.getNonProxyHosts()); } } - settings.setString(Settings.KEYS.PROXY_SERVER, mavenProxy.getHost()); - settings.setString(Settings.KEYS.PROXY_PORT, Integer.toString(mavenProxy.getPort())); - final String userName = mavenProxy.getUsername(); - String password = mavenProxy.getPassword(); - if (password != null && !password.isEmpty()) { - if (settings.getBoolean(Settings.KEYS.PROXY_DISABLE_SCHEMAS, true)) { - System.setProperty("jdk.http.auth.tunneling.disabledSchemes", ""); + settings.setString(Settings.KEYS.PROXY_SERVER, mavenProxy.getHost()); + settings.setString(Settings.KEYS.PROXY_PORT, Integer.toString(mavenProxy.getPort())); + final String userName = mavenProxy.getUsername(); + String password = mavenProxy.getPassword(); + if (password != null && !password.isEmpty()) { + if (settings.getBoolean(Settings.KEYS.PROXY_DISABLE_SCHEMAS, true)) { + System.setProperty("jdk.http.auth.tunneling.disabledSchemes", ""); } try { - password = decryptPasswordFromSettings(password); - } catch (SecDispatcherException ex) { - password = handleSecDispatcherException("proxy", mavenProxy.getId(), password, ex); - } + password = decryptPasswordFromSettings(password); + } catch (SecDispatcherException ex) { + password = handleSecDispatcherException("proxy", mavenProxy.getId(), password, ex); + } } - settings.setStringIfNotNull(Settings.KEYS.PROXY_USERNAME, userName); - settings.setStringIfNotNull(Settings.KEYS.PROXY_PASSWORD, password); - settings.setStringIfNotNull(Settings.KEYS.PROXY_NON_PROXY_HOSTS, mavenProxy.getNonProxyHosts()); - } else if (System.getProperty("http.proxyHost") != null) { + settings.setStringIfNotNull(Settings.KEYS.PROXY_USERNAME, userName); + settings.setStringIfNotNull(Settings.KEYS.PROXY_PASSWORD, password); + settings.setStringIfNotNull(Settings.KEYS.PROXY_NON_PROXY_HOSTS, mavenProxy.getNonProxyHosts()); + } else if (System.getProperty("http.proxyHost") != null) { //else use standard Java system properties - settings.setString(Settings.KEYS.PROXY_SERVER, System.getProperty("http.proxyHost", "")); - if (System.getProperty("http.proxyPort") != null) { - settings.setString(Settings.KEYS.PROXY_PORT, System.getProperty("http.proxyPort")); + settings.setString(Settings.KEYS.PROXY_SERVER, System.getProperty("http.proxyHost", "")); + if (System.getProperty("http.proxyPort") != null) { + settings.setString(Settings.KEYS.PROXY_PORT, System.getProperty("http.proxyPort")); } - if (System.getProperty("http.proxyUser") != null) { - settings.setString(Settings.KEYS.PROXY_USERNAME, System.getProperty("http.proxyUser")); + if (System.getProperty("http.proxyUser") != null) { + settings.setString(Settings.KEYS.PROXY_USERNAME, System.getProperty("http.proxyUser")); } - if (System.getProperty("http.proxyPassword") != null) { - settings.setString(Settings.KEYS.PROXY_PASSWORD, System.getProperty("http.proxyPassword")); + if (System.getProperty("http.proxyPassword") != null) { + settings.setString(Settings.KEYS.PROXY_PASSWORD, System.getProperty("http.proxyPassword")); } - if (System.getProperty("http.nonProxyHosts") != null) { - settings.setString(Settings.KEYS.PROXY_NON_PROXY_HOSTS, System.getProperty("http.nonProxyHosts")); + if (System.getProperty("http.nonProxyHosts") != null) { + settings.setString(Settings.KEYS.PROXY_NON_PROXY_HOSTS, System.getProperty("http.nonProxyHosts")); } - } else if (this.proxy != null && this.proxy.getHost() != null) { + } else if (this.proxy != null && this.proxy.getHost() != null) { // or use configured <proxy> - settings.setString(Settings.KEYS.PROXY_SERVER, this.proxy.getHost()); - settings.setString(Settings.KEYS.PROXY_PORT, Integer.toString(this.proxy.getPort())); + settings.setString(Settings.KEYS.PROXY_SERVER, this.proxy.getHost()); + settings.setString(Settings.KEYS.PROXY_PORT, Integer.toString(this.proxy.getPort())); // user name and password from <server> entry settings.xml - configureServerCredentials(this.proxy.getServerId(), Settings.KEYS.PROXY_USERNAME, Settings.KEYS.PROXY_PASSWORD); + configureServerCredentials(this.proxy.getServerId(), Settings.KEYS.PROXY_USERNAME, Settings.KEYS.PROXY_PASSWORD); } - final String[] suppressions = determineSuppressions(); - settings.setArrayIfNotEmpty(Settings.KEYS.SUPPRESSION_FILE, suppressions); - settings.setBooleanIfNotNull(Settings.KEYS.UPDATE_VERSION_CHECK_ENABLED, versionCheckEnabled); - settings.setStringIfNotEmpty(Settings.KEYS.CONNECTION_TIMEOUT, connectionTimeout); - settings.setStringIfNotEmpty(Settings.KEYS.CONNECTION_READ_TIMEOUT, readTimeout); - settings.setStringIfNotEmpty(Settings.KEYS.HINTS_FILE, hintsFile); - settings.setFloat(Settings.KEYS.JUNIT_FAIL_ON_CVSS, junitFailOnCVSS); - settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_JAR_ENABLED, jarAnalyzerEnabled); - settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_NUSPEC_ENABLED, nuspecAnalyzerEnabled); - settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_NUGETCONF_ENABLED, nugetconfAnalyzerEnabled); - settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_LIBMAN_ENABLED, libmanAnalyzerEnabled); - settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_CENTRAL_ENABLED, centralAnalyzerEnabled); - settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_CENTRAL_USE_CACHE, centralAnalyzerUseCache); - settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_ARTIFACTORY_ENABLED, artifactoryAnalyzerEnabled); - settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_NEXUS_ENABLED, nexusAnalyzerEnabled); - settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_ASSEMBLY_ENABLED, assemblyAnalyzerEnabled); - settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_MSBUILD_PROJECT_ENABLED, msbuildAnalyzerEnabled); - settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_ARCHIVE_ENABLED, archiveAnalyzerEnabled); - settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_KNOWN_EXPLOITED_ENABLED, knownExploitedEnabled); - settings.setStringIfNotEmpty(Settings.KEYS.KEV_URL, knownExploitedUrl); - settings.setStringIfNotEmpty(Settings.KEYS.ADDITIONAL_ZIP_EXTENSIONS, zipExtensions); - settings.setStringIfNotEmpty(Settings.KEYS.ANALYZER_ASSEMBLY_DOTNET_PATH, pathToCore); - settings.setStringIfNotEmpty(Settings.KEYS.ANALYZER_NEXUS_URL, nexusUrl); - configureServerCredentials(nexusServerId, Settings.KEYS.ANALYZER_NEXUS_USER, Settings.KEYS.ANALYZER_NEXUS_PASSWORD); - settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_NEXUS_USES_PROXY, nexusUsesProxy); - settings.setStringIfNotNull(Settings.KEYS.ANALYZER_ARTIFACTORY_URL, artifactoryAnalyzerUrl); - settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_ARTIFACTORY_USES_PROXY, artifactoryAnalyzerUseProxy); - settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_ARTIFACTORY_PARALLEL_ANALYSIS, artifactoryAnalyzerParallelAnalysis); - if (Boolean.TRUE.equals(artifactoryAnalyzerEnabled)) { - if (artifactoryAnalyzerServerId != null) { - configureServerCredentials(artifactoryAnalyzerServerId, Settings.KEYS.ANALYZER_ARTIFACTORY_API_USERNAME, + final String[] suppressions = determineSuppressions(); + settings.setArrayIfNotEmpty(Settings.KEYS.SUPPRESSION_FILE, suppressions); + settings.setBooleanIfNotNull(Settings.KEYS.UPDATE_VERSION_CHECK_ENABLED, versionCheckEnabled); + settings.setStringIfNotEmpty(Settings.KEYS.CONNECTION_TIMEOUT, connectionTimeout); + settings.setStringIfNotEmpty(Settings.KEYS.CONNECTION_READ_TIMEOUT, readTimeout); + settings.setStringIfNotEmpty(Settings.KEYS.HINTS_FILE, hintsFile); + settings.setFloat(Settings.KEYS.JUNIT_FAIL_ON_CVSS, junitFailOnCVSS); + settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_JAR_ENABLED, jarAnalyzerEnabled); + settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_NUSPEC_ENABLED, nuspecAnalyzerEnabled); + settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_NUGETCONF_ENABLED, nugetconfAnalyzerEnabled); + settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_LIBMAN_ENABLED, libmanAnalyzerEnabled); + settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_CENTRAL_ENABLED, centralAnalyzerEnabled); + settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_CENTRAL_USE_CACHE, centralAnalyzerUseCache); + settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_ARTIFACTORY_ENABLED, artifactoryAnalyzerEnabled); + settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_NEXUS_ENABLED, nexusAnalyzerEnabled); + settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_ASSEMBLY_ENABLED, assemblyAnalyzerEnabled); + settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_MSBUILD_PROJECT_ENABLED, msbuildAnalyzerEnabled); + settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_ARCHIVE_ENABLED, archiveAnalyzerEnabled); + settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_KNOWN_EXPLOITED_ENABLED, knownExploitedEnabled); + settings.setStringIfNotEmpty(Settings.KEYS.KEV_URL, knownExploitedUrl); + settings.setStringIfNotEmpty(Settings.KEYS.ADDITIONAL_ZIP_EXTENSIONS, zipExtensions); + settings.setStringIfNotEmpty(Settings.KEYS.ANALYZER_ASSEMBLY_DOTNET_PATH, pathToCore); + settings.setStringIfNotEmpty(Settings.KEYS.ANALYZER_NEXUS_URL, nexusUrl); + configureServerCredentials(nexusServerId, Settings.KEYS.ANALYZER_NEXUS_USER, Settings.KEYS.ANALYZER_NEXUS_PASSWORD); + settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_NEXUS_USES_PROXY, nexusUsesProxy); + settings.setStringIfNotNull(Settings.KEYS.ANALYZER_ARTIFACTORY_URL, artifactoryAnalyzerUrl); + settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_ARTIFACTORY_USES_PROXY, artifactoryAnalyzerUseProxy); + settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_ARTIFACTORY_PARALLEL_ANALYSIS, artifactoryAnalyzerParallelAnalysis); + if (Boolean.TRUE.equals(artifactoryAnalyzerEnabled)) { + if (artifactoryAnalyzerServerId != null) { + configureServerCredentials(artifactoryAnalyzerServerId, Settings.KEYS.ANALYZER_ARTIFACTORY_API_USERNAME, Settings.KEYS.ANALYZER_ARTIFACTORY_API_TOKEN); } else { - settings.setStringIfNotNull(Settings.KEYS.ANALYZER_ARTIFACTORY_API_USERNAME, artifactoryAnalyzerUsername); - settings.setStringIfNotNull(Settings.KEYS.ANALYZER_ARTIFACTORY_API_TOKEN, artifactoryAnalyzerApiToken); + settings.setStringIfNotNull(Settings.KEYS.ANALYZER_ARTIFACTORY_API_USERNAME, artifactoryAnalyzerUsername); + settings.setStringIfNotNull(Settings.KEYS.ANALYZER_ARTIFACTORY_API_TOKEN, artifactoryAnalyzerApiToken); } - settings.setStringIfNotNull(Settings.KEYS.ANALYZER_ARTIFACTORY_BEARER_TOKEN, artifactoryAnalyzerBearerToken); + settings.setStringIfNotNull(Settings.KEYS.ANALYZER_ARTIFACTORY_BEARER_TOKEN, artifactoryAnalyzerBearerToken); } - settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_PYTHON_DISTRIBUTION_ENABLED, pyDistributionAnalyzerEnabled); - settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_PYTHON_PACKAGE_ENABLED, pyPackageAnalyzerEnabled); - settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_RUBY_GEMSPEC_ENABLED, rubygemsAnalyzerEnabled); - settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_OPENSSL_ENABLED, opensslAnalyzerEnabled); - settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_CMAKE_ENABLED, cmakeAnalyzerEnabled); - settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_AUTOCONF_ENABLED, autoconfAnalyzerEnabled); - settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_MAVEN_INSTALL_ENABLED, mavenInstallAnalyzerEnabled); - settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_PIP_ENABLED, pipAnalyzerEnabled); - settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_PIPFILE_ENABLED, pipfileAnalyzerEnabled); - settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_POETRY_ENABLED, poetryAnalyzerEnabled); - settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_COMPOSER_LOCK_ENABLED, composerAnalyzerEnabled); - settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_CPANFILE_ENABLED, cpanfileAnalyzerEnabled); - settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_NODE_PACKAGE_ENABLED, nodeAnalyzerEnabled); - settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_NODE_AUDIT_ENABLED, nodeAuditAnalyzerEnabled); - settings.setStringIfNotNull(Settings.KEYS.ANALYZER_NODE_AUDIT_URL, nodeAuditAnalyzerUrl); - settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_NODE_AUDIT_USE_CACHE, nodeAuditAnalyzerUseCache); - settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_NODE_PACKAGE_SKIPDEV, nodePackageSkipDevDependencies); - settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_NODE_AUDIT_SKIPDEV, nodeAuditSkipDevDependencies); - settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_YARN_AUDIT_ENABLED, yarnAuditAnalyzerEnabled); - settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_PNPM_AUDIT_ENABLED, pnpmAuditAnalyzerEnabled); - settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_RETIREJS_ENABLED, retireJsAnalyzerEnabled); - settings.setStringIfNotNull(Settings.KEYS.ANALYZER_RETIREJS_REPO_JS_URL, retireJsUrl); - settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_RETIREJS_FORCEUPDATE, retireJsForceUpdate); - if (retireJsUser == null && retireJsPassword == null && retireJsUrlServerId != null) { - configureServerCredentials(retireJsUrlServerId, Settings.KEYS.ANALYZER_RETIREJS_REPO_JS_USER, Settings.KEYS.ANALYZER_RETIREJS_REPO_JS_PASSWORD); + settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_PYTHON_DISTRIBUTION_ENABLED, pyDistributionAnalyzerEnabled); + settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_PYTHON_PACKAGE_ENABLED, pyPackageAnalyzerEnabled); + settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_RUBY_GEMSPEC_ENABLED, rubygemsAnalyzerEnabled); + settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_OPENSSL_ENABLED, opensslAnalyzerEnabled); + settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_CMAKE_ENABLED, cmakeAnalyzerEnabled); + settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_AUTOCONF_ENABLED, autoconfAnalyzerEnabled); + settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_MAVEN_INSTALL_ENABLED, mavenInstallAnalyzerEnabled); + settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_PIP_ENABLED, pipAnalyzerEnabled); + settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_PIPFILE_ENABLED, pipfileAnalyzerEnabled); + settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_POETRY_ENABLED, poetryAnalyzerEnabled); + settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_COMPOSER_LOCK_ENABLED, composerAnalyzerEnabled); + settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_CPANFILE_ENABLED, cpanfileAnalyzerEnabled); + settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_NODE_PACKAGE_ENABLED, nodeAnalyzerEnabled); + settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_NODE_AUDIT_ENABLED, nodeAuditAnalyzerEnabled); + settings.setStringIfNotNull(Settings.KEYS.ANALYZER_NODE_AUDIT_URL, nodeAuditAnalyzerUrl); + settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_NODE_AUDIT_USE_CACHE, nodeAuditAnalyzerUseCache); + settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_NODE_PACKAGE_SKIPDEV, nodePackageSkipDevDependencies); + settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_NODE_AUDIT_SKIPDEV, nodeAuditSkipDevDependencies); + settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_YARN_AUDIT_ENABLED, yarnAuditAnalyzerEnabled); + settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_PNPM_AUDIT_ENABLED, pnpmAuditAnalyzerEnabled); + settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_RETIREJS_ENABLED, retireJsAnalyzerEnabled); + settings.setStringIfNotNull(Settings.KEYS.ANALYZER_RETIREJS_REPO_JS_URL, retireJsUrl); + settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_RETIREJS_FORCEUPDATE, retireJsForceUpdate); + if (retireJsUser == null && retireJsPassword == null && retireJsUrlServerId != null) { + configureServerCredentials(retireJsUrlServerId, Settings.KEYS.ANALYZER_RETIREJS_REPO_JS_USER, Settings.KEYS.ANALYZER_RETIREJS_REPO_JS_PASSWORD); } else { - settings.setStringIfNotEmpty(Settings.KEYS.ANALYZER_RETIREJS_REPO_JS_USER, retireJsUser); - settings.setStringIfNotEmpty(Settings.KEYS.ANALYZER_RETIREJS_REPO_JS_PASSWORD, retireJsPassword); + settings.setStringIfNotEmpty(Settings.KEYS.ANALYZER_RETIREJS_REPO_JS_USER, retireJsUser); + settings.setStringIfNotEmpty(Settings.KEYS.ANALYZER_RETIREJS_REPO_JS_PASSWORD, retireJsPassword); } - settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_MIX_AUDIT_ENABLED, mixAuditAnalyzerEnabled); - settings.setStringIfNotNull(Settings.KEYS.ANALYZER_MIX_AUDIT_PATH, mixAuditPath); - settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_BUNDLE_AUDIT_ENABLED, bundleAuditAnalyzerEnabled); - settings.setStringIfNotNull(Settings.KEYS.ANALYZER_BUNDLE_AUDIT_PATH, bundleAuditPath); - settings.setStringIfNotNull(Settings.KEYS.ANALYZER_BUNDLE_AUDIT_WORKING_DIRECTORY, bundleAuditWorkingDirectory); - settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_COCOAPODS_ENABLED, cocoapodsAnalyzerEnabled); - settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_SWIFT_PACKAGE_MANAGER_ENABLED, swiftPackageManagerAnalyzerEnabled); - settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_SWIFT_PACKAGE_RESOLVED_ENABLED, swiftPackageResolvedAnalyzerEnabled); - settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_OSSINDEX_ENABLED, ossindexAnalyzerEnabled); - settings.setStringIfNotEmpty(Settings.KEYS.ANALYZER_OSSINDEX_URL, ossindexAnalyzerUrl); - configureServerCredentials(ossIndexServerId, Settings.KEYS.ANALYZER_OSSINDEX_USER, Settings.KEYS.ANALYZER_OSSINDEX_PASSWORD); - settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_OSSINDEX_USE_CACHE, ossindexAnalyzerUseCache); - settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_OSSINDEX_WARN_ONLY_ON_REMOTE_ERRORS, ossIndexWarnOnlyOnRemoteErrors); - if (retirejs != null) { - settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_RETIREJS_FILTER_NON_VULNERABLE, retirejs.getFilterNonVulnerable()); - settings.setArrayIfNotEmpty(Settings.KEYS.ANALYZER_RETIREJS_FILTERS, retirejs.getFilters()); + settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_MIX_AUDIT_ENABLED, mixAuditAnalyzerEnabled); + settings.setStringIfNotNull(Settings.KEYS.ANALYZER_MIX_AUDIT_PATH, mixAuditPath); + settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_BUNDLE_AUDIT_ENABLED, bundleAuditAnalyzerEnabled); + settings.setStringIfNotNull(Settings.KEYS.ANALYZER_BUNDLE_AUDIT_PATH, bundleAuditPath); + settings.setStringIfNotNull(Settings.KEYS.ANALYZER_BUNDLE_AUDIT_WORKING_DIRECTORY, bundleAuditWorkingDirectory); + settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_COCOAPODS_ENABLED, cocoapodsAnalyzerEnabled); + settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_SWIFT_PACKAGE_MANAGER_ENABLED, swiftPackageManagerAnalyzerEnabled); + settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_SWIFT_PACKAGE_RESOLVED_ENABLED, swiftPackageResolvedAnalyzerEnabled); + settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_OSSINDEX_ENABLED, ossindexAnalyzerEnabled); + settings.setStringIfNotEmpty(Settings.KEYS.ANALYZER_OSSINDEX_URL, ossindexAnalyzerUrl); + configureServerCredentials(ossIndexServerId, Settings.KEYS.ANALYZER_OSSINDEX_USER, Settings.KEYS.ANALYZER_OSSINDEX_PASSWORD); + settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_OSSINDEX_USE_CACHE, ossindexAnalyzerUseCache); + settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_OSSINDEX_WARN_ONLY_ON_REMOTE_ERRORS, ossIndexWarnOnlyOnRemoteErrors); + if (retirejs != null) { + settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_RETIREJS_FILTER_NON_VULNERABLE, retirejs.getFilterNonVulnerable()); + settings.setArrayIfNotEmpty(Settings.KEYS.ANALYZER_RETIREJS_FILTERS, retirejs.getFilters()); } //Database configuration - settings.setStringIfNotEmpty(Settings.KEYS.DB_DRIVER_NAME, databaseDriverName); - settings.setStringIfNotEmpty(Settings.KEYS.DB_DRIVER_PATH, databaseDriverPath); - settings.setStringIfNotEmpty(Settings.KEYS.DB_CONNECTION_STRING, connectionString); - if (databaseUser == null && databasePassword == null && serverId != null) { - configureServerCredentials(serverId, Settings.KEYS.DB_USER, Settings.KEYS.DB_PASSWORD); + settings.setStringIfNotEmpty(Settings.KEYS.DB_DRIVER_NAME, databaseDriverName); + settings.setStringIfNotEmpty(Settings.KEYS.DB_DRIVER_PATH, databaseDriverPath); + settings.setStringIfNotEmpty(Settings.KEYS.DB_CONNECTION_STRING, connectionString); + if (databaseUser == null && databasePassword == null && serverId != null) { + configureServerCredentials(serverId, Settings.KEYS.DB_USER, Settings.KEYS.DB_PASSWORD); } else { - settings.setStringIfNotEmpty(Settings.KEYS.DB_USER, databaseUser); - settings.setStringIfNotEmpty(Settings.KEYS.DB_PASSWORD, databasePassword); + settings.setStringIfNotEmpty(Settings.KEYS.DB_USER, databaseUser); + settings.setStringIfNotEmpty(Settings.KEYS.DB_PASSWORD, databasePassword); } - settings.setStringIfNotEmpty(Settings.KEYS.DATA_DIRECTORY, dataDirectory); - settings.setStringIfNotEmpty(Settings.KEYS.DB_FILE_NAME, dbFilename); - settings.setIntIfNotNull(Settings.KEYS.NVD_API_DELAY, nvdApiDelay); - settings.setStringIfNotEmpty(Settings.KEYS.NVD_API_DATAFEED_URL, nvdDatafeedUrl); - settings.setIntIfNotNull(Settings.KEYS.NVD_API_VALID_FOR_HOURS, nvdValidForHours); - settings.setIntIfNotNull(Settings.KEYS.NVD_API_MAX_RETRY_COUNT, nvdMaxRetryCount); - if (nvdApiKey == null && nvdApiServerId != null) { - configureServerCredentialsApiKey(nvdApiServerId, Settings.KEYS.NVD_API_KEY); + settings.setStringIfNotEmpty(Settings.KEYS.DATA_DIRECTORY, dataDirectory); + settings.setStringIfNotEmpty(Settings.KEYS.DB_FILE_NAME, dbFilename); + settings.setStringIfNotNull(Settings.KEYS.NVD_API_ENDPOINT, nvdApiEndpoint); + settings.setIntIfNotNull(Settings.KEYS.NVD_API_DELAY, nvdApiDelay); + settings.setStringIfNotEmpty(Settings.KEYS.NVD_API_DATAFEED_URL, nvdDatafeedUrl); + settings.setIntIfNotNull(Settings.KEYS.NVD_API_VALID_FOR_HOURS, nvdValidForHours); + settings.setIntIfNotNull(Settings.KEYS.NVD_API_MAX_RETRY_COUNT, nvdMaxRetryCount); + if (nvdApiKey == null && nvdApiServerId != null) { + configureServerCredentialsApiKey(nvdApiServerId, Settings.KEYS.NVD_API_KEY); } else { - settings.setStringIfNotEmpty(Settings.KEYS.NVD_API_KEY, nvdApiKey); + settings.setStringIfNotEmpty(Settings.KEYS.NVD_API_KEY, nvdApiKey); } - if (nvdUser == null && nvdPassword == null && nvdDatafeedServerId != null) { - configureServerCredentials(nvdDatafeedServerId, Settings.KEYS.NVD_API_DATAFEED_USER, Settings.KEYS.NVD_API_DATAFEED_PASSWORD); + if (nvdUser == null && nvdPassword == null && nvdDatafeedServerId != null) { + configureServerCredentials(nvdDatafeedServerId, Settings.KEYS.NVD_API_DATAFEED_USER, Settings.KEYS.NVD_API_DATAFEED_PASSWORD); } else { - settings.setStringIfNotEmpty(Settings.KEYS.NVD_API_DATAFEED_USER, nvdUser); - settings.setStringIfNotEmpty(Settings.KEYS.NVD_API_DATAFEED_PASSWORD, nvdPassword); + settings.setStringIfNotEmpty(Settings.KEYS.NVD_API_DATAFEED_USER, nvdUser); + settings.setStringIfNotEmpty(Settings.KEYS.NVD_API_DATAFEED_PASSWORD, nvdPassword); } - settings.setBooleanIfNotNull(Settings.KEYS.PRETTY_PRINT, prettyPrint); - artifactScopeExcluded = new ArtifactScopeExcluded(skipTestScope, skipProvidedScope, skipSystemScope, skipRuntimeScope); - artifactTypeExcluded = new ArtifactTypeExcluded(skipArtifactType); - if (suppressionFileUser == null && suppressionFilePassword == null && suppressionFileServerId != null) { - configureServerCredentials(suppressionFileServerId, Settings.KEYS.SUPPRESSION_FILE_USER, Settings.KEYS.SUPPRESSION_FILE_PASSWORD); + settings.setBooleanIfNotNull(Settings.KEYS.PRETTY_PRINT, prettyPrint); + artifactScopeExcluded = new ArtifactScopeExcluded(skipTestScope, skipProvidedScope, skipSystemScope, skipRuntimeScope); + artifactTypeExcluded = new ArtifactTypeExcluded(skipArtifactType); + if (suppressionFileUser == null && suppressionFilePassword == null && suppressionFileServerId != null) { + configureServerCredentials(suppressionFileServerId, Settings.KEYS.SUPPRESSION_FILE_USER, Settings.KEYS.SUPPRESSION_FILE_PASSWORD); } else { - settings.setStringIfNotEmpty(Settings.KEYS.SUPPRESSION_FILE_USER, suppressionFileUser); - settings.setStringIfNotEmpty(Settings.KEYS.SUPPRESSION_FILE_PASSWORD, suppressionFilePassword); + settings.setStringIfNotEmpty(Settings.KEYS.SUPPRESSION_FILE_USER, suppressionFileUser); + settings.setStringIfNotEmpty(Settings.KEYS.SUPPRESSION_FILE_PASSWORD, suppressionFilePassword); } - settings.setIntIfNotNull(Settings.KEYS.HOSTED_SUPPRESSIONS_VALID_FOR_HOURS, hostedSuppressionsValidForHours); - settings.setStringIfNotNull(Settings.KEYS.HOSTED_SUPPRESSIONS_URL, hostedSuppressionsUrl); - settings.setBooleanIfNotNull(Settings.KEYS.HOSTED_SUPPRESSIONS_FORCEUPDATE, hostedSuppressionsForceUpdate); - settings.setBooleanIfNotNull(Settings.KEYS.HOSTED_SUPPRESSIONS_ENABLED, hostedSuppressionsEnabled); - } + settings.setIntIfNotNull(Settings.KEYS.HOSTED_SUPPRESSIONS_VALID_FOR_HOURS, hostedSuppressionsValidForHours); + settings.setStringIfNotNull(Settings.KEYS.HOSTED_SUPPRESSIONS_URL, hostedSuppressionsUrl); + settings.setBooleanIfNotNull(Settings.KEYS.HOSTED_SUPPRESSIONS_FORCEUPDATE, hostedSuppressionsForceUpdate); + settings.setBooleanIfNotNull(Settings.KEYS.HOSTED_SUPPRESSIONS_ENABLED, hostedSuppressionsEnabled); + } //CSON: MethodLength /** @@ -2374,23 +2376,23 @@ * @param passwordSettingKey the property name for the password */ private void configureServerCredentials(String serverId, String userSettingKey, String passwordSettingKey) { - if (serverId != null) { - final Server server = settingsXml.getServer(serverId); - if (server != null) { - final String username = server.getUsername(); - String password = null; + if (serverId != null) { + final Server server = settingsXml.getServer(serverId); + if (server != null) { + final String username = server.getUsername(); + String password = null; try { - password = decryptPasswordFromSettings(server.getPassword()); - } catch (SecDispatcherException ex) { - password = handleSecDispatcherException("server", serverId, server.getPassword(), ex); - } - settings.setStringIfNotEmpty(userSettingKey, username); - settings.setStringIfNotEmpty(passwordSettingKey, password); - } else { - getLog().error(String.format("Server '%s' not found in the settings.xml file", serverId)); + password = decryptPasswordFromSettings(server.getPassword()); + } catch (SecDispatcherException ex) { + password = handleSecDispatcherException("server", serverId, server.getPassword(), ex); + } + settings.setStringIfNotEmpty(userSettingKey, username); + settings.setStringIfNotEmpty(passwordSettingKey, password); + } else { + getLog().error(String.format("Server '%s' not found in the settings.xml file", serverId)); } } - } + } /** * Retrieves the server credentials from the settings.xml, decrypts the @@ -2401,21 +2403,21 @@ * @param apiKeySetting the property name for the username */ private void configureServerCredentialsApiKey(String serverId, String apiKeySetting) { - if (serverId != null) { - final Server server = settingsXml.getServer(serverId); - if (server != null) { - String password = null; + if (serverId != null) { + final Server server = settingsXml.getServer(serverId); + if (server != null) { + String password = null; try { - password = decryptPasswordFromSettings(server.getPassword()); - } catch (SecDispatcherException ex) { - password = handleSecDispatcherException("server", serverId, server.getPassword(), ex); - } - settings.setStringIfNotEmpty(apiKeySetting, password); - } else { - getLog().error(String.format("Server '%s' not found in the settings.xml file", serverId)); + password = decryptPasswordFromSettings(server.getPassword()); + } catch (SecDispatcherException ex) { + password = handleSecDispatcherException("server", serverId, server.getPassword(), ex); + } + settings.setStringIfNotEmpty(apiKeySetting, password); + } else { + getLog().error(String.format("Server '%s' not found in the settings.xml file", serverId)); } } - } + } /** * Decrypts a password from the Maven settings if it needs to be decrypted. @@ -2434,11 +2436,11 @@ // org.sonatype.plexus.components.sec.dispatcher.SecDispatcherException: // java.io.FileNotFoundException: ~/.settings-security.xml (No such file or directory) // - if (securityDispatcher instanceof DefaultSecDispatcher) { - ((DefaultSecDispatcher) securityDispatcher).setConfigurationFile("~/.m2/settings-security.xml"); + if (securityDispatcher instanceof DefaultSecDispatcher) { + ((DefaultSecDispatcher) securityDispatcher).setConfigurationFile("~/.m2/settings-security.xml"); } - return securityDispatcher.decrypt(password); + return securityDispatcher.decrypt(password); } /** @@ -2456,24 +2458,24 @@ */ private String handleSecDispatcherException(String settingsElementName, String settingsElementId, String passwordValueFromSettings, SecDispatcherException ex) { - String password = passwordValueFromSettings; - if (ex.getCause() instanceof FileNotFoundException - || (ex.getCause() != null && ex.getCause().getCause() instanceof FileNotFoundException)) { + String password = passwordValueFromSettings; + if (ex.getCause() instanceof FileNotFoundException + || (ex.getCause() != null && ex.getCause().getCause() instanceof FileNotFoundException)) { //maybe its not encrypted? - final String tmp = passwordValueFromSettings; - if (tmp.startsWith("{") && tmp.endsWith("}")) { - getLog().error(String.format( + final String tmp = passwordValueFromSettings; + if (tmp.startsWith("{") && tmp.endsWith("}")) { + getLog().error(String.format( "Unable to decrypt the %s password for %s id '%s' in settings.xml%n\tCause: %s", - settingsElementName, settingsElementName, settingsElementId, ex.getMessage())); + settingsElementName, settingsElementName, settingsElementId, ex.getMessage())); } else { - password = tmp; + password = tmp; } - } else { - getLog().error(String.format( + } else { + getLog().error(String.format( "Unable to decrypt the %s password for %s id '%s' in settings.xml%n\tCause: %s", - settingsElementName, settingsElementName, settingsElementId, ex.getMessage())); + settingsElementName, settingsElementName, settingsElementId, ex.getMessage())); } - return password; + return password; } /** @@ -2483,27 +2485,34 @@ * @return an array of suppression file paths */ private String[] determineSuppressions() { - String[] suppressions = suppressionFiles; - if (suppressionFile != null) { - if (suppressions == null) { - suppressions = new String[]{suppressionFile}; + String[] suppressions = suppressionFiles; + if (suppressionFile != null) { + if (suppressions == null) { + suppressions = new String[]{suppressionFile}; } else { - suppressions = Arrays.copyOf(suppressions, suppressions.length + 1); - suppressions[suppressions.length - 1] = suppressionFile; + suppressions = Arrays.copyOf(suppressions, suppressions.length + 1); + suppressions[suppressions.length - 1] = suppressionFile; } } - return suppressions; + return suppressions; } /** * Hacky method of muting the noisy logging from JCS */ - private void muteJCS() { - System.setProperty("jcs.logSystem", "slf4j"); - if (!getLog().isDebugEnabled()) { - Slf4jAdapter.muteLogging(true); + private void muteNoisyLoggers() { + System.setProperty("jcs.logSystem", "slf4j"); + if (!getLog().isDebugEnabled()) { + Slf4jAdapter.muteLogging(true); + } + + final String[] noisyLoggers = { + "org.apache.hc" + }; + for (String loggerName : noisyLoggers) { + System.setProperty("org.slf4j.simpleLogger.log." + loggerName, "error"); } - } + } /** * Returns the maven proxy. @@ -2511,25 +2520,25 @@ * @return the maven proxy */ private Proxy getMavenProxy() { - if (mavenSettings != null) { - final List<Proxy> proxies = mavenSettings.getProxies(); - if (proxies != null && !proxies.isEmpty()) { - if (mavenSettingsProxyId != null) { - for (Proxy proxy : proxies) { - if (mavenSettingsProxyId.equalsIgnoreCase(proxy.getId())) { - return proxy; + if (mavenSettings != null) { + final List<Proxy> proxies = mavenSettings.getProxies(); + if (proxies != null && !proxies.isEmpty()) { + if (mavenSettingsProxyId != null) { + for (Proxy proxy : proxies) { + if (mavenSettingsProxyId.equalsIgnoreCase(proxy.getId())) { + return proxy; } - } + } } else { - for (Proxy aProxy : proxies) { - if (aProxy.isActive()) { - return aProxy; + for (Proxy aProxy : proxies) { + if (aProxy.isActive()) { + return aProxy; } - } + } } } } - return null; + return null; } /** @@ -2543,7 +2552,7 @@ * @return returns a reference to the current project */ protected MavenProject getProject() { - return project; + return project; } /** @@ -2552,7 +2561,7 @@ * @return the list of Maven Projects in this build */ protected List<MavenProject> getReactorProjects() { - return reactorProjects; + return reactorProjects; } /** @@ -2561,23 +2570,23 @@ * @return the selected report formats */ private Set<String> getFormats() { - final Set<String> invalid = new HashSet<>(); - final Set<String> selectedFormats = formats == null || formats.length == 0 ? new HashSet<>() : new HashSet<>(Arrays.asList(formats)); - selectedFormats.forEach((s) -> { + final Set<String> invalid = new HashSet<>(); + final Set<String> selectedFormats = formats == null || formats.length == 0 ? new HashSet<>() : new HashSet<>(Arrays.asList(formats)); + selectedFormats.forEach((s) -> { try { - ReportGenerator.Format.valueOf(s.toUpperCase()); - } catch (IllegalArgumentException ex) { - invalid.add(s); - } - }); - invalid.forEach((s) -> getLog().warn("Invalid report format specified: " + s)); - if (selectedFormats.contains("true")) { - selectedFormats.remove("true"); + ReportGenerator.Format.valueOf(s.toUpperCase()); + } catch (IllegalArgumentException ex) { + invalid.add(s); + } + }); + invalid.forEach((s) -> getLog().warn("Invalid report format specified: " + s)); + if (selectedFormats.contains("true")) { + selectedFormats.remove("true"); } - if (format != null && selectedFormats.isEmpty()) { - selectedFormats.add(format); + if (format != null && selectedFormats.isEmpty()) { + selectedFormats.add(format); } - return selectedFormats; + return selectedFormats; } /** @@ -2587,10 +2596,10 @@ * @return a list of artifact to exclude */ public List<String> getExcludes() { - if (excludes == null) { - excludes = new ArrayList<>(); + if (excludes == null) { + excludes = new ArrayList<>(); } - return excludes; + return excludes; } /** @@ -2599,7 +2608,7 @@ * @return the artifact scope excluded filter */ protected Filter<String> getArtifactScopeExcluded() { - return artifactScopeExcluded; + return artifactScopeExcluded; } /** @@ -2608,7 +2617,7 @@ * @return the configured settings */ protected Settings getSettings() { - return settings; + return settings; } //<editor-fold defaultstate="collapsed" desc="Methods to fail build or show summary"> @@ -2621,54 +2630,54 @@ * higher then the threshold set */ protected void checkForFailure(Dependency[] dependencies) throws MojoFailureException { - final StringBuilder ids = new StringBuilder(); - for (Dependency d : dependencies) { - boolean addName = true; - for (Vulnerability v : d.getVulnerabilities()) { - final Double cvssV2 = v.getCvssV2() != null && v.getCvssV2().getCvssData() != null && v.getCvssV2().getCvssData().getBaseScore() != null ? v.getCvssV2().getCvssData().getBaseScore() : -1; - final Double cvssV3 = v.getCvssV3() != null && v.getCvssV3().getCvssData() != null && v.getCvssV3().getCvssData().getBaseScore() != null ? v.getCvssV3().getCvssData().getBaseScore() : -1; - final Double unscoredCvss = v.getUnscoredSeverity() != null ? SeverityUtil.estimateCvssV2(v.getUnscoredSeverity()) : -1; - - if (failBuildOnAnyVulnerability || cvssV2 >= failBuildOnCVSS - || cvssV3 >= failBuildOnCVSS - || unscoredCvss >= failBuildOnCVSS + final StringBuilder ids = new StringBuilder(); + for (Dependency d : dependencies) { + boolean addName = true; + for (Vulnerability v : d.getVulnerabilities()) { + final Double cvssV2 = v.getCvssV2() != null && v.getCvssV2().getCvssData() != null && v.getCvssV2().getCvssData().getBaseScore() != null ? v.getCvssV2().getCvssData().getBaseScore() : -1; + final Double cvssV3 = v.getCvssV3() != null && v.getCvssV3().getCvssData() != null && v.getCvssV3().getCvssData().getBaseScore() != null ? v.getCvssV3().getCvssData().getBaseScore() : -1; + final Double unscoredCvss = v.getUnscoredSeverity() != null ? SeverityUtil.estimateCvssV2(v.getUnscoredSeverity()) : -1; + + if (failBuildOnAnyVulnerability || cvssV2 >= failBuildOnCVSS + || cvssV3 >= failBuildOnCVSS + || unscoredCvss >= failBuildOnCVSS //safety net to fail on any if for some reason the above misses on 0 || (failBuildOnCVSS <= 0.0)) { - String name = v.getName(); - if (cvssV3 >= 0.0) { - name += "(" + cvssV3 + ")"; - } else if (cvssV2 >= 0.0) { - name += "(" + cvssV2 + ")"; - } else if (unscoredCvss >= 0.0) { - name += "(" + unscoredCvss + ")"; + String name = v.getName(); + if (cvssV3 >= 0.0) { + name += "(" + cvssV3 + ")"; + } else if (cvssV2 >= 0.0) { + name += "(" + cvssV2 + ")"; + } else if (unscoredCvss >= 0.0) { + name += "(" + unscoredCvss + ")"; } - if (addName) { - addName = false; - ids.append(NEW_LINE).append(d.getFileName()).append(": "); - ids.append(name); + if (addName) { + addName = false; + ids.append(NEW_LINE).append(d.getFileName()).append(": "); + ids.append(name); } else { - ids.append(", ").append(name); + ids.append(", ").append(name); } } - } + } } - if (ids.length() > 0) { + if (ids.length() > 0) { final String msg; - if (showSummary) { - if (failBuildOnAnyVulnerability) { - msg = String.format("%n%nOne or more dependencies were identified with vulnerabilities: %n%s%n%n" + if (showSummary) { + if (failBuildOnAnyVulnerability) { + msg = String.format("%n%nOne or more dependencies were identified with vulnerabilities: %n%s%n%n" + "See the dependency-check report for more details.%n%n", ids); } else { - msg = String.format("%n%nOne or more dependencies were identified with vulnerabilities that have a CVSS score greater than or " - + "equal to '%.1f': %n%s%n%nSee the dependency-check report for more details.%n%n", failBuildOnCVSS, ids); + msg = String.format("%n%nOne or more dependencies were identified with vulnerabilities that have a CVSS score greater than or " + + "equal to '%.1f': %n%s%n%nSee the dependency-check report for more details.%n%n", failBuildOnCVSS, ids); } } else { - msg = String.format("%n%nOne or more dependencies were identified with vulnerabilities.%n%n" + msg = String.format("%n%nOne or more dependencies were identified with vulnerabilities.%n%n" + "See the dependency-check report for more details.%n%n"); } - throw new MojoFailureException(msg); + throw new MojoFailureException(msg); } - } + } /** * Generates a warning message listing a summary of dependencies and their @@ -2678,156 +2687,156 @@ * @param dependencies a list of dependency objects */ protected void showSummary(MavenProject mp, Dependency[] dependencies) { - if (showSummary) { - DependencyCheckScanAgent.showSummary(mp.getName(), dependencies); + if (showSummary) { + DependencyCheckScanAgent.showSummary(mp.getName(), dependencies); } - } + } //</editor-fold> //CSOFF: ParameterNumber private ExceptionCollection scanDependencyNode(DependencyNode dependencyNode, DependencyNode root, Engine engine, MavenProject project, List<ArtifactResult> allResolvedDeps, ProjectBuildingRequest buildingRequest, boolean aggregate, ExceptionCollection exceptionCollection) { - ExceptionCollection exCol = exceptionCollection; - if (artifactScopeExcluded.passes(dependencyNode.getArtifact().getScope()) - || artifactTypeExcluded.passes(dependencyNode.getArtifact().getType())) { - return exCol; + ExceptionCollection exCol = exceptionCollection; + if (artifactScopeExcluded.passes(dependencyNode.getArtifact().getScope()) + || artifactTypeExcluded.passes(dependencyNode.getArtifact().getType())) { + return exCol; } - boolean isResolved = false; - File artifactFile = null; - String artifactId = null; - String groupId = null; - String version = null; - List<ArtifactVersion> availableVersions = null; - if (org.apache.maven.artifact.Artifact.SCOPE_SYSTEM.equals(dependencyNode.getArtifact().getScope())) { - final Artifact a = dependencyNode.getArtifact(); - if (a.isResolved() && a.getFile().isFile()) { - artifactFile = a.getFile(); - isResolved = artifactFile.isFile(); - groupId = a.getGroupId(); - artifactId = a.getArtifactId(); - version = a.getVersion(); - availableVersions = a.getAvailableVersions(); + boolean isResolved = false; + File artifactFile = null; + String artifactId = null; + String groupId = null; + String version = null; + List<ArtifactVersion> availableVersions = null; + if (org.apache.maven.artifact.Artifact.SCOPE_SYSTEM.equals(dependencyNode.getArtifact().getScope())) { + final Artifact a = dependencyNode.getArtifact(); + if (a.isResolved() && a.getFile().isFile()) { + artifactFile = a.getFile(); + isResolved = artifactFile.isFile(); + groupId = a.getGroupId(); + artifactId = a.getArtifactId(); + version = a.getVersion(); + availableVersions = a.getAvailableVersions(); } else { - for (org.apache.maven.model.Dependency d : project.getDependencies()) { - if (d.getSystemPath() != null && artifactsMatch(d, a)) { - artifactFile = new File(d.getSystemPath()); - isResolved = artifactFile.isFile(); - groupId = a.getGroupId(); - artifactId = a.getArtifactId(); - version = a.getVersion(); - availableVersions = a.getAvailableVersions(); - break; + for (org.apache.maven.model.Dependency d : project.getDependencies()) { + if (d.getSystemPath() != null && artifactsMatch(d, a)) { + artifactFile = new File(d.getSystemPath()); + isResolved = artifactFile.isFile(); + groupId = a.getGroupId(); + artifactId = a.getArtifactId(); + version = a.getVersion(); + availableVersions = a.getAvailableVersions(); + break; } - } + } } - Throwable ignored = null; - if (!isResolved) { + Throwable ignored = null; + if (!isResolved) { // Issue #4969 Tycho appears to add System-scoped libraries in reactor projects in unresolved state // so attempt to do a resolution for system-scoped too if still nothing found try { - tryResolutionOnce(project, allResolvedDeps, buildingRequest); - final Artifact result = findInAllDeps(allResolvedDeps, dependencyNode.getArtifact(), project); - isResolved = result.isResolved(); - artifactFile = result.getFile(); - groupId = result.getGroupId(); - artifactId = result.getArtifactId(); - version = result.getVersion(); - availableVersions = result.getAvailableVersions(); - } catch (DependencyNotFoundException | DependencyResolverException e) { - getLog().warn("Error performing last-resort System-scoped dependency resolution: " + e.getMessage()); - ignored = e; - } + tryResolutionOnce(project, allResolvedDeps, buildingRequest); + final Artifact result = findInAllDeps(allResolvedDeps, dependencyNode.getArtifact(), project); + isResolved = result.isResolved(); + artifactFile = result.getFile(); + groupId = result.getGroupId(); + artifactId = result.getArtifactId(); + version = result.getVersion(); + availableVersions = result.getAvailableVersions(); + } catch (DependencyNotFoundException | DependencyResolverException e) { + getLog().warn("Error performing last-resort System-scoped dependency resolution: " + e.getMessage()); + ignored = e; + } } - if (!isResolved) { - final StringBuilder message = new StringBuilder("Unable to resolve system scoped dependency: "); - if (artifactFile != null) { - message.append(dependencyNode.toNodeString()).append(" at path ").append(artifactFile); + if (!isResolved) { + final StringBuilder message = new StringBuilder("Unable to resolve system scoped dependency: "); + if (artifactFile != null) { + message.append(dependencyNode.toNodeString()).append(" at path ").append(artifactFile); } else { - message.append(dependencyNode.toNodeString()).append(" at path ").append(a.getFile()); + message.append(dependencyNode.toNodeString()).append(" at path ").append(a.getFile()); } - getLog().error(message); - if (exCol == null) { - exCol = new ExceptionCollection(); + getLog().error(message); + if (exCol == null) { + exCol = new ExceptionCollection(); } - final Exception thrown = new DependencyNotFoundException(message.toString()); - if (ignored != null) { - thrown.addSuppressed(ignored); + final Exception thrown = new DependencyNotFoundException(message.toString()); + if (ignored != null) { + thrown.addSuppressed(ignored); } - exCol.addException(thrown); + exCol.addException(thrown); } - } else { - final Artifact dependencyArtifact = dependencyNode.getArtifact(); + } else { + final Artifact dependencyArtifact = dependencyNode.getArtifact(); final Artifact result; - if (dependencyArtifact.isResolved()) { + if (dependencyArtifact.isResolved()) { //All transitive dependencies, excluding reactor and dependencyManagement artifacts should //have been resolved by Maven prior to invoking the plugin - resolving the dependencies //manually is unnecessary, and does not work in some cases (issue-1751) - getLog().debug(String.format("Skipping artifact %s, already resolved", dependencyArtifact.getArtifactId())); - result = dependencyArtifact; + getLog().debug(String.format("Skipping artifact %s, already resolved", dependencyArtifact.getArtifactId())); + result = dependencyArtifact; } else { try { - tryResolutionOnce(project, allResolvedDeps, buildingRequest); - result = findInAllDeps(allResolvedDeps, dependencyNode.getArtifact(), project); - } catch (DependencyNotFoundException | DependencyResolverException ex) { - getLog().debug(String.format("Aggregate : %s", aggregate)); - boolean addException = true; + tryResolutionOnce(project, allResolvedDeps, buildingRequest); + result = findInAllDeps(allResolvedDeps, dependencyNode.getArtifact(), project); + } catch (DependencyNotFoundException | DependencyResolverException ex) { + getLog().debug(String.format("Aggregate : %s", aggregate)); + boolean addException = true; //CSOFF: EmptyBlock - if (!aggregate) { + if (!aggregate) { // do nothing - the exception is to be reported - } else if (addReactorDependency(engine, dependencyNode.getArtifact(), project)) { + } else if (addReactorDependency(engine, dependencyNode.getArtifact(), project)) { // successfully resolved as a reactor dependency - swallow the exception - addException = false; + addException = false; } - if (addException) { - if (exCol == null) { - exCol = new ExceptionCollection(); + if (addException) { + if (exCol == null) { + exCol = new ExceptionCollection(); } - exCol.addException(ex); + exCol.addException(ex); } - return exCol; - } + return exCol; + } } - if (aggregate && virtualSnapshotsFromReactor - && dependencyNode.getArtifact().isSnapshot() - && addSnapshotReactorDependency(engine, dependencyNode.getArtifact(), project)) { - return exCol; + if (aggregate && virtualSnapshotsFromReactor + && dependencyNode.getArtifact().isSnapshot() + && addSnapshotReactorDependency(engine, dependencyNode.getArtifact(), project)) { + return exCol; } - isResolved = result.isResolved(); - artifactFile = result.getFile(); - groupId = result.getGroupId(); - artifactId = result.getArtifactId(); - version = result.getVersion(); - availableVersions = result.getAvailableVersions(); + isResolved = result.isResolved(); + artifactFile = result.getFile(); + groupId = result.getGroupId(); + artifactId = result.getArtifactId(); + version = result.getVersion(); + availableVersions = result.getAvailableVersions(); } - if (isResolved && artifactFile != null) { - final List<Dependency> deps = engine.scan(artifactFile.getAbsoluteFile(), - createProjectReferenceName(project, dependencyNode)); - if (deps != null) { - processResolvedArtifact(artifactFile, deps, groupId, artifactId, version, root, project, availableVersions, dependencyNode); - } else if ("import".equals(dependencyNode.getArtifact().getScope())) { - final String msg = String.format("Skipping '%s:%s' in project %s as it uses an `import` scope", - dependencyNode.getArtifact().getId(), dependencyNode.getArtifact().getScope(), project.getName()); - getLog().debug(msg); - } else if ("pom".equals(dependencyNode.getArtifact().getType())) { - exCol = processPomArtifact(artifactFile, root, project, engine, exCol); + if (isResolved && artifactFile != null) { + final List<Dependency> deps = engine.scan(artifactFile.getAbsoluteFile(), + createProjectReferenceName(project, dependencyNode)); + if (deps != null) { + processResolvedArtifact(artifactFile, deps, groupId, artifactId, version, root, project, availableVersions, dependencyNode); + } else if ("import".equals(dependencyNode.getArtifact().getScope())) { + final String msg = String.format("Skipping '%s:%s' in project %s as it uses an `import` scope", + dependencyNode.getArtifact().getId(), dependencyNode.getArtifact().getScope(), project.getName()); + getLog().debug(msg); + } else if ("pom".equals(dependencyNode.getArtifact().getType())) { + exCol = processPomArtifact(artifactFile, root, project, engine, exCol); } else { - if (!scannedFiles.contains(artifactFile)) { - final String msg = String.format("No analyzer could be found or the artifact has been scanned twice for '%s:%s' in project %s", - dependencyNode.getArtifact().getId(), dependencyNode.getArtifact().getScope(), project.getName()); - getLog().warn(msg); + if (!scannedFiles.contains(artifactFile)) { + final String msg = String.format("No analyzer could be found or the artifact has been scanned twice for '%s:%s' in project %s", + dependencyNode.getArtifact().getId(), dependencyNode.getArtifact().getScope(), project.getName()); + getLog().warn(msg); } } - } else { - final String msg = String.format("Unable to resolve '%s' in project %s", - dependencyNode.getArtifact().getId(), project.getName()); - getLog().debug(msg); - if (exCol == null) { - exCol = new ExceptionCollection(); + } else { + final String msg = String.format("Unable to resolve '%s' in project %s", + dependencyNode.getArtifact().getId(), project.getName()); + getLog().debug(msg); + if (exCol == null) { + exCol = new ExceptionCollection(); } } - return exCol; + return exCol; } /** @@ -2850,25 +2859,25 @@ * other than an Eclipse Aether DependencyResolutionException */ private void tryResolutionOnce(MavenProject project, List<ArtifactResult> allResolvedDeps, ProjectBuildingRequest buildingRequest) throws DependencyResolverException { - if (allResolvedDeps.isEmpty()) { // no (partially successful) resolution attempt done + if (allResolvedDeps.isEmpty()) { // no (partially successful) resolution attempt done try { - final List<org.apache.maven.model.Dependency> dependencies = project.getDependencies(); - final List<org.apache.maven.model.Dependency> managedDependencies = project - .getDependencyManagement() == null ? null : project.getDependencyManagement().getDependencies(); - final Iterable<ArtifactResult> allDeps = dependencyResolver - .resolveDependencies(buildingRequest, dependencies, managedDependencies, null); - allDeps.forEach(allResolvedDeps::add); - } catch (DependencyResolverException dre) { - if (dre.getCause() instanceof org.eclipse.aether.resolution.DependencyResolutionException) { - final List<ArtifactResult> successResults = Mshared998Util - .getResolutionResults((org.eclipse.aether.resolution.DependencyResolutionException) dre.getCause()); - allResolvedDeps.addAll(successResults); - } else { - throw dre; + final List<org.apache.maven.model.Dependency> dependencies = project.getDependencies(); + final List<org.apache.maven.model.Dependency> managedDependencies = project + .getDependencyManagement() == null ? null : project.getDependencyManagement().getDependencies(); + final Iterable<ArtifactResult> allDeps = dependencyResolver + .resolveDependencies(buildingRequest, dependencies, managedDependencies, null); + allDeps.forEach(allResolvedDeps::add); + } catch (DependencyResolverException dre) { + if (dre.getCause() instanceof org.eclipse.aether.resolution.DependencyResolutionException) { + final List<ArtifactResult> successResults = Mshared998Util + .getResolutionResults((org.eclipse.aether.resolution.DependencyResolutionException) dre.getCause()); + allResolvedDeps.addAll(successResults); + } else { + throw dre; } - } + } } - } + } //CSON: ParameterNumber //CSOFF: ParameterNumber @@ -2876,77 +2885,77 @@ String groupId, String artifactId, String version, DependencyNode root, MavenProject project1, List<ArtifactVersion> availableVersions, DependencyNode dependencyNode) { - scannedFiles.add(artifactFile); - Dependency d = null; - if (deps.size() == 1) { - d = deps.get(0); + scannedFiles.add(artifactFile); + Dependency d = null; + if (deps.size() == 1) { + d = deps.get(0); } else { - for (Dependency possible : deps) { - if (artifactFile.getAbsoluteFile().equals(possible.getActualFile())) { - d = possible; - break; + for (Dependency possible : deps) { + if (artifactFile.getAbsoluteFile().equals(possible.getActualFile())) { + d = possible; + break; } - } - for (Dependency dep : deps) { - if (d != null && d != dep) { - final String includedBy = buildReference(groupId, artifactId, version); - dep.addIncludedBy(includedBy); + } + for (Dependency dep : deps) { + if (d != null && d != dep) { + final String includedBy = buildReference(groupId, artifactId, version); + dep.addIncludedBy(includedBy); } - } + } } - if (d != null) { - final MavenArtifact ma = new MavenArtifact(groupId, artifactId, version); - d.addAsEvidence("pom", ma, Confidence.HIGHEST); - if (root != null) { - final String includedby = buildReference( - root.getArtifact().getGroupId(), - root.getArtifact().getArtifactId(), - root.getArtifact().getVersion()); - d.addIncludedBy(includedby); - } else { - final String includedby = buildReference(project1.getGroupId(), project1.getArtifactId(), project1.getVersion()); - d.addIncludedBy(includedby); + if (d != null) { + final MavenArtifact ma = new MavenArtifact(groupId, artifactId, version); + d.addAsEvidence("pom", ma, Confidence.HIGHEST); + if (root != null) { + final String includedby = buildReference( + root.getArtifact().getGroupId(), + root.getArtifact().getArtifactId(), + root.getArtifact().getVersion()); + d.addIncludedBy(includedby); + } else { + final String includedby = buildReference(project1.getGroupId(), project1.getArtifactId(), project1.getVersion()); + d.addIncludedBy(includedby); } - if (availableVersions != null) { - for (ArtifactVersion av : availableVersions) { - d.addAvailableVersion(av.toString()); - } + if (availableVersions != null) { + for (ArtifactVersion av : availableVersions) { + d.addAvailableVersion(av.toString()); + } } - getLog().debug(String.format("Adding project reference %s on dependency %s", project1.getName(), d.getDisplayFileName())); - } else if (getLog().isDebugEnabled()) { - final String msg = String.format("More than 1 dependency was identified in first pass scan of '%s' in project %s", dependencyNode.getArtifact().getId(), project1.getName()); - getLog().debug(msg); + getLog().debug(String.format("Adding project reference %s on dependency %s", project1.getName(), d.getDisplayFileName())); + } else if (getLog().isDebugEnabled()) { + final String msg = String.format("More than 1 dependency was identified in first pass scan of '%s' in project %s", dependencyNode.getArtifact().getId(), project1.getName()); + getLog().debug(msg); } - } + } //CSON: ParameterNumber private ExceptionCollection processPomArtifact(File artifactFile, DependencyNode root, MavenProject project1, Engine engine, ExceptionCollection exCollection) { - ExceptionCollection exCol = exCollection; + ExceptionCollection exCol = exCollection; try { - final Dependency d = new Dependency(artifactFile.getAbsoluteFile()); - final Model pom = PomUtils.readPom(artifactFile.getAbsoluteFile()); - JarAnalyzer.setPomEvidence(d, pom, null, true); - if (root != null) { - final String includedby = buildReference( - root.getArtifact().getGroupId(), - root.getArtifact().getArtifactId(), - root.getArtifact().getVersion()); - d.addIncludedBy(includedby); - } else { - final String includedby = buildReference(project1.getGroupId(), project1.getArtifactId(), project1.getVersion()); - d.addIncludedBy(includedby); + final Dependency d = new Dependency(artifactFile.getAbsoluteFile()); + final Model pom = PomUtils.readPom(artifactFile.getAbsoluteFile()); + JarAnalyzer.setPomEvidence(d, pom, null, true); + if (root != null) { + final String includedby = buildReference( + root.getArtifact().getGroupId(), + root.getArtifact().getArtifactId(), + root.getArtifact().getVersion()); + d.addIncludedBy(includedby); + } else { + final String includedby = buildReference(project1.getGroupId(), project1.getArtifactId(), project1.getVersion()); + d.addIncludedBy(includedby); } - engine.addDependency(d); - } catch (AnalysisException ex) { - if (exCol == null) { - exCol = new ExceptionCollection(); + engine.addDependency(d); + } catch (AnalysisException ex) { + if (exCol == null) { + exCol = new ExceptionCollection(); } - exCol.addException(ex); - getLog().debug("Error reading pom " + artifactFile.getAbsoluteFile(), ex); - } - return exCol; + exCol.addException(ex); + getLog().debug("Error reading pom " + artifactFile.getAbsoluteFile(), ex); + } + return exCol; } } diff --git a/dependency-check-maven/jacoco/org.owasp.dependencycheck.maven/index.html b/dependency-check-maven/jacoco/org.owasp.dependencycheck.maven/index.html index 0578fd76eca..72936262441 100644 --- a/dependency-check-maven/jacoco/org.owasp.dependencycheck.maven/index.html +++ b/dependency-check-maven/jacoco/org.owasp.dependencycheck.maven/index.html @@ -1 +1 @@ -org.owasp.dependencycheck.maven

    org.owasp.dependencycheck.maven

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethodsMissedClasses
    Total2,351 of 5,65758%386 of 64239%2994445001,18144123213
    BaseDependencyCheckMojo2,0182,66756%32717134%229313418957176401
    AggregateMojo16335868%365660%3159309851301
    UpdateMojo6823%712%91120275701
    PurgeMojo0%n/a7711117711
    ProxyConfig0%n/a7711117711
    ArtifactScopeExcluded4772%101254%7133170201
    CheckMojo4481%50%383151601
    FilteringDependencyTransitiveNodeVisitor77%50%474142501
    CollectingRootDependencyGraphVisitor62100%75%160130401
    Mshared998Util100%75%13070101
    ArtifactTypeExcluded100%6100%05040201
    Mshared998Util.M31ArtifactResult100%n/a02040201
    Retirejs100%n/a03030301
    \ No newline at end of file +org.owasp.dependencycheck.maven

    org.owasp.dependencycheck.maven

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethodsMissedClasses
    Total2,351 of 5,69758%386 of 64440%2994455001,18544123213
    BaseDependencyCheckMojo2,0182,70757%32717334%229314418961176401
    AggregateMojo16335868%365660%3159309851301
    UpdateMojo6823%712%91120275701
    PurgeMojo0%n/a7711117711
    ProxyConfig0%n/a7711117711
    ArtifactScopeExcluded4772%101254%7133170201
    CheckMojo4481%50%383151601
    FilteringDependencyTransitiveNodeVisitor77%50%474142501
    CollectingRootDependencyGraphVisitor62100%75%160130401
    Mshared998Util100%75%13070101
    ArtifactTypeExcluded100%6100%05040201
    Mshared998Util.M31ArtifactResult100%n/a02040201
    Retirejs100%n/a03030301
    \ No newline at end of file diff --git a/dependency-check-maven/jacoco/org.owasp.dependencycheck.maven/index.source.html b/dependency-check-maven/jacoco/org.owasp.dependencycheck.maven/index.source.html index da928714fd6..05bc9b91528 100644 --- a/dependency-check-maven/jacoco/org.owasp.dependencycheck.maven/index.source.html +++ b/dependency-check-maven/jacoco/org.owasp.dependencycheck.maven/index.source.html @@ -1 +1 @@ -org.owasp.dependencycheck.maven

    org.owasp.dependencycheck.maven

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethodsMissedClasses
    Total2,351 of 5,65758%386 of 64239%2994445001,18144123213
    BaseDependencyCheckMojo.java2,0182,66756%32717134%229313418957176401
    AggregateMojo.java16335868%365660%3159309851301
    UpdateMojo.java6823%712%91120275701
    PurgeMojo.java0%n/a7711117711
    ProxyConfig.java0%n/a7711117711
    ArtifactScopeExcluded.java4772%101254%7133170201
    CheckMojo.java4481%50%383151601
    FilteringDependencyTransitiveNodeVisitor.java77%50%474142501
    CollectingRootDependencyGraphVisitor.java62100%75%160130401
    Mshared998Util.java41100%75%150110302
    ArtifactTypeExcluded.java100%6100%05040201
    Retirejs.java100%n/a03030301
    \ No newline at end of file +org.owasp.dependencycheck.maven

    org.owasp.dependencycheck.maven

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethodsMissedClasses
    Total2,351 of 5,69758%386 of 64440%2994455001,18544123213
    BaseDependencyCheckMojo.java2,0182,70757%32717334%229314418961176401
    AggregateMojo.java16335868%365660%3159309851301
    UpdateMojo.java6823%712%91120275701
    PurgeMojo.java0%n/a7711117711
    ProxyConfig.java0%n/a7711117711
    ArtifactScopeExcluded.java4772%101254%7133170201
    CheckMojo.java4481%50%383151601
    FilteringDependencyTransitiveNodeVisitor.java77%50%474142501
    CollectingRootDependencyGraphVisitor.java62100%75%160130401
    Mshared998Util.java41100%75%150110302
    ArtifactTypeExcluded.java100%6100%05040201
    Retirejs.java100%n/a03030301
    \ No newline at end of file diff --git a/dependency-check-maven/licenses.html b/dependency-check-maven/licenses.html index e01bd4f79b9..03af5765f58 100644 --- a/dependency-check-maven/licenses.html +++ b/dependency-check-maven/licenses.html @@ -1,13 +1,13 @@ - + dependency-check-maven – Project Licenses @@ -41,8 +41,8 @@
  • documentation/
  • dependency-check/
  • Project Licenses
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • diff --git a/dependency-check-maven/plugin-info.html b/dependency-check-maven/plugin-info.html index 422b2fd7fe9..51ebc4a3cc6 100644 --- a/dependency-check-maven/plugin-info.html +++ b/dependency-check-maven/plugin-info.html @@ -1,13 +1,13 @@ - + dependency-check-maven – Plugin Documentation @@ -41,8 +41,8 @@
  • documentation/
  • dependency-check/
  • Plugin Documentation
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • @@ -142,7 +142,7 @@

    Usage

    <plugin> <groupId>org.owasp</groupId> <artifactId>dependency-check-maven</artifactId> - <version>9.0.4</version> + <version>9.0.5</version> </plugin> ... </plugins> @@ -163,7 +163,7 @@

    Usage

    <plugin> <groupId>org.owasp</groupId> <artifactId>dependency-check-maven</artifactId> - <version>9.0.4</version> + <version>9.0.5</version> </plugin> ... </plugins> diff --git a/dependency-check-maven/plugin-updates-report.html b/dependency-check-maven/plugin-updates-report.html index 7d0a11274ae..1dc2d58a066 100644 --- a/dependency-check-maven/plugin-updates-report.html +++ b/dependency-check-maven/plugin-updates-report.html @@ -1,13 +1,13 @@ - + dependency-check-maven – Plugin Updates Report @@ -41,8 +41,8 @@
  • documentation/
  • dependency-check/
  • Plugin Updates Report
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • @@ -99,7 +99,7 @@

    Overview

    # of plugins using the latest version available -28 +26 # of plugins where the next version available is smaller than an incremental version update @@ -107,7 +107,7 @@

    Overview

    # of plugins where the next version available is an incremental version update -1 +3 # of plugins where the next version available is a minor version update @@ -223,12 +223,12 @@

    Plugin Management

    - + org.apache.maven.plugins maven-failsafe-plugin -3.2.2 - +3.2.2 +3.2.3 @@ -323,12 +323,12 @@

    Plugin Management

    - + org.apache.maven.plugins maven-surefire-plugin -3.2.2 - +3.2.2 +3.2.3 @@ -656,7 +656,7 @@

    Plugin o - + @@ -665,7 +665,10 @@

    Plugin o

    -
    Status No newer versions available.
     There is at least one newer incremental version available. Incremental updates are typically passive.
    Group Id org.apache.maven.plugins
    maven-failsafe-plugin
    Current Version3.2.2
    +3.2.2 + +Newer versions +3.2.3 Latest Incremental

    Plugin org.apache.maven.plugins:maven-gpg-plugin

    @@ -933,7 +936,7 @@

    Plugin o

    - + @@ -942,7 +945,10 @@

    Plugin o

    -
    Status No newer versions available.
     There is at least one newer incremental version available. Incremental updates are typically passive.
    Group Id org.apache.maven.plugins
    maven-surefire-plugin
    Current Version3.2.2
    +3.2.2 + +Newer versions +3.2.3 Latest Incremental

    Plugin org.codehaus.gmavenplus:gmavenplus-plugin

    diff --git a/dependency-check-maven/project-info.html b/dependency-check-maven/project-info.html index ac1e6f97eac..5111a56da89 100644 --- a/dependency-check-maven/project-info.html +++ b/dependency-check-maven/project-info.html @@ -1,13 +1,13 @@ - + dependency-check-maven – Project Information @@ -41,8 +41,8 @@
  • documentation/
  • dependency-check/
  • Project Information
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • diff --git a/dependency-check-maven/project-reports.html b/dependency-check-maven/project-reports.html index a0d46ff9556..783a21d47c0 100644 --- a/dependency-check-maven/project-reports.html +++ b/dependency-check-maven/project-reports.html @@ -1,13 +1,13 @@ - + dependency-check-maven – Generated Reports @@ -41,8 +41,8 @@
  • documentation/
  • dependency-check/
  • Generated Reports
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • diff --git a/dependency-check-maven/purge-mojo.html b/dependency-check-maven/purge-mojo.html index 430a0f924a2..ee9806e6e0b 100644 --- a/dependency-check-maven/purge-mojo.html +++ b/dependency-check-maven/purge-mojo.html @@ -1,13 +1,13 @@ - + dependency-check-maven – dependency-check:purge @@ -41,8 +41,8 @@
  • documentation/
  • dependency-check/
  • dependency-check:purge
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • @@ -80,7 +80,7 @@

    dependency-check:purge

    Optional Parameters +
    + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -604,157 +609,157 @@

    Optional Parameters

    + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -1181,7 +1186,13 @@

    <nvdApiDelay>

    +
  • User Property: nvdApiDelay

  • +

    <nvdApiEndpoint>

    +
    The NVD API Endpoint; setting this is uncommon.
    +
      +
    • Type: java.lang.String
    • +
    • Required: report.plugin.goal.no
    • +
    • User Property: nvdApiEndpoint

    <nvdApiKey>

    The NVD API Key.
      diff --git a/dependency-check-maven/scm.html b/dependency-check-maven/scm.html index 19c404deb79..62874075dd5 100644 --- a/dependency-check-maven/scm.html +++ b/dependency-check-maven/scm.html @@ -1,13 +1,13 @@ - + dependency-check-maven – Source Code Management @@ -41,8 +41,8 @@
    • documentation/
    • dependency-check/
    • Source Code Management
    • -
    • | Last Published: 2023-12-08
    • -
    • Version: 9.0.4
    • +
    • | Last Published: 2023-12-13
    • +
    • Version: 9.0.5
    @@ -95,11 +95,11 @@

    Web Browser Access

    Anonymous Access

    The source can be checked out anonymously from Git with this command (See https://git-scm.com/docs/git-clone):

    -
    $ git clone --branch v9.0.4 https://github.com/jeremylong/DependencyCheck.git
    +
    $ git clone --branch v9.0.5 https://github.com/jeremylong/DependencyCheck.git

    Developer Access

    Only project developers can access the Git tree via this method (See https://git-scm.com/docs/git-clone).

    -
    $ git clone --branch v9.0.4 git@github.com:jeremylong/DependencyCheck.git
    +
    $ git clone --branch v9.0.5 git@github.com:jeremylong/DependencyCheck.git

    Access from Behind a Firewall

    Refer to the documentation of the SCM used for more information about access behind a firewall.

    diff --git a/dependency-check-maven/spotbugs.html b/dependency-check-maven/spotbugs.html index 0edf9f7acd3..b46380ee4c6 100644 --- a/dependency-check-maven/spotbugs.html +++ b/dependency-check-maven/spotbugs.html @@ -1,13 +1,13 @@ - + dependency-check-maven – SpotBugs Bug Detector Report @@ -41,8 +41,8 @@
  • documentation/
  • dependency-check/
  • SpotBugs Bug Detector Report
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • diff --git a/dependency-check-maven/summary.html b/dependency-check-maven/summary.html index 8f2dfb2783a..544f0e1315b 100644 --- a/dependency-check-maven/summary.html +++ b/dependency-check-maven/summary.html @@ -1,13 +1,13 @@ - + dependency-check-maven – Project Summary @@ -41,8 +41,8 @@
  • documentation/
  • dependency-check/
  • Project Summary
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • @@ -125,7 +125,7 @@

    Build Information

    - + diff --git a/dependency-check-maven/surefire-report.html b/dependency-check-maven/surefire-report.html index 74c61e2e475..4c6f3e4fcb4 100644 --- a/dependency-check-maven/surefire-report.html +++ b/dependency-check-maven/surefire-report.html @@ -1,13 +1,13 @@ - + dependency-check-maven – Surefire Report @@ -41,8 +41,8 @@
  • documentation/
  • dependency-check/
  • Surefire Report
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • @@ -125,7 +125,7 @@

    Summary

    -
    <nvdApiEndpoint>String-The NVD API Endpoint; setting this is uncommon.
    User Property: nvdApiEndpoint
    <nvdApiKey> String - The NVD API Key.
    User Property: nvdApiKey
    <nvdApiServerId> String - The server id in the settings.xml; used to retrieve encrypted API Key from the settings.xml for the NVD API Key. Note that the password is used as the API Key
    User Property: nvdApiServerId
    <nvdDatafeedServerId> String - The server id in the settings.xml; used to retrieve encrypted passwords from the settings.xml for the NVD Data Feed.
    User Property: nvdDatafeedServerId
    <nvdDatafeedUrl> String - The NVD API Data Feed URL.
    User Property: nvdDatafeedUrl
    <nvdMaxRetryCount> Integer - The maximum number of retry requests for a single call to the NVD API.
    User Property: nvdMaxRetryCount
    <nvdPassword> String - The password for basic auth to the NVD Data Feed.
    User Property: nvdPassword
    <nvdUser> String - The username for basic auth to the NVD Data Feed.
    User Property: nvdUser
    <nvdValidForHours> Integer - The number of hours to wait before checking for new updates from the NVD.
    User Property: nvdValidForHours
    <opensslAnalyzerEnabled> Boolean - Sets whether or not the openssl Analyzer should be used.
    User Property: opensslAnalyzerEnabled
    <ossindexAnalyzerEnabled> Boolean - Whether or not the Sonatype OSS Index analyzer is enabled.
    User Property: ossindexAnalyzerEnabled
    <ossindexAnalyzerUrl> String - URL of the Sonatype OSS Index service.
    User Property: ossindexAnalyzerUrl
    <ossindexAnalyzerUseCache> Boolean - Whether or not the Sonatype OSS Index analyzer should cache results.
    User Property: ossindexAnalyzerUseCache
    <ossIndexServerId> String - The id of a server defined in the settings.xml that configures the credentials (username and password) for a OSS Index service.
    User Property: ossIndexServerId
    <ossIndexWarnOnlyOnRemoteErrors> Boolean - Whether we should only warn about Sonatype OSS Index remote errors instead of failing the goal completely.
    User Property: ossIndexWarnOnlyOnRemoteErrors
    <pathToCore> String - The path to dotnet core.
    User Property: pathToCore
    <pathToGo> String - Sets the path to `go`.
    User Property: pathToGo
    <pathToPnpm> String - Sets the path to `pnpm`.
    User Property: pathToPnpm
    <pathToYarn> String - Sets the path to `yarn`.
    User Property: pathToYarn
    <pipAnalyzerEnabled> Boolean - Sets whether or not the pip Analyzer should be used.
    User Property: pipAnalyzerEnabled
    <pipfileAnalyzerEnabled> Boolean - Sets whether or not the pipfile Analyzer should be used.
    User Property: pipfileAnalyzerEnabled
    <pnpmAuditAnalyzerEnabled> Boolean - Sets whether or not the Pnpm Audit Analyzer should be used.
    User Property: pnpmAuditAnalyzerEnabled
    <poetryAnalyzerEnabled> Boolean - Sets whether or not the poetry Analyzer should be used.
    User Property: poetryAnalyzerEnabled
    <prettyPrint> Boolean - Whether or not the XML and JSON report formats should be pretty printed. The default is false.
    User Property: prettyPrint
    <proxy> ProxyConfig - The proxy configuration.
    <pyDistributionAnalyzerEnabled> Boolean - Sets whether the Python Distribution Analyzer will be used.
    User Property: pyDistributionAnalyzerEnabled
    <pyPackageAnalyzerEnabled> Boolean - Sets whether the Python Package Analyzer will be used.
    User Property: pyPackageAnalyzerEnabled
    <readTimeout> String - The Read Timeout.
    User Property: readTimeout
    <retirejs> Retirejs -
    <retireJsAnalyzerEnabled> Boolean - Sets whether or not the Retirejs Analyzer should be used.
    User Property: retireJsAnalyzerEnabled
    <retireJsForceUpdate> Boolean - Whether the Retire JS repository will be updated regardless of the `autoupdate` settings.
    User Property: retireJsForceUpdate
    <retireJsPassword> String - The password to authenticate to the CVE-URL.
    User Property: retireJsPassword
    <retireJsUrl> String - The Retire JS repository URL.
    User Property: retireJsUrl
    <retireJsUrlServerId> String - The server id in the settings.xml; used to retrieve encrypted passwords from the settings.xml for cve-URLs.
    User Property: retireJsUrlServerId
    <retireJsUser> String - The username to use when connecting to the CVE-URL.
    User Property: retireJsUser
    <rubygemsAnalyzerEnabled> Boolean - Sets whether the Ruby Gemspec Analyzer will be used.
    User Property: rubygemsAnalyzerEnabled
    <scanDependencies> boolean - Whether the project's dependencies should also be scanned.
    Default: true
    User Property: odc.dependencies.scan
    <scanDirectory> List<String> - A list of directories to scan. Note, this should only be used via the command line - if configuring the directories to scan consider using the `scanSet` instead.
    User Property: scanDirectory
    <scanPlugins> boolean - Whether the project's plugins should also be scanned.
    Default: false
    User Property: odc.plugins.scan
    <scanSet> List<FileSet> - An collection of fileSets that specify additional files and/or directories (from the basedir) to analyze as part of the scan. If not specified, defaults to Maven conventions of: src/main/resources, src/main/filters, and src/main/webapp. Note, this cannot be set via the command line - use `scanDirectory` instead.
    <serverId> String - The server id in the settings.xml; used to retrieve encrypted passwords from the settings.xml. This is used for the database username and password.
    User Property: serverId
    <showSummary> boolean - Flag indicating whether or not to show a summary in the output.
    Default: true
    User Property: showSummary
    <skip> boolean - Skip Dependency Check altogether.
    Default: false
    User Property: dependency-check.skip
    <skipArtifactType> String - Skip analysis for dependencies which type matches this regular expression. This filters on the `type` of dependency as defined in the dependency section: jar, pom, test-jar, etc.
    User Property: skipArtifactType
    <skipDependencyManagement> boolean - Skip Analysis for dependencyManagement section.
    Default: true
    User Property: skipDependencyManagement
    <skipProvidedScope> boolean - Skip Analysis for Provided Scope Dependencies.
    Default: false
    User Property: skipProvidedScope
    <skipRuntimeScope> boolean - Skip Analysis for Runtime Scope Dependencies.
    Default: false
    User Property: skipRuntimeScope
    <skipSystemScope> boolean - Skip Analysis for System Scope Dependencies.
    Default: false
    User Property: skipSystemScope
    <skipTestScope> boolean - Skip Analysis for Test Scope Dependencies.
    Default: true
    User Property: skipTestScope
    <suppressionFile> String - The paths to the suppression file. The parameter value can be a local file path, a URL to a suppression file, or even a reference to a file on the class path (see https://github.com/jeremylong/DependencyCheck/issues/1878#issuecomment-487533799)
    User Property: suppressionFile
    <suppressionFilePassword> String - The password used when connecting to the suppressionFiles.
    User Property: suppressionFilePassword
    <suppressionFiles> String[] - The paths to the suppression files. The parameter value can be a local file path, a URL to a suppression file, or even a reference to a file on the class path (see https://github.com/jeremylong/DependencyCheck/issues/1878#issuecomment-487533799)
    User Property: suppressionFiles
    <suppressionFileServerId> String - The server id in the settings.xml; used to retrieve encrypted passwords from the settings.xml for suppressionFile(s).
    User Property: suppressionFileServerId
    <suppressionFileUser> String - The username used when connecting to the suppressionFiles.
    User Property: suppressionFileUser
    <swiftPackageManagerAnalyzerEnabled> Boolean - Whether or not the Swift package Analyzer is enabled.
    User Property: swiftPackageManagerAnalyzerEnabled
    <swiftPackageResolvedAnalyzerEnabled> Boolean - Whether or not the Swift package resolved Analyzer is enabled.
    User Property: swiftPackageResolvedAnalyzerEnabled
    <versionCheckEnabled> boolean - Sets whether dependency-check should check if there is a new version available.
    Default: true
    User Property: versionCheckEnabled
    <virtualSnapshotsFromReactor> Boolean - Use pom dependency information for snapshot dependencies that are part of the Maven reactor while aggregate scanning a multi-module project.
    Default: true
    User Property: dependency-check.virtualSnapshotsFromReactor
    <yarnAuditAnalyzerEnabled> Boolean - Sets whether or not the Yarn Audit Analyzer should be used.
    User Property: yarnAuditAnalyzerEnabled
    <zipExtensions> String - Version9.0.4
    9.0.5
    Type maven-plugin
    0 0 100%1.057 s

    +1.077 s

    Note: failures are anticipated and checked for with assertions while errors are unanticipated.


    Package List

    [Summary] [Package List] [Test Cases]


    @@ -145,7 +145,7 @@

    Package List

    0 0 100% -1.057 s
    +1.077 s

    Note: package statistics are not computed recursively, they only sum up all of its testsuites numbers.

    org.owasp.dependencycheck.maven

    @@ -166,7 +166,7 @@

    org.owasp.dependencycheck.mave

    - + @@ -175,7 +175,7 @@

    org.owasp.dependencycheck.mave

    - + @@ -184,7 +184,7 @@

    org.owasp.dependencycheck.mave

    -
    0 0 100%1.016 s
    0.861 s
    ArtifactScopeExcludedTest0 0 100%0.022 s
    0.055 s
    ArtifactTypeExcludedTest0 0 100%0.019 s

    +0.161 s

    Test Cases

    [Summary] [Package List] [Test Cases]

    BaseDependencyCheckMojoTest

    @@ -192,25 +192,25 @@

    BaseDependencyCheckMojoTest

    testScanArtifacts -0.726 s +0.650 s should_newDependency_get_pom_declared_as_module -0.092 s +0.100 s should_newDependency_get_default_virtual_dependency -0.046 s +0.047 s should_newDependency_get_pom_from_base_dir -0.047 s
    +0.046 s

    ArtifactScopeExcludedTest

    - + @@ -218,7 +218,7 @@

    ArtifactScopeExcludedTest

    - + @@ -238,7 +238,7 @@

    ArtifactScopeExcludedTest

    - + @@ -246,13 +246,13 @@

    ArtifactScopeExcludedTest

    -
    shouldExcludeArtifact[new ArtifactScopeExcluded(true, false, false, false).passes("compile") == false;]0.003 s
    0.013 s
    shouldExcludeArtifact[new ArtifactScopeExcluded(true, false, false, false).passes("compile+runtime") == false;]
    shouldExcludeArtifact[new ArtifactScopeExcluded(true, false, false, false).passes("test") == true;]0.001 s
    0.002 s
    shouldExcludeArtifact[new ArtifactScopeExcluded(true, false, false, false).passes("runtime") == false;]
    shouldExcludeArtifact[new ArtifactScopeExcluded(true, false, false, false).passes("import") == false;]0 s
    0.001 s
    shouldExcludeArtifact[new ArtifactScopeExcluded(true, false, false, true).passes("compile") == false;]
    shouldExcludeArtifact[new ArtifactScopeExcluded(true, false, false, true).passes("runtime") == true;]0.001 s
    +0.002 s

    ArtifactTypeExcludedTest

    -
    testPasses0.016 s

    +0.062 s

    diff --git a/dependency-check-maven/taglist.html b/dependency-check-maven/taglist.html index bbcf6d9d09b..a2cd635689c 100644 --- a/dependency-check-maven/taglist.html +++ b/dependency-check-maven/taglist.html @@ -1,13 +1,13 @@ - + dependency-check-maven – Tag List report @@ -41,8 +41,8 @@
  • documentation/
  • dependency-check/
  • Tag List report
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • @@ -118,10 +118,10 @@

    Todo Work

    Line - this still may fail if the restriction is not a valid version number (i.e. only 2.9 instead of 2.9.1) need to get available versions and filter on the restrictions. -1451 +1452 unify the setName/version and package path - they are equivelent ideas submitted by two seperate committers -1848 +1849
    diff --git a/dependency-check-maven/team.html b/dependency-check-maven/team.html index ba049c1461c..d97de60bec6 100644 --- a/dependency-check-maven/team.html +++ b/dependency-check-maven/team.html @@ -1,13 +1,13 @@ - + dependency-check-maven – Project Team @@ -41,8 +41,8 @@
  • documentation/
  • dependency-check/
  • Project Team
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • diff --git a/dependency-check-maven/update-only-mojo.html b/dependency-check-maven/update-only-mojo.html index 8c0a7ff2ef4..1924afc78cf 100644 --- a/dependency-check-maven/update-only-mojo.html +++ b/dependency-check-maven/update-only-mojo.html @@ -1,13 +1,13 @@ - + dependency-check-maven – dependency-check:update-only @@ -41,8 +41,8 @@
  • documentation/
  • dependency-check/
  • dependency-check:update-only
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • @@ -80,7 +80,7 @@

    dependency-check:update-only

    Note:

    This goal should be used as a Maven report.

    Full name:

    -

    org.owasp:dependency-check-maven:9.0.4:update-only

    +

    org.owasp:dependency-check-maven:9.0.5:update-only

    Description:

    Maven Plugin that updates the local cache of the NVD data from NIST.

    Attributes:

    @@ -454,141 +454,146 @@

    Optional Parameters

    +<nvdApiEndpoint> +String +- +The NVD API Endpoint; setting this is uncommon.
    User Property: nvdApiEndpoint + <nvdApiKey> String - The NVD API Key.
    User Property: nvdApiKey - + <nvdApiServerId> String - The server id in the settings.xml; used to retrieve encrypted API Key from the settings.xml for the NVD API Key. Note that the password is used as the API Key
    User Property: nvdApiServerId - + <nvdDatafeedServerId> String - The server id in the settings.xml; used to retrieve encrypted passwords from the settings.xml for the NVD Data Feed.
    User Property: nvdDatafeedServerId - + <nvdDatafeedUrl> String - The NVD API Data Feed URL.
    User Property: nvdDatafeedUrl - + <nvdMaxRetryCount> Integer - The maximum number of retry requests for a single call to the NVD API.
    User Property: nvdMaxRetryCount - + <nvdPassword> String - The password for basic auth to the NVD Data Feed.
    User Property: nvdPassword - + <nvdUser> String - The username for basic auth to the NVD Data Feed.
    User Property: nvdUser - + <nvdValidForHours> Integer - The number of hours to wait before checking for new updates from the NVD.
    User Property: nvdValidForHours - + <opensslAnalyzerEnabled> Boolean - Sets whether or not the openssl Analyzer should be used.
    User Property: opensslAnalyzerEnabled - + <ossindexAnalyzerEnabled> Boolean - Whether or not the Sonatype OSS Index analyzer is enabled.
    User Property: ossindexAnalyzerEnabled - + <ossindexAnalyzerUrl> String - URL of the Sonatype OSS Index service.
    User Property: ossindexAnalyzerUrl - + <ossindexAnalyzerUseCache> Boolean - Whether or not the Sonatype OSS Index analyzer should cache results.
    User Property: ossindexAnalyzerUseCache - + <ossIndexServerId> String - The id of a server defined in the settings.xml that configures the credentials (username and password) for a OSS Index service.
    User Property: ossIndexServerId - + <ossIndexWarnOnlyOnRemoteErrors> Boolean - Whether we should only warn about Sonatype OSS Index remote errors instead of failing the goal completely.
    User Property: ossIndexWarnOnlyOnRemoteErrors - + <pathToCore> String - The path to dotnet core.
    User Property: pathToCore - + <pathToGo> String - Sets the path to `go`.
    User Property: pathToGo - + <pathToPnpm> String - Sets the path to `pnpm`.
    User Property: pathToPnpm - + <pathToYarn> String - Sets the path to `yarn`.
    User Property: pathToYarn - + <pipAnalyzerEnabled> Boolean - Sets whether or not the pip Analyzer should be used.
    User Property: pipAnalyzerEnabled - + <pipfileAnalyzerEnabled> Boolean - Sets whether or not the pipfile Analyzer should be used.
    User Property: pipfileAnalyzerEnabled - + <pnpmAuditAnalyzerEnabled> Boolean - Sets whether or not the Pnpm Audit Analyzer should be used.
    User Property: pnpmAuditAnalyzerEnabled - + <poetryAnalyzerEnabled> Boolean - Sets whether or not the poetry Analyzer should be used.
    User Property: poetryAnalyzerEnabled - + <prettyPrint> Boolean - Whether or not the XML and JSON report formats should be pretty printed. The default is false.
    User Property: prettyPrint - + <proxy> ProxyConfig - The proxy configuration. - + <pyDistributionAnalyzerEnabled> Boolean - Sets whether the Python Distribution Analyzer will be used.
    User Property: pyDistributionAnalyzerEnabled - + <pyPackageAnalyzerEnabled> Boolean - Sets whether the Python Package Analyzer will be used.
    User Property: pyPackageAnalyzerEnabled - + <readTimeout> String - The Read Timeout.
    User Property: readTimeout - + <retirejs> Retirejs - @@ -604,157 +609,157 @@

    Optional Parameters

    + <retireJsAnalyzerEnabled> Boolean - Sets whether or not the Retirejs Analyzer should be used.
    User Property: retireJsAnalyzerEnabled - + <retireJsForceUpdate> Boolean - Whether the Retire JS repository will be updated regardless of the `autoupdate` settings.
    User Property: retireJsForceUpdate - + <retireJsPassword> String - The password to authenticate to the CVE-URL.
    User Property: retireJsPassword - + <retireJsUrl> String - The Retire JS repository URL.
    User Property: retireJsUrl - + <retireJsUrlServerId> String - The server id in the settings.xml; used to retrieve encrypted passwords from the settings.xml for cve-URLs.
    User Property: retireJsUrlServerId - + <retireJsUser> String - The username to use when connecting to the CVE-URL.
    User Property: retireJsUser - + <rubygemsAnalyzerEnabled> Boolean - Sets whether the Ruby Gemspec Analyzer will be used.
    User Property: rubygemsAnalyzerEnabled - + <scanDependencies> boolean - Whether the project's dependencies should also be scanned.
    Default: true
    User Property: odc.dependencies.scan - + <scanDirectory> List<String> - A list of directories to scan. Note, this should only be used via the command line - if configuring the directories to scan consider using the `scanSet` instead.
    User Property: scanDirectory - + <scanPlugins> boolean - Whether the project's plugins should also be scanned.
    Default: false
    User Property: odc.plugins.scan - + <scanSet> List<FileSet> - An collection of fileSets that specify additional files and/or directories (from the basedir) to analyze as part of the scan. If not specified, defaults to Maven conventions of: src/main/resources, src/main/filters, and src/main/webapp. Note, this cannot be set via the command line - use `scanDirectory` instead. - + <serverId> String - The server id in the settings.xml; used to retrieve encrypted passwords from the settings.xml. This is used for the database username and password.
    User Property: serverId - + <showSummary> boolean - Flag indicating whether or not to show a summary in the output.
    Default: true
    User Property: showSummary - + <skip> boolean - Skip Dependency Check altogether.
    Default: false
    User Property: dependency-check.skip - + <skipArtifactType> String - Skip analysis for dependencies which type matches this regular expression. This filters on the `type` of dependency as defined in the dependency section: jar, pom, test-jar, etc.
    User Property: skipArtifactType - + <skipDependencyManagement> boolean - Skip Analysis for dependencyManagement section.
    Default: true
    User Property: skipDependencyManagement - + <skipProvidedScope> boolean - Skip Analysis for Provided Scope Dependencies.
    Default: false
    User Property: skipProvidedScope - + <skipRuntimeScope> boolean - Skip Analysis for Runtime Scope Dependencies.
    Default: false
    User Property: skipRuntimeScope - + <skipSystemScope> boolean - Skip Analysis for System Scope Dependencies.
    Default: false
    User Property: skipSystemScope - + <skipTestScope> boolean - Skip Analysis for Test Scope Dependencies.
    Default: true
    User Property: skipTestScope - + <suppressionFile> String - The paths to the suppression file. The parameter value can be a local file path, a URL to a suppression file, or even a reference to a file on the class path (see https://github.com/jeremylong/DependencyCheck/issues/1878#issuecomment-487533799)
    User Property: suppressionFile - + <suppressionFilePassword> String - The password used when connecting to the suppressionFiles.
    User Property: suppressionFilePassword - + <suppressionFiles> String[] - The paths to the suppression files. The parameter value can be a local file path, a URL to a suppression file, or even a reference to a file on the class path (see https://github.com/jeremylong/DependencyCheck/issues/1878#issuecomment-487533799)
    User Property: suppressionFiles - + <suppressionFileServerId> String - The server id in the settings.xml; used to retrieve encrypted passwords from the settings.xml for suppressionFile(s).
    User Property: suppressionFileServerId - + <suppressionFileUser> String - The username used when connecting to the suppressionFiles.
    User Property: suppressionFileUser - + <swiftPackageManagerAnalyzerEnabled> Boolean - Whether or not the Swift package Analyzer is enabled.
    User Property: swiftPackageManagerAnalyzerEnabled - + <swiftPackageResolvedAnalyzerEnabled> Boolean - Whether or not the Swift package resolved Analyzer is enabled.
    User Property: swiftPackageResolvedAnalyzerEnabled - + <versionCheckEnabled> boolean - Sets whether dependency-check should check if there is a new version available.
    Default: true
    User Property: versionCheckEnabled - + <virtualSnapshotsFromReactor> Boolean - Use pom dependency information for snapshot dependencies that are part of the Maven reactor while aggregate scanning a multi-module project.
    Default: true
    User Property: dependency-check.virtualSnapshotsFromReactor - + <yarnAuditAnalyzerEnabled> Boolean - Sets whether or not the Yarn Audit Analyzer should be used.
    User Property: yarnAuditAnalyzerEnabled - + <zipExtensions> String - @@ -1181,7 +1186,13 @@

    <nvdApiDelay>

    +
  • User Property: nvdApiDelay

  • +

    <nvdApiEndpoint>

    +
    The NVD API Endpoint; setting this is uncommon.
    +

    <nvdApiKey>

    The NVD API Key.
    -

    Dependency-Check Maven Plugin 9.0.4 Reference

    +

    Dependency-Check Maven Plugin 9.0.5 Reference

    diff --git a/dependency-check-maven/xref/index.html b/dependency-check-maven/xref/index.html index 805c47bc854..2ee4303f475 100644 --- a/dependency-check-maven/xref/index.html +++ b/dependency-check-maven/xref/index.html @@ -4,7 +4,7 @@ - Dependency-Check Maven Plugin 9.0.4 Reference + Dependency-Check Maven Plugin 9.0.5 Reference diff --git a/dependency-check-maven/xref/org/owasp/dependency_check_maven/package-frame.html b/dependency-check-maven/xref/org/owasp/dependency_check_maven/package-frame.html index b780537c107..62552a09496 100644 --- a/dependency-check-maven/xref/org/owasp/dependency_check_maven/package-frame.html +++ b/dependency-check-maven/xref/org/owasp/dependency_check_maven/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Maven Plugin 9.0.4 Reference Package org.owasp.dependency_check_maven + Dependency-Check Maven Plugin 9.0.5 Reference Package org.owasp.dependency_check_maven diff --git a/dependency-check-maven/xref/org/owasp/dependency_check_maven/package-summary.html b/dependency-check-maven/xref/org/owasp/dependency_check_maven/package-summary.html index 270ae9ef8c1..57ae039f5cb 100644 --- a/dependency-check-maven/xref/org/owasp/dependency_check_maven/package-summary.html +++ b/dependency-check-maven/xref/org/owasp/dependency_check_maven/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Maven Plugin 9.0.4 Reference Package org.owasp.dependency_check_maven + Dependency-Check Maven Plugin 9.0.5 Reference Package org.owasp.dependency_check_maven diff --git a/dependency-check-maven/xref/org/owasp/dependencycheck/maven/BaseDependencyCheckMojo.html b/dependency-check-maven/xref/org/owasp/dependencycheck/maven/BaseDependencyCheckMojo.html index 8fee58a4d72..03b5f45839d 100644 --- a/dependency-check-maven/xref/org/owasp/dependencycheck/maven/BaseDependencyCheckMojo.html +++ b/dependency-check-maven/xref/org/owasp/dependencycheck/maven/BaseDependencyCheckMojo.html @@ -85,2880 +85,2889 @@ 77import java.io.FileNotFoundException; 78import java.io.IOException; 79import java.io.InputStream; -80import java.lang.reflect.Field; -81import java.util.ArrayList; -82import java.util.Arrays; -83import java.util.Collections; -84import java.util.HashSet; -85import java.util.List; -86import java.util.Locale; -87import java.util.Map; -88import java.util.Objects; -89import java.util.Optional; -90import java.util.Set; -91import org.apache.maven.artifact.repository.ArtifactRepository; -92 -93import org.apache.maven.artifact.resolver.filter.ExcludesArtifactFilter; -94import org.apache.maven.artifact.versioning.InvalidVersionSpecificationException; -95import org.apache.maven.artifact.versioning.Restriction; -96import org.apache.maven.artifact.versioning.VersionRange; -97 -98import org.owasp.dependencycheck.agent.DependencyCheckScanAgent; -99import org.owasp.dependencycheck.dependency.naming.GenericIdentifier; -100import org.owasp.dependencycheck.dependency.naming.Identifier; -101import org.owasp.dependencycheck.dependency.naming.PurlIdentifier; -102import org.apache.maven.shared.dependency.graph.traversal.DependencyNodeVisitor; -103import org.apache.maven.shared.dependency.graph.traversal.FilteringDependencyNodeVisitor; -104import org.apache.maven.shared.transfer.dependencies.DefaultDependableCoordinate; -105import org.apache.maven.shared.transfer.dependencies.DependableCoordinate; -106import org.owasp.dependencycheck.analyzer.exception.AnalysisException; -107import org.owasp.dependencycheck.reporting.ReportGenerator; -108import org.owasp.dependencycheck.utils.SeverityUtil; -109import org.owasp.dependencycheck.xml.pom.Model; -110import org.owasp.dependencycheck.xml.pom.PomUtils; -111import org.slf4j.Logger; -112import org.slf4j.LoggerFactory; -113import org.slf4j.spi.LocationAwareLogger; -114 -115//CSOFF: FileLength -116/** -117 * @author Jeremy Long -118 */ -119publicabstractclassBaseDependencyCheckMojoextends AbstractMojo implements MavenReport { -120 -121//<editor-fold defaultstate="collapsed" desc="Private fields"> +80import java.util.ArrayList; +81import java.util.Arrays; +82import java.util.Collections; +83import java.util.HashSet; +84import java.util.List; +85import java.util.Locale; +86import java.util.Map; +87import java.util.Objects; +88import java.util.Optional; +89import java.util.Set; +90import org.apache.maven.artifact.repository.ArtifactRepository; +91 +92import org.apache.maven.artifact.resolver.filter.ExcludesArtifactFilter; +93import org.apache.maven.artifact.versioning.InvalidVersionSpecificationException; +94import org.apache.maven.artifact.versioning.Restriction; +95import org.apache.maven.artifact.versioning.VersionRange; +96 +97import org.owasp.dependencycheck.agent.DependencyCheckScanAgent; +98import org.owasp.dependencycheck.dependency.naming.GenericIdentifier; +99import org.owasp.dependencycheck.dependency.naming.Identifier; +100import org.owasp.dependencycheck.dependency.naming.PurlIdentifier; +101import org.apache.maven.shared.dependency.graph.traversal.DependencyNodeVisitor; +102import org.apache.maven.shared.dependency.graph.traversal.FilteringDependencyNodeVisitor; +103import org.apache.maven.shared.transfer.dependencies.DefaultDependableCoordinate; +104import org.apache.maven.shared.transfer.dependencies.DependableCoordinate; +105import org.owasp.dependencycheck.analyzer.exception.AnalysisException; +106import org.owasp.dependencycheck.reporting.ReportGenerator; +107import org.owasp.dependencycheck.utils.SeverityUtil; +108import org.owasp.dependencycheck.xml.pom.Model; +109import org.owasp.dependencycheck.xml.pom.PomUtils; +110 +111//CSOFF: FileLength +112/** +113 * @author Jeremy Long +114 */ +115publicabstractclassBaseDependencyCheckMojoextends AbstractMojo implements MavenReport { +116 +117//<editor-fold defaultstate="collapsed" desc="Private fields"> +118/** +119 * The properties file location. +120 */ +121privatestaticfinal String PROPERTIES_FILE = "mojo.properties"; 122/** -123 * The properties file location. +123 * System specific new line character.124 */ -125privatestaticfinal String PROPERTIES_FILE = "mojo.properties"; +125privatestaticfinal String NEW_LINE = System.getProperty("line.separator", "\n").intern(); 126/** -127 * System specific new line character. +127 * Pattern to include all files in a FileSet.128 */ -129privatestaticfinal String NEW_LINE = System.getProperty("line.separator", "\n").intern(); +129privatestaticfinal String INCLUDE_ALL = "**/*"; 130/** -131 * Pattern to include all files in a FileSet. +131 * A flag indicating whether or not the Maven site is being generated.132 */ -133privatestaticfinal String INCLUDE_ALL = "**/*"; +133privateboolean generatingSite = false; 134/** -135 * A flag indicating whether or not the Maven site is being generated. +135 * The configured settings.136 */ -137privateboolean generatingSite = false; +137private Settings settings = null; 138/** -139 * The configured settings. +139 * The list of files that have been scanned.140 */ -141private Settings settings = null; -142/** -143 * The list of files that have been scanned. -144 */ -145privatefinal List<File> scannedFiles = new ArrayList<>(); -146//</editor-fold> -147// <editor-fold defaultstate="collapsed" desc="Maven bound parameters and components"> -148/** -149 * Sets whether or not the mojo should fail if an error occurs. -150 */ -151 @SuppressWarnings("CanBeFinal") -152 @Parameter(property = "failOnError", defaultValue = "true", required = true) -153privateboolean failOnError; -154 -155/** -156 * The Maven Project Object. -157 */ -158 @SuppressWarnings("CanBeFinal") -159 @Parameter(property = "project", required = true, readonly = true) -160private MavenProject project; -161/** -162 * List of Maven project of the current build -163 */ -164 @SuppressWarnings("CanBeFinal") -165 @Parameter(readonly = true, required = true, property = "reactorProjects") -166private List<MavenProject> reactorProjects; -167/** -168 * The entry point towards a Maven version independent way of resolving -169 * artifacts (handles both Maven 3.0 Sonatype and Maven 3.1+ eclipse Aether -170 * implementations). -171 */ -172 @SuppressWarnings("CanBeFinal") -173 @Component -174private ArtifactResolver artifactResolver; -175/** -176 * The entry point towards a Maven version independent way of resolving -177 * dependencies (handles both Maven 3.0 Sonatype and Maven 3.1+ eclipse -178 * Aether implementations). Contrary to the ArtifactResolver this resolver -179 * also takes into account the additional repositories defined in the -180 * dependency-path towards transitive dependencies. -181 */ -182 @SuppressWarnings("CanBeFinal") -183 @Component -184private DependencyResolver dependencyResolver; -185 -186/** -187 * The Maven Session. -188 */ -189 @SuppressWarnings("CanBeFinal") -190 @Parameter(defaultValue = "${session}", readonly = true, required = true) -191private MavenSession session; -192 -193/** -194 * Component within Maven to build the dependency graph. -195 */ -196 @Component -197private DependencyGraphBuilder dependencyGraphBuilder; -198 -199/** -200 * The output directory. This generally maps to "target". -201 */ -202 @SuppressWarnings("CanBeFinal") -203 @Parameter(defaultValue = "${project.build.directory}", required = true, property = "odc.outputDirectory") -204private File outputDirectory; -205/** -206 * This is a reference to the &gt;reporting&lt; sections -207 * <code>outputDirectory</code>. This cannot be configured in the -208 * dependency-check mojo directly. This generally maps to "target/site". -209 */ -210 @Parameter(property = "project.reporting.outputDirectory", readonly = true) -211private File reportOutputDirectory; -212/** -213 * Specifies if the build should be failed if a CVSS score above a specified -214 * level is identified. The default is 11 which means since the CVSS scores -215 * are 0-10, by default the build will never fail. -216 */ -217 @SuppressWarnings("CanBeFinal") -218 @Parameter(property = "failBuildOnCVSS", defaultValue = "11", required = true) -219privatefloat failBuildOnCVSS = 11f; -220/** -221 * Specifies the CVSS score that is considered a "test" failure when -222 * generating a jUnit style report. The default value is 0 - all -223 * vulnerabilities are considered a failure. -224 */ -225 @SuppressWarnings("CanBeFinal") -226 @Parameter(property = "junitFailOnCVSS", defaultValue = "0", required = true) -227privatefloat junitFailOnCVSS = 0; -228/** -229 * Fail the build if any dependency has a vulnerability listed. -230 * -231 * @deprecated use {@link BaseDependencyCheckMojo#failBuildOnCVSS} with a -232 * value of 0 instead -233 */ -234 @SuppressWarnings("CanBeFinal") -235 @Parameter(property = "failBuildOnAnyVulnerability", defaultValue = "false", required = true) -236 @Deprecated -237privateboolean failBuildOnAnyVulnerability = false; -238/** -239 * Sets whether auto-updating of the NVD CVE data is enabled. It is not -240 * recommended that this be turned to false. Default is true. -241 */ -242 @SuppressWarnings("CanBeFinal") -243 @Parameter(property = "autoUpdate") -244private Boolean autoUpdate; -245/** -246 * Sets whether Experimental analyzers are enabled. Default is false. -247 */ -248 @SuppressWarnings("CanBeFinal") -249 @Parameter(property = "enableExperimental") -250private Boolean enableExperimental; -251/** -252 * Sets whether retired analyzers are enabled. Default is false. -253 */ -254 @SuppressWarnings("CanBeFinal") -255 @Parameter(property = "enableRetired") -256private Boolean enableRetired; -257/** -258 * Sets whether the Golang Dependency analyzer is enabled. Default is true. -259 */ -260 @SuppressWarnings("CanBeFinal") -261 @Parameter(property = "golangDepEnabled") -262private Boolean golangDepEnabled; -263/** -264 * Sets whether Golang Module Analyzer is enabled; this requires `go` to be -265 * installed. Default is true. -266 */ -267 @SuppressWarnings("CanBeFinal") -268 @Parameter(property = "golangModEnabled") -269private Boolean golangModEnabled; -270/** -271 * Sets the path to `go`. -272 */ -273 @SuppressWarnings("CanBeFinal") -274 @Parameter(property = "pathToGo") -275private String pathToGo; -276 -277/** -278 * Sets the path to `yarn`. -279 */ -280 @SuppressWarnings("CanBeFinal") -281 @Parameter(property = "pathToYarn") -282private String pathToYarn; -283/** -284 * Sets the path to `pnpm`. -285 */ -286 @SuppressWarnings("CanBeFinal") -287 @Parameter(property = "pathToPnpm") -288private String pathToPnpm; -289/** -290 * Use pom dependency information for snapshot dependencies that are part of -291 * the Maven reactor while aggregate scanning a multi-module project. -292 */ -293 @Parameter(property = "dependency-check.virtualSnapshotsFromReactor", defaultValue = "true") -294private Boolean virtualSnapshotsFromReactor; -295/** -296 * The report format to be generated (HTML, XML, CSV, JSON, JUNIT, SARIF, -297 * JENKINS, GITLAB, ALL). Multiple formats can be selected using a comma -298 * delineated list. -299 */ -300 @SuppressWarnings("CanBeFinal") -301 @Parameter(property = "format", defaultValue = "HTML", required = true) -302private String format = "HTML"; -303 -304/** -305 * Whether or not the XML and JSON report formats should be pretty printed. -306 * The default is false. -307 */ -308 @Parameter(property = "prettyPrint") -309private Boolean prettyPrint; -310/** -311 * The report format to be generated (HTML, XML, CSV, JSON, JUNIT, SARIF, -312 * JENKINS, GITLAB, ALL). Multiple formats can be selected using a comma -313 * delineated list. -314 */ -315 @Parameter(property = "formats", required = true) -316private String[] formats; -317/** -318 * The Maven settings. -319 */ -320 @SuppressWarnings("CanBeFinal") -321 @Parameter(property = "mavenSettings", defaultValue = "${settings}") -322private org.apache.maven.settings.Settings mavenSettings; -323 -324/** -325 * The maven settings proxy id. -326 */ -327 @SuppressWarnings("CanBeFinal") -328 @Parameter(property = "mavenSettingsProxyId") -329private String mavenSettingsProxyId; -330 -331/** -332 * The Connection Timeout. -333 */ -334 @SuppressWarnings("CanBeFinal") -335 @Parameter(property = "connectionTimeout") -336private String connectionTimeout; -337/** -338 * The Read Timeout. -339 */ -340 @SuppressWarnings("CanBeFinal") -341 @Parameter(property = "readTimeout") -342private String readTimeout; -343/** -344 * Sets whether dependency-check should check if there is a new version -345 * available. -346 */ -347 @SuppressWarnings("CanBeFinal") -348 @Parameter(property = "versionCheckEnabled", defaultValue = "true") -349privateboolean versionCheckEnabled; -350/** -351 * The paths to the suppression files. The parameter value can be a local -352 * file path, a URL to a suppression file, or even a reference to a file on -353 * the class path (see -354 * https://github.com/jeremylong/DependencyCheck/issues/1878#issuecomment-487533799) -355 */ -356 @SuppressWarnings("CanBeFinal") -357 @Parameter(property = "suppressionFiles") -358private String[] suppressionFiles; -359/** -360 * The paths to the suppression file. The parameter value can be a local -361 * file path, a URL to a suppression file, or even a reference to a file on -362 * the class path (see -363 * https://github.com/jeremylong/DependencyCheck/issues/1878#issuecomment-487533799) -364 */ -365 @SuppressWarnings("CanBeFinal") -366 @Parameter(property = "suppressionFile") -367private String suppressionFile; -368/** -369 * The username used when connecting to the suppressionFiles. -370 */ -371 @Parameter(property = "suppressionFileUser") -372private String suppressionFileUser; -373/** -374 * The password used when connecting to the suppressionFiles. -375 */ -376 @Parameter(property = "suppressionFilePassword") -377private String suppressionFilePassword; -378/** -379 * The server id in the settings.xml; used to retrieve encrypted passwords -380 * from the settings.xml for suppressionFile(s). -381 */ -382 @SuppressWarnings("CanBeFinal") -383 @Parameter(property = "suppressionFileServerId") -384private String suppressionFileServerId; -385/** -386 * The path to the hints file. -387 */ -388 @SuppressWarnings("CanBeFinal") -389 @Parameter(property = "hintsFile") -390private String hintsFile; -391 -392/** -393 * Flag indicating whether or not to show a summary in the output. -394 */ -395 @SuppressWarnings("CanBeFinal") -396 @Parameter(property = "showSummary", defaultValue = "true") -397privateboolean showSummary = true; -398 -399/** -400 * Whether or not the Jar Analyzer is enabled. -401 */ -402 @SuppressWarnings("CanBeFinal") -403 @Parameter(property = "jarAnalyzerEnabled") -404private Boolean jarAnalyzerEnabled; -405 -406/** -407 * Sets whether the Dart analyzer is enabled. Default is true. -408 */ -409 @SuppressWarnings("CanBeFinal") -410 @Parameter(property = "dartAnalyzerEnabled") -411private Boolean dartAnalyzerEnabled; -412 -413/** -414 * Whether or not the Archive Analyzer is enabled. -415 */ -416 @SuppressWarnings("CanBeFinal") -417 @Parameter(property = "archiveAnalyzerEnabled") -418private Boolean archiveAnalyzerEnabled; -419/** -420 * Whether or not the Known Exploited Vulnerability Analyzer is enabled. -421 */ -422 @SuppressWarnings("CanBeFinal") -423 @Parameter(property = "knownExploitedEnabled") -424private Boolean knownExploitedEnabled; -425/** -426 * The URL to the CISA Known Exploited Vulnerabilities JSON datafeed. -427 */ -428 @SuppressWarnings("CanBeFinal") -429 @Parameter(property = "knownExploitedUrl") -430private String knownExploitedUrl; -431/** -432 * Sets whether the Python Distribution Analyzer will be used. -433 */ -434 @SuppressWarnings("CanBeFinal") -435 @Parameter(property = "pyDistributionAnalyzerEnabled") -436private Boolean pyDistributionAnalyzerEnabled; -437/** -438 * Sets whether the Python Package Analyzer will be used. -439 */ -440 @Parameter(property = "pyPackageAnalyzerEnabled") -441private Boolean pyPackageAnalyzerEnabled; -442/** -443 * Sets whether the Ruby Gemspec Analyzer will be used. -444 */ -445 @SuppressWarnings("CanBeFinal") -446 @Parameter(property = "rubygemsAnalyzerEnabled") -447private Boolean rubygemsAnalyzerEnabled; -448/** -449 * Sets whether or not the openssl Analyzer should be used. -450 */ -451 @SuppressWarnings("CanBeFinal") -452 @Parameter(property = "opensslAnalyzerEnabled") -453private Boolean opensslAnalyzerEnabled; -454/** -455 * Sets whether or not the CMake Analyzer should be used. -456 */ -457 @SuppressWarnings("CanBeFinal") -458 @Parameter(property = "cmakeAnalyzerEnabled") -459private Boolean cmakeAnalyzerEnabled; -460/** -461 * Sets whether or not the autoconf Analyzer should be used. -462 */ -463 @SuppressWarnings("CanBeFinal") -464 @Parameter(property = "autoconfAnalyzerEnabled") -465private Boolean autoconfAnalyzerEnabled; -466/** -467 * Sets whether or not the Maven install Analyzer should be used. -468 */ -469 @SuppressWarnings("CanBeFinal") -470 @Parameter(property = "mavenInstallAnalyzerEnabled") -471private Boolean mavenInstallAnalyzerEnabled; -472/** -473 * Sets whether or not the pip Analyzer should be used. -474 */ -475 @SuppressWarnings("CanBeFinal") -476 @Parameter(property = "pipAnalyzerEnabled") -477private Boolean pipAnalyzerEnabled; -478/** -479 * Sets whether or not the pipfile Analyzer should be used. -480 */ -481 @SuppressWarnings("CanBeFinal") -482 @Parameter(property = "pipfileAnalyzerEnabled") -483private Boolean pipfileAnalyzerEnabled; -484/** -485 * Sets whether or not the poetry Analyzer should be used. -486 */ -487 @SuppressWarnings("CanBeFinal") -488 @Parameter(property = "poetryAnalyzerEnabled") -489private Boolean poetryAnalyzerEnabled; -490/** -491 * Sets whether or not the PHP Composer Lock File Analyzer should be used. -492 */ -493 @Parameter(property = "composerAnalyzerEnabled") -494private Boolean composerAnalyzerEnabled; -495/** -496 * Whether or not the Perl CPAN File Analyzer is enabled. -497 */ -498 @Parameter(property = "cpanfileAnalyzerEnabled") -499private Boolean cpanfileAnalyzerEnabled; -500/** -501 * Sets whether or not the Node.js Analyzer should be used. -502 */ -503 @SuppressWarnings("CanBeFinal") -504 @Parameter(property = "nodeAnalyzerEnabled") -505private Boolean nodeAnalyzerEnabled; -506/** -507 * Sets whether or not the Node Audit Analyzer should be used. -508 */ -509 @SuppressWarnings("CanBeFinal") -510 @Parameter(property = "nodeAuditAnalyzerEnabled") -511private Boolean nodeAuditAnalyzerEnabled; -512 -513/** -514 * The Node Audit API URL for the Node Audit Analyzer. -515 */ -516 @SuppressWarnings("CanBeFinal") -517 @Parameter(property = "nodeAuditAnalyzerUrl") -518private String nodeAuditAnalyzerUrl; -519 -520/** -521 * Sets whether or not the Yarn Audit Analyzer should be used. -522 */ -523 @SuppressWarnings("CanBeFinal") -524 @Parameter(property = "yarnAuditAnalyzerEnabled") -525private Boolean yarnAuditAnalyzerEnabled; -526 -527/** -528 * Sets whether or not the Pnpm Audit Analyzer should be used. -529 */ -530 @SuppressWarnings("CanBeFinal") -531 @Parameter(property = "pnpmAuditAnalyzerEnabled") -532private Boolean pnpmAuditAnalyzerEnabled; -533 -534/** -535 * Sets whether or not the Node Audit Analyzer should use a local cache. -536 */ -537 @SuppressWarnings("CanBeFinal") -538 @Parameter(property = "nodeAuditAnalyzerUseCache") -539private Boolean nodeAuditAnalyzerUseCache; -540/** -541 * Sets whether or not the Node Audit Analyzer should skip devDependencies. -542 */ -543 @SuppressWarnings("CanBeFinal") -544 @Parameter(property = "nodeAuditSkipDevDependencies") -545private Boolean nodeAuditSkipDevDependencies; -546/** -547 * Sets whether or not the Node.js Analyzer should skip devDependencies. -548 */ -549 @SuppressWarnings("CanBeFinal") -550 @Parameter(property = "nodePackageSkipDevDependencies") -551private Boolean nodePackageSkipDevDependencies; -552/** -553 * Sets whether or not the Retirejs Analyzer should be used. -554 */ -555 @SuppressWarnings("CanBeFinal") -556 @Parameter(property = "retireJsAnalyzerEnabled") -557private Boolean retireJsAnalyzerEnabled; -558/** -559 * The Retire JS repository URL. -560 */ -561 @SuppressWarnings("CanBeFinal") -562 @Parameter(property = "retireJsUrl") -563private String retireJsUrl; -564/** -565 * The username to use when connecting to the CVE-URL. -566 */ -567 @Parameter(property = "retireJsUser") -568private String retireJsUser; -569/** -570 * The password to authenticate to the CVE-URL. -571 */ -572 @Parameter(property = "retireJsPassword") -573private String retireJsPassword; -574/** -575 * The server id in the settings.xml; used to retrieve encrypted passwords -576 * from the settings.xml for cve-URLs. -577 */ -578 @SuppressWarnings("CanBeFinal") -579 @Parameter(property = "retireJsUrlServerId") -580private String retireJsUrlServerId; -581/** -582 * Whether the Retire JS repository will be updated regardless of the -583 * `autoupdate` settings. -584 */ -585 @SuppressWarnings("CanBeFinal") -586 @Parameter(property = "retireJsForceUpdate") -587private Boolean retireJsForceUpdate; -588/** -589 * Whether or not the .NET Assembly Analyzer is enabled. -590 */ -591 @Parameter(property = "assemblyAnalyzerEnabled") -592private Boolean assemblyAnalyzerEnabled; -593/** -594 * Whether or not the MS Build Analyzer is enabled. -595 */ -596 @Parameter(property = "msbuildAnalyzerEnabled") -597private Boolean msbuildAnalyzerEnabled; -598/** -599 * Whether or not the .NET Nuspec Analyzer is enabled. -600 */ -601 @SuppressWarnings("CanBeFinal") -602 @Parameter(property = "nuspecAnalyzerEnabled") -603private Boolean nuspecAnalyzerEnabled; -604 -605/** -606 * Whether or not the .NET packages.config Analyzer is enabled. -607 */ -608 @SuppressWarnings("CanBeFinal") -609 @Parameter(property = "nugetconfAnalyzerEnabled") -610private Boolean nugetconfAnalyzerEnabled; -611 -612/** -613 * Whether or not the Libman Analyzer is enabled. -614 */ -615 @SuppressWarnings("CanBeFinal") -616 @Parameter(property = "libmanAnalyzerEnabled") -617private Boolean libmanAnalyzerEnabled; -618 -619/** -620 * Whether or not the Central Analyzer is enabled. -621 */ -622 @SuppressWarnings("CanBeFinal") -623 @Parameter(property = "centralAnalyzerEnabled") -624private Boolean centralAnalyzerEnabled; -625 -626/** -627 * Whether or not the Central Analyzer should use a local cache. -628 */ -629 @SuppressWarnings("CanBeFinal") -630 @Parameter(property = "centralAnalyzerUseCache") -631private Boolean centralAnalyzerUseCache; -632 -633/** -634 * Whether or not the Artifactory Analyzer is enabled. -635 */ -636 @SuppressWarnings("CanBeFinal") -637 @Parameter(property = "artifactoryAnalyzerEnabled") -638private Boolean artifactoryAnalyzerEnabled; -639/** -640 * The serverId inside the settings.xml containing the username and token to -641 * access artifactory -642 */ -643 @SuppressWarnings("CanBeFinal") -644 @Parameter(property = "artifactoryAnalyzerServerId") -645private String artifactoryAnalyzerServerId; -646/** -647 * The username (only used with API token) to connect to Artifactory -648 * instance -649 */ -650 @SuppressWarnings("CanBeFinal") -651 @Parameter(property = "artifactoryAnalyzerUsername") -652private String artifactoryAnalyzerUsername; -653/** -654 * The API token to connect to Artifactory instance -655 */ -656 @SuppressWarnings("CanBeFinal") -657 @Parameter(property = "artifactoryAnalyzerApiToken") -658private String artifactoryAnalyzerApiToken; -659/** -660 * The bearer token to connect to Artifactory instance -661 */ -662 @SuppressWarnings("CanBeFinal") -663 @Parameter(property = "artifactoryAnalyzerBearerToken") -664private String artifactoryAnalyzerBearerToken; -665/** -666 * The Artifactory URL for the Artifactory analyzer. -667 */ -668 @SuppressWarnings("CanBeFinal") -669 @Parameter(property = "artifactoryAnalyzerUrl") -670private String artifactoryAnalyzerUrl; -671/** -672 * Whether Artifactory should be accessed through a proxy or not -673 */ -674 @SuppressWarnings("CanBeFinal") -675 @Parameter(property = "artifactoryAnalyzerUseProxy") -676private Boolean artifactoryAnalyzerUseProxy; -677/** -678 * Whether the Artifactory analyzer should be run in parallel or not. -679 */ -680 @SuppressWarnings("CanBeFinal") -681 @Parameter(property = "artifactoryAnalyzerParallelAnalysis", defaultValue = "true") -682private Boolean artifactoryAnalyzerParallelAnalysis; -683/** -684 * Whether or not the Nexus Analyzer is enabled. -685 */ -686 @SuppressWarnings("CanBeFinal") -687 @Parameter(property = "nexusAnalyzerEnabled") -688private Boolean nexusAnalyzerEnabled; -689 -690/** -691 * Whether or not the Sonatype OSS Index analyzer is enabled. -692 */ -693 @SuppressWarnings("CanBeFinal") -694 @Parameter(property = "ossindexAnalyzerEnabled") -695private Boolean ossindexAnalyzerEnabled; -696/** -697 * Whether or not the Sonatype OSS Index analyzer should cache results. -698 */ -699 @SuppressWarnings("CanBeFinal") -700 @Parameter(property = "ossindexAnalyzerUseCache") -701private Boolean ossindexAnalyzerUseCache; -702/** -703 * URL of the Sonatype OSS Index service. -704 */ -705 @SuppressWarnings("CanBeFinal") -706 @Parameter(property = "ossindexAnalyzerUrl") -707private String ossindexAnalyzerUrl; -708 -709/** -710 * The id of a server defined in the settings.xml that configures the -711 * credentials (username and password) for a OSS Index service. -712 */ -713 @SuppressWarnings("CanBeFinal") -714 @Parameter(property = "ossIndexServerId") -715private String ossIndexServerId; -716 -717/** -718 * Whether we should only warn about Sonatype OSS Index remote errors -719 * instead of failing the goal completely. -720 */ -721 @SuppressWarnings("CanBeFinal") -722 @Parameter(property = "ossIndexWarnOnlyOnRemoteErrors") -723private Boolean ossIndexWarnOnlyOnRemoteErrors; -724 -725/** -726 * Whether or not the Elixir Mix Audit Analyzer is enabled. -727 */ -728 @Parameter(property = "mixAuditAnalyzerEnabled") -729private Boolean mixAuditAnalyzerEnabled; -730 -731/** -732 * Sets the path for the mix_audit binary. -733 */ -734 @SuppressWarnings("CanBeFinal") -735 @Parameter(property = "mixAuditPath") -736private String mixAuditPath; -737 -738/** -739 * Whether or not the Ruby Bundle Audit Analyzer is enabled. -740 */ -741 @Parameter(property = "bundleAuditAnalyzerEnabled") -742private Boolean bundleAuditAnalyzerEnabled; -743 -744/** -745 * Sets the path for the bundle-audit binary. -746 */ -747 @SuppressWarnings("CanBeFinal") -748 @Parameter(property = "bundleAuditPath") -749private String bundleAuditPath; -750 -751/** -752 * Sets the path for the working directory that the bundle-audit binary -753 * should be executed from. -754 */ -755 @SuppressWarnings("CanBeFinal") -756 @Parameter(property = "bundleAuditWorkingDirectory") -757private String bundleAuditWorkingDirectory; -758 -759/** -760 * Whether or not the CocoaPods Analyzer is enabled. -761 */ -762 @SuppressWarnings("CanBeFinal") -763 @Parameter(property = "cocoapodsAnalyzerEnabled") -764private Boolean cocoapodsAnalyzerEnabled; -765 -766/** -767 * Whether or not the Swift package Analyzer is enabled. -768 */ -769 @SuppressWarnings("CanBeFinal") -770 @Parameter(property = "swiftPackageManagerAnalyzerEnabled") -771private Boolean swiftPackageManagerAnalyzerEnabled; -772/** -773 * Whether or not the Swift package resolved Analyzer is enabled. -774 */ -775 @SuppressWarnings("CanBeFinal") -776 @Parameter(property = "swiftPackageResolvedAnalyzerEnabled") -777private Boolean swiftPackageResolvedAnalyzerEnabled; -778/** -779 * The URL of a Nexus server's REST API end point -780 * (http://domain/nexus/service/local). -781 */ -782 @SuppressWarnings("CanBeFinal") -783 @Parameter(property = "nexusUrl") -784private String nexusUrl; -785/** -786 * The id of a server defined in the settings.xml that configures the -787 * credentials (username and password) for a Nexus server's REST API end -788 * point. When not specified the communication with the Nexus server's REST -789 * API will be unauthenticated. -790 */ -791 @SuppressWarnings("CanBeFinal") -792 @Parameter(property = "nexusServerId") -793private String nexusServerId; -794/** -795 * Whether or not the configured proxy is used to connect to Nexus. -796 */ -797 @SuppressWarnings("CanBeFinal") -798 @Parameter(property = "nexusUsesProxy") -799private Boolean nexusUsesProxy; -800/** -801 * The database connection string. -802 */ -803 @SuppressWarnings("CanBeFinal") -804 @Parameter(property = "connectionString") -805private String connectionString; -806 -807/** -808 * The database driver name. An example would be org.h2.Driver. -809 */ -810 @SuppressWarnings("CanBeFinal") -811 @Parameter(property = "databaseDriverName") -812private String databaseDriverName; -813/** -814 * The path to the database driver if it is not on the class path. -815 */ -816 @SuppressWarnings("CanBeFinal") -817 @Parameter(property = "databaseDriverPath") -818private String databaseDriverPath; -819/** -820 * A reference to the settings.xml settings. -821 */ -822 @SuppressWarnings("CanBeFinal") -823 @Parameter(defaultValue = "${settings}", readonly = true, required = true) -824private org.apache.maven.settings.Settings settingsXml; -825/** -826 * The security dispatcher that can decrypt passwords in the settings.xml. -827 */ -828 @Component(role = SecDispatcher.class, hint = "default") -829private SecDispatcher securityDispatcher; -830/** -831 * The database user name. -832 */ -833 @Parameter(property = "databaseUser") -834private String databaseUser; -835/** -836 * The password to use when connecting to the database. -837 */ -838 @Parameter(property = "databasePassword") -839private String databasePassword; -840/** -841 * A comma-separated list of file extensions to add to analysis next to jar, -842 * zip, .... -843 */ -844 @SuppressWarnings("CanBeFinal") -845 @Parameter(property = "zipExtensions") -846private String zipExtensions; -847/** -848 * Skip Dependency Check altogether. -849 */ -850 @SuppressWarnings("CanBeFinal") -851 @Parameter(property = "dependency-check.skip", defaultValue = "false") -852privateboolean skip = false; -853/** -854 * Skip Analysis for Test Scope Dependencies. -855 */ -856 @SuppressWarnings("CanBeFinal") -857 @Parameter(property = "skipTestScope", defaultValue = "true") -858privateboolean skipTestScope = true; -859/** -860 * Skip Analysis for Runtime Scope Dependencies. -861 */ -862 @SuppressWarnings("CanBeFinal") -863 @Parameter(property = "skipRuntimeScope", defaultValue = "false") -864privateboolean skipRuntimeScope = false; -865/** -866 * Skip Analysis for Provided Scope Dependencies. -867 */ -868 @SuppressWarnings("CanBeFinal") -869 @Parameter(property = "skipProvidedScope", defaultValue = "false") -870privateboolean skipProvidedScope = false; -871 -872/** -873 * Skip Analysis for System Scope Dependencies. -874 */ -875 @SuppressWarnings("CanBeFinal") -876 @Parameter(property = "skipSystemScope", defaultValue = "false") -877privateboolean skipSystemScope = false; -878 -879/** -880 * Skip Analysis for dependencyManagement section. -881 */ -882 @SuppressWarnings("CanBeFinal") -883 @Parameter(property = "skipDependencyManagement", defaultValue = "true") -884privateboolean skipDependencyManagement = true; -885 -886/** -887 * Skip analysis for dependencies which type matches this regular -888 * expression. This filters on the `type` of dependency as defined in the -889 * dependency section: jar, pom, test-jar, etc. -890 */ -891 @SuppressWarnings("CanBeFinal") -892 @Parameter(property = "skipArtifactType") -893private String skipArtifactType; -894 -895/** -896 * The data directory, hold DC SQL DB. -897 */ -898 @SuppressWarnings("CanBeFinal") -899 @Parameter(property = "dataDirectory") -900private String dataDirectory; -901 -902/** -903 * The name of the DC DB. -904 */ -905 @SuppressWarnings("CanBeFinal") -906 @Parameter(property = "dbFilename") -907private String dbFilename; -908/** -909 * The server id in the settings.xml; used to retrieve encrypted passwords -910 * from the settings.xml. This is used for the database username and -911 * password. -912 */ -913 @SuppressWarnings("CanBeFinal") -914 @Parameter(property = "serverId") -915private String serverId; -916/** -917 * The NVD API Key. -918 */ -919 @SuppressWarnings("CanBeFinal") -920 @Parameter(property = "nvdApiKey") -921private String nvdApiKey; -922/** -923 * The maximum number of retry requests for a single call to the NVD API. -924 */ -925 @SuppressWarnings("CanBeFinal") -926 @Parameter(property = "nvdMaxRetryCount") -927private Integer nvdMaxRetryCount; -928/** -929 * The server id in the settings.xml; used to retrieve encrypted API Key -930 * from the settings.xml for the NVD API Key. Note that the password is used -931 * as the API Key -932 */ -933 @SuppressWarnings("CanBeFinal") -934 @Parameter(property = "nvdApiServerId") -935private String nvdApiServerId; -936 -937/** -938 * The number of hours to wait before checking for new updates from the NVD. -939 */ -940 @SuppressWarnings("CanBeFinal") -941 @Parameter(property = "nvdValidForHours") -942private Integer nvdValidForHours; -943 -944/** -945 * The NVD API Data Feed URL. -946 */ -947 @SuppressWarnings("CanBeFinal") -948 @Parameter(property = "nvdDatafeedUrl") -949private String nvdDatafeedUrl; -950 -951/** -952 * The server id in the settings.xml; used to retrieve encrypted passwords -953 * from the settings.xml for the NVD Data Feed. -954 */ -955 @SuppressWarnings("CanBeFinal") -956 @Parameter(property = "nvdDatafeedServerId") -957private String nvdDatafeedServerId; -958/** -959 * The username for basic auth to the NVD Data Feed. -960 */ -961 @SuppressWarnings("CanBeFinal") -962 @Parameter(property = "nvdUser") -963private String nvdUser; -964/** -965 * The password for basic auth to the NVD Data Feed. -966 */ -967 @SuppressWarnings("CanBeFinal") -968 @Parameter(property = "nvdPassword") -969private String nvdPassword; -970/** -971 * The time in milliseconds to wait between downloading NVD API data. -972 */ -973 @SuppressWarnings("CanBeFinal") -974 @Parameter(property = "nvdApiDelay") -975private Integer nvdApiDelay; -976 -977/** -978 * The path to dotnet core. -979 */ -980 @SuppressWarnings("CanBeFinal") -981 @Parameter(property = "pathToCore") -982private String pathToCore; -983/** -984 * The hosted suppressions file URL. -985 */ -986 @SuppressWarnings("CanBeFinal") -987 @Parameter(property = "hostedSuppressionsUrl") -988private String hostedSuppressionsUrl; -989/** -990 * Whether the hosted suppressions file will be updated regardless of the -991 * `autoupdate` settings. -992 */ -993 @SuppressWarnings("CanBeFinal") -994 @Parameter(property = "hostedSuppressionsForceUpdate") -995private Boolean hostedSuppressionsForceUpdate; -996/** -997 * Whether the hosted suppressions file will be used. -998 */ -999 @SuppressWarnings("CanBeFinal") -1000 @Parameter(property = "hostedSuppressionsEnabled") -1001private Boolean hostedSuppressionsEnabled; -1002/** -1003 * Skip excessive hosted suppression file update checks for a designated -1004 * duration in hours (defaults to 2 hours). -1005 */ -1006 @SuppressWarnings("CanBeFinal") -1007 @Parameter(property = "hostedSuppressionsValidForHours") -1008private Integer hostedSuppressionsValidForHours; -1009 -1010/** -1011 * The RetireJS Analyzer configuration: -1012 * <pre> -1013 * filters: an array of filter patterns that are used to exclude JS files that contain a match -1014 * filterNonVulnerable: a boolean that when true will remove non-vulnerable JS from the report -1015 * -1016 * Example: -1017 * &lt;retirejs&gt; -1018 * &lt;filters&gt; -1019 * &lt;filter&gt;copyright 2018\(c\) Jeremy Long&lt;/filter&gt; -1020 * &lt;/filters&gt; -1021 * &lt;filterNonVulnerable&gt;true&lt;/filterNonVulnerable&gt; -1022 * &lt;/retirejs&gt; -1023 * </pre> -1024 */ -1025 @SuppressWarnings("CanBeFinal") -1026 @Parameter(property = "retirejs") -1027privateRetirejs retirejs; -1028 -1029/** -1030 * The list of artifacts (and their transitive dependencies) to exclude from -1031 * the check. -1032 */ -1033 @Parameter(property = "odc.excludes") -1034private List<String> excludes; -1035 -1036/** -1037 * The artifact scope filter. -1038 */ -1039private Filter<String> artifactScopeExcluded; -1040 -1041/** -1042 * Filter for artifact type. -1043 */ -1044private Filter<String> artifactTypeExcluded; -1045 -1046/** -1047 * An collection of <code>fileSet</code>s that specify additional files -1048 * and/or directories (from the basedir) to analyze as part of the scan. If -1049 * not specified, defaults to Maven conventions of: src/main/resources, -1050 * src/main/filters, and src/main/webapp. Note, this cannot be set via the -1051 * command line - use `scanDirectory` instead. -1052 */ -1053 @Parameter -1054private List<FileSet> scanSet; -1055/** -1056 * A list of directories to scan. Note, this should only be used via the -1057 * command line - if configuring the directories to scan consider using the -1058 * `scanSet` instead. -1059 */ -1060 @Parameter(property = "scanDirectory") -1061private List<String> scanDirectory; -1062 -1063/** -1064 * Whether the project's plugins should also be scanned. -1065 */ -1066 @SuppressWarnings("CanBeFinal") -1067 @Parameter(property = "odc.plugins.scan", defaultValue = "false", required = false) -1068privateboolean scanPlugins = false; -1069/** -1070 * Whether the project's dependencies should also be scanned. -1071 */ -1072 @SuppressWarnings("CanBeFinal") -1073 @Parameter(property = "odc.dependencies.scan", defaultValue = "true", required = false) -1074privateboolean scanDependencies = true; -1075/** -1076 * The proxy configuration. -1077 */ -1078 @Parameter -1079privateProxyConfig proxy; -1080 -1081// </editor-fold> -1082//<editor-fold defaultstate="collapsed" desc="Base Maven implementation"> -1083/** -1084 * Determines if the groupId, artifactId, and version of the Maven -1085 * dependency and artifact match. -1086 * -1087 * @param d the Maven dependency -1088 * @param a the Maven artifact -1089 * @return true if the groupId, artifactId, and version match -1090 */ -1091privatestaticboolean artifactsMatch(org.apache.maven.model.Dependency d, Artifact a) { -1092return isEqualOrNull(a.getArtifactId(), d.getArtifactId()) -1093 && isEqualOrNull(a.getGroupId(), d.getGroupId()) -1094 && isEqualOrNull(a.getVersion(), d.getVersion()); -1095 } -1096 -1097/** -1098 * Compares two strings for equality; if both strings are null they are -1099 * considered equal. -1100 * -1101 * @param left the first string to compare -1102 * @param right the second string to compare -1103 * @return true if the strings are equal or if they are both null; otherwise -1104 * false. -1105 */ -1106privatestaticboolean isEqualOrNull(String left, String right) { -1107return (left != null && left.equals(right)) || (left == null && right == null); -1108 } -1109 -1110/** -1111 * Executes dependency-check. -1112 * -1113 * @throws MojoExecutionException thrown if there is an exception executing -1114 * the mojo -1115 * @throws MojoFailureException thrown if dependency-check failed the build -1116 */ -1117 @Override -1118publicvoid execute() throws MojoExecutionException, MojoFailureException { -1119 generatingSite = false; -1120finalboolean shouldSkip = Boolean.parseBoolean(System.getProperty("dependency-check.skip", Boolean.toString(skip))); -1121if (shouldSkip) { -1122 getLog().info("Skipping " + getName(Locale.US)); -1123 } else { -1124 project.setContextValue("dependency-check-output-dir", this.outputDirectory); -1125 runCheck(); -1126 } -1127 } -1128 -1129/** -1130 * Generates the Dependency-Check Site Report. -1131 * -1132 * @param sink the sink to write the report to -1133 * @param locale the locale to use when generating the report -1134 * @throws MavenReportException if a maven report exception occurs -1135 * @deprecated use -1136 * {@link #generate(org.apache.maven.doxia.sink.Sink, java.util.Locale)} -1137 * instead. -1138 */ -1139 @Deprecated -1140publicfinalvoid generate(@SuppressWarnings("deprecation") org.codehaus.doxia.sink.Sink sink, Locale locale) throws MavenReportException { -1141 generate((Sink) sink, locale); -1142 } -1143 -1144/** -1145 * Returns true if the Maven site is being generated. -1146 * -1147 * @return true if the Maven site is being generated -1148 */ -1149protectedboolean isGeneratingSite() { -1150return generatingSite; -1151 } -1152 -1153/** -1154 * Returns the connection string. -1155 * -1156 * @return the connection string -1157 */ -1158protected String getConnectionString() { -1159return connectionString; -1160 } -1161 -1162/** -1163 * Returns if the mojo should fail the build if an exception occurs. -1164 * -1165 * @return whether or not the mojo should fail the build -1166 */ -1167protectedboolean isFailOnError() { -1168return failOnError; -1169 } -1170 -1171/** -1172 * Generates the Dependency-Check Site Report. -1173 * -1174 * @param sink the sink to write the report to -1175 * @param locale the locale to use when generating the report -1176 * @throws MavenReportException if a maven report exception occurs -1177 */ -1178publicvoid generate(Sink sink, Locale locale) throws MavenReportException { -1179finalboolean shouldSkip = Boolean.parseBoolean(System.getProperty("dependency-check.skip", Boolean.toString(skip))); -1180if (shouldSkip) { -1181 getLog().info("Skipping report generation " + getName(Locale.US)); -1182return; -1183 } -1184 -1185 generatingSite = true; -1186 project.setContextValue("dependency-check-output-dir", getReportOutputDirectory()); -1187try { -1188 runCheck(); -1189 } catch (MojoExecutionException ex) { -1190thrownew MavenReportException(ex.getMessage(), ex); -1191 } catch (MojoFailureException ex) { -1192 getLog().warn("Vulnerabilities were identifies that exceed the CVSS threshold for failing the build"); -1193 } -1194 } -1195 -1196/** -1197 * Returns the correct output directory depending on if a site is being -1198 * executed or not. -1199 * -1200 * @return the directory to write the report(s) -1201 * @throws MojoExecutionException thrown if there is an error loading the -1202 * file path -1203 */ -1204protected File getCorrectOutputDirectory() throws MojoExecutionException { -1205return getCorrectOutputDirectory(this.project); -1206 } -1207 -1208/** -1209 * Returns the correct output directory depending on if a site is being -1210 * executed or not. -1211 * -1212 * @param current the Maven project to get the output directory from -1213 * @return the directory to write the report(s) -1214 */ -1215protected File getCorrectOutputDirectory(MavenProject current) { -1216final Object obj = current.getContextValue("dependency-check-output-dir"); -1217if (obj != null && obj instanceof File) { -1218return (File) obj; -1219 } -1220//else we guess -1221 File target = new File(current.getBuild().getDirectory()); -1222if (target.getParentFile() != null && "target".equals(target.getParentFile().getName())) { -1223 target = target.getParentFile(); -1224 } -1225return target; -1226 } -1227 -1228/** -1229 * Scans the project's artifacts and adds them to the engine's dependency -1230 * list. -1231 * -1232 * @param project the project to scan the dependencies of -1233 * @param engine the engine to use to scan the dependencies -1234 * @return a collection of exceptions that may have occurred while resolving -1235 * and scanning the dependencies -1236 */ -1237protected ExceptionCollection scanArtifacts(MavenProject project, Engine engine) { -1238return scanArtifacts(project, engine, false); -1239 } -1240 -1241/** -1242 * Scans the project's artifacts and adds them to the engine's dependency -1243 * list. -1244 * -1245 * @param project the project to scan the dependencies of -1246 * @param engine the engine to use to scan the dependencies -1247 * @param aggregate whether the scan is part of an aggregate build -1248 * @return a collection of exceptions that may have occurred while resolving -1249 * and scanning the dependencies -1250 */ -1251protected ExceptionCollection scanArtifacts(MavenProject project, Engine engine, boolean aggregate) { -1252try { -1253final List<String> filterItems = Collections.singletonList(String.format("%s:%s", project.getGroupId(), project.getArtifactId())); -1254final ProjectBuildingRequest buildingRequest = newResolveArtifactProjectBuildingRequest(project, project.getRemoteArtifactRepositories()); -1255//For some reason the filter does not filter out the project being analyzed -1256//if we pass in the filter below instead of null to the dependencyGraphBuilder -1257final DependencyNode dn = dependencyGraphBuilder.buildDependencyGraph(buildingRequest, null); -1258 -1259finalCollectingRootDependencyGraphVisitor collectorVisitor = newCollectingRootDependencyGraphVisitor(); -1260 -1261// exclude artifact by pattern and its dependencies -1262final DependencyNodeVisitor transitiveFilterVisitor = newFilteringDependencyTransitiveNodeVisitor(collectorVisitor, -1263new ArtifactDependencyNodeFilter(new PatternExcludesArtifactFilter(getExcludes()))); -1264// exclude exact artifact but not its dependencies, this filter must be appied on the root for first otherwise -1265// in case the exclude has the same groupId of the current bundle its direct dependencies are not visited -1266final DependencyNodeVisitor artifactFilter = new FilteringDependencyNodeVisitor(transitiveFilterVisitor, -1267new ArtifactDependencyNodeFilter(new ExcludesArtifactFilter(filterItems))); -1268 dn.accept(artifactFilter); -1269 -1270//collect dependencies with the filter - see comment above. -1271final Map<DependencyNode, List<DependencyNode>> nodes = collectorVisitor.getNodes(); -1272 -1273return collectDependencies(engine, project, nodes, buildingRequest, aggregate); -1274 } catch (DependencyGraphBuilderException ex) { -1275final String msg = String.format("Unable to build dependency graph on project %s", project.getName()); -1276 getLog().debug(msg, ex); -1277returnnew ExceptionCollection(ex); -1278 } -1279 } -1280 -1281/** -1282 * Scans the project's artifacts for plugin-dependencies and adds them to -1283 * the engine's dependency list. -1284 * -1285 * @param project the project to scan the plugin-dependencies of -1286 * @param engine the engine to use to scan the plugin-dependencies -1287 * @param exCollection the collection of exceptions that have previously -1288 * occurred -1289 * @return a collection of exceptions that may have occurred while resolving -1290 * and scanning the plugins and their dependencies -1291 */ -1292protected ExceptionCollection scanPlugins(MavenProject project, Engine engine, ExceptionCollection exCollection) { -1293 ExceptionCollection exCol = exCollection; -1294final Set<Artifact> plugins = new HashSet<>(); -1295final Set<Artifact> buildPlugins = getProject().getPluginArtifacts(); -1296final Set<Artifact> reportPlugins = getProject().getReportArtifacts(); -1297final Set<Artifact> extensions = getProject().getExtensionArtifacts(); -1298 -1299 plugins.addAll(buildPlugins); -1300 plugins.addAll(reportPlugins); -1301 plugins.addAll(extensions); -1302 -1303final ProjectBuildingRequest buildingRequest = newResolveArtifactProjectBuildingRequest(project, project.getPluginArtifactRepositories()); -1304for (Artifact plugin : plugins) { -1305try { -1306final Artifact resolved = artifactResolver.resolveArtifact(buildingRequest, plugin).getArtifact(); -1307 -1308 exCol = addPluginToDependencies(project, engine, resolved, "pom.xml (plugins)", exCol); -1309 -1310final DefaultDependableCoordinate pluginCoordinate = new DefaultDependableCoordinate(); -1311 pluginCoordinate.setGroupId(resolved.getGroupId()); -1312 pluginCoordinate.setArtifactId(resolved.getArtifactId()); -1313 pluginCoordinate.setVersion(resolved.getVersion()); -1314 -1315final String parent = buildReference(resolved.getGroupId(), resolved.getArtifactId(), resolved.getVersion()); -1316for (Artifact artifact : resolveArtifactDependencies(pluginCoordinate, project)) { -1317 exCol = addPluginToDependencies(project, engine, artifact, parent, exCol); -1318 } -1319 } catch (ArtifactResolverException ex) { -1320thrownew RuntimeException(ex); -1321 } catch (IllegalArgumentException ex) { -1322thrownew RuntimeException(ex); -1323 } catch (DependencyResolverException ex) { -1324thrownew RuntimeException(ex); -1325 } -1326 } -1327 -1328returnnull; -1329 -1330 } -1331 -1332private ExceptionCollection addPluginToDependencies(MavenProject project, Engine engine, Artifact artifact, String parent, ExceptionCollection exCollection) { -1333 ExceptionCollection exCol = exCollection; -1334final String groupId = artifact.getGroupId(); -1335final String artifactId = artifact.getArtifactId(); -1336final String version = artifact.getVersion(); -1337final File artifactFile = artifact.getFile(); -1338if (artifactFile.isFile()) { -1339final List<ArtifactVersion> availableVersions = artifact.getAvailableVersions(); -1340 -1341final List<Dependency> deps = engine.scan(artifactFile.getAbsoluteFile(), -1342 project.getName() + " (plugins)"); -1343if (deps != null) { -1344 Dependency d = null; -1345if (deps.size() == 1) { -1346 d = deps.get(0); -1347 } else { -1348for (Dependency possible : deps) { -1349if (artifactFile.getAbsoluteFile().equals(possible.getActualFile())) { -1350 d = possible; -1351break; -1352 } -1353 } -1354for (Dependency dep : deps) { -1355if (d != null && d != dep) { -1356final String includedBy = buildReference(groupId, artifactId, version); -1357 dep.addIncludedBy(includedBy, "plugins"); -1358 } -1359 } -1360 } -1361if (d != null) { -1362final MavenArtifact ma = new MavenArtifact(groupId, artifactId, version); -1363 d.addAsEvidence("pom", ma, Confidence.HIGHEST); -1364if (parent != null) { -1365 d.addIncludedBy(parent, "plugins"); -1366 } else { -1367final String includedby = buildReference( -1368 project.getGroupId(), -1369 project.getArtifactId(), -1370 project.getVersion()); -1371 d.addIncludedBy(includedby, "plugins"); -1372 } -1373if (availableVersions != null) { -1374for (ArtifactVersion av : availableVersions) { -1375 d.addAvailableVersion(av.toString()); -1376 } -1377 } -1378 } -1379 } -1380 } else { -1381if (exCol == null) { -1382 exCol = new ExceptionCollection(); -1383 } -1384 exCol.addException(new DependencyNotFoundException("Unable to resolve plugin: " -1385 + groupId + ":" + artifactId + ":" + version)); -1386 } -1387 -1388return exCol; -1389 } -1390 -1391private String buildReference(final String groupId, final String artifactId, final String version) { -1392 String includedBy; -1393try { -1394final PackageURL purl = new PackageURL("maven", groupId, artifactId, version, null, null); -1395 includedBy = purl.toString(); -1396 } catch (MalformedPackageURLException ex) { -1397 getLog().warn("Unable to generate build reference for " + groupId -1398 + ":" + artifactId + ":" + version, ex); -1399 includedBy = groupId + ":" + artifactId + ":" + version; -1400 } -1401return includedBy; -1402 } -1403 -1404protected Set<Artifact> resolveArtifactDependencies(final DependableCoordinate artifact, MavenProject project) -1405throws DependencyResolverException { -1406final ProjectBuildingRequest buildingRequest = newResolveArtifactProjectBuildingRequest(project, project.getRemoteArtifactRepositories()); -1407 -1408final Iterable<ArtifactResult> artifactResults = dependencyResolver.resolveDependencies(buildingRequest, artifact, null); -1409 -1410final Set<Artifact> artifacts = new HashSet<>(); -1411 -1412for (ArtifactResult artifactResult : artifactResults) { -1413 artifacts.add(artifactResult.getArtifact()); -1414 } -1415 -1416return artifacts; -1417 -1418 } -1419 -1420/** -1421 * Converts the dependency to a dependency node object. -1422 * -1423 * @param nodes the list of dependency nodes -1424 * @param buildingRequest the Maven project building request -1425 * @param parent the parent node -1426 * @param dependency the dependency to convert -1427 * @return the resulting dependency node -1428 * @throws ArtifactResolverException thrown if the artifact could not be -1429 * retrieved -1430 */ -1431private DependencyNode toDependencyNode(List<DependencyNode> nodes, ProjectBuildingRequest buildingRequest, -1432 DependencyNode parent, org.apache.maven.model.Dependency dependency) throws ArtifactResolverException { -1433 -1434final DefaultArtifactCoordinate coordinate = new DefaultArtifactCoordinate(); -1435 -1436 coordinate.setGroupId(dependency.getGroupId()); -1437 coordinate.setArtifactId(dependency.getArtifactId()); -1438 String version = null; -1439final VersionRange vr; -1440try { -1441 vr = VersionRange.createFromVersionSpec(dependency.getVersion()); -1442 } catch (InvalidVersionSpecificationException ex) { -1443thrownew ArtifactResolverException("Invalid version specification: " -1444 + dependency.getGroupId() + ":" -1445 + dependency.getArtifactId() + ":" -1446 + dependency.getVersion(), ex); -1447 } -1448if (vr.hasRestrictions()) { -1449 version = findVersion(nodes, dependency.getGroupId(), dependency.getArtifactId()); -1450if (version == null) { -1451//TODO - this still may fail if the restriction is not a valid version number (i.e. only 2.9 instead of 2.9.1) -1452//need to get available versions and filter on the restrictions. -1453if (vr.getRecommendedVersion() != null) { -1454 version = vr.getRecommendedVersion().toString(); -1455 } elseif (vr.hasRestrictions()) { -1456for (Restriction restriction : vr.getRestrictions()) { -1457if (restriction.getLowerBound() != null) { -1458 version = restriction.getLowerBound().toString(); -1459 } -1460if (restriction.getUpperBound() != null) { -1461 version = restriction.getUpperBound().toString(); -1462 } -1463 } -1464 } else { -1465 version = vr.toString(); -1466 } -1467 } -1468 } -1469if (version == null) { -1470 version = dependency.getVersion(); -1471 } -1472 coordinate.setVersion(version); -1473 -1474final ArtifactType type = session.getRepositorySession().getArtifactTypeRegistry().get(dependency.getType()); -1475 coordinate.setExtension(type.getExtension()); -1476 coordinate.setClassifier((null == dependency.getClassifier() || dependency.getClassifier().isEmpty()) -1477 ? type.getClassifier() : dependency.getClassifier()); -1478final Artifact artifact = artifactResolver.resolveArtifact(buildingRequest, coordinate).getArtifact(); -1479 artifact.setScope(dependency.getScope()); -1480returnnew DefaultDependencyNode(parent, artifact, dependency.getVersion(), dependency.getScope(), null); -1481 } -1482 -1483/** -1484 * Returns the version from the list of nodes that match the given groupId -1485 * and artifactID. -1486 * -1487 * @param nodes the nodes to search -1488 * @param groupId the group id to find -1489 * @param artifactId the artifact id to find -1490 * @return the version from the list of nodes that match the given groupId -1491 * and artifactID; otherwise <code>null</code> is returned -1492 */ -1493private String findVersion(List<DependencyNode> nodes, String groupId, String artifactId) { -1494final Optional<DependencyNode> f = nodes.stream().filter(p -1495 -> groupId.equals(p.getArtifact().getGroupId()) -1496 && artifactId.equals(p.getArtifact().getArtifactId())).findFirst(); -1497if (f.isPresent()) { -1498return f.get().getArtifact().getVersion(); -1499 } -1500returnnull; -1501 } -1502 -1503/** -1504 * Collect dependencies from the dependency management section. -1505 * -1506 * @param engine reference to the ODC engine -1507 * @param buildingRequest the Maven project building request -1508 * @param project the project being analyzed -1509 * @param nodes the list of dependency nodes -1510 * @param aggregate whether or not this is an aggregate analysis -1511 * @return a collection of exceptions if any occurred; otherwise -1512 * <code>null</code> -1513 */ -1514private ExceptionCollection collectDependencyManagementDependencies(Engine engine, ProjectBuildingRequest buildingRequest, -1515 MavenProject project, List<DependencyNode> nodes, boolean aggregate) { -1516if (skipDependencyManagement || project.getDependencyManagement() == null) { -1517returnnull; -1518 } -1519 -1520 ExceptionCollection exCol = null; -1521for (org.apache.maven.model.Dependency dependency : project.getDependencyManagement().getDependencies()) { -1522try { -1523 nodes.add(toDependencyNode(nodes, buildingRequest, null, dependency)); -1524 } catch (ArtifactResolverException ex) { -1525 getLog().debug(String.format("Aggregate : %s", aggregate)); -1526boolean addException = true; -1527//CSOFF: EmptyBlock -1528if (!aggregate) { -1529// do nothing, exception is to be reported -1530 } elseif (addReactorDependency(engine, -1531new DefaultArtifact(dependency.getGroupId(), dependency.getArtifactId(), -1532 dependency.getVersion(), dependency.getScope(), dependency.getType(), dependency.getClassifier(), -1533new DefaultArtifactHandler()), project)) { -1534 addException = false; -1535 } -1536//CSON: EmptyBlock -1537if (addException) { -1538if (exCol == null) { -1539 exCol = new ExceptionCollection(); -1540 } -1541 exCol.addException(ex); -1542 } -1543 } -1544 } -1545return exCol; -1546 } -1547 -1548/** -1549 * Resolves the projects artifacts using Aether and scans the resulting -1550 * dependencies. -1551 * -1552 * @param engine the core dependency-check engine -1553 * @param project the project being scanned -1554 * @param nodeMap the map of dependency nodes, generally obtained via the -1555 * DependencyGraphBuilder using the CollectingRootDependencyGraphVisitor -1556 * @param buildingRequest the Maven project building request -1557 * @param aggregate whether the scan is part of an aggregate build -1558 * @return a collection of exceptions that may have occurred while resolving -1559 * and scanning the dependencies -1560 */ -1561//CSOFF: OperatorWrap -1562private ExceptionCollection collectMavenDependencies(Engine engine, MavenProject project, -1563 Map<DependencyNode, List<DependencyNode>> nodeMap, ProjectBuildingRequest buildingRequest, boolean aggregate) { -1564 -1565final List<ArtifactResult> allResolvedDeps = new ArrayList<>(); -1566 -1567//dependency management -1568final List<DependencyNode> dmNodes = new ArrayList<>(); -1569 ExceptionCollection exCol = collectDependencyManagementDependencies(engine, buildingRequest, project, dmNodes, aggregate); -1570for (DependencyNode dependencyNode : dmNodes) { -1571 exCol = scanDependencyNode(dependencyNode, null, engine, project, allResolvedDeps, buildingRequest, aggregate, exCol); -1572 } -1573 -1574//dependencies -1575for (Map.Entry<DependencyNode, List<DependencyNode>> entry : nodeMap.entrySet()) { -1576 exCol = scanDependencyNode(entry.getKey(), null, engine, project, allResolvedDeps, buildingRequest, aggregate, exCol); -1577for (DependencyNode dependencyNode : entry.getValue()) { -1578 exCol = scanDependencyNode(dependencyNode, entry.getKey(), engine, project, allResolvedDeps, buildingRequest, aggregate, exCol); -1579 } -1580 } -1581return exCol; -1582 } -1583//CSON: OperatorWrap -1584 -1585/** -1586 * Utility method for a work-around to MSHARED-998 -1587 * -1588 * @param allDeps The List of ArtifactResults for all dependencies -1589 * @param unresolvedArtifact The ArtifactCoordinate of the artifact we're -1590 * looking for -1591 * @param project The project in whose context resolution was attempted -1592 * @return the resolved artifact matching with {@code unresolvedArtifact} -1593 * @throws DependencyNotFoundException If {@code unresolvedArtifact} could -1594 * not be found within {@code allDeps} -1595 */ -1596private Artifact findInAllDeps(final List<ArtifactResult> allDeps, final Artifact unresolvedArtifact, -1597final MavenProject project) -1598throws DependencyNotFoundException { -1599 Artifact result = null; -1600for (final ArtifactResult res : allDeps) { -1601if (sameArtifact(res, unresolvedArtifact)) { -1602 result = res.getArtifact(); -1603break; -1604 } -1605 } -1606if (result == null) { -1607thrownew DependencyNotFoundException(String.format("Expected dependency not found in resolved artifacts for " -1608 + "dependency %s of project-artifact %s", unresolvedArtifact, project.getArtifactId())); -1609 } -1610return result; -1611 } -1612 -1613/** -1614 * Utility method for a work-around to MSHARED-998 -1615 * -1616 * @param res A single ArtifactResult obtained from the DependencyResolver -1617 * @param unresolvedArtifact The unresolved Artifact from the -1618 * dependencyGraph that we try to find -1619 * @return {@code true} when unresolvedArtifact is non-null and matches with -1620 * the artifact of res -1621 */ -1622privateboolean sameArtifact(final ArtifactResult res, final Artifact unresolvedArtifact) { -1623if (res == null || res.getArtifact() == null || unresolvedArtifact == null) { -1624return false; -1625 } -1626boolean result = Objects.equals(res.getArtifact().getGroupId(), unresolvedArtifact.getGroupId()); -1627 result &= Objects.equals(res.getArtifact().getArtifactId(), unresolvedArtifact.getArtifactId()); -1628// accept any version as matching "LATEST" and any non-snapshot version as matching "RELEASE" meta-version -1629if ("RELEASE".equals(unresolvedArtifact.getBaseVersion())) { -1630 result &= !res.getArtifact().isSnapshot(); -1631 } elseif (!"LATEST".equals(unresolvedArtifact.getBaseVersion())) { -1632 result &= Objects.equals(res.getArtifact().getBaseVersion(), unresolvedArtifact.getBaseVersion()); -1633 } -1634 result &= Objects.equals(res.getArtifact().getClassifier(), unresolvedArtifact.getClassifier()); -1635 result &= Objects.equals(res.getArtifact().getType(), unresolvedArtifact.getType()); -1636return result; -1637 } -1638 -1639/** -1640 * @param project the {@link MavenProject} -1641 * @param dependencyNode the {@link DependencyNode} -1642 * @return the name to be used when creating a -1643 * {@link Dependency#getProjectReferences() project reference} in a -1644 * {@link Dependency}. The behavior of this method returns {@link MavenProject#getName() project.getName()}<code> + ":" + -1645 * </code> -1646 * {@link DependencyNode#getArtifact() dependencyNode.getArtifact()}{@link Artifact#getScope() .getScope()}. -1647 */ -1648protected String createProjectReferenceName(MavenProject project, DependencyNode dependencyNode) { -1649return project.getName() + ":" + dependencyNode.getArtifact().getScope(); -1650 } -1651 -1652/** -1653 * Scans the projects dependencies including the default (or defined) -1654 * FileSets. -1655 * -1656 * @param engine the core dependency-check engine -1657 * @param project the project being scanned -1658 * @param nodes the list of dependency nodes, generally obtained via the -1659 * DependencyGraphBuilder -1660 * @param buildingRequest the Maven project building request -1661 * @param aggregate whether the scan is part of an aggregate build -1662 * @return a collection of exceptions that may have occurred while resolving -1663 * and scanning the dependencies -1664 */ -1665private ExceptionCollection collectDependencies(Engine engine, MavenProject project, -1666 Map<DependencyNode, List<DependencyNode>> nodes, ProjectBuildingRequest buildingRequest, boolean aggregate) { -1667 -1668 ExceptionCollection exCol; -1669 exCol = collectMavenDependencies(engine, project, nodes, buildingRequest, aggregate); -1670 -1671final List<FileSet> projectScan; -1672 -1673if (scanDirectory != null && !scanDirectory.isEmpty()) { -1674if (scanSet == null) { -1675 scanSet = new ArrayList<>(); -1676 } -1677 scanDirectory.forEach(d -> { -1678final FileSet fs = new FileSet(); -1679 fs.setDirectory(d); -1680 fs.addInclude(INCLUDE_ALL); -1681 scanSet.add(fs); -1682 }); -1683 } -1684 -1685if (scanSet == null || scanSet.isEmpty()) { -1686// Define the default FileSets -1687final FileSet resourcesSet = new FileSet(); -1688final FileSet filtersSet = new FileSet(); -1689final FileSet webappSet = new FileSet(); -1690final FileSet mixedLangSet = new FileSet(); -1691try { -1692 resourcesSet.setDirectory(new File(project.getBasedir(), "src/main/resources").getCanonicalPath()); -1693 resourcesSet.addInclude(INCLUDE_ALL); -1694 filtersSet.setDirectory(new File(project.getBasedir(), "src/main/filters").getCanonicalPath()); -1695 filtersSet.addInclude(INCLUDE_ALL); -1696 webappSet.setDirectory(new File(project.getBasedir(), "src/main/webapp").getCanonicalPath()); -1697 webappSet.addInclude(INCLUDE_ALL); -1698 mixedLangSet.setDirectory(project.getBasedir().getCanonicalPath()); -1699 mixedLangSet.addInclude("package.json"); -1700 mixedLangSet.addInclude("package-lock.json"); -1701 mixedLangSet.addInclude("npm-shrinkwrap.json"); -1702 mixedLangSet.addInclude("Gopkg.lock"); -1703 mixedLangSet.addInclude("go.mod"); -1704 mixedLangSet.addInclude("yarn.lock"); -1705 mixedLangSet.addInclude("pnpm-lock.yaml"); -1706 mixedLangSet.addExclude("/node_modules/"); -1707 } catch (IOException ex) { -1708if (exCol == null) { -1709 exCol = new ExceptionCollection(); -1710 } -1711 exCol.addException(ex); -1712 } -1713 projectScan = new ArrayList<>(); -1714 projectScan.add(resourcesSet); -1715 projectScan.add(filtersSet); -1716 projectScan.add(webappSet); -1717 projectScan.add(mixedLangSet); -1718 -1719 } elseif (aggregate) { -1720 projectScan = new ArrayList<>(); -1721for (FileSet copyFrom : scanSet) { -1722//deep copy of the FileSet - modifying the directory if it is not absolute. -1723final FileSet fsCopy = new FileSet(); -1724final File f = new File(copyFrom.getDirectory()); -1725if (f.isAbsolute()) { -1726 fsCopy.setDirectory(copyFrom.getDirectory()); -1727 } else { -1728try { -1729 fsCopy.setDirectory(new File(project.getBasedir(), copyFrom.getDirectory()).getCanonicalPath()); -1730 } catch (IOException ex) { -1731if (exCol == null) { -1732 exCol = new ExceptionCollection(); -1733 } -1734 exCol.addException(ex); -1735 fsCopy.setDirectory(copyFrom.getDirectory()); -1736 } -1737 } -1738 fsCopy.setDirectoryMode(copyFrom.getDirectoryMode()); -1739 fsCopy.setExcludes(copyFrom.getExcludes()); -1740 fsCopy.setFileMode(copyFrom.getFileMode()); -1741 fsCopy.setFollowSymlinks(copyFrom.isFollowSymlinks()); -1742 fsCopy.setIncludes(copyFrom.getIncludes()); -1743 fsCopy.setLineEnding(copyFrom.getLineEnding()); -1744 fsCopy.setMapper(copyFrom.getMapper()); -1745 fsCopy.setModelEncoding(copyFrom.getModelEncoding()); -1746 fsCopy.setOutputDirectory(copyFrom.getOutputDirectory()); -1747 fsCopy.setUseDefaultExcludes(copyFrom.isUseDefaultExcludes()); -1748 projectScan.add(fsCopy); -1749 } -1750 } else { -1751 projectScan = scanSet; -1752 } -1753 -1754// Iterate through FileSets and scan included files -1755final FileSetManager fileSetManager = new FileSetManager(); -1756for (FileSet fileSet : projectScan) { -1757 getLog().debug("Scanning fileSet: " + fileSet.getDirectory()); -1758final String[] includedFiles = fileSetManager.getIncludedFiles(fileSet); -1759for (String include : includedFiles) { -1760final File includeFile = new File(fileSet.getDirectory(), include).getAbsoluteFile(); -1761if (includeFile.exists()) { -1762 engine.scan(includeFile, project.getName()); -1763 } -1764 } -1765 } -1766return exCol; -1767 } -1768 -1769/** -1770 * Checks if the current artifact is actually in the reactor projects that -1771 * have not yet been built. If true a virtual dependency is created based on -1772 * the evidence in the project. -1773 * -1774 * @param engine a reference to the engine being used to scan -1775 * @param artifact the artifact being analyzed in the mojo -1776 * @param depender The project that depends on this virtual dependency -1777 * @return <code>true</code> if the artifact is in the reactor; otherwise -1778 * <code>false</code> -1779 */ -1780privateboolean addReactorDependency(Engine engine, Artifact artifact, final MavenProject depender) { -1781return addVirtualDependencyFromReactor(engine, artifact, depender, "Unable to resolve %s as it has not been built yet " -1782 + "- creating a virtual dependency instead."); -1783 } -1784 -1785/** -1786 * Checks if the current artifact is actually in the reactor projects. If -1787 * true a virtual dependency is created based on the evidence in the -1788 * project. -1789 * -1790 * @param engine a reference to the engine being used to scan -1791 * @param artifact the artifact being analyzed in the mojo -1792 * @param depender The project that depends on this virtual dependency -1793 * @param infoLogTemplate the template for the infoLog entry written when a -1794 * virtual dependency is added. Needs a single %s placeholder for the -1795 * location of the displayName in the message -1796 * @return <code>true</code> if the artifact is in the reactor; otherwise -1797 * <code>false</code> -1798 */ -1799privateboolean addVirtualDependencyFromReactor(Engine engine, Artifact artifact, -1800final MavenProject depender, String infoLogTemplate) { -1801 -1802 getLog().debug(String.format("Checking the reactor projects (%d) for %s:%s:%s", -1803 reactorProjects.size(), -1804 artifact.getGroupId(), artifact.getArtifactId(), artifact.getVersion())); -1805 -1806for (MavenProject prj : reactorProjects) { -1807 -1808 getLog().debug(String.format("Comparing %s:%s:%s to %s:%s:%s", -1809 artifact.getGroupId(), artifact.getArtifactId(), artifact.getBaseVersion(), -1810 prj.getGroupId(), prj.getArtifactId(), prj.getVersion())); -1811 -1812if (prj.getArtifactId().equals(artifact.getArtifactId()) -1813 && prj.getGroupId().equals(artifact.getGroupId()) -1814 && prj.getVersion().equals(artifact.getBaseVersion())) { -1815 -1816final String displayName = String.format("%s:%s:%s", -1817 prj.getGroupId(), prj.getArtifactId(), prj.getVersion()); -1818 getLog().info(String.format(infoLogTemplate, -1819 displayName)); -1820final Dependency d = newDependency(prj); -1821final String key = String.format("%s:%s:%s", prj.getGroupId(), prj.getArtifactId(), prj.getVersion()); -1822 d.setSha1sum(Checksum.getSHA1Checksum(key)); -1823 d.setSha256sum(Checksum.getSHA256Checksum(key)); -1824 d.setMd5sum(Checksum.getMD5Checksum(key)); -1825 d.setEcosystem(JarAnalyzer.DEPENDENCY_ECOSYSTEM); -1826 d.setDisplayFileName(displayName); -1827 d.addProjectReference(depender.getName()); -1828final String includedby = buildReference( -1829 depender.getGroupId(), -1830 depender.getArtifactId(), -1831 depender.getVersion()); -1832 d.addIncludedBy(includedby); -1833 d.addEvidence(EvidenceType.PRODUCT, "project", "artifactid", prj.getArtifactId(), Confidence.HIGHEST); -1834 d.addEvidence(EvidenceType.VENDOR, "project", "artifactid", prj.getArtifactId(), Confidence.LOW); -1835 -1836 d.addEvidence(EvidenceType.VENDOR, "project", "groupid", prj.getGroupId(), Confidence.HIGHEST); -1837 d.addEvidence(EvidenceType.PRODUCT, "project", "groupid", prj.getGroupId(), Confidence.LOW); -1838 d.setEcosystem(JarAnalyzer.DEPENDENCY_ECOSYSTEM); -1839 Identifier id; -1840try { -1841 id = new PurlIdentifier(StandardTypes.MAVEN, artifact.getGroupId(), -1842 artifact.getArtifactId(), artifact.getVersion(), Confidence.HIGHEST); -1843 } catch (MalformedPackageURLException ex) { -1844 getLog().debug("Unable to create PackageURL object:" + key); -1845 id = new GenericIdentifier("maven:" + key, Confidence.HIGHEST); -1846 } -1847 d.addSoftwareIdentifier(id); -1848//TODO unify the setName/version and package path - they are equivelent ideas submitted by two seperate committers -1849 d.setName(String.format("%s:%s", prj.getGroupId(), prj.getArtifactId())); -1850 d.setVersion(prj.getVersion()); -1851 d.setPackagePath(displayName); -1852if (prj.getDescription() != null) { -1853 JarAnalyzer.addDescription(d, prj.getDescription(), "project", "description"); -1854 } -1855for (License l : prj.getLicenses()) { -1856final StringBuilder license = new StringBuilder(); -1857if (l.getName() != null) { -1858 license.append(l.getName()); -1859 } -1860if (l.getUrl() != null) { -1861 license.append(" ").append(l.getUrl()); -1862 } -1863if (d.getLicense() == null) { -1864 d.setLicense(license.toString()); -1865 } elseif (!d.getLicense().contains(license)) { -1866 d.setLicense(String.format("%s%n%s", d.getLicense(), license)); -1867 } -1868 } -1869 engine.addDependency(d); -1870returntrue; -1871 } -1872 } -1873return false; -1874 } -1875 -1876 Dependency newDependency(MavenProject prj) { -1877final File pom = new File(prj.getBasedir(), "pom.xml"); -1878 -1879if (pom.isFile()) { -1880 getLog().debug("Adding virtual dependency from pom.xml"); -1881returnnew Dependency(pom, true); -1882 } elseif (prj.getFile().isFile()) { -1883 getLog().debug("Adding virtual dependency from file"); -1884returnnew Dependency(prj.getFile(), true); -1885 } else { -1886returnnew Dependency(true); -1887 } -1888 } -1889 -1890/** -1891 * Checks if the current artifact is actually in the reactor projects. If -1892 * true a virtual dependency is created based on the evidence in the -1893 * project. -1894 * -1895 * @param engine a reference to the engine being used to scan -1896 * @param artifact the artifact being analyzed in the mojo -1897 * @param depender The project that depends on this virtual dependency -1898 * @return <code>true</code> if the artifact is a snapshot artifact in the -1899 * reactor; otherwise <code>false</code> -1900 */ -1901privateboolean addSnapshotReactorDependency(Engine engine, Artifact artifact, final MavenProject depender) { -1902if (!artifact.isSnapshot()) { -1903return false; -1904 } -1905return addVirtualDependencyFromReactor(engine, artifact, depender, "Found snapshot reactor project in aggregate for %s - " -1906 + "creating a virtual dependency as the snapshot found in the repository may contain outdated dependencies."); -1907 } -1908 -1909/** -1910 * @param project The target project to create a building request for. -1911 * @param repos the artifact repositories to use. -1912 * @return Returns a new ProjectBuildingRequest populated from the current -1913 * session and the target project remote repositories, used to resolve -1914 * artifacts. -1915 */ -1916public ProjectBuildingRequest newResolveArtifactProjectBuildingRequest(MavenProject project, List<ArtifactRepository> repos) { -1917final ProjectBuildingRequest buildingRequest = new DefaultProjectBuildingRequest(session.getProjectBuildingRequest()); -1918 buildingRequest.setRemoteRepositories(repos); -1919 buildingRequest.setProject(project); -1920return buildingRequest; -1921 } -1922 -1923/** -1924 * Executes the dependency-check scan and generates the necessary report. -1925 * -1926 * @throws MojoExecutionException thrown if there is an exception running -1927 * the scan -1928 * @throws MojoFailureException thrown if dependency-check is configured to -1929 * fail the build -1930 */ -1931protectedvoid runCheck() throws MojoExecutionException, MojoFailureException { -1932 muteJCS(); -1933try (Engine engine = initializeEngine()) { -1934 ExceptionCollection exCol = null; -1935if (scanDependencies) { -1936 exCol = scanDependencies(engine); -1937 } -1938if (scanPlugins) { -1939 exCol = scanPlugins(engine, exCol); -1940 } -1941try { -1942 engine.analyzeDependencies(); -1943 } catch (ExceptionCollection ex) { -1944 exCol = handleAnalysisExceptions(exCol, ex); -1945 } -1946if (exCol == null || !exCol.isFatal()) { -1947 -1948 File outputDir = getCorrectOutputDirectory(this.getProject()); -1949if (outputDir == null) { -1950//in some regards we shouldn't be writing this, but we are anyway. -1951//we shouldn't write this because nothing is configured to generate this report. -1952 outputDir = new File(this.getProject().getBuild().getDirectory()); -1953 } -1954try { -1955final MavenProject p = this.getProject(); -1956for (String f : getFormats()) { -1957 engine.writeReports(p.getName(), p.getGroupId(), p.getArtifactId(), p.getVersion(), outputDir, f, exCol); -1958 } -1959 } catch (ReportException ex) { -1960if (exCol == null) { -1961 exCol = new ExceptionCollection(ex); -1962 } else { -1963 exCol.addException(ex); -1964 } -1965if (this.isFailOnError()) { -1966thrownew MojoExecutionException("One or more exceptions occurred during dependency-check analysis", exCol); -1967 } else { -1968 getLog().debug("Error writing the report", ex); -1969 } -1970 } -1971 showSummary(this.getProject(), engine.getDependencies()); -1972 checkForFailure(engine.getDependencies()); -1973if (exCol != null && this.isFailOnError()) { -1974thrownew MojoExecutionException("One or more exceptions occurred during dependency-check analysis", exCol); -1975 } -1976 } -1977 } catch (DatabaseException ex) { -1978if (getLog().isDebugEnabled()) { -1979 getLog().debug("Database connection error", ex); -1980 } -1981final String msg = "An exception occurred connecting to the local database. Please see the log file for more details."; -1982if (this.isFailOnError()) { -1983thrownew MojoExecutionException(msg, ex); -1984 } -1985 getLog().error(msg, ex); -1986 } finally { -1987 getSettings().cleanup(); -1988 } -1989 } -1990 -1991/** -1992 * Combines the two exception collections and if either are fatal, throw an -1993 * MojoExecutionException -1994 * -1995 * @param currentEx the primary exception collection -1996 * @param newEx the new exception collection to add -1997 * @return the combined exception collection -1998 * @throws MojoExecutionException thrown if dependency-check is configured -1999 * to fail on errors -2000 */ -2001private ExceptionCollection handleAnalysisExceptions(ExceptionCollection currentEx, ExceptionCollection newEx) throws MojoExecutionException { -2002 ExceptionCollection returnEx = currentEx; -2003if (returnEx == null) { -2004 returnEx = newEx; -2005 } else { -2006 returnEx.getExceptions().addAll(newEx.getExceptions()); -2007if (newEx.isFatal()) { -2008 returnEx.setFatal(true); -2009 } -2010 } -2011if (returnEx.isFatal()) { -2012final String msg = String.format("Fatal exception(s) analyzing %s", getProject().getName()); -2013if (this.isFailOnError()) { -2014thrownew MojoExecutionException(msg, returnEx); -2015 } -2016 getLog().error(msg); -2017if (getLog().isDebugEnabled()) { -2018 getLog().debug(returnEx); -2019 } -2020 } else { -2021final String msg = String.format("Exception(s) analyzing %s", getProject().getName()); -2022if (getLog().isDebugEnabled()) { -2023 getLog().debug(msg, returnEx); -2024 } -2025 } -2026return returnEx; -2027 } -2028 -2029/** -2030 * Scans the dependencies of the projects. -2031 * -2032 * @param engine the engine used to perform the scanning -2033 * @return a collection of exceptions -2034 * @throws MojoExecutionException thrown if a fatal exception occurs -2035 */ -2036protectedabstract ExceptionCollection scanDependencies(Engine engine) throws MojoExecutionException; -2037 -2038/** -2039 * Scans the plugins of the projects. -2040 * -2041 * @param engine the engine used to perform the scanning -2042 * @param exCol the collection of any exceptions that have previously been -2043 * captured. -2044 * @return a collection of exceptions -2045 * @throws MojoExecutionException thrown if a fatal exception occurs -2046 */ -2047protectedabstract ExceptionCollection scanPlugins(Engine engine, ExceptionCollection exCol) throws MojoExecutionException; -2048 -2049/** -2050 * Returns the report output directory. -2051 * -2052 * @return the report output directory -2053 */ -2054 @Override -2055public File getReportOutputDirectory() { -2056return reportOutputDirectory; -2057 } -2058 -2059/** -2060 * Sets the Reporting output directory. -2061 * -2062 * @param directory the output directory -2063 */ -2064 @Override -2065publicvoid setReportOutputDirectory(File directory) { -2066 reportOutputDirectory = directory; -2067 } -2068 -2069/** -2070 * Returns the output directory. -2071 * -2072 * @return the output directory -2073 */ -2074public File getOutputDirectory() { -2075return outputDirectory; -2076 } -2077 -2078/** -2079 * Returns whether this is an external report. This method always returns -2080 * true. -2081 * -2082 * @return <code>true</code> -2083 */ -2084 @Override -2085publicfinalboolean isExternalReport() { -2086returntrue; -2087 } -2088 -2089/** -2090 * Returns the output name. -2091 * -2092 * @return the output name -2093 */ -2094 @Override -2095public String getOutputName() { -2096final Set<String> selectedFormats = getFormats(); -2097if (selectedFormats.contains("HTML") || selectedFormats.contains("ALL") || selectedFormats.size() > 1) { -2098return"dependency-check-report"; -2099 } elseif (selectedFormats.contains("JENKINS")) { -2100return"dependency-check-jenkins.html"; -2101 } elseif (selectedFormats.contains("XML")) { -2102return"dependency-check-report.xml"; -2103 } elseif (selectedFormats.contains("JUNIT")) { -2104return"dependency-check-junit.xml"; -2105 } elseif (selectedFormats.contains("JSON")) { -2106return"dependency-check-report.json"; -2107 } elseif (selectedFormats.contains("SARIF")) { -2108return"dependency-check-report.sarif"; -2109 } elseif (selectedFormats.contains("CSV")) { -2110return"dependency-check-report.csv"; -2111 } else { -2112 getLog().warn("Unknown report format used during site generation."); -2113return"dependency-check-report"; -2114 } -2115 } -2116 -2117/** -2118 * Returns the category name. -2119 * -2120 * @return the category name -2121 */ -2122 @Override -2123public String getCategoryName() { -2124return MavenReport.CATEGORY_PROJECT_REPORTS; -2125 } -2126//</editor-fold> -2127 -2128/** -2129 * Initializes a new <code>Engine</code> that can be used for scanning. This -2130 * method should only be called in a try-with-resources to ensure that the -2131 * engine is properly closed. -2132 * -2133 * @return a newly instantiated <code>Engine</code> -2134 * @throws DatabaseException thrown if there is a database exception -2135 */ -2136protected Engine initializeEngine() throws DatabaseException { -2137 populateSettings(); -2138returnnew Engine(settings); -2139 } -2140 -2141//CSOFF: MethodLength -2142/** -2143 * Takes the properties supplied and updates the dependency-check settings. -2144 * Additionally, this sets the system properties required to change the -2145 * proxy URL, port, and connection timeout. -2146 */ -2147protectedvoid populateSettings() { -2148 settings = new Settings(); -2149 InputStream mojoProperties = null; -2150try { -2151 mojoProperties = this.getClass().getClassLoader().getResourceAsStream(PROPERTIES_FILE); -2152 settings.mergeProperties(mojoProperties); -2153 } catch (IOException ex) { -2154 getLog().warn("Unable to load the dependency-check maven mojo.properties file."); -2155if (getLog().isDebugEnabled()) { -2156 getLog().debug("", ex); -2157 } -2158 } finally { -2159if (mojoProperties != null) { -2160try { -2161 mojoProperties.close(); -2162 } catch (IOException ex) { -2163if (getLog().isDebugEnabled()) { -2164 getLog().debug("", ex); -2165 } -2166 } -2167 } -2168 } -2169 settings.setStringIfNotEmpty(Settings.KEYS.MAVEN_LOCAL_REPO, mavenSettings.getLocalRepository()); -2170 settings.setBooleanIfNotNull(Settings.KEYS.AUTO_UPDATE, autoUpdate); -2171 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_EXPERIMENTAL_ENABLED, enableExperimental); -2172 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_RETIRED_ENABLED, enableRetired); -2173 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_GOLANG_DEP_ENABLED, golangDepEnabled); -2174 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_GOLANG_MOD_ENABLED, golangModEnabled); -2175 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_DART_ENABLED, dartAnalyzerEnabled); -2176 settings.setStringIfNotNull(Settings.KEYS.ANALYZER_GOLANG_PATH, pathToGo); -2177 settings.setStringIfNotNull(Settings.KEYS.ANALYZER_YARN_PATH, pathToYarn); -2178 settings.setStringIfNotNull(Settings.KEYS.ANALYZER_PNPM_PATH, pathToPnpm); -2179 -2180// use global maven proxy if provided -2181final Proxy mavenProxy = getMavenProxy(); -2182if (mavenProxy != null) { -2183final String existing = System.getProperty("https.proxyHost"); -2184if (existing == null && mavenProxy.getHost() != null && !mavenProxy.getHost().isEmpty()) { -2185 System.setProperty("https.proxyHost", mavenProxy.getHost()); -2186if (mavenProxy.getPort() > 0) { -2187 System.setProperty("https.proxyPort", String.valueOf(mavenProxy.getPort())); -2188 } -2189if (mavenProxy.getUsername() != null && !mavenProxy.getUsername().isEmpty()) { -2190 System.setProperty("https.proxyUser", mavenProxy.getUsername()); -2191 } -2192if (mavenProxy.getPassword() != null && !mavenProxy.getPassword().isEmpty()) { -2193 System.setProperty("https.proxyPassword", mavenProxy.getPassword()); -2194 } -2195if (mavenProxy.getNonProxyHosts() != null && !mavenProxy.getNonProxyHosts().isEmpty()) { -2196 System.setProperty("https.nonProxyHosts", mavenProxy.getNonProxyHosts()); -2197 } -2198 } -2199 -2200 settings.setString(Settings.KEYS.PROXY_SERVER, mavenProxy.getHost()); -2201 settings.setString(Settings.KEYS.PROXY_PORT, Integer.toString(mavenProxy.getPort())); -2202final String userName = mavenProxy.getUsername(); -2203 String password = mavenProxy.getPassword(); -2204if (password != null && !password.isEmpty()) { -2205if (settings.getBoolean(Settings.KEYS.PROXY_DISABLE_SCHEMAS, true)) { -2206 System.setProperty("jdk.http.auth.tunneling.disabledSchemes", ""); -2207 } -2208try { -2209 password = decryptPasswordFromSettings(password); -2210 } catch (SecDispatcherException ex) { -2211 password = handleSecDispatcherException("proxy", mavenProxy.getId(), password, ex); -2212 } -2213 } -2214 settings.setStringIfNotNull(Settings.KEYS.PROXY_USERNAME, userName); -2215 settings.setStringIfNotNull(Settings.KEYS.PROXY_PASSWORD, password); -2216 settings.setStringIfNotNull(Settings.KEYS.PROXY_NON_PROXY_HOSTS, mavenProxy.getNonProxyHosts()); -2217 } elseif (System.getProperty("http.proxyHost") != null) { -2218//else use standard Java system properties -2219 settings.setString(Settings.KEYS.PROXY_SERVER, System.getProperty("http.proxyHost", "")); -2220if (System.getProperty("http.proxyPort") != null) { -2221 settings.setString(Settings.KEYS.PROXY_PORT, System.getProperty("http.proxyPort")); -2222 } -2223if (System.getProperty("http.proxyUser") != null) { -2224 settings.setString(Settings.KEYS.PROXY_USERNAME, System.getProperty("http.proxyUser")); -2225 } -2226if (System.getProperty("http.proxyPassword") != null) { -2227 settings.setString(Settings.KEYS.PROXY_PASSWORD, System.getProperty("http.proxyPassword")); -2228 } -2229if (System.getProperty("http.nonProxyHosts") != null) { -2230 settings.setString(Settings.KEYS.PROXY_NON_PROXY_HOSTS, System.getProperty("http.nonProxyHosts")); -2231 } -2232 } elseif (this.proxy != null && this.proxy.getHost() != null) { -2233// or use configured <proxy> -2234 settings.setString(Settings.KEYS.PROXY_SERVER, this.proxy.getHost()); -2235 settings.setString(Settings.KEYS.PROXY_PORT, Integer.toString(this.proxy.getPort())); -2236// user name and password from <server> entry settings.xml -2237 configureServerCredentials(this.proxy.getServerId(), Settings.KEYS.PROXY_USERNAME, Settings.KEYS.PROXY_PASSWORD); -2238 } -2239 -2240final String[] suppressions = determineSuppressions(); -2241 settings.setArrayIfNotEmpty(Settings.KEYS.SUPPRESSION_FILE, suppressions); -2242 settings.setBooleanIfNotNull(Settings.KEYS.UPDATE_VERSION_CHECK_ENABLED, versionCheckEnabled); -2243 settings.setStringIfNotEmpty(Settings.KEYS.CONNECTION_TIMEOUT, connectionTimeout); -2244 settings.setStringIfNotEmpty(Settings.KEYS.CONNECTION_READ_TIMEOUT, readTimeout); -2245 settings.setStringIfNotEmpty(Settings.KEYS.HINTS_FILE, hintsFile); -2246 settings.setFloat(Settings.KEYS.JUNIT_FAIL_ON_CVSS, junitFailOnCVSS); -2247 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_JAR_ENABLED, jarAnalyzerEnabled); -2248 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_NUSPEC_ENABLED, nuspecAnalyzerEnabled); -2249 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_NUGETCONF_ENABLED, nugetconfAnalyzerEnabled); -2250 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_LIBMAN_ENABLED, libmanAnalyzerEnabled); -2251 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_CENTRAL_ENABLED, centralAnalyzerEnabled); -2252 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_CENTRAL_USE_CACHE, centralAnalyzerUseCache); -2253 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_ARTIFACTORY_ENABLED, artifactoryAnalyzerEnabled); -2254 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_NEXUS_ENABLED, nexusAnalyzerEnabled); -2255 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_ASSEMBLY_ENABLED, assemblyAnalyzerEnabled); -2256 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_MSBUILD_PROJECT_ENABLED, msbuildAnalyzerEnabled); -2257 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_ARCHIVE_ENABLED, archiveAnalyzerEnabled); -2258 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_KNOWN_EXPLOITED_ENABLED, knownExploitedEnabled); -2259 settings.setStringIfNotEmpty(Settings.KEYS.KEV_URL, knownExploitedUrl); -2260 settings.setStringIfNotEmpty(Settings.KEYS.ADDITIONAL_ZIP_EXTENSIONS, zipExtensions); -2261 settings.setStringIfNotEmpty(Settings.KEYS.ANALYZER_ASSEMBLY_DOTNET_PATH, pathToCore); -2262 settings.setStringIfNotEmpty(Settings.KEYS.ANALYZER_NEXUS_URL, nexusUrl); -2263 configureServerCredentials(nexusServerId, Settings.KEYS.ANALYZER_NEXUS_USER, Settings.KEYS.ANALYZER_NEXUS_PASSWORD); -2264 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_NEXUS_USES_PROXY, nexusUsesProxy); -2265 settings.setStringIfNotNull(Settings.KEYS.ANALYZER_ARTIFACTORY_URL, artifactoryAnalyzerUrl); -2266 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_ARTIFACTORY_USES_PROXY, artifactoryAnalyzerUseProxy); -2267 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_ARTIFACTORY_PARALLEL_ANALYSIS, artifactoryAnalyzerParallelAnalysis); -2268if (Boolean.TRUE.equals(artifactoryAnalyzerEnabled)) { -2269if (artifactoryAnalyzerServerId != null) { -2270 configureServerCredentials(artifactoryAnalyzerServerId, Settings.KEYS.ANALYZER_ARTIFACTORY_API_USERNAME, -2271 Settings.KEYS.ANALYZER_ARTIFACTORY_API_TOKEN); -2272 } else { -2273 settings.setStringIfNotNull(Settings.KEYS.ANALYZER_ARTIFACTORY_API_USERNAME, artifactoryAnalyzerUsername); -2274 settings.setStringIfNotNull(Settings.KEYS.ANALYZER_ARTIFACTORY_API_TOKEN, artifactoryAnalyzerApiToken); -2275 } -2276 settings.setStringIfNotNull(Settings.KEYS.ANALYZER_ARTIFACTORY_BEARER_TOKEN, artifactoryAnalyzerBearerToken); -2277 } -2278 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_PYTHON_DISTRIBUTION_ENABLED, pyDistributionAnalyzerEnabled); -2279 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_PYTHON_PACKAGE_ENABLED, pyPackageAnalyzerEnabled); -2280 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_RUBY_GEMSPEC_ENABLED, rubygemsAnalyzerEnabled); -2281 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_OPENSSL_ENABLED, opensslAnalyzerEnabled); -2282 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_CMAKE_ENABLED, cmakeAnalyzerEnabled); -2283 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_AUTOCONF_ENABLED, autoconfAnalyzerEnabled); -2284 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_MAVEN_INSTALL_ENABLED, mavenInstallAnalyzerEnabled); -2285 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_PIP_ENABLED, pipAnalyzerEnabled); -2286 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_PIPFILE_ENABLED, pipfileAnalyzerEnabled); -2287 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_POETRY_ENABLED, poetryAnalyzerEnabled); -2288 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_COMPOSER_LOCK_ENABLED, composerAnalyzerEnabled); -2289 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_CPANFILE_ENABLED, cpanfileAnalyzerEnabled); -2290 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_NODE_PACKAGE_ENABLED, nodeAnalyzerEnabled); -2291 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_NODE_AUDIT_ENABLED, nodeAuditAnalyzerEnabled); -2292 settings.setStringIfNotNull(Settings.KEYS.ANALYZER_NODE_AUDIT_URL, nodeAuditAnalyzerUrl); -2293 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_NODE_AUDIT_USE_CACHE, nodeAuditAnalyzerUseCache); -2294 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_NODE_PACKAGE_SKIPDEV, nodePackageSkipDevDependencies); -2295 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_NODE_AUDIT_SKIPDEV, nodeAuditSkipDevDependencies); -2296 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_YARN_AUDIT_ENABLED, yarnAuditAnalyzerEnabled); -2297 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_PNPM_AUDIT_ENABLED, pnpmAuditAnalyzerEnabled); -2298 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_RETIREJS_ENABLED, retireJsAnalyzerEnabled); -2299 settings.setStringIfNotNull(Settings.KEYS.ANALYZER_RETIREJS_REPO_JS_URL, retireJsUrl); -2300 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_RETIREJS_FORCEUPDATE, retireJsForceUpdate); -2301if (retireJsUser == null && retireJsPassword == null && retireJsUrlServerId != null) { -2302 configureServerCredentials(retireJsUrlServerId, Settings.KEYS.ANALYZER_RETIREJS_REPO_JS_USER, Settings.KEYS.ANALYZER_RETIREJS_REPO_JS_PASSWORD); -2303 } else { -2304 settings.setStringIfNotEmpty(Settings.KEYS.ANALYZER_RETIREJS_REPO_JS_USER, retireJsUser); -2305 settings.setStringIfNotEmpty(Settings.KEYS.ANALYZER_RETIREJS_REPO_JS_PASSWORD, retireJsPassword); -2306 } -2307 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_MIX_AUDIT_ENABLED, mixAuditAnalyzerEnabled); -2308 settings.setStringIfNotNull(Settings.KEYS.ANALYZER_MIX_AUDIT_PATH, mixAuditPath); -2309 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_BUNDLE_AUDIT_ENABLED, bundleAuditAnalyzerEnabled); -2310 settings.setStringIfNotNull(Settings.KEYS.ANALYZER_BUNDLE_AUDIT_PATH, bundleAuditPath); -2311 settings.setStringIfNotNull(Settings.KEYS.ANALYZER_BUNDLE_AUDIT_WORKING_DIRECTORY, bundleAuditWorkingDirectory); -2312 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_COCOAPODS_ENABLED, cocoapodsAnalyzerEnabled); -2313 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_SWIFT_PACKAGE_MANAGER_ENABLED, swiftPackageManagerAnalyzerEnabled); -2314 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_SWIFT_PACKAGE_RESOLVED_ENABLED, swiftPackageResolvedAnalyzerEnabled); -2315 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_OSSINDEX_ENABLED, ossindexAnalyzerEnabled); -2316 settings.setStringIfNotEmpty(Settings.KEYS.ANALYZER_OSSINDEX_URL, ossindexAnalyzerUrl); -2317 configureServerCredentials(ossIndexServerId, Settings.KEYS.ANALYZER_OSSINDEX_USER, Settings.KEYS.ANALYZER_OSSINDEX_PASSWORD); -2318 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_OSSINDEX_USE_CACHE, ossindexAnalyzerUseCache); -2319 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_OSSINDEX_WARN_ONLY_ON_REMOTE_ERRORS, ossIndexWarnOnlyOnRemoteErrors); -2320if (retirejs != null) { -2321 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_RETIREJS_FILTER_NON_VULNERABLE, retirejs.getFilterNonVulnerable()); -2322 settings.setArrayIfNotEmpty(Settings.KEYS.ANALYZER_RETIREJS_FILTERS, retirejs.getFilters()); -2323 } -2324//Database configuration -2325 settings.setStringIfNotEmpty(Settings.KEYS.DB_DRIVER_NAME, databaseDriverName); -2326 settings.setStringIfNotEmpty(Settings.KEYS.DB_DRIVER_PATH, databaseDriverPath); -2327 settings.setStringIfNotEmpty(Settings.KEYS.DB_CONNECTION_STRING, connectionString); -2328if (databaseUser == null && databasePassword == null && serverId != null) { -2329 configureServerCredentials(serverId, Settings.KEYS.DB_USER, Settings.KEYS.DB_PASSWORD); -2330 } else { -2331 settings.setStringIfNotEmpty(Settings.KEYS.DB_USER, databaseUser); -2332 settings.setStringIfNotEmpty(Settings.KEYS.DB_PASSWORD, databasePassword); -2333 } -2334 settings.setStringIfNotEmpty(Settings.KEYS.DATA_DIRECTORY, dataDirectory); -2335 settings.setStringIfNotEmpty(Settings.KEYS.DB_FILE_NAME, dbFilename); -2336 settings.setIntIfNotNull(Settings.KEYS.NVD_API_DELAY, nvdApiDelay); -2337 settings.setStringIfNotEmpty(Settings.KEYS.NVD_API_DATAFEED_URL, nvdDatafeedUrl); -2338 settings.setIntIfNotNull(Settings.KEYS.NVD_API_VALID_FOR_HOURS, nvdValidForHours); -2339 settings.setIntIfNotNull(Settings.KEYS.NVD_API_MAX_RETRY_COUNT, nvdMaxRetryCount); -2340if (nvdApiKey == null && nvdApiServerId != null) { -2341 configureServerCredentialsApiKey(nvdApiServerId, Settings.KEYS.NVD_API_KEY); -2342 } else { -2343 settings.setStringIfNotEmpty(Settings.KEYS.NVD_API_KEY, nvdApiKey); -2344 } -2345if (nvdUser == null && nvdPassword == null && nvdDatafeedServerId != null) { -2346 configureServerCredentials(nvdDatafeedServerId, Settings.KEYS.NVD_API_DATAFEED_USER, Settings.KEYS.NVD_API_DATAFEED_PASSWORD); -2347 } else { -2348 settings.setStringIfNotEmpty(Settings.KEYS.NVD_API_DATAFEED_USER, nvdUser); -2349 settings.setStringIfNotEmpty(Settings.KEYS.NVD_API_DATAFEED_PASSWORD, nvdPassword); -2350 } -2351 settings.setBooleanIfNotNull(Settings.KEYS.PRETTY_PRINT, prettyPrint); -2352 artifactScopeExcluded = newArtifactScopeExcluded(skipTestScope, skipProvidedScope, skipSystemScope, skipRuntimeScope); -2353 artifactTypeExcluded = newArtifactTypeExcluded(skipArtifactType); -2354if (suppressionFileUser == null && suppressionFilePassword == null && suppressionFileServerId != null) { -2355 configureServerCredentials(suppressionFileServerId, Settings.KEYS.SUPPRESSION_FILE_USER, Settings.KEYS.SUPPRESSION_FILE_PASSWORD); -2356 } else { -2357 settings.setStringIfNotEmpty(Settings.KEYS.SUPPRESSION_FILE_USER, suppressionFileUser); -2358 settings.setStringIfNotEmpty(Settings.KEYS.SUPPRESSION_FILE_PASSWORD, suppressionFilePassword); -2359 } -2360 settings.setIntIfNotNull(Settings.KEYS.HOSTED_SUPPRESSIONS_VALID_FOR_HOURS, hostedSuppressionsValidForHours); -2361 settings.setStringIfNotNull(Settings.KEYS.HOSTED_SUPPRESSIONS_URL, hostedSuppressionsUrl); -2362 settings.setBooleanIfNotNull(Settings.KEYS.HOSTED_SUPPRESSIONS_FORCEUPDATE, hostedSuppressionsForceUpdate); -2363 settings.setBooleanIfNotNull(Settings.KEYS.HOSTED_SUPPRESSIONS_ENABLED, hostedSuppressionsEnabled); -2364 } -2365//CSON: MethodLength -2366 -2367/** -2368 * Retrieves the server credentials from the settings.xml, decrypts the -2369 * password, and places the values into the settings under the given key -2370 * names. -2371 * -2372 * @param serverId the server id -2373 * @param userSettingKey the property name for the username -2374 * @param passwordSettingKey the property name for the password -2375 */ -2376privatevoid configureServerCredentials(String serverId, String userSettingKey, String passwordSettingKey) { -2377if (serverId != null) { -2378final Server server = settingsXml.getServer(serverId); -2379if (server != null) { -2380final String username = server.getUsername(); -2381 String password = null; -2382try { -2383 password = decryptPasswordFromSettings(server.getPassword()); -2384 } catch (SecDispatcherException ex) { -2385 password = handleSecDispatcherException("server", serverId, server.getPassword(), ex); -2386 } -2387 settings.setStringIfNotEmpty(userSettingKey, username); -2388 settings.setStringIfNotEmpty(passwordSettingKey, password); -2389 } else { -2390 getLog().error(String.format("Server '%s' not found in the settings.xml file", serverId)); -2391 } -2392 } -2393 } -2394 -2395/** -2396 * Retrieves the server credentials from the settings.xml, decrypts the -2397 * password, and places the values into the settings under the given key -2398 * names. This is used to retrieve an encrypted password as an API key. -2399 * -2400 * @param serverId the server id -2401 * @param apiKeySetting the property name for the username -2402 */ -2403privatevoid configureServerCredentialsApiKey(String serverId, String apiKeySetting) { -2404if (serverId != null) { -2405final Server server = settingsXml.getServer(serverId); -2406if (server != null) { -2407 String password = null; -2408try { -2409 password = decryptPasswordFromSettings(server.getPassword()); -2410 } catch (SecDispatcherException ex) { -2411 password = handleSecDispatcherException("server", serverId, server.getPassword(), ex); -2412 } -2413 settings.setStringIfNotEmpty(apiKeySetting, password); -2414 } else { -2415 getLog().error(String.format("Server '%s' not found in the settings.xml file", serverId)); -2416 } -2417 } -2418 } -2419 -2420/** -2421 * Decrypts a password from the Maven settings if it needs to be decrypted. -2422 * If it's not encrypted the input password will be returned unchanged. -2423 * -2424 * @param password the original password value from the settings.xml -2425 * @return the decrypted password from the Maven configuration -2426 * @throws SecDispatcherException thrown if there is an error decrypting the -2427 * password -2428 */ -2429private String decryptPasswordFromSettings(String password) throws SecDispatcherException { -2430//The following fix was copied from: -2431// https://github.com/bsorrentino/maven-confluence-plugin/blob/master/maven-confluence-reporting-plugin/src/main/java/org/bsc/maven/confluence/plugin/AbstractBaseConfluenceMojo.java -2432// -2433// FIX to resolve -2434// org.sonatype.plexus.components.sec.dispatcher.SecDispatcherException: -2435// java.io.FileNotFoundException: ~/.settings-security.xml (No such file or directory) -2436// -2437if (securityDispatcher instanceof DefaultSecDispatcher) { -2438 ((DefaultSecDispatcher) securityDispatcher).setConfigurationFile("~/.m2/settings-security.xml"); -2439 } -2440 -2441return securityDispatcher.decrypt(password); -2442 } -2443 -2444/** -2445 * Handles a SecDispatcherException that was thrown at an attempt to decrypt -2446 * an encrypted password from the Maven settings. -2447 * -2448 * @param settingsElementName - "server" or "proxy" -2449 * @param settingsElementId - value of the id attribute of the proxy resp. -2450 * server element to which the password belongs -2451 * @param passwordValueFromSettings - original, undecrypted password value -2452 * from the settings -2453 * @param ex - the Exception to handle -2454 * @return the password fallback value to go on with, might be a not working -2455 * one. -2456 */ -2457private String handleSecDispatcherException(String settingsElementName, String settingsElementId, String passwordValueFromSettings, -2458 SecDispatcherException ex) { -2459 String password = passwordValueFromSettings; -2460if (ex.getCause() instanceof FileNotFoundException -2461 || (ex.getCause() != null && ex.getCause().getCause() instanceof FileNotFoundException)) { -2462//maybe its not encrypted? -2463final String tmp = passwordValueFromSettings; -2464if (tmp.startsWith("{") && tmp.endsWith("}")) { -2465 getLog().error(String.format( -2466"Unable to decrypt the %s password for %s id '%s' in settings.xml%n\tCause: %s", -2467 settingsElementName, settingsElementName, settingsElementId, ex.getMessage())); -2468 } else { -2469 password = tmp; -2470 } -2471 } else { -2472 getLog().error(String.format( -2473"Unable to decrypt the %s password for %s id '%s' in settings.xml%n\tCause: %s", -2474 settingsElementName, settingsElementName, settingsElementId, ex.getMessage())); -2475 } -2476return password; -2477 } -2478 -2479/** -2480 * Combines the configured suppressionFile and suppressionFiles into a -2481 * single array. -2482 * -2483 * @return an array of suppression file paths -2484 */ -2485private String[] determineSuppressions() { -2486 String[] suppressions = suppressionFiles; -2487if (suppressionFile != null) { -2488if (suppressions == null) { -2489 suppressions = new String[]{suppressionFile}; -2490 } else { -2491 suppressions = Arrays.copyOf(suppressions, suppressions.length + 1); -2492 suppressions[suppressions.length - 1] = suppressionFile; -2493 } -2494 } -2495return suppressions; -2496 } -2497 -2498/** -2499 * Hacky method of muting the noisy logging from JCS -2500 */ -2501privatevoid muteJCS() { -2502 System.setProperty("jcs.logSystem", "slf4j"); -2503if (!getLog().isDebugEnabled()) { -2504 Slf4jAdapter.muteLogging(true); -2505 } -2506 } -2507 -2508/** -2509 * Returns the maven proxy. -2510 * -2511 * @return the maven proxy -2512 */ -2513private Proxy getMavenProxy() { -2514if (mavenSettings != null) { -2515final List<Proxy> proxies = mavenSettings.getProxies(); -2516if (proxies != null && !proxies.isEmpty()) { -2517if (mavenSettingsProxyId != null) { -2518for (Proxy proxy : proxies) { -2519if (mavenSettingsProxyId.equalsIgnoreCase(proxy.getId())) { -2520return proxy; -2521 } -2522 } -2523 } else { -2524for (Proxy aProxy : proxies) { -2525if (aProxy.isActive()) { -2526return aProxy; -2527 } -2528 } -2529 } -2530 } -2531 } -2532returnnull; -2533 } -2534 -2535/** -2536 * Returns a reference to the current project. This method is used instead -2537 * of auto-binding the project via component annotation in concrete -2538 * implementations of this. If the child has a -2539 * <code>@Component MavenProject project;</code> defined then the abstract -2540 * class (i.e. this class) will not have access to the current project (just -2541 * the way Maven works with the binding). -2542 * -2543 * @return returns a reference to the current project -2544 */ -2545protected MavenProject getProject() { -2546return project; -2547 } -2548 -2549/** -2550 * Returns the list of Maven Projects in this build. +141privatefinal List<File> scannedFiles = new ArrayList<>(); +142//</editor-fold> +143// <editor-fold defaultstate="collapsed" desc="Maven bound parameters and components"> +144/** +145 * Sets whether or not the mojo should fail if an error occurs. +146 */ +147 @SuppressWarnings("CanBeFinal") +148 @Parameter(property = "failOnError", defaultValue = "true", required = true) +149privateboolean failOnError; +150 +151/** +152 * The Maven Project Object. +153 */ +154 @SuppressWarnings("CanBeFinal") +155 @Parameter(property = "project", required = true, readonly = true) +156private MavenProject project; +157/** +158 * List of Maven project of the current build +159 */ +160 @SuppressWarnings("CanBeFinal") +161 @Parameter(readonly = true, required = true, property = "reactorProjects") +162private List<MavenProject> reactorProjects; +163/** +164 * The entry point towards a Maven version independent way of resolving +165 * artifacts (handles both Maven 3.0 Sonatype and Maven 3.1+ eclipse Aether +166 * implementations). +167 */ +168 @SuppressWarnings("CanBeFinal") +169 @Component +170private ArtifactResolver artifactResolver; +171/** +172 * The entry point towards a Maven version independent way of resolving +173 * dependencies (handles both Maven 3.0 Sonatype and Maven 3.1+ eclipse +174 * Aether implementations). Contrary to the ArtifactResolver this resolver +175 * also takes into account the additional repositories defined in the +176 * dependency-path towards transitive dependencies. +177 */ +178 @SuppressWarnings("CanBeFinal") +179 @Component +180private DependencyResolver dependencyResolver; +181 +182/** +183 * The Maven Session. +184 */ +185 @SuppressWarnings("CanBeFinal") +186 @Parameter(defaultValue = "${session}", readonly = true, required = true) +187private MavenSession session; +188 +189/** +190 * Component within Maven to build the dependency graph. +191 */ +192 @Component +193private DependencyGraphBuilder dependencyGraphBuilder; +194 +195/** +196 * The output directory. This generally maps to "target". +197 */ +198 @SuppressWarnings("CanBeFinal") +199 @Parameter(defaultValue = "${project.build.directory}", required = true, property = "odc.outputDirectory") +200private File outputDirectory; +201/** +202 * This is a reference to the &gt;reporting&lt; sections +203 * <code>outputDirectory</code>. This cannot be configured in the +204 * dependency-check mojo directly. This generally maps to "target/site". +205 */ +206 @Parameter(property = "project.reporting.outputDirectory", readonly = true) +207private File reportOutputDirectory; +208/** +209 * Specifies if the build should be failed if a CVSS score above a specified +210 * level is identified. The default is 11 which means since the CVSS scores +211 * are 0-10, by default the build will never fail. +212 */ +213 @SuppressWarnings("CanBeFinal") +214 @Parameter(property = "failBuildOnCVSS", defaultValue = "11", required = true) +215privatefloat failBuildOnCVSS = 11f; +216/** +217 * Specifies the CVSS score that is considered a "test" failure when +218 * generating a jUnit style report. The default value is 0 - all +219 * vulnerabilities are considered a failure. +220 */ +221 @SuppressWarnings("CanBeFinal") +222 @Parameter(property = "junitFailOnCVSS", defaultValue = "0", required = true) +223privatefloat junitFailOnCVSS = 0; +224/** +225 * Fail the build if any dependency has a vulnerability listed. +226 * +227 * @deprecated use {@link BaseDependencyCheckMojo#failBuildOnCVSS} with a +228 * value of 0 instead +229 */ +230 @SuppressWarnings("CanBeFinal") +231 @Parameter(property = "failBuildOnAnyVulnerability", defaultValue = "false", required = true) +232 @Deprecated +233privateboolean failBuildOnAnyVulnerability = false; +234/** +235 * Sets whether auto-updating of the NVD CVE data is enabled. It is not +236 * recommended that this be turned to false. Default is true. +237 */ +238 @SuppressWarnings("CanBeFinal") +239 @Parameter(property = "autoUpdate") +240private Boolean autoUpdate; +241/** +242 * Sets whether Experimental analyzers are enabled. Default is false. +243 */ +244 @SuppressWarnings("CanBeFinal") +245 @Parameter(property = "enableExperimental") +246private Boolean enableExperimental; +247/** +248 * Sets whether retired analyzers are enabled. Default is false. +249 */ +250 @SuppressWarnings("CanBeFinal") +251 @Parameter(property = "enableRetired") +252private Boolean enableRetired; +253/** +254 * Sets whether the Golang Dependency analyzer is enabled. Default is true. +255 */ +256 @SuppressWarnings("CanBeFinal") +257 @Parameter(property = "golangDepEnabled") +258private Boolean golangDepEnabled; +259/** +260 * Sets whether Golang Module Analyzer is enabled; this requires `go` to be +261 * installed. Default is true. +262 */ +263 @SuppressWarnings("CanBeFinal") +264 @Parameter(property = "golangModEnabled") +265private Boolean golangModEnabled; +266/** +267 * Sets the path to `go`. +268 */ +269 @SuppressWarnings("CanBeFinal") +270 @Parameter(property = "pathToGo") +271private String pathToGo; +272 +273/** +274 * Sets the path to `yarn`. +275 */ +276 @SuppressWarnings("CanBeFinal") +277 @Parameter(property = "pathToYarn") +278private String pathToYarn; +279/** +280 * Sets the path to `pnpm`. +281 */ +282 @SuppressWarnings("CanBeFinal") +283 @Parameter(property = "pathToPnpm") +284private String pathToPnpm; +285/** +286 * Use pom dependency information for snapshot dependencies that are part of +287 * the Maven reactor while aggregate scanning a multi-module project. +288 */ +289 @Parameter(property = "dependency-check.virtualSnapshotsFromReactor", defaultValue = "true") +290private Boolean virtualSnapshotsFromReactor; +291/** +292 * The report format to be generated (HTML, XML, CSV, JSON, JUNIT, SARIF, +293 * JENKINS, GITLAB, ALL). Multiple formats can be selected using a comma +294 * delineated list. +295 */ +296 @SuppressWarnings("CanBeFinal") +297 @Parameter(property = "format", defaultValue = "HTML", required = true) +298private String format = "HTML"; +299 +300/** +301 * Whether or not the XML and JSON report formats should be pretty printed. +302 * The default is false. +303 */ +304 @Parameter(property = "prettyPrint") +305private Boolean prettyPrint; +306/** +307 * The report format to be generated (HTML, XML, CSV, JSON, JUNIT, SARIF, +308 * JENKINS, GITLAB, ALL). Multiple formats can be selected using a comma +309 * delineated list. +310 */ +311 @Parameter(property = "formats", required = true) +312private String[] formats; +313/** +314 * The Maven settings. +315 */ +316 @SuppressWarnings("CanBeFinal") +317 @Parameter(property = "mavenSettings", defaultValue = "${settings}") +318private org.apache.maven.settings.Settings mavenSettings; +319 +320/** +321 * The maven settings proxy id. +322 */ +323 @SuppressWarnings("CanBeFinal") +324 @Parameter(property = "mavenSettingsProxyId") +325private String mavenSettingsProxyId; +326 +327/** +328 * The Connection Timeout. +329 */ +330 @SuppressWarnings("CanBeFinal") +331 @Parameter(property = "connectionTimeout") +332private String connectionTimeout; +333/** +334 * The Read Timeout. +335 */ +336 @SuppressWarnings("CanBeFinal") +337 @Parameter(property = "readTimeout") +338private String readTimeout; +339/** +340 * Sets whether dependency-check should check if there is a new version +341 * available. +342 */ +343 @SuppressWarnings("CanBeFinal") +344 @Parameter(property = "versionCheckEnabled", defaultValue = "true") +345privateboolean versionCheckEnabled; +346/** +347 * The paths to the suppression files. The parameter value can be a local +348 * file path, a URL to a suppression file, or even a reference to a file on +349 * the class path (see +350 * https://github.com/jeremylong/DependencyCheck/issues/1878#issuecomment-487533799) +351 */ +352 @SuppressWarnings("CanBeFinal") +353 @Parameter(property = "suppressionFiles") +354private String[] suppressionFiles; +355/** +356 * The paths to the suppression file. The parameter value can be a local +357 * file path, a URL to a suppression file, or even a reference to a file on +358 * the class path (see +359 * https://github.com/jeremylong/DependencyCheck/issues/1878#issuecomment-487533799) +360 */ +361 @SuppressWarnings("CanBeFinal") +362 @Parameter(property = "suppressionFile") +363private String suppressionFile; +364/** +365 * The username used when connecting to the suppressionFiles. +366 */ +367 @Parameter(property = "suppressionFileUser") +368private String suppressionFileUser; +369/** +370 * The password used when connecting to the suppressionFiles. +371 */ +372 @Parameter(property = "suppressionFilePassword") +373private String suppressionFilePassword; +374/** +375 * The server id in the settings.xml; used to retrieve encrypted passwords +376 * from the settings.xml for suppressionFile(s). +377 */ +378 @SuppressWarnings("CanBeFinal") +379 @Parameter(property = "suppressionFileServerId") +380private String suppressionFileServerId; +381/** +382 * The path to the hints file. +383 */ +384 @SuppressWarnings("CanBeFinal") +385 @Parameter(property = "hintsFile") +386private String hintsFile; +387 +388/** +389 * Flag indicating whether or not to show a summary in the output. +390 */ +391 @SuppressWarnings("CanBeFinal") +392 @Parameter(property = "showSummary", defaultValue = "true") +393privateboolean showSummary = true; +394 +395/** +396 * Whether or not the Jar Analyzer is enabled. +397 */ +398 @SuppressWarnings("CanBeFinal") +399 @Parameter(property = "jarAnalyzerEnabled") +400private Boolean jarAnalyzerEnabled; +401 +402/** +403 * Sets whether the Dart analyzer is enabled. Default is true. +404 */ +405 @SuppressWarnings("CanBeFinal") +406 @Parameter(property = "dartAnalyzerEnabled") +407private Boolean dartAnalyzerEnabled; +408 +409/** +410 * Whether or not the Archive Analyzer is enabled. +411 */ +412 @SuppressWarnings("CanBeFinal") +413 @Parameter(property = "archiveAnalyzerEnabled") +414private Boolean archiveAnalyzerEnabled; +415/** +416 * Whether or not the Known Exploited Vulnerability Analyzer is enabled. +417 */ +418 @SuppressWarnings("CanBeFinal") +419 @Parameter(property = "knownExploitedEnabled") +420private Boolean knownExploitedEnabled; +421/** +422 * The URL to the CISA Known Exploited Vulnerabilities JSON datafeed. +423 */ +424 @SuppressWarnings("CanBeFinal") +425 @Parameter(property = "knownExploitedUrl") +426private String knownExploitedUrl; +427/** +428 * Sets whether the Python Distribution Analyzer will be used. +429 */ +430 @SuppressWarnings("CanBeFinal") +431 @Parameter(property = "pyDistributionAnalyzerEnabled") +432private Boolean pyDistributionAnalyzerEnabled; +433/** +434 * Sets whether the Python Package Analyzer will be used. +435 */ +436 @Parameter(property = "pyPackageAnalyzerEnabled") +437private Boolean pyPackageAnalyzerEnabled; +438/** +439 * Sets whether the Ruby Gemspec Analyzer will be used. +440 */ +441 @SuppressWarnings("CanBeFinal") +442 @Parameter(property = "rubygemsAnalyzerEnabled") +443private Boolean rubygemsAnalyzerEnabled; +444/** +445 * Sets whether or not the openssl Analyzer should be used. +446 */ +447 @SuppressWarnings("CanBeFinal") +448 @Parameter(property = "opensslAnalyzerEnabled") +449private Boolean opensslAnalyzerEnabled; +450/** +451 * Sets whether or not the CMake Analyzer should be used. +452 */ +453 @SuppressWarnings("CanBeFinal") +454 @Parameter(property = "cmakeAnalyzerEnabled") +455private Boolean cmakeAnalyzerEnabled; +456/** +457 * Sets whether or not the autoconf Analyzer should be used. +458 */ +459 @SuppressWarnings("CanBeFinal") +460 @Parameter(property = "autoconfAnalyzerEnabled") +461private Boolean autoconfAnalyzerEnabled; +462/** +463 * Sets whether or not the Maven install Analyzer should be used. +464 */ +465 @SuppressWarnings("CanBeFinal") +466 @Parameter(property = "mavenInstallAnalyzerEnabled") +467private Boolean mavenInstallAnalyzerEnabled; +468/** +469 * Sets whether or not the pip Analyzer should be used. +470 */ +471 @SuppressWarnings("CanBeFinal") +472 @Parameter(property = "pipAnalyzerEnabled") +473private Boolean pipAnalyzerEnabled; +474/** +475 * Sets whether or not the pipfile Analyzer should be used. +476 */ +477 @SuppressWarnings("CanBeFinal") +478 @Parameter(property = "pipfileAnalyzerEnabled") +479private Boolean pipfileAnalyzerEnabled; +480/** +481 * Sets whether or not the poetry Analyzer should be used. +482 */ +483 @SuppressWarnings("CanBeFinal") +484 @Parameter(property = "poetryAnalyzerEnabled") +485private Boolean poetryAnalyzerEnabled; +486/** +487 * Sets whether or not the PHP Composer Lock File Analyzer should be used. +488 */ +489 @Parameter(property = "composerAnalyzerEnabled") +490private Boolean composerAnalyzerEnabled; +491/** +492 * Whether or not the Perl CPAN File Analyzer is enabled. +493 */ +494 @Parameter(property = "cpanfileAnalyzerEnabled") +495private Boolean cpanfileAnalyzerEnabled; +496/** +497 * Sets whether or not the Node.js Analyzer should be used. +498 */ +499 @SuppressWarnings("CanBeFinal") +500 @Parameter(property = "nodeAnalyzerEnabled") +501private Boolean nodeAnalyzerEnabled; +502/** +503 * Sets whether or not the Node Audit Analyzer should be used. +504 */ +505 @SuppressWarnings("CanBeFinal") +506 @Parameter(property = "nodeAuditAnalyzerEnabled") +507private Boolean nodeAuditAnalyzerEnabled; +508 +509/** +510 * The Node Audit API URL for the Node Audit Analyzer. +511 */ +512 @SuppressWarnings("CanBeFinal") +513 @Parameter(property = "nodeAuditAnalyzerUrl") +514private String nodeAuditAnalyzerUrl; +515 +516/** +517 * Sets whether or not the Yarn Audit Analyzer should be used. +518 */ +519 @SuppressWarnings("CanBeFinal") +520 @Parameter(property = "yarnAuditAnalyzerEnabled") +521private Boolean yarnAuditAnalyzerEnabled; +522 +523/** +524 * Sets whether or not the Pnpm Audit Analyzer should be used. +525 */ +526 @SuppressWarnings("CanBeFinal") +527 @Parameter(property = "pnpmAuditAnalyzerEnabled") +528private Boolean pnpmAuditAnalyzerEnabled; +529 +530/** +531 * Sets whether or not the Node Audit Analyzer should use a local cache. +532 */ +533 @SuppressWarnings("CanBeFinal") +534 @Parameter(property = "nodeAuditAnalyzerUseCache") +535private Boolean nodeAuditAnalyzerUseCache; +536/** +537 * Sets whether or not the Node Audit Analyzer should skip devDependencies. +538 */ +539 @SuppressWarnings("CanBeFinal") +540 @Parameter(property = "nodeAuditSkipDevDependencies") +541private Boolean nodeAuditSkipDevDependencies; +542/** +543 * Sets whether or not the Node.js Analyzer should skip devDependencies. +544 */ +545 @SuppressWarnings("CanBeFinal") +546 @Parameter(property = "nodePackageSkipDevDependencies") +547private Boolean nodePackageSkipDevDependencies; +548/** +549 * Sets whether or not the Retirejs Analyzer should be used. +550 */ +551 @SuppressWarnings("CanBeFinal") +552 @Parameter(property = "retireJsAnalyzerEnabled") +553private Boolean retireJsAnalyzerEnabled; +554/** +555 * The Retire JS repository URL. +556 */ +557 @SuppressWarnings("CanBeFinal") +558 @Parameter(property = "retireJsUrl") +559private String retireJsUrl; +560/** +561 * The username to use when connecting to the CVE-URL. +562 */ +563 @Parameter(property = "retireJsUser") +564private String retireJsUser; +565/** +566 * The password to authenticate to the CVE-URL. +567 */ +568 @Parameter(property = "retireJsPassword") +569private String retireJsPassword; +570/** +571 * The server id in the settings.xml; used to retrieve encrypted passwords +572 * from the settings.xml for cve-URLs. +573 */ +574 @SuppressWarnings("CanBeFinal") +575 @Parameter(property = "retireJsUrlServerId") +576private String retireJsUrlServerId; +577/** +578 * Whether the Retire JS repository will be updated regardless of the +579 * `autoupdate` settings. +580 */ +581 @SuppressWarnings("CanBeFinal") +582 @Parameter(property = "retireJsForceUpdate") +583private Boolean retireJsForceUpdate; +584/** +585 * Whether or not the .NET Assembly Analyzer is enabled. +586 */ +587 @Parameter(property = "assemblyAnalyzerEnabled") +588private Boolean assemblyAnalyzerEnabled; +589/** +590 * Whether or not the MS Build Analyzer is enabled. +591 */ +592 @Parameter(property = "msbuildAnalyzerEnabled") +593private Boolean msbuildAnalyzerEnabled; +594/** +595 * Whether or not the .NET Nuspec Analyzer is enabled. +596 */ +597 @SuppressWarnings("CanBeFinal") +598 @Parameter(property = "nuspecAnalyzerEnabled") +599private Boolean nuspecAnalyzerEnabled; +600 +601/** +602 * Whether or not the .NET packages.config Analyzer is enabled. +603 */ +604 @SuppressWarnings("CanBeFinal") +605 @Parameter(property = "nugetconfAnalyzerEnabled") +606private Boolean nugetconfAnalyzerEnabled; +607 +608/** +609 * Whether or not the Libman Analyzer is enabled. +610 */ +611 @SuppressWarnings("CanBeFinal") +612 @Parameter(property = "libmanAnalyzerEnabled") +613private Boolean libmanAnalyzerEnabled; +614 +615/** +616 * Whether or not the Central Analyzer is enabled. +617 */ +618 @SuppressWarnings("CanBeFinal") +619 @Parameter(property = "centralAnalyzerEnabled") +620private Boolean centralAnalyzerEnabled; +621 +622/** +623 * Whether or not the Central Analyzer should use a local cache. +624 */ +625 @SuppressWarnings("CanBeFinal") +626 @Parameter(property = "centralAnalyzerUseCache") +627private Boolean centralAnalyzerUseCache; +628 +629/** +630 * Whether or not the Artifactory Analyzer is enabled. +631 */ +632 @SuppressWarnings("CanBeFinal") +633 @Parameter(property = "artifactoryAnalyzerEnabled") +634private Boolean artifactoryAnalyzerEnabled; +635/** +636 * The serverId inside the settings.xml containing the username and token to +637 * access artifactory +638 */ +639 @SuppressWarnings("CanBeFinal") +640 @Parameter(property = "artifactoryAnalyzerServerId") +641private String artifactoryAnalyzerServerId; +642/** +643 * The username (only used with API token) to connect to Artifactory +644 * instance +645 */ +646 @SuppressWarnings("CanBeFinal") +647 @Parameter(property = "artifactoryAnalyzerUsername") +648private String artifactoryAnalyzerUsername; +649/** +650 * The API token to connect to Artifactory instance +651 */ +652 @SuppressWarnings("CanBeFinal") +653 @Parameter(property = "artifactoryAnalyzerApiToken") +654private String artifactoryAnalyzerApiToken; +655/** +656 * The bearer token to connect to Artifactory instance +657 */ +658 @SuppressWarnings("CanBeFinal") +659 @Parameter(property = "artifactoryAnalyzerBearerToken") +660private String artifactoryAnalyzerBearerToken; +661/** +662 * The Artifactory URL for the Artifactory analyzer. +663 */ +664 @SuppressWarnings("CanBeFinal") +665 @Parameter(property = "artifactoryAnalyzerUrl") +666private String artifactoryAnalyzerUrl; +667/** +668 * Whether Artifactory should be accessed through a proxy or not +669 */ +670 @SuppressWarnings("CanBeFinal") +671 @Parameter(property = "artifactoryAnalyzerUseProxy") +672private Boolean artifactoryAnalyzerUseProxy; +673/** +674 * Whether the Artifactory analyzer should be run in parallel or not. +675 */ +676 @SuppressWarnings("CanBeFinal") +677 @Parameter(property = "artifactoryAnalyzerParallelAnalysis", defaultValue = "true") +678private Boolean artifactoryAnalyzerParallelAnalysis; +679/** +680 * Whether or not the Nexus Analyzer is enabled. +681 */ +682 @SuppressWarnings("CanBeFinal") +683 @Parameter(property = "nexusAnalyzerEnabled") +684private Boolean nexusAnalyzerEnabled; +685 +686/** +687 * Whether or not the Sonatype OSS Index analyzer is enabled. +688 */ +689 @SuppressWarnings("CanBeFinal") +690 @Parameter(property = "ossindexAnalyzerEnabled") +691private Boolean ossindexAnalyzerEnabled; +692/** +693 * Whether or not the Sonatype OSS Index analyzer should cache results. +694 */ +695 @SuppressWarnings("CanBeFinal") +696 @Parameter(property = "ossindexAnalyzerUseCache") +697private Boolean ossindexAnalyzerUseCache; +698/** +699 * URL of the Sonatype OSS Index service. +700 */ +701 @SuppressWarnings("CanBeFinal") +702 @Parameter(property = "ossindexAnalyzerUrl") +703private String ossindexAnalyzerUrl; +704 +705/** +706 * The id of a server defined in the settings.xml that configures the +707 * credentials (username and password) for a OSS Index service. +708 */ +709 @SuppressWarnings("CanBeFinal") +710 @Parameter(property = "ossIndexServerId") +711private String ossIndexServerId; +712 +713/** +714 * Whether we should only warn about Sonatype OSS Index remote errors +715 * instead of failing the goal completely. +716 */ +717 @SuppressWarnings("CanBeFinal") +718 @Parameter(property = "ossIndexWarnOnlyOnRemoteErrors") +719private Boolean ossIndexWarnOnlyOnRemoteErrors; +720 +721/** +722 * Whether or not the Elixir Mix Audit Analyzer is enabled. +723 */ +724 @Parameter(property = "mixAuditAnalyzerEnabled") +725private Boolean mixAuditAnalyzerEnabled; +726 +727/** +728 * Sets the path for the mix_audit binary. +729 */ +730 @SuppressWarnings("CanBeFinal") +731 @Parameter(property = "mixAuditPath") +732private String mixAuditPath; +733 +734/** +735 * Whether or not the Ruby Bundle Audit Analyzer is enabled. +736 */ +737 @Parameter(property = "bundleAuditAnalyzerEnabled") +738private Boolean bundleAuditAnalyzerEnabled; +739 +740/** +741 * Sets the path for the bundle-audit binary. +742 */ +743 @SuppressWarnings("CanBeFinal") +744 @Parameter(property = "bundleAuditPath") +745private String bundleAuditPath; +746 +747/** +748 * Sets the path for the working directory that the bundle-audit binary +749 * should be executed from. +750 */ +751 @SuppressWarnings("CanBeFinal") +752 @Parameter(property = "bundleAuditWorkingDirectory") +753private String bundleAuditWorkingDirectory; +754 +755/** +756 * Whether or not the CocoaPods Analyzer is enabled. +757 */ +758 @SuppressWarnings("CanBeFinal") +759 @Parameter(property = "cocoapodsAnalyzerEnabled") +760private Boolean cocoapodsAnalyzerEnabled; +761 +762/** +763 * Whether or not the Swift package Analyzer is enabled. +764 */ +765 @SuppressWarnings("CanBeFinal") +766 @Parameter(property = "swiftPackageManagerAnalyzerEnabled") +767private Boolean swiftPackageManagerAnalyzerEnabled; +768/** +769 * Whether or not the Swift package resolved Analyzer is enabled. +770 */ +771 @SuppressWarnings("CanBeFinal") +772 @Parameter(property = "swiftPackageResolvedAnalyzerEnabled") +773private Boolean swiftPackageResolvedAnalyzerEnabled; +774/** +775 * The URL of a Nexus server's REST API end point +776 * (http://domain/nexus/service/local). +777 */ +778 @SuppressWarnings("CanBeFinal") +779 @Parameter(property = "nexusUrl") +780private String nexusUrl; +781/** +782 * The id of a server defined in the settings.xml that configures the +783 * credentials (username and password) for a Nexus server's REST API end +784 * point. When not specified the communication with the Nexus server's REST +785 * API will be unauthenticated. +786 */ +787 @SuppressWarnings("CanBeFinal") +788 @Parameter(property = "nexusServerId") +789private String nexusServerId; +790/** +791 * Whether or not the configured proxy is used to connect to Nexus. +792 */ +793 @SuppressWarnings("CanBeFinal") +794 @Parameter(property = "nexusUsesProxy") +795private Boolean nexusUsesProxy; +796/** +797 * The database connection string. +798 */ +799 @SuppressWarnings("CanBeFinal") +800 @Parameter(property = "connectionString") +801private String connectionString; +802 +803/** +804 * The database driver name. An example would be org.h2.Driver. +805 */ +806 @SuppressWarnings("CanBeFinal") +807 @Parameter(property = "databaseDriverName") +808private String databaseDriverName; +809/** +810 * The path to the database driver if it is not on the class path. +811 */ +812 @SuppressWarnings("CanBeFinal") +813 @Parameter(property = "databaseDriverPath") +814private String databaseDriverPath; +815/** +816 * A reference to the settings.xml settings. +817 */ +818 @SuppressWarnings("CanBeFinal") +819 @Parameter(defaultValue = "${settings}", readonly = true, required = true) +820private org.apache.maven.settings.Settings settingsXml; +821/** +822 * The security dispatcher that can decrypt passwords in the settings.xml. +823 */ +824 @Component(role = SecDispatcher.class, hint = "default") +825private SecDispatcher securityDispatcher; +826/** +827 * The database user name. +828 */ +829 @Parameter(property = "databaseUser") +830private String databaseUser; +831/** +832 * The password to use when connecting to the database. +833 */ +834 @Parameter(property = "databasePassword") +835private String databasePassword; +836/** +837 * A comma-separated list of file extensions to add to analysis next to jar, +838 * zip, .... +839 */ +840 @SuppressWarnings("CanBeFinal") +841 @Parameter(property = "zipExtensions") +842private String zipExtensions; +843/** +844 * Skip Dependency Check altogether. +845 */ +846 @SuppressWarnings("CanBeFinal") +847 @Parameter(property = "dependency-check.skip", defaultValue = "false") +848privateboolean skip = false; +849/** +850 * Skip Analysis for Test Scope Dependencies. +851 */ +852 @SuppressWarnings("CanBeFinal") +853 @Parameter(property = "skipTestScope", defaultValue = "true") +854privateboolean skipTestScope = true; +855/** +856 * Skip Analysis for Runtime Scope Dependencies. +857 */ +858 @SuppressWarnings("CanBeFinal") +859 @Parameter(property = "skipRuntimeScope", defaultValue = "false") +860privateboolean skipRuntimeScope = false; +861/** +862 * Skip Analysis for Provided Scope Dependencies. +863 */ +864 @SuppressWarnings("CanBeFinal") +865 @Parameter(property = "skipProvidedScope", defaultValue = "false") +866privateboolean skipProvidedScope = false; +867 +868/** +869 * Skip Analysis for System Scope Dependencies. +870 */ +871 @SuppressWarnings("CanBeFinal") +872 @Parameter(property = "skipSystemScope", defaultValue = "false") +873privateboolean skipSystemScope = false; +874 +875/** +876 * Skip Analysis for dependencyManagement section. +877 */ +878 @SuppressWarnings("CanBeFinal") +879 @Parameter(property = "skipDependencyManagement", defaultValue = "true") +880privateboolean skipDependencyManagement = true; +881 +882/** +883 * Skip analysis for dependencies which type matches this regular +884 * expression. This filters on the `type` of dependency as defined in the +885 * dependency section: jar, pom, test-jar, etc. +886 */ +887 @SuppressWarnings("CanBeFinal") +888 @Parameter(property = "skipArtifactType") +889private String skipArtifactType; +890 +891/** +892 * The data directory, hold DC SQL DB. +893 */ +894 @SuppressWarnings("CanBeFinal") +895 @Parameter(property = "dataDirectory") +896private String dataDirectory; +897 +898/** +899 * The name of the DC DB. +900 */ +901 @SuppressWarnings("CanBeFinal") +902 @Parameter(property = "dbFilename") +903private String dbFilename; +904/** +905 * The server id in the settings.xml; used to retrieve encrypted passwords +906 * from the settings.xml. This is used for the database username and +907 * password. +908 */ +909 @SuppressWarnings("CanBeFinal") +910 @Parameter(property = "serverId") +911private String serverId; +912/** +913 * The NVD API Key. +914 */ +915 @SuppressWarnings("CanBeFinal") +916 @Parameter(property = "nvdApiKey") +917private String nvdApiKey; +918/** +919 * The maximum number of retry requests for a single call to the NVD API. +920 */ +921 @SuppressWarnings("CanBeFinal") +922 @Parameter(property = "nvdMaxRetryCount") +923private Integer nvdMaxRetryCount; +924/** +925 * The server id in the settings.xml; used to retrieve encrypted API Key +926 * from the settings.xml for the NVD API Key. Note that the password is used +927 * as the API Key +928 */ +929 @SuppressWarnings("CanBeFinal") +930 @Parameter(property = "nvdApiServerId") +931private String nvdApiServerId; +932 +933/** +934 * The number of hours to wait before checking for new updates from the NVD. +935 */ +936 @SuppressWarnings("CanBeFinal") +937 @Parameter(property = "nvdValidForHours") +938private Integer nvdValidForHours; +939/** +940 * The NVD API Endpoint; setting this is uncommon. +941 */ +942 @SuppressWarnings("CanBeFinal") +943 @Parameter(property = "nvdApiEndpoint") +944private String nvdApiEndpoint; +945/** +946 * The NVD API Data Feed URL. +947 */ +948 @SuppressWarnings("CanBeFinal") +949 @Parameter(property = "nvdDatafeedUrl") +950private String nvdDatafeedUrl; +951 +952/** +953 * The server id in the settings.xml; used to retrieve encrypted passwords +954 * from the settings.xml for the NVD Data Feed. +955 */ +956 @SuppressWarnings("CanBeFinal") +957 @Parameter(property = "nvdDatafeedServerId") +958private String nvdDatafeedServerId; +959/** +960 * The username for basic auth to the NVD Data Feed. +961 */ +962 @SuppressWarnings("CanBeFinal") +963 @Parameter(property = "nvdUser") +964private String nvdUser; +965/** +966 * The password for basic auth to the NVD Data Feed. +967 */ +968 @SuppressWarnings("CanBeFinal") +969 @Parameter(property = "nvdPassword") +970private String nvdPassword; +971/** +972 * The time in milliseconds to wait between downloading NVD API data. +973 */ +974 @SuppressWarnings("CanBeFinal") +975 @Parameter(property = "nvdApiDelay") +976private Integer nvdApiDelay; +977 +978/** +979 * The path to dotnet core. +980 */ +981 @SuppressWarnings("CanBeFinal") +982 @Parameter(property = "pathToCore") +983private String pathToCore; +984/** +985 * The hosted suppressions file URL. +986 */ +987 @SuppressWarnings("CanBeFinal") +988 @Parameter(property = "hostedSuppressionsUrl") +989private String hostedSuppressionsUrl; +990/** +991 * Whether the hosted suppressions file will be updated regardless of the +992 * `autoupdate` settings. +993 */ +994 @SuppressWarnings("CanBeFinal") +995 @Parameter(property = "hostedSuppressionsForceUpdate") +996private Boolean hostedSuppressionsForceUpdate; +997/** +998 * Whether the hosted suppressions file will be used. +999 */ +1000 @SuppressWarnings("CanBeFinal") +1001 @Parameter(property = "hostedSuppressionsEnabled") +1002private Boolean hostedSuppressionsEnabled; +1003/** +1004 * Skip excessive hosted suppression file update checks for a designated +1005 * duration in hours (defaults to 2 hours). +1006 */ +1007 @SuppressWarnings("CanBeFinal") +1008 @Parameter(property = "hostedSuppressionsValidForHours") +1009private Integer hostedSuppressionsValidForHours; +1010 +1011/** +1012 * The RetireJS Analyzer configuration: +1013 * <pre> +1014 * filters: an array of filter patterns that are used to exclude JS files that contain a match +1015 * filterNonVulnerable: a boolean that when true will remove non-vulnerable JS from the report +1016 * +1017 * Example: +1018 * &lt;retirejs&gt; +1019 * &lt;filters&gt; +1020 * &lt;filter&gt;copyright 2018\(c\) Jeremy Long&lt;/filter&gt; +1021 * &lt;/filters&gt; +1022 * &lt;filterNonVulnerable&gt;true&lt;/filterNonVulnerable&gt; +1023 * &lt;/retirejs&gt; +1024 * </pre> +1025 */ +1026 @SuppressWarnings("CanBeFinal") +1027 @Parameter(property = "retirejs") +1028privateRetirejs retirejs; +1029 +1030/** +1031 * The list of artifacts (and their transitive dependencies) to exclude from +1032 * the check. +1033 */ +1034 @Parameter(property = "odc.excludes") +1035private List<String> excludes; +1036 +1037/** +1038 * The artifact scope filter. +1039 */ +1040private Filter<String> artifactScopeExcluded; +1041 +1042/** +1043 * Filter for artifact type. +1044 */ +1045private Filter<String> artifactTypeExcluded; +1046 +1047/** +1048 * An collection of <code>fileSet</code>s that specify additional files +1049 * and/or directories (from the basedir) to analyze as part of the scan. If +1050 * not specified, defaults to Maven conventions of: src/main/resources, +1051 * src/main/filters, and src/main/webapp. Note, this cannot be set via the +1052 * command line - use `scanDirectory` instead. +1053 */ +1054 @Parameter +1055private List<FileSet> scanSet; +1056/** +1057 * A list of directories to scan. Note, this should only be used via the +1058 * command line - if configuring the directories to scan consider using the +1059 * `scanSet` instead. +1060 */ +1061 @Parameter(property = "scanDirectory") +1062private List<String> scanDirectory; +1063 +1064/** +1065 * Whether the project's plugins should also be scanned. +1066 */ +1067 @SuppressWarnings("CanBeFinal") +1068 @Parameter(property = "odc.plugins.scan", defaultValue = "false", required = false) +1069privateboolean scanPlugins = false; +1070/** +1071 * Whether the project's dependencies should also be scanned. +1072 */ +1073 @SuppressWarnings("CanBeFinal") +1074 @Parameter(property = "odc.dependencies.scan", defaultValue = "true", required = false) +1075privateboolean scanDependencies = true; +1076/** +1077 * The proxy configuration. +1078 */ +1079 @Parameter +1080privateProxyConfig proxy; +1081 +1082// </editor-fold> +1083//<editor-fold defaultstate="collapsed" desc="Base Maven implementation"> +1084/** +1085 * Determines if the groupId, artifactId, and version of the Maven +1086 * dependency and artifact match. +1087 * +1088 * @param d the Maven dependency +1089 * @param a the Maven artifact +1090 * @return true if the groupId, artifactId, and version match +1091 */ +1092privatestaticboolean artifactsMatch(org.apache.maven.model.Dependency d, Artifact a) { +1093return isEqualOrNull(a.getArtifactId(), d.getArtifactId()) +1094 && isEqualOrNull(a.getGroupId(), d.getGroupId()) +1095 && isEqualOrNull(a.getVersion(), d.getVersion()); +1096 } +1097 +1098/** +1099 * Compares two strings for equality; if both strings are null they are +1100 * considered equal. +1101 * +1102 * @param left the first string to compare +1103 * @param right the second string to compare +1104 * @return true if the strings are equal or if they are both null; otherwise +1105 * false. +1106 */ +1107privatestaticboolean isEqualOrNull(String left, String right) { +1108return (left != null && left.equals(right)) || (left == null && right == null); +1109 } +1110 +1111/** +1112 * Executes dependency-check. +1113 * +1114 * @throws MojoExecutionException thrown if there is an exception executing +1115 * the mojo +1116 * @throws MojoFailureException thrown if dependency-check failed the build +1117 */ +1118 @Override +1119publicvoid execute() throws MojoExecutionException, MojoFailureException { +1120 generatingSite = false; +1121finalboolean shouldSkip = Boolean.parseBoolean(System.getProperty("dependency-check.skip", Boolean.toString(skip))); +1122if (shouldSkip) { +1123 getLog().info("Skipping " + getName(Locale.US)); +1124 } else { +1125 project.setContextValue("dependency-check-output-dir", this.outputDirectory); +1126 runCheck(); +1127 } +1128 } +1129 +1130/** +1131 * Generates the Dependency-Check Site Report. +1132 * +1133 * @param sink the sink to write the report to +1134 * @param locale the locale to use when generating the report +1135 * @throws MavenReportException if a maven report exception occurs +1136 * @deprecated use +1137 * {@link #generate(org.apache.maven.doxia.sink.Sink, java.util.Locale)} +1138 * instead. +1139 */ +1140 @Deprecated +1141publicfinalvoid generate(@SuppressWarnings("deprecation") org.codehaus.doxia.sink.Sink sink, Locale locale) throws MavenReportException { +1142 generate((Sink) sink, locale); +1143 } +1144 +1145/** +1146 * Returns true if the Maven site is being generated. +1147 * +1148 * @return true if the Maven site is being generated +1149 */ +1150protectedboolean isGeneratingSite() { +1151return generatingSite; +1152 } +1153 +1154/** +1155 * Returns the connection string. +1156 * +1157 * @return the connection string +1158 */ +1159protected String getConnectionString() { +1160return connectionString; +1161 } +1162 +1163/** +1164 * Returns if the mojo should fail the build if an exception occurs. +1165 * +1166 * @return whether or not the mojo should fail the build +1167 */ +1168protectedboolean isFailOnError() { +1169return failOnError; +1170 } +1171 +1172/** +1173 * Generates the Dependency-Check Site Report. +1174 * +1175 * @param sink the sink to write the report to +1176 * @param locale the locale to use when generating the report +1177 * @throws MavenReportException if a maven report exception occurs +1178 */ +1179publicvoid generate(Sink sink, Locale locale) throws MavenReportException { +1180finalboolean shouldSkip = Boolean.parseBoolean(System.getProperty("dependency-check.skip", Boolean.toString(skip))); +1181if (shouldSkip) { +1182 getLog().info("Skipping report generation " + getName(Locale.US)); +1183return; +1184 } +1185 +1186 generatingSite = true; +1187 project.setContextValue("dependency-check-output-dir", getReportOutputDirectory()); +1188try { +1189 runCheck(); +1190 } catch (MojoExecutionException ex) { +1191thrownew MavenReportException(ex.getMessage(), ex); +1192 } catch (MojoFailureException ex) { +1193 getLog().warn("Vulnerabilities were identifies that exceed the CVSS threshold for failing the build"); +1194 } +1195 } +1196 +1197/** +1198 * Returns the correct output directory depending on if a site is being +1199 * executed or not. +1200 * +1201 * @return the directory to write the report(s) +1202 * @throws MojoExecutionException thrown if there is an error loading the +1203 * file path +1204 */ +1205protected File getCorrectOutputDirectory() throws MojoExecutionException { +1206return getCorrectOutputDirectory(this.project); +1207 } +1208 +1209/** +1210 * Returns the correct output directory depending on if a site is being +1211 * executed or not. +1212 * +1213 * @param current the Maven project to get the output directory from +1214 * @return the directory to write the report(s) +1215 */ +1216protected File getCorrectOutputDirectory(MavenProject current) { +1217final Object obj = current.getContextValue("dependency-check-output-dir"); +1218if (obj != null && obj instanceof File) { +1219return (File) obj; +1220 } +1221//else we guess +1222 File target = new File(current.getBuild().getDirectory()); +1223if (target.getParentFile() != null && "target".equals(target.getParentFile().getName())) { +1224 target = target.getParentFile(); +1225 } +1226return target; +1227 } +1228 +1229/** +1230 * Scans the project's artifacts and adds them to the engine's dependency +1231 * list. +1232 * +1233 * @param project the project to scan the dependencies of +1234 * @param engine the engine to use to scan the dependencies +1235 * @return a collection of exceptions that may have occurred while resolving +1236 * and scanning the dependencies +1237 */ +1238protected ExceptionCollection scanArtifacts(MavenProject project, Engine engine) { +1239return scanArtifacts(project, engine, false); +1240 } +1241 +1242/** +1243 * Scans the project's artifacts and adds them to the engine's dependency +1244 * list. +1245 * +1246 * @param project the project to scan the dependencies of +1247 * @param engine the engine to use to scan the dependencies +1248 * @param aggregate whether the scan is part of an aggregate build +1249 * @return a collection of exceptions that may have occurred while resolving +1250 * and scanning the dependencies +1251 */ +1252protected ExceptionCollection scanArtifacts(MavenProject project, Engine engine, boolean aggregate) { +1253try { +1254final List<String> filterItems = Collections.singletonList(String.format("%s:%s", project.getGroupId(), project.getArtifactId())); +1255final ProjectBuildingRequest buildingRequest = newResolveArtifactProjectBuildingRequest(project, project.getRemoteArtifactRepositories()); +1256//For some reason the filter does not filter out the project being analyzed +1257//if we pass in the filter below instead of null to the dependencyGraphBuilder +1258final DependencyNode dn = dependencyGraphBuilder.buildDependencyGraph(buildingRequest, null); +1259 +1260finalCollectingRootDependencyGraphVisitor collectorVisitor = newCollectingRootDependencyGraphVisitor(); +1261 +1262// exclude artifact by pattern and its dependencies +1263final DependencyNodeVisitor transitiveFilterVisitor = newFilteringDependencyTransitiveNodeVisitor(collectorVisitor, +1264new ArtifactDependencyNodeFilter(new PatternExcludesArtifactFilter(getExcludes()))); +1265// exclude exact artifact but not its dependencies, this filter must be appied on the root for first otherwise +1266// in case the exclude has the same groupId of the current bundle its direct dependencies are not visited +1267final DependencyNodeVisitor artifactFilter = new FilteringDependencyNodeVisitor(transitiveFilterVisitor, +1268new ArtifactDependencyNodeFilter(new ExcludesArtifactFilter(filterItems))); +1269 dn.accept(artifactFilter); +1270 +1271//collect dependencies with the filter - see comment above. +1272final Map<DependencyNode, List<DependencyNode>> nodes = collectorVisitor.getNodes(); +1273 +1274return collectDependencies(engine, project, nodes, buildingRequest, aggregate); +1275 } catch (DependencyGraphBuilderException ex) { +1276final String msg = String.format("Unable to build dependency graph on project %s", project.getName()); +1277 getLog().debug(msg, ex); +1278returnnew ExceptionCollection(ex); +1279 } +1280 } +1281 +1282/** +1283 * Scans the project's artifacts for plugin-dependencies and adds them to +1284 * the engine's dependency list. +1285 * +1286 * @param project the project to scan the plugin-dependencies of +1287 * @param engine the engine to use to scan the plugin-dependencies +1288 * @param exCollection the collection of exceptions that have previously +1289 * occurred +1290 * @return a collection of exceptions that may have occurred while resolving +1291 * and scanning the plugins and their dependencies +1292 */ +1293protected ExceptionCollection scanPlugins(MavenProject project, Engine engine, ExceptionCollection exCollection) { +1294 ExceptionCollection exCol = exCollection; +1295final Set<Artifact> plugins = new HashSet<>(); +1296final Set<Artifact> buildPlugins = getProject().getPluginArtifacts(); +1297final Set<Artifact> reportPlugins = getProject().getReportArtifacts(); +1298final Set<Artifact> extensions = getProject().getExtensionArtifacts(); +1299 +1300 plugins.addAll(buildPlugins); +1301 plugins.addAll(reportPlugins); +1302 plugins.addAll(extensions); +1303 +1304final ProjectBuildingRequest buildingRequest = newResolveArtifactProjectBuildingRequest(project, project.getPluginArtifactRepositories()); +1305for (Artifact plugin : plugins) { +1306try { +1307final Artifact resolved = artifactResolver.resolveArtifact(buildingRequest, plugin).getArtifact(); +1308 +1309 exCol = addPluginToDependencies(project, engine, resolved, "pom.xml (plugins)", exCol); +1310 +1311final DefaultDependableCoordinate pluginCoordinate = new DefaultDependableCoordinate(); +1312 pluginCoordinate.setGroupId(resolved.getGroupId()); +1313 pluginCoordinate.setArtifactId(resolved.getArtifactId()); +1314 pluginCoordinate.setVersion(resolved.getVersion()); +1315 +1316final String parent = buildReference(resolved.getGroupId(), resolved.getArtifactId(), resolved.getVersion()); +1317for (Artifact artifact : resolveArtifactDependencies(pluginCoordinate, project)) { +1318 exCol = addPluginToDependencies(project, engine, artifact, parent, exCol); +1319 } +1320 } catch (ArtifactResolverException ex) { +1321thrownew RuntimeException(ex); +1322 } catch (IllegalArgumentException ex) { +1323thrownew RuntimeException(ex); +1324 } catch (DependencyResolverException ex) { +1325thrownew RuntimeException(ex); +1326 } +1327 } +1328 +1329returnnull; +1330 +1331 } +1332 +1333private ExceptionCollection addPluginToDependencies(MavenProject project, Engine engine, Artifact artifact, String parent, ExceptionCollection exCollection) { +1334 ExceptionCollection exCol = exCollection; +1335final String groupId = artifact.getGroupId(); +1336final String artifactId = artifact.getArtifactId(); +1337final String version = artifact.getVersion(); +1338final File artifactFile = artifact.getFile(); +1339if (artifactFile.isFile()) { +1340final List<ArtifactVersion> availableVersions = artifact.getAvailableVersions(); +1341 +1342final List<Dependency> deps = engine.scan(artifactFile.getAbsoluteFile(), +1343 project.getName() + " (plugins)"); +1344if (deps != null) { +1345 Dependency d = null; +1346if (deps.size() == 1) { +1347 d = deps.get(0); +1348 } else { +1349for (Dependency possible : deps) { +1350if (artifactFile.getAbsoluteFile().equals(possible.getActualFile())) { +1351 d = possible; +1352break; +1353 } +1354 } +1355for (Dependency dep : deps) { +1356if (d != null && d != dep) { +1357final String includedBy = buildReference(groupId, artifactId, version); +1358 dep.addIncludedBy(includedBy, "plugins"); +1359 } +1360 } +1361 } +1362if (d != null) { +1363final MavenArtifact ma = new MavenArtifact(groupId, artifactId, version); +1364 d.addAsEvidence("pom", ma, Confidence.HIGHEST); +1365if (parent != null) { +1366 d.addIncludedBy(parent, "plugins"); +1367 } else { +1368final String includedby = buildReference( +1369 project.getGroupId(), +1370 project.getArtifactId(), +1371 project.getVersion()); +1372 d.addIncludedBy(includedby, "plugins"); +1373 } +1374if (availableVersions != null) { +1375for (ArtifactVersion av : availableVersions) { +1376 d.addAvailableVersion(av.toString()); +1377 } +1378 } +1379 } +1380 } +1381 } else { +1382if (exCol == null) { +1383 exCol = new ExceptionCollection(); +1384 } +1385 exCol.addException(new DependencyNotFoundException("Unable to resolve plugin: " +1386 + groupId + ":" + artifactId + ":" + version)); +1387 } +1388 +1389return exCol; +1390 } +1391 +1392private String buildReference(final String groupId, final String artifactId, final String version) { +1393 String includedBy; +1394try { +1395final PackageURL purl = new PackageURL("maven", groupId, artifactId, version, null, null); +1396 includedBy = purl.toString(); +1397 } catch (MalformedPackageURLException ex) { +1398 getLog().warn("Unable to generate build reference for " + groupId +1399 + ":" + artifactId + ":" + version, ex); +1400 includedBy = groupId + ":" + artifactId + ":" + version; +1401 } +1402return includedBy; +1403 } +1404 +1405protected Set<Artifact> resolveArtifactDependencies(final DependableCoordinate artifact, MavenProject project) +1406throws DependencyResolverException { +1407final ProjectBuildingRequest buildingRequest = newResolveArtifactProjectBuildingRequest(project, project.getRemoteArtifactRepositories()); +1408 +1409final Iterable<ArtifactResult> artifactResults = dependencyResolver.resolveDependencies(buildingRequest, artifact, null); +1410 +1411final Set<Artifact> artifacts = new HashSet<>(); +1412 +1413for (ArtifactResult artifactResult : artifactResults) { +1414 artifacts.add(artifactResult.getArtifact()); +1415 } +1416 +1417return artifacts; +1418 +1419 } +1420 +1421/** +1422 * Converts the dependency to a dependency node object. +1423 * +1424 * @param nodes the list of dependency nodes +1425 * @param buildingRequest the Maven project building request +1426 * @param parent the parent node +1427 * @param dependency the dependency to convert +1428 * @return the resulting dependency node +1429 * @throws ArtifactResolverException thrown if the artifact could not be +1430 * retrieved +1431 */ +1432private DependencyNode toDependencyNode(List<DependencyNode> nodes, ProjectBuildingRequest buildingRequest, +1433 DependencyNode parent, org.apache.maven.model.Dependency dependency) throws ArtifactResolverException { +1434 +1435final DefaultArtifactCoordinate coordinate = new DefaultArtifactCoordinate(); +1436 +1437 coordinate.setGroupId(dependency.getGroupId()); +1438 coordinate.setArtifactId(dependency.getArtifactId()); +1439 String version = null; +1440final VersionRange vr; +1441try { +1442 vr = VersionRange.createFromVersionSpec(dependency.getVersion()); +1443 } catch (InvalidVersionSpecificationException ex) { +1444thrownew ArtifactResolverException("Invalid version specification: " +1445 + dependency.getGroupId() + ":" +1446 + dependency.getArtifactId() + ":" +1447 + dependency.getVersion(), ex); +1448 } +1449if (vr.hasRestrictions()) { +1450 version = findVersion(nodes, dependency.getGroupId(), dependency.getArtifactId()); +1451if (version == null) { +1452//TODO - this still may fail if the restriction is not a valid version number (i.e. only 2.9 instead of 2.9.1) +1453//need to get available versions and filter on the restrictions. +1454if (vr.getRecommendedVersion() != null) { +1455 version = vr.getRecommendedVersion().toString(); +1456 } elseif (vr.hasRestrictions()) { +1457for (Restriction restriction : vr.getRestrictions()) { +1458if (restriction.getLowerBound() != null) { +1459 version = restriction.getLowerBound().toString(); +1460 } +1461if (restriction.getUpperBound() != null) { +1462 version = restriction.getUpperBound().toString(); +1463 } +1464 } +1465 } else { +1466 version = vr.toString(); +1467 } +1468 } +1469 } +1470if (version == null) { +1471 version = dependency.getVersion(); +1472 } +1473 coordinate.setVersion(version); +1474 +1475final ArtifactType type = session.getRepositorySession().getArtifactTypeRegistry().get(dependency.getType()); +1476 coordinate.setExtension(type.getExtension()); +1477 coordinate.setClassifier((null == dependency.getClassifier() || dependency.getClassifier().isEmpty()) +1478 ? type.getClassifier() : dependency.getClassifier()); +1479final Artifact artifact = artifactResolver.resolveArtifact(buildingRequest, coordinate).getArtifact(); +1480 artifact.setScope(dependency.getScope()); +1481returnnew DefaultDependencyNode(parent, artifact, dependency.getVersion(), dependency.getScope(), null); +1482 } +1483 +1484/** +1485 * Returns the version from the list of nodes that match the given groupId +1486 * and artifactID. +1487 * +1488 * @param nodes the nodes to search +1489 * @param groupId the group id to find +1490 * @param artifactId the artifact id to find +1491 * @return the version from the list of nodes that match the given groupId +1492 * and artifactID; otherwise <code>null</code> is returned +1493 */ +1494private String findVersion(List<DependencyNode> nodes, String groupId, String artifactId) { +1495final Optional<DependencyNode> f = nodes.stream().filter(p +1496 -> groupId.equals(p.getArtifact().getGroupId()) +1497 && artifactId.equals(p.getArtifact().getArtifactId())).findFirst(); +1498if (f.isPresent()) { +1499return f.get().getArtifact().getVersion(); +1500 } +1501returnnull; +1502 } +1503 +1504/** +1505 * Collect dependencies from the dependency management section. +1506 * +1507 * @param engine reference to the ODC engine +1508 * @param buildingRequest the Maven project building request +1509 * @param project the project being analyzed +1510 * @param nodes the list of dependency nodes +1511 * @param aggregate whether or not this is an aggregate analysis +1512 * @return a collection of exceptions if any occurred; otherwise +1513 * <code>null</code> +1514 */ +1515private ExceptionCollection collectDependencyManagementDependencies(Engine engine, ProjectBuildingRequest buildingRequest, +1516 MavenProject project, List<DependencyNode> nodes, boolean aggregate) { +1517if (skipDependencyManagement || project.getDependencyManagement() == null) { +1518returnnull; +1519 } +1520 +1521 ExceptionCollection exCol = null; +1522for (org.apache.maven.model.Dependency dependency : project.getDependencyManagement().getDependencies()) { +1523try { +1524 nodes.add(toDependencyNode(nodes, buildingRequest, null, dependency)); +1525 } catch (ArtifactResolverException ex) { +1526 getLog().debug(String.format("Aggregate : %s", aggregate)); +1527boolean addException = true; +1528//CSOFF: EmptyBlock +1529if (!aggregate) { +1530// do nothing, exception is to be reported +1531 } elseif (addReactorDependency(engine, +1532new DefaultArtifact(dependency.getGroupId(), dependency.getArtifactId(), +1533 dependency.getVersion(), dependency.getScope(), dependency.getType(), dependency.getClassifier(), +1534new DefaultArtifactHandler()), project)) { +1535 addException = false; +1536 } +1537//CSON: EmptyBlock +1538if (addException) { +1539if (exCol == null) { +1540 exCol = new ExceptionCollection(); +1541 } +1542 exCol.addException(ex); +1543 } +1544 } +1545 } +1546return exCol; +1547 } +1548 +1549/** +1550 * Resolves the projects artifacts using Aether and scans the resulting +1551 * dependencies. +1552 * +1553 * @param engine the core dependency-check engine +1554 * @param project the project being scanned +1555 * @param nodeMap the map of dependency nodes, generally obtained via the +1556 * DependencyGraphBuilder using the CollectingRootDependencyGraphVisitor +1557 * @param buildingRequest the Maven project building request +1558 * @param aggregate whether the scan is part of an aggregate build +1559 * @return a collection of exceptions that may have occurred while resolving +1560 * and scanning the dependencies +1561 */ +1562//CSOFF: OperatorWrap +1563private ExceptionCollection collectMavenDependencies(Engine engine, MavenProject project, +1564 Map<DependencyNode, List<DependencyNode>> nodeMap, ProjectBuildingRequest buildingRequest, boolean aggregate) { +1565 +1566final List<ArtifactResult> allResolvedDeps = new ArrayList<>(); +1567 +1568//dependency management +1569final List<DependencyNode> dmNodes = new ArrayList<>(); +1570 ExceptionCollection exCol = collectDependencyManagementDependencies(engine, buildingRequest, project, dmNodes, aggregate); +1571for (DependencyNode dependencyNode : dmNodes) { +1572 exCol = scanDependencyNode(dependencyNode, null, engine, project, allResolvedDeps, buildingRequest, aggregate, exCol); +1573 } +1574 +1575//dependencies +1576for (Map.Entry<DependencyNode, List<DependencyNode>> entry : nodeMap.entrySet()) { +1577 exCol = scanDependencyNode(entry.getKey(), null, engine, project, allResolvedDeps, buildingRequest, aggregate, exCol); +1578for (DependencyNode dependencyNode : entry.getValue()) { +1579 exCol = scanDependencyNode(dependencyNode, entry.getKey(), engine, project, allResolvedDeps, buildingRequest, aggregate, exCol); +1580 } +1581 } +1582return exCol; +1583 } +1584//CSON: OperatorWrap +1585 +1586/** +1587 * Utility method for a work-around to MSHARED-998 +1588 * +1589 * @param allDeps The List of ArtifactResults for all dependencies +1590 * @param unresolvedArtifact The ArtifactCoordinate of the artifact we're +1591 * looking for +1592 * @param project The project in whose context resolution was attempted +1593 * @return the resolved artifact matching with {@code unresolvedArtifact} +1594 * @throws DependencyNotFoundException If {@code unresolvedArtifact} could +1595 * not be found within {@code allDeps} +1596 */ +1597private Artifact findInAllDeps(final List<ArtifactResult> allDeps, final Artifact unresolvedArtifact, +1598final MavenProject project) +1599throws DependencyNotFoundException { +1600 Artifact result = null; +1601for (final ArtifactResult res : allDeps) { +1602if (sameArtifact(res, unresolvedArtifact)) { +1603 result = res.getArtifact(); +1604break; +1605 } +1606 } +1607if (result == null) { +1608thrownew DependencyNotFoundException(String.format("Expected dependency not found in resolved artifacts for " +1609 + "dependency %s of project-artifact %s", unresolvedArtifact, project.getArtifactId())); +1610 } +1611return result; +1612 } +1613 +1614/** +1615 * Utility method for a work-around to MSHARED-998 +1616 * +1617 * @param res A single ArtifactResult obtained from the DependencyResolver +1618 * @param unresolvedArtifact The unresolved Artifact from the +1619 * dependencyGraph that we try to find +1620 * @return {@code true} when unresolvedArtifact is non-null and matches with +1621 * the artifact of res +1622 */ +1623privateboolean sameArtifact(final ArtifactResult res, final Artifact unresolvedArtifact) { +1624if (res == null || res.getArtifact() == null || unresolvedArtifact == null) { +1625return false; +1626 } +1627boolean result = Objects.equals(res.getArtifact().getGroupId(), unresolvedArtifact.getGroupId()); +1628 result &= Objects.equals(res.getArtifact().getArtifactId(), unresolvedArtifact.getArtifactId()); +1629// accept any version as matching "LATEST" and any non-snapshot version as matching "RELEASE" meta-version +1630if ("RELEASE".equals(unresolvedArtifact.getBaseVersion())) { +1631 result &= !res.getArtifact().isSnapshot(); +1632 } elseif (!"LATEST".equals(unresolvedArtifact.getBaseVersion())) { +1633 result &= Objects.equals(res.getArtifact().getBaseVersion(), unresolvedArtifact.getBaseVersion()); +1634 } +1635 result &= Objects.equals(res.getArtifact().getClassifier(), unresolvedArtifact.getClassifier()); +1636 result &= Objects.equals(res.getArtifact().getType(), unresolvedArtifact.getType()); +1637return result; +1638 } +1639 +1640/** +1641 * @param project the {@link MavenProject} +1642 * @param dependencyNode the {@link DependencyNode} +1643 * @return the name to be used when creating a +1644 * {@link Dependency#getProjectReferences() project reference} in a +1645 * {@link Dependency}. The behavior of this method returns {@link MavenProject#getName() project.getName()}<code> + ":" + +1646 * </code> +1647 * {@link DependencyNode#getArtifact() dependencyNode.getArtifact()}{@link Artifact#getScope() .getScope()}. +1648 */ +1649protected String createProjectReferenceName(MavenProject project, DependencyNode dependencyNode) { +1650return project.getName() + ":" + dependencyNode.getArtifact().getScope(); +1651 } +1652 +1653/** +1654 * Scans the projects dependencies including the default (or defined) +1655 * FileSets. +1656 * +1657 * @param engine the core dependency-check engine +1658 * @param project the project being scanned +1659 * @param nodes the list of dependency nodes, generally obtained via the +1660 * DependencyGraphBuilder +1661 * @param buildingRequest the Maven project building request +1662 * @param aggregate whether the scan is part of an aggregate build +1663 * @return a collection of exceptions that may have occurred while resolving +1664 * and scanning the dependencies +1665 */ +1666private ExceptionCollection collectDependencies(Engine engine, MavenProject project, +1667 Map<DependencyNode, List<DependencyNode>> nodes, ProjectBuildingRequest buildingRequest, boolean aggregate) { +1668 +1669 ExceptionCollection exCol; +1670 exCol = collectMavenDependencies(engine, project, nodes, buildingRequest, aggregate); +1671 +1672final List<FileSet> projectScan; +1673 +1674if (scanDirectory != null && !scanDirectory.isEmpty()) { +1675if (scanSet == null) { +1676 scanSet = new ArrayList<>(); +1677 } +1678 scanDirectory.forEach(d -> { +1679final FileSet fs = new FileSet(); +1680 fs.setDirectory(d); +1681 fs.addInclude(INCLUDE_ALL); +1682 scanSet.add(fs); +1683 }); +1684 } +1685 +1686if (scanSet == null || scanSet.isEmpty()) { +1687// Define the default FileSets +1688final FileSet resourcesSet = new FileSet(); +1689final FileSet filtersSet = new FileSet(); +1690final FileSet webappSet = new FileSet(); +1691final FileSet mixedLangSet = new FileSet(); +1692try { +1693 resourcesSet.setDirectory(new File(project.getBasedir(), "src/main/resources").getCanonicalPath()); +1694 resourcesSet.addInclude(INCLUDE_ALL); +1695 filtersSet.setDirectory(new File(project.getBasedir(), "src/main/filters").getCanonicalPath()); +1696 filtersSet.addInclude(INCLUDE_ALL); +1697 webappSet.setDirectory(new File(project.getBasedir(), "src/main/webapp").getCanonicalPath()); +1698 webappSet.addInclude(INCLUDE_ALL); +1699 mixedLangSet.setDirectory(project.getBasedir().getCanonicalPath()); +1700 mixedLangSet.addInclude("package.json"); +1701 mixedLangSet.addInclude("package-lock.json"); +1702 mixedLangSet.addInclude("npm-shrinkwrap.json"); +1703 mixedLangSet.addInclude("Gopkg.lock"); +1704 mixedLangSet.addInclude("go.mod"); +1705 mixedLangSet.addInclude("yarn.lock"); +1706 mixedLangSet.addInclude("pnpm-lock.yaml"); +1707 mixedLangSet.addExclude("/node_modules/"); +1708 } catch (IOException ex) { +1709if (exCol == null) { +1710 exCol = new ExceptionCollection(); +1711 } +1712 exCol.addException(ex); +1713 } +1714 projectScan = new ArrayList<>(); +1715 projectScan.add(resourcesSet); +1716 projectScan.add(filtersSet); +1717 projectScan.add(webappSet); +1718 projectScan.add(mixedLangSet); +1719 +1720 } elseif (aggregate) { +1721 projectScan = new ArrayList<>(); +1722for (FileSet copyFrom : scanSet) { +1723//deep copy of the FileSet - modifying the directory if it is not absolute. +1724final FileSet fsCopy = new FileSet(); +1725final File f = new File(copyFrom.getDirectory()); +1726if (f.isAbsolute()) { +1727 fsCopy.setDirectory(copyFrom.getDirectory()); +1728 } else { +1729try { +1730 fsCopy.setDirectory(new File(project.getBasedir(), copyFrom.getDirectory()).getCanonicalPath()); +1731 } catch (IOException ex) { +1732if (exCol == null) { +1733 exCol = new ExceptionCollection(); +1734 } +1735 exCol.addException(ex); +1736 fsCopy.setDirectory(copyFrom.getDirectory()); +1737 } +1738 } +1739 fsCopy.setDirectoryMode(copyFrom.getDirectoryMode()); +1740 fsCopy.setExcludes(copyFrom.getExcludes()); +1741 fsCopy.setFileMode(copyFrom.getFileMode()); +1742 fsCopy.setFollowSymlinks(copyFrom.isFollowSymlinks()); +1743 fsCopy.setIncludes(copyFrom.getIncludes()); +1744 fsCopy.setLineEnding(copyFrom.getLineEnding()); +1745 fsCopy.setMapper(copyFrom.getMapper()); +1746 fsCopy.setModelEncoding(copyFrom.getModelEncoding()); +1747 fsCopy.setOutputDirectory(copyFrom.getOutputDirectory()); +1748 fsCopy.setUseDefaultExcludes(copyFrom.isUseDefaultExcludes()); +1749 projectScan.add(fsCopy); +1750 } +1751 } else { +1752 projectScan = scanSet; +1753 } +1754 +1755// Iterate through FileSets and scan included files +1756final FileSetManager fileSetManager = new FileSetManager(); +1757for (FileSet fileSet : projectScan) { +1758 getLog().debug("Scanning fileSet: " + fileSet.getDirectory()); +1759final String[] includedFiles = fileSetManager.getIncludedFiles(fileSet); +1760for (String include : includedFiles) { +1761final File includeFile = new File(fileSet.getDirectory(), include).getAbsoluteFile(); +1762if (includeFile.exists()) { +1763 engine.scan(includeFile, project.getName()); +1764 } +1765 } +1766 } +1767return exCol; +1768 } +1769 +1770/** +1771 * Checks if the current artifact is actually in the reactor projects that +1772 * have not yet been built. If true a virtual dependency is created based on +1773 * the evidence in the project. +1774 * +1775 * @param engine a reference to the engine being used to scan +1776 * @param artifact the artifact being analyzed in the mojo +1777 * @param depender The project that depends on this virtual dependency +1778 * @return <code>true</code> if the artifact is in the reactor; otherwise +1779 * <code>false</code> +1780 */ +1781privateboolean addReactorDependency(Engine engine, Artifact artifact, final MavenProject depender) { +1782return addVirtualDependencyFromReactor(engine, artifact, depender, "Unable to resolve %s as it has not been built yet " +1783 + "- creating a virtual dependency instead."); +1784 } +1785 +1786/** +1787 * Checks if the current artifact is actually in the reactor projects. If +1788 * true a virtual dependency is created based on the evidence in the +1789 * project. +1790 * +1791 * @param engine a reference to the engine being used to scan +1792 * @param artifact the artifact being analyzed in the mojo +1793 * @param depender The project that depends on this virtual dependency +1794 * @param infoLogTemplate the template for the infoLog entry written when a +1795 * virtual dependency is added. Needs a single %s placeholder for the +1796 * location of the displayName in the message +1797 * @return <code>true</code> if the artifact is in the reactor; otherwise +1798 * <code>false</code> +1799 */ +1800privateboolean addVirtualDependencyFromReactor(Engine engine, Artifact artifact, +1801final MavenProject depender, String infoLogTemplate) { +1802 +1803 getLog().debug(String.format("Checking the reactor projects (%d) for %s:%s:%s", +1804 reactorProjects.size(), +1805 artifact.getGroupId(), artifact.getArtifactId(), artifact.getVersion())); +1806 +1807for (MavenProject prj : reactorProjects) { +1808 +1809 getLog().debug(String.format("Comparing %s:%s:%s to %s:%s:%s", +1810 artifact.getGroupId(), artifact.getArtifactId(), artifact.getBaseVersion(), +1811 prj.getGroupId(), prj.getArtifactId(), prj.getVersion())); +1812 +1813if (prj.getArtifactId().equals(artifact.getArtifactId()) +1814 && prj.getGroupId().equals(artifact.getGroupId()) +1815 && prj.getVersion().equals(artifact.getBaseVersion())) { +1816 +1817final String displayName = String.format("%s:%s:%s", +1818 prj.getGroupId(), prj.getArtifactId(), prj.getVersion()); +1819 getLog().info(String.format(infoLogTemplate, +1820 displayName)); +1821final Dependency d = newDependency(prj); +1822final String key = String.format("%s:%s:%s", prj.getGroupId(), prj.getArtifactId(), prj.getVersion()); +1823 d.setSha1sum(Checksum.getSHA1Checksum(key)); +1824 d.setSha256sum(Checksum.getSHA256Checksum(key)); +1825 d.setMd5sum(Checksum.getMD5Checksum(key)); +1826 d.setEcosystem(JarAnalyzer.DEPENDENCY_ECOSYSTEM); +1827 d.setDisplayFileName(displayName); +1828 d.addProjectReference(depender.getName()); +1829final String includedby = buildReference( +1830 depender.getGroupId(), +1831 depender.getArtifactId(), +1832 depender.getVersion()); +1833 d.addIncludedBy(includedby); +1834 d.addEvidence(EvidenceType.PRODUCT, "project", "artifactid", prj.getArtifactId(), Confidence.HIGHEST); +1835 d.addEvidence(EvidenceType.VENDOR, "project", "artifactid", prj.getArtifactId(), Confidence.LOW); +1836 +1837 d.addEvidence(EvidenceType.VENDOR, "project", "groupid", prj.getGroupId(), Confidence.HIGHEST); +1838 d.addEvidence(EvidenceType.PRODUCT, "project", "groupid", prj.getGroupId(), Confidence.LOW); +1839 d.setEcosystem(JarAnalyzer.DEPENDENCY_ECOSYSTEM); +1840 Identifier id; +1841try { +1842 id = new PurlIdentifier(StandardTypes.MAVEN, artifact.getGroupId(), +1843 artifact.getArtifactId(), artifact.getVersion(), Confidence.HIGHEST); +1844 } catch (MalformedPackageURLException ex) { +1845 getLog().debug("Unable to create PackageURL object:" + key); +1846 id = new GenericIdentifier("maven:" + key, Confidence.HIGHEST); +1847 } +1848 d.addSoftwareIdentifier(id); +1849//TODO unify the setName/version and package path - they are equivelent ideas submitted by two seperate committers +1850 d.setName(String.format("%s:%s", prj.getGroupId(), prj.getArtifactId())); +1851 d.setVersion(prj.getVersion()); +1852 d.setPackagePath(displayName); +1853if (prj.getDescription() != null) { +1854 JarAnalyzer.addDescription(d, prj.getDescription(), "project", "description"); +1855 } +1856for (License l : prj.getLicenses()) { +1857final StringBuilder license = new StringBuilder(); +1858if (l.getName() != null) { +1859 license.append(l.getName()); +1860 } +1861if (l.getUrl() != null) { +1862 license.append(" ").append(l.getUrl()); +1863 } +1864if (d.getLicense() == null) { +1865 d.setLicense(license.toString()); +1866 } elseif (!d.getLicense().contains(license)) { +1867 d.setLicense(String.format("%s%n%s", d.getLicense(), license)); +1868 } +1869 } +1870 engine.addDependency(d); +1871returntrue; +1872 } +1873 } +1874return false; +1875 } +1876 +1877 Dependency newDependency(MavenProject prj) { +1878final File pom = new File(prj.getBasedir(), "pom.xml"); +1879 +1880if (pom.isFile()) { +1881 getLog().debug("Adding virtual dependency from pom.xml"); +1882returnnew Dependency(pom, true); +1883 } elseif (prj.getFile().isFile()) { +1884 getLog().debug("Adding virtual dependency from file"); +1885returnnew Dependency(prj.getFile(), true); +1886 } else { +1887returnnew Dependency(true); +1888 } +1889 } +1890 +1891/** +1892 * Checks if the current artifact is actually in the reactor projects. If +1893 * true a virtual dependency is created based on the evidence in the +1894 * project. +1895 * +1896 * @param engine a reference to the engine being used to scan +1897 * @param artifact the artifact being analyzed in the mojo +1898 * @param depender The project that depends on this virtual dependency +1899 * @return <code>true</code> if the artifact is a snapshot artifact in the +1900 * reactor; otherwise <code>false</code> +1901 */ +1902privateboolean addSnapshotReactorDependency(Engine engine, Artifact artifact, final MavenProject depender) { +1903if (!artifact.isSnapshot()) { +1904return false; +1905 } +1906return addVirtualDependencyFromReactor(engine, artifact, depender, "Found snapshot reactor project in aggregate for %s - " +1907 + "creating a virtual dependency as the snapshot found in the repository may contain outdated dependencies."); +1908 } +1909 +1910/** +1911 * @param project The target project to create a building request for. +1912 * @param repos the artifact repositories to use. +1913 * @return Returns a new ProjectBuildingRequest populated from the current +1914 * session and the target project remote repositories, used to resolve +1915 * artifacts. +1916 */ +1917public ProjectBuildingRequest newResolveArtifactProjectBuildingRequest(MavenProject project, List<ArtifactRepository> repos) { +1918final ProjectBuildingRequest buildingRequest = new DefaultProjectBuildingRequest(session.getProjectBuildingRequest()); +1919 buildingRequest.setRemoteRepositories(repos); +1920 buildingRequest.setProject(project); +1921return buildingRequest; +1922 } +1923 +1924/** +1925 * Executes the dependency-check scan and generates the necessary report. +1926 * +1927 * @throws MojoExecutionException thrown if there is an exception running +1928 * the scan +1929 * @throws MojoFailureException thrown if dependency-check is configured to +1930 * fail the build +1931 */ +1932protectedvoid runCheck() throws MojoExecutionException, MojoFailureException { +1933 muteNoisyLoggers(); +1934try (Engine engine = initializeEngine()) { +1935 ExceptionCollection exCol = null; +1936if (scanDependencies) { +1937 exCol = scanDependencies(engine); +1938 } +1939if (scanPlugins) { +1940 exCol = scanPlugins(engine, exCol); +1941 } +1942try { +1943 engine.analyzeDependencies(); +1944 } catch (ExceptionCollection ex) { +1945 exCol = handleAnalysisExceptions(exCol, ex); +1946 } +1947if (exCol == null || !exCol.isFatal()) { +1948 +1949 File outputDir = getCorrectOutputDirectory(this.getProject()); +1950if (outputDir == null) { +1951//in some regards we shouldn't be writing this, but we are anyway. +1952//we shouldn't write this because nothing is configured to generate this report. +1953 outputDir = new File(this.getProject().getBuild().getDirectory()); +1954 } +1955try { +1956final MavenProject p = this.getProject(); +1957for (String f : getFormats()) { +1958 engine.writeReports(p.getName(), p.getGroupId(), p.getArtifactId(), p.getVersion(), outputDir, f, exCol); +1959 } +1960 } catch (ReportException ex) { +1961if (exCol == null) { +1962 exCol = new ExceptionCollection(ex); +1963 } else { +1964 exCol.addException(ex); +1965 } +1966if (this.isFailOnError()) { +1967thrownew MojoExecutionException("One or more exceptions occurred during dependency-check analysis", exCol); +1968 } else { +1969 getLog().debug("Error writing the report", ex); +1970 } +1971 } +1972 showSummary(this.getProject(), engine.getDependencies()); +1973 checkForFailure(engine.getDependencies()); +1974if (exCol != null && this.isFailOnError()) { +1975thrownew MojoExecutionException("One or more exceptions occurred during dependency-check analysis", exCol); +1976 } +1977 } +1978 } catch (DatabaseException ex) { +1979if (getLog().isDebugEnabled()) { +1980 getLog().debug("Database connection error", ex); +1981 } +1982final String msg = "An exception occurred connecting to the local database. Please see the log file for more details."; +1983if (this.isFailOnError()) { +1984thrownew MojoExecutionException(msg, ex); +1985 } +1986 getLog().error(msg, ex); +1987 } finally { +1988 getSettings().cleanup(); +1989 } +1990 } +1991 +1992/** +1993 * Combines the two exception collections and if either are fatal, throw an +1994 * MojoExecutionException +1995 * +1996 * @param currentEx the primary exception collection +1997 * @param newEx the new exception collection to add +1998 * @return the combined exception collection +1999 * @throws MojoExecutionException thrown if dependency-check is configured +2000 * to fail on errors +2001 */ +2002private ExceptionCollection handleAnalysisExceptions(ExceptionCollection currentEx, ExceptionCollection newEx) throws MojoExecutionException { +2003 ExceptionCollection returnEx = currentEx; +2004if (returnEx == null) { +2005 returnEx = newEx; +2006 } else { +2007 returnEx.getExceptions().addAll(newEx.getExceptions()); +2008if (newEx.isFatal()) { +2009 returnEx.setFatal(true); +2010 } +2011 } +2012if (returnEx.isFatal()) { +2013final String msg = String.format("Fatal exception(s) analyzing %s", getProject().getName()); +2014if (this.isFailOnError()) { +2015thrownew MojoExecutionException(msg, returnEx); +2016 } +2017 getLog().error(msg); +2018if (getLog().isDebugEnabled()) { +2019 getLog().debug(returnEx); +2020 } +2021 } else { +2022final String msg = String.format("Exception(s) analyzing %s", getProject().getName()); +2023if (getLog().isDebugEnabled()) { +2024 getLog().debug(msg, returnEx); +2025 } +2026 } +2027return returnEx; +2028 } +2029 +2030/** +2031 * Scans the dependencies of the projects. +2032 * +2033 * @param engine the engine used to perform the scanning +2034 * @return a collection of exceptions +2035 * @throws MojoExecutionException thrown if a fatal exception occurs +2036 */ +2037protectedabstract ExceptionCollection scanDependencies(Engine engine) throws MojoExecutionException; +2038 +2039/** +2040 * Scans the plugins of the projects. +2041 * +2042 * @param engine the engine used to perform the scanning +2043 * @param exCol the collection of any exceptions that have previously been +2044 * captured. +2045 * @return a collection of exceptions +2046 * @throws MojoExecutionException thrown if a fatal exception occurs +2047 */ +2048protectedabstract ExceptionCollection scanPlugins(Engine engine, ExceptionCollection exCol) throws MojoExecutionException; +2049 +2050/** +2051 * Returns the report output directory. +2052 * +2053 * @return the report output directory +2054 */ +2055 @Override +2056public File getReportOutputDirectory() { +2057return reportOutputDirectory; +2058 } +2059 +2060/** +2061 * Sets the Reporting output directory. +2062 * +2063 * @param directory the output directory +2064 */ +2065 @Override +2066publicvoid setReportOutputDirectory(File directory) { +2067 reportOutputDirectory = directory; +2068 } +2069 +2070/** +2071 * Returns the output directory. +2072 * +2073 * @return the output directory +2074 */ +2075public File getOutputDirectory() { +2076return outputDirectory; +2077 } +2078 +2079/** +2080 * Returns whether this is an external report. This method always returns +2081 * true. +2082 * +2083 * @return <code>true</code> +2084 */ +2085 @Override +2086publicfinalboolean isExternalReport() { +2087returntrue; +2088 } +2089 +2090/** +2091 * Returns the output name. +2092 * +2093 * @return the output name +2094 */ +2095 @Override +2096public String getOutputName() { +2097final Set<String> selectedFormats = getFormats(); +2098if (selectedFormats.contains("HTML") || selectedFormats.contains("ALL") || selectedFormats.size() > 1) { +2099return"dependency-check-report"; +2100 } elseif (selectedFormats.contains("JENKINS")) { +2101return"dependency-check-jenkins.html"; +2102 } elseif (selectedFormats.contains("XML")) { +2103return"dependency-check-report.xml"; +2104 } elseif (selectedFormats.contains("JUNIT")) { +2105return"dependency-check-junit.xml"; +2106 } elseif (selectedFormats.contains("JSON")) { +2107return"dependency-check-report.json"; +2108 } elseif (selectedFormats.contains("SARIF")) { +2109return"dependency-check-report.sarif"; +2110 } elseif (selectedFormats.contains("CSV")) { +2111return"dependency-check-report.csv"; +2112 } else { +2113 getLog().warn("Unknown report format used during site generation."); +2114return"dependency-check-report"; +2115 } +2116 } +2117 +2118/** +2119 * Returns the category name. +2120 * +2121 * @return the category name +2122 */ +2123 @Override +2124public String getCategoryName() { +2125return MavenReport.CATEGORY_PROJECT_REPORTS; +2126 } +2127//</editor-fold> +2128 +2129/** +2130 * Initializes a new <code>Engine</code> that can be used for scanning. This +2131 * method should only be called in a try-with-resources to ensure that the +2132 * engine is properly closed. +2133 * +2134 * @return a newly instantiated <code>Engine</code> +2135 * @throws DatabaseException thrown if there is a database exception +2136 */ +2137protected Engine initializeEngine() throws DatabaseException { +2138 populateSettings(); +2139returnnew Engine(settings); +2140 } +2141 +2142//CSOFF: MethodLength +2143/** +2144 * Takes the properties supplied and updates the dependency-check settings. +2145 * Additionally, this sets the system properties required to change the +2146 * proxy URL, port, and connection timeout. +2147 */ +2148protectedvoid populateSettings() { +2149 settings = new Settings(); +2150 InputStream mojoProperties = null; +2151try { +2152 mojoProperties = this.getClass().getClassLoader().getResourceAsStream(PROPERTIES_FILE); +2153 settings.mergeProperties(mojoProperties); +2154 } catch (IOException ex) { +2155 getLog().warn("Unable to load the dependency-check maven mojo.properties file."); +2156if (getLog().isDebugEnabled()) { +2157 getLog().debug("", ex); +2158 } +2159 } finally { +2160if (mojoProperties != null) { +2161try { +2162 mojoProperties.close(); +2163 } catch (IOException ex) { +2164if (getLog().isDebugEnabled()) { +2165 getLog().debug("", ex); +2166 } +2167 } +2168 } +2169 } +2170 settings.setStringIfNotEmpty(Settings.KEYS.MAVEN_LOCAL_REPO, mavenSettings.getLocalRepository()); +2171 settings.setBooleanIfNotNull(Settings.KEYS.AUTO_UPDATE, autoUpdate); +2172 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_EXPERIMENTAL_ENABLED, enableExperimental); +2173 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_RETIRED_ENABLED, enableRetired); +2174 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_GOLANG_DEP_ENABLED, golangDepEnabled); +2175 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_GOLANG_MOD_ENABLED, golangModEnabled); +2176 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_DART_ENABLED, dartAnalyzerEnabled); +2177 settings.setStringIfNotNull(Settings.KEYS.ANALYZER_GOLANG_PATH, pathToGo); +2178 settings.setStringIfNotNull(Settings.KEYS.ANALYZER_YARN_PATH, pathToYarn); +2179 settings.setStringIfNotNull(Settings.KEYS.ANALYZER_PNPM_PATH, pathToPnpm); +2180 +2181// use global maven proxy if provided +2182final Proxy mavenProxy = getMavenProxy(); +2183if (mavenProxy != null) { +2184final String existing = System.getProperty("https.proxyHost"); +2185if (existing == null && mavenProxy.getHost() != null && !mavenProxy.getHost().isEmpty()) { +2186 System.setProperty("https.proxyHost", mavenProxy.getHost()); +2187if (mavenProxy.getPort() > 0) { +2188 System.setProperty("https.proxyPort", String.valueOf(mavenProxy.getPort())); +2189 } +2190if (mavenProxy.getUsername() != null && !mavenProxy.getUsername().isEmpty()) { +2191 System.setProperty("https.proxyUser", mavenProxy.getUsername()); +2192 } +2193if (mavenProxy.getPassword() != null && !mavenProxy.getPassword().isEmpty()) { +2194 System.setProperty("https.proxyPassword", mavenProxy.getPassword()); +2195 } +2196if (mavenProxy.getNonProxyHosts() != null && !mavenProxy.getNonProxyHosts().isEmpty()) { +2197 System.setProperty("http.nonProxyHosts", mavenProxy.getNonProxyHosts()); +2198 } +2199 } +2200 +2201 settings.setString(Settings.KEYS.PROXY_SERVER, mavenProxy.getHost()); +2202 settings.setString(Settings.KEYS.PROXY_PORT, Integer.toString(mavenProxy.getPort())); +2203final String userName = mavenProxy.getUsername(); +2204 String password = mavenProxy.getPassword(); +2205if (password != null && !password.isEmpty()) { +2206if (settings.getBoolean(Settings.KEYS.PROXY_DISABLE_SCHEMAS, true)) { +2207 System.setProperty("jdk.http.auth.tunneling.disabledSchemes", ""); +2208 } +2209try { +2210 password = decryptPasswordFromSettings(password); +2211 } catch (SecDispatcherException ex) { +2212 password = handleSecDispatcherException("proxy", mavenProxy.getId(), password, ex); +2213 } +2214 } +2215 settings.setStringIfNotNull(Settings.KEYS.PROXY_USERNAME, userName); +2216 settings.setStringIfNotNull(Settings.KEYS.PROXY_PASSWORD, password); +2217 settings.setStringIfNotNull(Settings.KEYS.PROXY_NON_PROXY_HOSTS, mavenProxy.getNonProxyHosts()); +2218 } elseif (System.getProperty("http.proxyHost") != null) { +2219//else use standard Java system properties +2220 settings.setString(Settings.KEYS.PROXY_SERVER, System.getProperty("http.proxyHost", "")); +2221if (System.getProperty("http.proxyPort") != null) { +2222 settings.setString(Settings.KEYS.PROXY_PORT, System.getProperty("http.proxyPort")); +2223 } +2224if (System.getProperty("http.proxyUser") != null) { +2225 settings.setString(Settings.KEYS.PROXY_USERNAME, System.getProperty("http.proxyUser")); +2226 } +2227if (System.getProperty("http.proxyPassword") != null) { +2228 settings.setString(Settings.KEYS.PROXY_PASSWORD, System.getProperty("http.proxyPassword")); +2229 } +2230if (System.getProperty("http.nonProxyHosts") != null) { +2231 settings.setString(Settings.KEYS.PROXY_NON_PROXY_HOSTS, System.getProperty("http.nonProxyHosts")); +2232 } +2233 } elseif (this.proxy != null && this.proxy.getHost() != null) { +2234// or use configured <proxy> +2235 settings.setString(Settings.KEYS.PROXY_SERVER, this.proxy.getHost()); +2236 settings.setString(Settings.KEYS.PROXY_PORT, Integer.toString(this.proxy.getPort())); +2237// user name and password from <server> entry settings.xml +2238 configureServerCredentials(this.proxy.getServerId(), Settings.KEYS.PROXY_USERNAME, Settings.KEYS.PROXY_PASSWORD); +2239 } +2240 +2241final String[] suppressions = determineSuppressions(); +2242 settings.setArrayIfNotEmpty(Settings.KEYS.SUPPRESSION_FILE, suppressions); +2243 settings.setBooleanIfNotNull(Settings.KEYS.UPDATE_VERSION_CHECK_ENABLED, versionCheckEnabled); +2244 settings.setStringIfNotEmpty(Settings.KEYS.CONNECTION_TIMEOUT, connectionTimeout); +2245 settings.setStringIfNotEmpty(Settings.KEYS.CONNECTION_READ_TIMEOUT, readTimeout); +2246 settings.setStringIfNotEmpty(Settings.KEYS.HINTS_FILE, hintsFile); +2247 settings.setFloat(Settings.KEYS.JUNIT_FAIL_ON_CVSS, junitFailOnCVSS); +2248 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_JAR_ENABLED, jarAnalyzerEnabled); +2249 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_NUSPEC_ENABLED, nuspecAnalyzerEnabled); +2250 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_NUGETCONF_ENABLED, nugetconfAnalyzerEnabled); +2251 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_LIBMAN_ENABLED, libmanAnalyzerEnabled); +2252 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_CENTRAL_ENABLED, centralAnalyzerEnabled); +2253 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_CENTRAL_USE_CACHE, centralAnalyzerUseCache); +2254 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_ARTIFACTORY_ENABLED, artifactoryAnalyzerEnabled); +2255 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_NEXUS_ENABLED, nexusAnalyzerEnabled); +2256 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_ASSEMBLY_ENABLED, assemblyAnalyzerEnabled); +2257 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_MSBUILD_PROJECT_ENABLED, msbuildAnalyzerEnabled); +2258 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_ARCHIVE_ENABLED, archiveAnalyzerEnabled); +2259 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_KNOWN_EXPLOITED_ENABLED, knownExploitedEnabled); +2260 settings.setStringIfNotEmpty(Settings.KEYS.KEV_URL, knownExploitedUrl); +2261 settings.setStringIfNotEmpty(Settings.KEYS.ADDITIONAL_ZIP_EXTENSIONS, zipExtensions); +2262 settings.setStringIfNotEmpty(Settings.KEYS.ANALYZER_ASSEMBLY_DOTNET_PATH, pathToCore); +2263 settings.setStringIfNotEmpty(Settings.KEYS.ANALYZER_NEXUS_URL, nexusUrl); +2264 configureServerCredentials(nexusServerId, Settings.KEYS.ANALYZER_NEXUS_USER, Settings.KEYS.ANALYZER_NEXUS_PASSWORD); +2265 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_NEXUS_USES_PROXY, nexusUsesProxy); +2266 settings.setStringIfNotNull(Settings.KEYS.ANALYZER_ARTIFACTORY_URL, artifactoryAnalyzerUrl); +2267 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_ARTIFACTORY_USES_PROXY, artifactoryAnalyzerUseProxy); +2268 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_ARTIFACTORY_PARALLEL_ANALYSIS, artifactoryAnalyzerParallelAnalysis); +2269if (Boolean.TRUE.equals(artifactoryAnalyzerEnabled)) { +2270if (artifactoryAnalyzerServerId != null) { +2271 configureServerCredentials(artifactoryAnalyzerServerId, Settings.KEYS.ANALYZER_ARTIFACTORY_API_USERNAME, +2272 Settings.KEYS.ANALYZER_ARTIFACTORY_API_TOKEN); +2273 } else { +2274 settings.setStringIfNotNull(Settings.KEYS.ANALYZER_ARTIFACTORY_API_USERNAME, artifactoryAnalyzerUsername); +2275 settings.setStringIfNotNull(Settings.KEYS.ANALYZER_ARTIFACTORY_API_TOKEN, artifactoryAnalyzerApiToken); +2276 } +2277 settings.setStringIfNotNull(Settings.KEYS.ANALYZER_ARTIFACTORY_BEARER_TOKEN, artifactoryAnalyzerBearerToken); +2278 } +2279 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_PYTHON_DISTRIBUTION_ENABLED, pyDistributionAnalyzerEnabled); +2280 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_PYTHON_PACKAGE_ENABLED, pyPackageAnalyzerEnabled); +2281 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_RUBY_GEMSPEC_ENABLED, rubygemsAnalyzerEnabled); +2282 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_OPENSSL_ENABLED, opensslAnalyzerEnabled); +2283 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_CMAKE_ENABLED, cmakeAnalyzerEnabled); +2284 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_AUTOCONF_ENABLED, autoconfAnalyzerEnabled); +2285 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_MAVEN_INSTALL_ENABLED, mavenInstallAnalyzerEnabled); +2286 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_PIP_ENABLED, pipAnalyzerEnabled); +2287 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_PIPFILE_ENABLED, pipfileAnalyzerEnabled); +2288 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_POETRY_ENABLED, poetryAnalyzerEnabled); +2289 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_COMPOSER_LOCK_ENABLED, composerAnalyzerEnabled); +2290 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_CPANFILE_ENABLED, cpanfileAnalyzerEnabled); +2291 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_NODE_PACKAGE_ENABLED, nodeAnalyzerEnabled); +2292 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_NODE_AUDIT_ENABLED, nodeAuditAnalyzerEnabled); +2293 settings.setStringIfNotNull(Settings.KEYS.ANALYZER_NODE_AUDIT_URL, nodeAuditAnalyzerUrl); +2294 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_NODE_AUDIT_USE_CACHE, nodeAuditAnalyzerUseCache); +2295 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_NODE_PACKAGE_SKIPDEV, nodePackageSkipDevDependencies); +2296 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_NODE_AUDIT_SKIPDEV, nodeAuditSkipDevDependencies); +2297 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_YARN_AUDIT_ENABLED, yarnAuditAnalyzerEnabled); +2298 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_PNPM_AUDIT_ENABLED, pnpmAuditAnalyzerEnabled); +2299 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_RETIREJS_ENABLED, retireJsAnalyzerEnabled); +2300 settings.setStringIfNotNull(Settings.KEYS.ANALYZER_RETIREJS_REPO_JS_URL, retireJsUrl); +2301 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_RETIREJS_FORCEUPDATE, retireJsForceUpdate); +2302if (retireJsUser == null && retireJsPassword == null && retireJsUrlServerId != null) { +2303 configureServerCredentials(retireJsUrlServerId, Settings.KEYS.ANALYZER_RETIREJS_REPO_JS_USER, Settings.KEYS.ANALYZER_RETIREJS_REPO_JS_PASSWORD); +2304 } else { +2305 settings.setStringIfNotEmpty(Settings.KEYS.ANALYZER_RETIREJS_REPO_JS_USER, retireJsUser); +2306 settings.setStringIfNotEmpty(Settings.KEYS.ANALYZER_RETIREJS_REPO_JS_PASSWORD, retireJsPassword); +2307 } +2308 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_MIX_AUDIT_ENABLED, mixAuditAnalyzerEnabled); +2309 settings.setStringIfNotNull(Settings.KEYS.ANALYZER_MIX_AUDIT_PATH, mixAuditPath); +2310 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_BUNDLE_AUDIT_ENABLED, bundleAuditAnalyzerEnabled); +2311 settings.setStringIfNotNull(Settings.KEYS.ANALYZER_BUNDLE_AUDIT_PATH, bundleAuditPath); +2312 settings.setStringIfNotNull(Settings.KEYS.ANALYZER_BUNDLE_AUDIT_WORKING_DIRECTORY, bundleAuditWorkingDirectory); +2313 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_COCOAPODS_ENABLED, cocoapodsAnalyzerEnabled); +2314 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_SWIFT_PACKAGE_MANAGER_ENABLED, swiftPackageManagerAnalyzerEnabled); +2315 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_SWIFT_PACKAGE_RESOLVED_ENABLED, swiftPackageResolvedAnalyzerEnabled); +2316 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_OSSINDEX_ENABLED, ossindexAnalyzerEnabled); +2317 settings.setStringIfNotEmpty(Settings.KEYS.ANALYZER_OSSINDEX_URL, ossindexAnalyzerUrl); +2318 configureServerCredentials(ossIndexServerId, Settings.KEYS.ANALYZER_OSSINDEX_USER, Settings.KEYS.ANALYZER_OSSINDEX_PASSWORD); +2319 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_OSSINDEX_USE_CACHE, ossindexAnalyzerUseCache); +2320 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_OSSINDEX_WARN_ONLY_ON_REMOTE_ERRORS, ossIndexWarnOnlyOnRemoteErrors); +2321if (retirejs != null) { +2322 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_RETIREJS_FILTER_NON_VULNERABLE, retirejs.getFilterNonVulnerable()); +2323 settings.setArrayIfNotEmpty(Settings.KEYS.ANALYZER_RETIREJS_FILTERS, retirejs.getFilters()); +2324 } +2325//Database configuration +2326 settings.setStringIfNotEmpty(Settings.KEYS.DB_DRIVER_NAME, databaseDriverName); +2327 settings.setStringIfNotEmpty(Settings.KEYS.DB_DRIVER_PATH, databaseDriverPath); +2328 settings.setStringIfNotEmpty(Settings.KEYS.DB_CONNECTION_STRING, connectionString); +2329if (databaseUser == null && databasePassword == null && serverId != null) { +2330 configureServerCredentials(serverId, Settings.KEYS.DB_USER, Settings.KEYS.DB_PASSWORD); +2331 } else { +2332 settings.setStringIfNotEmpty(Settings.KEYS.DB_USER, databaseUser); +2333 settings.setStringIfNotEmpty(Settings.KEYS.DB_PASSWORD, databasePassword); +2334 } +2335 settings.setStringIfNotEmpty(Settings.KEYS.DATA_DIRECTORY, dataDirectory); +2336 settings.setStringIfNotEmpty(Settings.KEYS.DB_FILE_NAME, dbFilename); +2337 settings.setStringIfNotNull(Settings.KEYS.NVD_API_ENDPOINT, nvdApiEndpoint); +2338 settings.setIntIfNotNull(Settings.KEYS.NVD_API_DELAY, nvdApiDelay); +2339 settings.setStringIfNotEmpty(Settings.KEYS.NVD_API_DATAFEED_URL, nvdDatafeedUrl); +2340 settings.setIntIfNotNull(Settings.KEYS.NVD_API_VALID_FOR_HOURS, nvdValidForHours); +2341 settings.setIntIfNotNull(Settings.KEYS.NVD_API_MAX_RETRY_COUNT, nvdMaxRetryCount); +2342if (nvdApiKey == null && nvdApiServerId != null) { +2343 configureServerCredentialsApiKey(nvdApiServerId, Settings.KEYS.NVD_API_KEY); +2344 } else { +2345 settings.setStringIfNotEmpty(Settings.KEYS.NVD_API_KEY, nvdApiKey); +2346 } +2347if (nvdUser == null && nvdPassword == null && nvdDatafeedServerId != null) { +2348 configureServerCredentials(nvdDatafeedServerId, Settings.KEYS.NVD_API_DATAFEED_USER, Settings.KEYS.NVD_API_DATAFEED_PASSWORD); +2349 } else { +2350 settings.setStringIfNotEmpty(Settings.KEYS.NVD_API_DATAFEED_USER, nvdUser); +2351 settings.setStringIfNotEmpty(Settings.KEYS.NVD_API_DATAFEED_PASSWORD, nvdPassword); +2352 } +2353 settings.setBooleanIfNotNull(Settings.KEYS.PRETTY_PRINT, prettyPrint); +2354 artifactScopeExcluded = newArtifactScopeExcluded(skipTestScope, skipProvidedScope, skipSystemScope, skipRuntimeScope); +2355 artifactTypeExcluded = newArtifactTypeExcluded(skipArtifactType); +2356if (suppressionFileUser == null && suppressionFilePassword == null && suppressionFileServerId != null) { +2357 configureServerCredentials(suppressionFileServerId, Settings.KEYS.SUPPRESSION_FILE_USER, Settings.KEYS.SUPPRESSION_FILE_PASSWORD); +2358 } else { +2359 settings.setStringIfNotEmpty(Settings.KEYS.SUPPRESSION_FILE_USER, suppressionFileUser); +2360 settings.setStringIfNotEmpty(Settings.KEYS.SUPPRESSION_FILE_PASSWORD, suppressionFilePassword); +2361 } +2362 settings.setIntIfNotNull(Settings.KEYS.HOSTED_SUPPRESSIONS_VALID_FOR_HOURS, hostedSuppressionsValidForHours); +2363 settings.setStringIfNotNull(Settings.KEYS.HOSTED_SUPPRESSIONS_URL, hostedSuppressionsUrl); +2364 settings.setBooleanIfNotNull(Settings.KEYS.HOSTED_SUPPRESSIONS_FORCEUPDATE, hostedSuppressionsForceUpdate); +2365 settings.setBooleanIfNotNull(Settings.KEYS.HOSTED_SUPPRESSIONS_ENABLED, hostedSuppressionsEnabled); +2366 } +2367//CSON: MethodLength +2368 +2369/** +2370 * Retrieves the server credentials from the settings.xml, decrypts the +2371 * password, and places the values into the settings under the given key +2372 * names. +2373 * +2374 * @param serverId the server id +2375 * @param userSettingKey the property name for the username +2376 * @param passwordSettingKey the property name for the password +2377 */ +2378privatevoid configureServerCredentials(String serverId, String userSettingKey, String passwordSettingKey) { +2379if (serverId != null) { +2380final Server server = settingsXml.getServer(serverId); +2381if (server != null) { +2382final String username = server.getUsername(); +2383 String password = null; +2384try { +2385 password = decryptPasswordFromSettings(server.getPassword()); +2386 } catch (SecDispatcherException ex) { +2387 password = handleSecDispatcherException("server", serverId, server.getPassword(), ex); +2388 } +2389 settings.setStringIfNotEmpty(userSettingKey, username); +2390 settings.setStringIfNotEmpty(passwordSettingKey, password); +2391 } else { +2392 getLog().error(String.format("Server '%s' not found in the settings.xml file", serverId)); +2393 } +2394 } +2395 } +2396 +2397/** +2398 * Retrieves the server credentials from the settings.xml, decrypts the +2399 * password, and places the values into the settings under the given key +2400 * names. This is used to retrieve an encrypted password as an API key. +2401 * +2402 * @param serverId the server id +2403 * @param apiKeySetting the property name for the username +2404 */ +2405privatevoid configureServerCredentialsApiKey(String serverId, String apiKeySetting) { +2406if (serverId != null) { +2407final Server server = settingsXml.getServer(serverId); +2408if (server != null) { +2409 String password = null; +2410try { +2411 password = decryptPasswordFromSettings(server.getPassword()); +2412 } catch (SecDispatcherException ex) { +2413 password = handleSecDispatcherException("server", serverId, server.getPassword(), ex); +2414 } +2415 settings.setStringIfNotEmpty(apiKeySetting, password); +2416 } else { +2417 getLog().error(String.format("Server '%s' not found in the settings.xml file", serverId)); +2418 } +2419 } +2420 } +2421 +2422/** +2423 * Decrypts a password from the Maven settings if it needs to be decrypted. +2424 * If it's not encrypted the input password will be returned unchanged. +2425 * +2426 * @param password the original password value from the settings.xml +2427 * @return the decrypted password from the Maven configuration +2428 * @throws SecDispatcherException thrown if there is an error decrypting the +2429 * password +2430 */ +2431private String decryptPasswordFromSettings(String password) throws SecDispatcherException { +2432//The following fix was copied from: +2433// https://github.com/bsorrentino/maven-confluence-plugin/blob/master/maven-confluence-reporting-plugin/src/main/java/org/bsc/maven/confluence/plugin/AbstractBaseConfluenceMojo.java +2434// +2435// FIX to resolve +2436// org.sonatype.plexus.components.sec.dispatcher.SecDispatcherException: +2437// java.io.FileNotFoundException: ~/.settings-security.xml (No such file or directory) +2438// +2439if (securityDispatcher instanceof DefaultSecDispatcher) { +2440 ((DefaultSecDispatcher) securityDispatcher).setConfigurationFile("~/.m2/settings-security.xml"); +2441 } +2442 +2443return securityDispatcher.decrypt(password); +2444 } +2445 +2446/** +2447 * Handles a SecDispatcherException that was thrown at an attempt to decrypt +2448 * an encrypted password from the Maven settings. +2449 * +2450 * @param settingsElementName - "server" or "proxy" +2451 * @param settingsElementId - value of the id attribute of the proxy resp. +2452 * server element to which the password belongs +2453 * @param passwordValueFromSettings - original, undecrypted password value +2454 * from the settings +2455 * @param ex - the Exception to handle +2456 * @return the password fallback value to go on with, might be a not working +2457 * one. +2458 */ +2459private String handleSecDispatcherException(String settingsElementName, String settingsElementId, String passwordValueFromSettings, +2460 SecDispatcherException ex) { +2461 String password = passwordValueFromSettings; +2462if (ex.getCause() instanceof FileNotFoundException +2463 || (ex.getCause() != null && ex.getCause().getCause() instanceof FileNotFoundException)) { +2464//maybe its not encrypted? +2465final String tmp = passwordValueFromSettings; +2466if (tmp.startsWith("{") && tmp.endsWith("}")) { +2467 getLog().error(String.format( +2468"Unable to decrypt the %s password for %s id '%s' in settings.xml%n\tCause: %s", +2469 settingsElementName, settingsElementName, settingsElementId, ex.getMessage())); +2470 } else { +2471 password = tmp; +2472 } +2473 } else { +2474 getLog().error(String.format( +2475"Unable to decrypt the %s password for %s id '%s' in settings.xml%n\tCause: %s", +2476 settingsElementName, settingsElementName, settingsElementId, ex.getMessage())); +2477 } +2478return password; +2479 } +2480 +2481/** +2482 * Combines the configured suppressionFile and suppressionFiles into a +2483 * single array. +2484 * +2485 * @return an array of suppression file paths +2486 */ +2487private String[] determineSuppressions() { +2488 String[] suppressions = suppressionFiles; +2489if (suppressionFile != null) { +2490if (suppressions == null) { +2491 suppressions = new String[]{suppressionFile}; +2492 } else { +2493 suppressions = Arrays.copyOf(suppressions, suppressions.length + 1); +2494 suppressions[suppressions.length - 1] = suppressionFile; +2495 } +2496 } +2497return suppressions; +2498 } +2499 +2500/** +2501 * Hacky method of muting the noisy logging from JCS +2502 */ +2503privatevoid muteNoisyLoggers() { +2504 System.setProperty("jcs.logSystem", "slf4j"); +2505if (!getLog().isDebugEnabled()) { +2506 Slf4jAdapter.muteLogging(true); +2507 } +2508 +2509final String[] noisyLoggers = { +2510"org.apache.hc" +2511 }; +2512for (String loggerName : noisyLoggers) { +2513 System.setProperty("org.slf4j.simpleLogger.log." + loggerName, "error"); +2514 } +2515 } +2516 +2517/** +2518 * Returns the maven proxy. +2519 * +2520 * @return the maven proxy +2521 */ +2522private Proxy getMavenProxy() { +2523if (mavenSettings != null) { +2524final List<Proxy> proxies = mavenSettings.getProxies(); +2525if (proxies != null && !proxies.isEmpty()) { +2526if (mavenSettingsProxyId != null) { +2527for (Proxy proxy : proxies) { +2528if (mavenSettingsProxyId.equalsIgnoreCase(proxy.getId())) { +2529return proxy; +2530 } +2531 } +2532 } else { +2533for (Proxy aProxy : proxies) { +2534if (aProxy.isActive()) { +2535return aProxy; +2536 } +2537 } +2538 } +2539 } +2540 } +2541returnnull; +2542 } +2543 +2544/** +2545 * Returns a reference to the current project. This method is used instead +2546 * of auto-binding the project via component annotation in concrete +2547 * implementations of this. If the child has a +2548 * <code>@Component MavenProject project;</code> defined then the abstract +2549 * class (i.e. this class) will not have access to the current project (just +2550 * the way Maven works with the binding).2551 * -2552 * @return the list of Maven Projects in this build +2552 * @return returns a reference to the current project2553 */ -2554protected List<MavenProject> getReactorProjects() { -2555return reactorProjects; +2554protected MavenProject getProject() { +2555return project; 2556 } 25572558/** -2559 * Combines the format and formats properties into a single collection. +2559 * Returns the list of Maven Projects in this build.2560 * -2561 * @return the selected report formats +2561 * @return the list of Maven Projects in this build2562 */ -2563private Set<String> getFormats() { -2564final Set<String> invalid = new HashSet<>(); -2565final Set<String> selectedFormats = formats == null || formats.length == 0 ? new HashSet<>() : new HashSet<>(Arrays.asList(formats)); -2566 selectedFormats.forEach((s) -> { -2567try { -2568 ReportGenerator.Format.valueOf(s.toUpperCase()); -2569 } catch (IllegalArgumentException ex) { -2570 invalid.add(s); -2571 } -2572 }); -2573 invalid.forEach((s) -> getLog().warn("Invalid report format specified: " + s)); -2574if (selectedFormats.contains("true")) { -2575 selectedFormats.remove("true"); -2576 } -2577if (format != null && selectedFormats.isEmpty()) { -2578 selectedFormats.add(format); -2579 } -2580return selectedFormats; -2581 } -2582 -2583/** -2584 * Returns the list of excluded artifacts based on either artifact id or -2585 * group id and artifact id. -2586 * -2587 * @return a list of artifact to exclude -2588 */ -2589public List<String> getExcludes() { -2590if (excludes == null) { -2591 excludes = new ArrayList<>(); -2592 } -2593return excludes; -2594 } -2595 -2596/** -2597 * Returns the artifact scope excluded filter. -2598 * -2599 * @return the artifact scope excluded filter -2600 */ -2601protected Filter<String> getArtifactScopeExcluded() { -2602return artifactScopeExcluded; +2563protected List<MavenProject> getReactorProjects() { +2564return reactorProjects; +2565 } +2566 +2567/** +2568 * Combines the format and formats properties into a single collection. +2569 * +2570 * @return the selected report formats +2571 */ +2572private Set<String> getFormats() { +2573final Set<String> invalid = new HashSet<>(); +2574final Set<String> selectedFormats = formats == null || formats.length == 0 ? new HashSet<>() : new HashSet<>(Arrays.asList(formats)); +2575 selectedFormats.forEach((s) -> { +2576try { +2577 ReportGenerator.Format.valueOf(s.toUpperCase()); +2578 } catch (IllegalArgumentException ex) { +2579 invalid.add(s); +2580 } +2581 }); +2582 invalid.forEach((s) -> getLog().warn("Invalid report format specified: " + s)); +2583if (selectedFormats.contains("true")) { +2584 selectedFormats.remove("true"); +2585 } +2586if (format != null && selectedFormats.isEmpty()) { +2587 selectedFormats.add(format); +2588 } +2589return selectedFormats; +2590 } +2591 +2592/** +2593 * Returns the list of excluded artifacts based on either artifact id or +2594 * group id and artifact id. +2595 * +2596 * @return a list of artifact to exclude +2597 */ +2598public List<String> getExcludes() { +2599if (excludes == null) { +2600 excludes = new ArrayList<>(); +2601 } +2602return excludes; 2603 } 26042605/** -2606 * Returns the configured settings. +2606 * Returns the artifact scope excluded filter.2607 * -2608 * @return the configured settings +2608 * @return the artifact scope excluded filter2609 */ -2610protected Settings getSettings() { -2611return settings; +2610protected Filter<String> getArtifactScopeExcluded() { +2611return artifactScopeExcluded; 2612 } 2613 -2614//<editor-fold defaultstate="collapsed" desc="Methods to fail build or show summary"> -2615/** -2616 * Checks to see if a vulnerability has been identified with a CVSS score -2617 * that is above the threshold set in the configuration. -2618 * -2619 * @param dependencies the list of dependency objects -2620 * @throws MojoFailureException thrown if a CVSS score is found that is -2621 * higher then the threshold set -2622 */ -2623protectedvoid checkForFailure(Dependency[] dependencies) throws MojoFailureException { -2624final StringBuilder ids = new StringBuilder(); -2625for (Dependency d : dependencies) { -2626boolean addName = true; -2627for (Vulnerability v : d.getVulnerabilities()) { -2628final Double cvssV2 = v.getCvssV2() != null && v.getCvssV2().getCvssData() != null && v.getCvssV2().getCvssData().getBaseScore() != null ? v.getCvssV2().getCvssData().getBaseScore() : -1; -2629final Double cvssV3 = v.getCvssV3() != null && v.getCvssV3().getCvssData() != null && v.getCvssV3().getCvssData().getBaseScore() != null ? v.getCvssV3().getCvssData().getBaseScore() : -1; -2630final Double unscoredCvss = v.getUnscoredSeverity() != null ? SeverityUtil.estimateCvssV2(v.getUnscoredSeverity()) : -1; -2631 -2632if (failBuildOnAnyVulnerability || cvssV2 >= failBuildOnCVSS -2633 || cvssV3 >= failBuildOnCVSS -2634 || unscoredCvss >= failBuildOnCVSS -2635//safety net to fail on any if for some reason the above misses on 0 -2636 || (failBuildOnCVSS <= 0.0)) { -2637 String name = v.getName(); -2638if (cvssV3 >= 0.0) { -2639 name += "(" + cvssV3 + ")"; -2640 } elseif (cvssV2 >= 0.0) { -2641 name += "(" + cvssV2 + ")"; -2642 } elseif (unscoredCvss >= 0.0) { -2643 name += "(" + unscoredCvss + ")"; -2644 } -2645if (addName) { -2646 addName = false; -2647 ids.append(NEW_LINE).append(d.getFileName()).append(": "); -2648 ids.append(name); -2649 } else { -2650 ids.append(", ").append(name); -2651 } -2652 } -2653 } -2654 } -2655if (ids.length() > 0) { -2656final String msg; -2657if (showSummary) { -2658if (failBuildOnAnyVulnerability) { -2659 msg = String.format("%n%nOne or more dependencies were identified with vulnerabilities: %n%s%n%n" -2660 + "See the dependency-check report for more details.%n%n", ids); -2661 } else { -2662 msg = String.format("%n%nOne or more dependencies were identified with vulnerabilities that have a CVSS score greater than or " -2663 + "equal to '%.1f': %n%s%n%nSee the dependency-check report for more details.%n%n", failBuildOnCVSS, ids); -2664 } -2665 } else { -2666 msg = String.format("%n%nOne or more dependencies were identified with vulnerabilities.%n%n" -2667 + "See the dependency-check report for more details.%n%n"); -2668 } -2669thrownew MojoFailureException(msg); -2670 } -2671 } -2672 -2673/** -2674 * Generates a warning message listing a summary of dependencies and their -2675 * associated CPE and CVE entries. -2676 * -2677 * @param mp the Maven project for which the summary is shown -2678 * @param dependencies a list of dependency objects -2679 */ -2680protectedvoid showSummary(MavenProject mp, Dependency[] dependencies) { -2681if (showSummary) { -2682 DependencyCheckScanAgent.showSummary(mp.getName(), dependencies); -2683 } -2684 } -2685 -2686//</editor-fold> -2687//CSOFF: ParameterNumber -2688private ExceptionCollection scanDependencyNode(DependencyNode dependencyNode, DependencyNode root, -2689 Engine engine, MavenProject project, List<ArtifactResult> allResolvedDeps, -2690 ProjectBuildingRequest buildingRequest, boolean aggregate, ExceptionCollection exceptionCollection) { -2691 ExceptionCollection exCol = exceptionCollection; -2692if (artifactScopeExcluded.passes(dependencyNode.getArtifact().getScope()) -2693 || artifactTypeExcluded.passes(dependencyNode.getArtifact().getType())) { -2694return exCol; -2695 } -2696 -2697boolean isResolved = false; -2698 File artifactFile = null; -2699 String artifactId = null; -2700 String groupId = null; -2701 String version = null; -2702 List<ArtifactVersion> availableVersions = null; -2703if (org.apache.maven.artifact.Artifact.SCOPE_SYSTEM.equals(dependencyNode.getArtifact().getScope())) { -2704final Artifact a = dependencyNode.getArtifact(); -2705if (a.isResolved() && a.getFile().isFile()) { -2706 artifactFile = a.getFile(); -2707 isResolved = artifactFile.isFile(); -2708 groupId = a.getGroupId(); -2709 artifactId = a.getArtifactId(); -2710 version = a.getVersion(); -2711 availableVersions = a.getAvailableVersions(); -2712 } else { -2713for (org.apache.maven.model.Dependency d : project.getDependencies()) { -2714if (d.getSystemPath() != null && artifactsMatch(d, a)) { -2715 artifactFile = new File(d.getSystemPath()); -2716 isResolved = artifactFile.isFile(); -2717 groupId = a.getGroupId(); -2718 artifactId = a.getArtifactId(); -2719 version = a.getVersion(); -2720 availableVersions = a.getAvailableVersions(); -2721break; -2722 } -2723 } -2724 } -2725 Throwable ignored = null; -2726if (!isResolved) { -2727// Issue #4969 Tycho appears to add System-scoped libraries in reactor projects in unresolved state -2728// so attempt to do a resolution for system-scoped too if still nothing found -2729try { -2730 tryResolutionOnce(project, allResolvedDeps, buildingRequest); -2731final Artifact result = findInAllDeps(allResolvedDeps, dependencyNode.getArtifact(), project); -2732 isResolved = result.isResolved(); -2733 artifactFile = result.getFile(); -2734 groupId = result.getGroupId(); -2735 artifactId = result.getArtifactId(); -2736 version = result.getVersion(); -2737 availableVersions = result.getAvailableVersions(); -2738 } catch (DependencyNotFoundException | DependencyResolverException e) { -2739 getLog().warn("Error performing last-resort System-scoped dependency resolution: " + e.getMessage()); -2740 ignored = e; -2741 } -2742 } -2743if (!isResolved) { -2744final StringBuilder message = new StringBuilder("Unable to resolve system scoped dependency: "); -2745if (artifactFile != null) { -2746 message.append(dependencyNode.toNodeString()).append(" at path ").append(artifactFile); -2747 } else { -2748 message.append(dependencyNode.toNodeString()).append(" at path ").append(a.getFile()); -2749 } -2750 getLog().error(message); -2751if (exCol == null) { -2752 exCol = new ExceptionCollection(); -2753 } -2754final Exception thrown = new DependencyNotFoundException(message.toString()); -2755if (ignored != null) { -2756 thrown.addSuppressed(ignored); -2757 } -2758 exCol.addException(thrown); -2759 } -2760 } else { -2761final Artifact dependencyArtifact = dependencyNode.getArtifact(); -2762final Artifact result; -2763if (dependencyArtifact.isResolved()) { -2764//All transitive dependencies, excluding reactor and dependencyManagement artifacts should -2765//have been resolved by Maven prior to invoking the plugin - resolving the dependencies -2766//manually is unnecessary, and does not work in some cases (issue-1751) -2767 getLog().debug(String.format("Skipping artifact %s, already resolved", dependencyArtifact.getArtifactId())); -2768 result = dependencyArtifact; -2769 } else { -2770try { -2771 tryResolutionOnce(project, allResolvedDeps, buildingRequest); -2772 result = findInAllDeps(allResolvedDeps, dependencyNode.getArtifact(), project); -2773 } catch (DependencyNotFoundException | DependencyResolverException ex) { -2774 getLog().debug(String.format("Aggregate : %s", aggregate)); -2775boolean addException = true; -2776//CSOFF: EmptyBlock -2777if (!aggregate) { -2778// do nothing - the exception is to be reported -2779 } elseif (addReactorDependency(engine, dependencyNode.getArtifact(), project)) { -2780// successfully resolved as a reactor dependency - swallow the exception -2781 addException = false; -2782 } -2783if (addException) { -2784if (exCol == null) { -2785 exCol = new ExceptionCollection(); -2786 } -2787 exCol.addException(ex); -2788 } -2789return exCol; -2790 } -2791 } -2792if (aggregate && virtualSnapshotsFromReactor -2793 && dependencyNode.getArtifact().isSnapshot() -2794 && addSnapshotReactorDependency(engine, dependencyNode.getArtifact(), project)) { -2795return exCol; -2796 } -2797 isResolved = result.isResolved(); -2798 artifactFile = result.getFile(); -2799 groupId = result.getGroupId(); -2800 artifactId = result.getArtifactId(); -2801 version = result.getVersion(); -2802 availableVersions = result.getAvailableVersions(); -2803 } -2804if (isResolved && artifactFile != null) { -2805final List<Dependency> deps = engine.scan(artifactFile.getAbsoluteFile(), -2806 createProjectReferenceName(project, dependencyNode)); -2807if (deps != null) { -2808 processResolvedArtifact(artifactFile, deps, groupId, artifactId, version, root, project, availableVersions, dependencyNode); -2809 } elseif ("import".equals(dependencyNode.getArtifact().getScope())) { -2810final String msg = String.format("Skipping '%s:%s' in project %s as it uses an `import` scope", -2811 dependencyNode.getArtifact().getId(), dependencyNode.getArtifact().getScope(), project.getName()); -2812 getLog().debug(msg); -2813 } elseif ("pom".equals(dependencyNode.getArtifact().getType())) { -2814 exCol = processPomArtifact(artifactFile, root, project, engine, exCol); -2815 } else { -2816if (!scannedFiles.contains(artifactFile)) { -2817final String msg = String.format("No analyzer could be found or the artifact has been scanned twice for '%s:%s' in project %s", -2818 dependencyNode.getArtifact().getId(), dependencyNode.getArtifact().getScope(), project.getName()); -2819 getLog().warn(msg); -2820 } -2821 } -2822 } else { -2823final String msg = String.format("Unable to resolve '%s' in project %s", -2824 dependencyNode.getArtifact().getId(), project.getName()); -2825 getLog().debug(msg); -2826if (exCol == null) { -2827 exCol = new ExceptionCollection(); -2828 } -2829 } -2830return exCol; -2831 } -2832 -2833/** -2834 * Try resolution of artifacts once, allowing for -2835 * DependencyResolutionException due to reactor-dependencies not being -2836 * resolvable. -2837 * <br> -2838 * The resolution is attempted only if allResolvedDeps is still empty. The -2839 * assumption is that for any given project at least one of the dependencies -2840 * will successfully resolve. If not, resolution will be attempted once for -2841 * every dependency (as allResolvedDeps remains empty). -2842 * -2843 * @param project The project to dependencies for -2844 * @param allResolvedDeps The collection of successfully resolved -2845 * dependencies, will be filled with the successfully resolved dependencies, -2846 * even in case of resolution failures. -2847 * @param buildingRequest The buildingRequest to hand to Maven's -2848 * DependencyResolver. -2849 * @throws DependencyResolverException For any DependencyResolverException -2850 * other than an Eclipse Aether DependencyResolutionException -2851 */ -2852privatevoid tryResolutionOnce(MavenProject project, List<ArtifactResult> allResolvedDeps, ProjectBuildingRequest buildingRequest) throws DependencyResolverException { -2853if (allResolvedDeps.isEmpty()) { // no (partially successful) resolution attempt done -2854try { -2855final List<org.apache.maven.model.Dependency> dependencies = project.getDependencies(); -2856final List<org.apache.maven.model.Dependency> managedDependencies = project -2857 .getDependencyManagement() == null ? null : project.getDependencyManagement().getDependencies(); -2858final Iterable<ArtifactResult> allDeps = dependencyResolver -2859 .resolveDependencies(buildingRequest, dependencies, managedDependencies, null); -2860 allDeps.forEach(allResolvedDeps::add); -2861 } catch (DependencyResolverException dre) { -2862if (dre.getCause() instanceof org.eclipse.aether.resolution.DependencyResolutionException) { -2863final List<ArtifactResult> successResults = Mshared998Util -2864 .getResolutionResults((org.eclipse.aether.resolution.DependencyResolutionException) dre.getCause()); -2865 allResolvedDeps.addAll(successResults); -2866 } else { -2867throw dre; -2868 } -2869 } -2870 } -2871 } -2872//CSON: ParameterNumber -2873 -2874//CSOFF: ParameterNumber -2875privatevoid processResolvedArtifact(File artifactFile, final List<Dependency> deps, -2876 String groupId, String artifactId, String version, DependencyNode root, -2877 MavenProject project1, List<ArtifactVersion> availableVersions, -2878 DependencyNode dependencyNode) { -2879 scannedFiles.add(artifactFile); -2880 Dependency d = null; -2881if (deps.size() == 1) { -2882 d = deps.get(0); -2883 -2884 } else { -2885for (Dependency possible : deps) { -2886if (artifactFile.getAbsoluteFile().equals(possible.getActualFile())) { -2887 d = possible; -2888break; -2889 } -2890 } -2891for (Dependency dep : deps) { -2892if (d != null && d != dep) { -2893final String includedBy = buildReference(groupId, artifactId, version); -2894 dep.addIncludedBy(includedBy); -2895 } -2896 } -2897 } -2898if (d != null) { -2899final MavenArtifact ma = new MavenArtifact(groupId, artifactId, version); -2900 d.addAsEvidence("pom", ma, Confidence.HIGHEST); -2901if (root != null) { -2902final String includedby = buildReference( -2903 root.getArtifact().getGroupId(), -2904 root.getArtifact().getArtifactId(), -2905 root.getArtifact().getVersion()); -2906 d.addIncludedBy(includedby); -2907 } else { -2908final String includedby = buildReference(project1.getGroupId(), project1.getArtifactId(), project1.getVersion()); -2909 d.addIncludedBy(includedby); -2910 } -2911if (availableVersions != null) { -2912for (ArtifactVersion av : availableVersions) { -2913 d.addAvailableVersion(av.toString()); -2914 } -2915 } -2916 getLog().debug(String.format("Adding project reference %s on dependency %s", project1.getName(), d.getDisplayFileName())); -2917 } elseif (getLog().isDebugEnabled()) { -2918final String msg = String.format("More than 1 dependency was identified in first pass scan of '%s' in project %s", dependencyNode.getArtifact().getId(), project1.getName()); -2919 getLog().debug(msg); -2920 } -2921 } -2922//CSON: ParameterNumber -2923 -2924private ExceptionCollection processPomArtifact(File artifactFile, DependencyNode root, -2925 MavenProject project1, Engine engine, ExceptionCollection exCollection) { -2926 ExceptionCollection exCol = exCollection; -2927try { -2928final Dependency d = new Dependency(artifactFile.getAbsoluteFile()); -2929final Model pom = PomUtils.readPom(artifactFile.getAbsoluteFile()); -2930 JarAnalyzer.setPomEvidence(d, pom, null, true); -2931if (root != null) { -2932final String includedby = buildReference( -2933 root.getArtifact().getGroupId(), -2934 root.getArtifact().getArtifactId(), -2935 root.getArtifact().getVersion()); -2936 d.addIncludedBy(includedby); -2937 } else { -2938final String includedby = buildReference(project1.getGroupId(), project1.getArtifactId(), project1.getVersion()); -2939 d.addIncludedBy(includedby); -2940 } -2941 engine.addDependency(d); -2942 } catch (AnalysisException ex) { -2943if (exCol == null) { -2944 exCol = new ExceptionCollection(); -2945 } -2946 exCol.addException(ex); -2947 getLog().debug("Error reading pom " + artifactFile.getAbsoluteFile(), ex); -2948 } -2949return exCol; -2950 } -2951 -2952 } -2953//CSON: FileLength +2614/** +2615 * Returns the configured settings. +2616 * +2617 * @return the configured settings +2618 */ +2619protected Settings getSettings() { +2620return settings; +2621 } +2622 +2623//<editor-fold defaultstate="collapsed" desc="Methods to fail build or show summary"> +2624/** +2625 * Checks to see if a vulnerability has been identified with a CVSS score +2626 * that is above the threshold set in the configuration. +2627 * +2628 * @param dependencies the list of dependency objects +2629 * @throws MojoFailureException thrown if a CVSS score is found that is +2630 * higher then the threshold set +2631 */ +2632protectedvoid checkForFailure(Dependency[] dependencies) throws MojoFailureException { +2633final StringBuilder ids = new StringBuilder(); +2634for (Dependency d : dependencies) { +2635boolean addName = true; +2636for (Vulnerability v : d.getVulnerabilities()) { +2637final Double cvssV2 = v.getCvssV2() != null && v.getCvssV2().getCvssData() != null && v.getCvssV2().getCvssData().getBaseScore() != null ? v.getCvssV2().getCvssData().getBaseScore() : -1; +2638final Double cvssV3 = v.getCvssV3() != null && v.getCvssV3().getCvssData() != null && v.getCvssV3().getCvssData().getBaseScore() != null ? v.getCvssV3().getCvssData().getBaseScore() : -1; +2639final Double unscoredCvss = v.getUnscoredSeverity() != null ? SeverityUtil.estimateCvssV2(v.getUnscoredSeverity()) : -1; +2640 +2641if (failBuildOnAnyVulnerability || cvssV2 >= failBuildOnCVSS +2642 || cvssV3 >= failBuildOnCVSS +2643 || unscoredCvss >= failBuildOnCVSS +2644//safety net to fail on any if for some reason the above misses on 0 +2645 || (failBuildOnCVSS <= 0.0)) { +2646 String name = v.getName(); +2647if (cvssV3 >= 0.0) { +2648 name += "(" + cvssV3 + ")"; +2649 } elseif (cvssV2 >= 0.0) { +2650 name += "(" + cvssV2 + ")"; +2651 } elseif (unscoredCvss >= 0.0) { +2652 name += "(" + unscoredCvss + ")"; +2653 } +2654if (addName) { +2655 addName = false; +2656 ids.append(NEW_LINE).append(d.getFileName()).append(": "); +2657 ids.append(name); +2658 } else { +2659 ids.append(", ").append(name); +2660 } +2661 } +2662 } +2663 } +2664if (ids.length() > 0) { +2665final String msg; +2666if (showSummary) { +2667if (failBuildOnAnyVulnerability) { +2668 msg = String.format("%n%nOne or more dependencies were identified with vulnerabilities: %n%s%n%n" +2669 + "See the dependency-check report for more details.%n%n", ids); +2670 } else { +2671 msg = String.format("%n%nOne or more dependencies were identified with vulnerabilities that have a CVSS score greater than or " +2672 + "equal to '%.1f': %n%s%n%nSee the dependency-check report for more details.%n%n", failBuildOnCVSS, ids); +2673 } +2674 } else { +2675 msg = String.format("%n%nOne or more dependencies were identified with vulnerabilities.%n%n" +2676 + "See the dependency-check report for more details.%n%n"); +2677 } +2678thrownew MojoFailureException(msg); +2679 } +2680 } +2681 +2682/** +2683 * Generates a warning message listing a summary of dependencies and their +2684 * associated CPE and CVE entries. +2685 * +2686 * @param mp the Maven project for which the summary is shown +2687 * @param dependencies a list of dependency objects +2688 */ +2689protectedvoid showSummary(MavenProject mp, Dependency[] dependencies) { +2690if (showSummary) { +2691 DependencyCheckScanAgent.showSummary(mp.getName(), dependencies); +2692 } +2693 } +2694 +2695//</editor-fold> +2696//CSOFF: ParameterNumber +2697private ExceptionCollection scanDependencyNode(DependencyNode dependencyNode, DependencyNode root, +2698 Engine engine, MavenProject project, List<ArtifactResult> allResolvedDeps, +2699 ProjectBuildingRequest buildingRequest, boolean aggregate, ExceptionCollection exceptionCollection) { +2700 ExceptionCollection exCol = exceptionCollection; +2701if (artifactScopeExcluded.passes(dependencyNode.getArtifact().getScope()) +2702 || artifactTypeExcluded.passes(dependencyNode.getArtifact().getType())) { +2703return exCol; +2704 } +2705 +2706boolean isResolved = false; +2707 File artifactFile = null; +2708 String artifactId = null; +2709 String groupId = null; +2710 String version = null; +2711 List<ArtifactVersion> availableVersions = null; +2712if (org.apache.maven.artifact.Artifact.SCOPE_SYSTEM.equals(dependencyNode.getArtifact().getScope())) { +2713final Artifact a = dependencyNode.getArtifact(); +2714if (a.isResolved() && a.getFile().isFile()) { +2715 artifactFile = a.getFile(); +2716 isResolved = artifactFile.isFile(); +2717 groupId = a.getGroupId(); +2718 artifactId = a.getArtifactId(); +2719 version = a.getVersion(); +2720 availableVersions = a.getAvailableVersions(); +2721 } else { +2722for (org.apache.maven.model.Dependency d : project.getDependencies()) { +2723if (d.getSystemPath() != null && artifactsMatch(d, a)) { +2724 artifactFile = new File(d.getSystemPath()); +2725 isResolved = artifactFile.isFile(); +2726 groupId = a.getGroupId(); +2727 artifactId = a.getArtifactId(); +2728 version = a.getVersion(); +2729 availableVersions = a.getAvailableVersions(); +2730break; +2731 } +2732 } +2733 } +2734 Throwable ignored = null; +2735if (!isResolved) { +2736// Issue #4969 Tycho appears to add System-scoped libraries in reactor projects in unresolved state +2737// so attempt to do a resolution for system-scoped too if still nothing found +2738try { +2739 tryResolutionOnce(project, allResolvedDeps, buildingRequest); +2740final Artifact result = findInAllDeps(allResolvedDeps, dependencyNode.getArtifact(), project); +2741 isResolved = result.isResolved(); +2742 artifactFile = result.getFile(); +2743 groupId = result.getGroupId(); +2744 artifactId = result.getArtifactId(); +2745 version = result.getVersion(); +2746 availableVersions = result.getAvailableVersions(); +2747 } catch (DependencyNotFoundException | DependencyResolverException e) { +2748 getLog().warn("Error performing last-resort System-scoped dependency resolution: " + e.getMessage()); +2749 ignored = e; +2750 } +2751 } +2752if (!isResolved) { +2753final StringBuilder message = new StringBuilder("Unable to resolve system scoped dependency: "); +2754if (artifactFile != null) { +2755 message.append(dependencyNode.toNodeString()).append(" at path ").append(artifactFile); +2756 } else { +2757 message.append(dependencyNode.toNodeString()).append(" at path ").append(a.getFile()); +2758 } +2759 getLog().error(message); +2760if (exCol == null) { +2761 exCol = new ExceptionCollection(); +2762 } +2763final Exception thrown = new DependencyNotFoundException(message.toString()); +2764if (ignored != null) { +2765 thrown.addSuppressed(ignored); +2766 } +2767 exCol.addException(thrown); +2768 } +2769 } else { +2770final Artifact dependencyArtifact = dependencyNode.getArtifact(); +2771final Artifact result; +2772if (dependencyArtifact.isResolved()) { +2773//All transitive dependencies, excluding reactor and dependencyManagement artifacts should +2774//have been resolved by Maven prior to invoking the plugin - resolving the dependencies +2775//manually is unnecessary, and does not work in some cases (issue-1751) +2776 getLog().debug(String.format("Skipping artifact %s, already resolved", dependencyArtifact.getArtifactId())); +2777 result = dependencyArtifact; +2778 } else { +2779try { +2780 tryResolutionOnce(project, allResolvedDeps, buildingRequest); +2781 result = findInAllDeps(allResolvedDeps, dependencyNode.getArtifact(), project); +2782 } catch (DependencyNotFoundException | DependencyResolverException ex) { +2783 getLog().debug(String.format("Aggregate : %s", aggregate)); +2784boolean addException = true; +2785//CSOFF: EmptyBlock +2786if (!aggregate) { +2787// do nothing - the exception is to be reported +2788 } elseif (addReactorDependency(engine, dependencyNode.getArtifact(), project)) { +2789// successfully resolved as a reactor dependency - swallow the exception +2790 addException = false; +2791 } +2792if (addException) { +2793if (exCol == null) { +2794 exCol = new ExceptionCollection(); +2795 } +2796 exCol.addException(ex); +2797 } +2798return exCol; +2799 } +2800 } +2801if (aggregate && virtualSnapshotsFromReactor +2802 && dependencyNode.getArtifact().isSnapshot() +2803 && addSnapshotReactorDependency(engine, dependencyNode.getArtifact(), project)) { +2804return exCol; +2805 } +2806 isResolved = result.isResolved(); +2807 artifactFile = result.getFile(); +2808 groupId = result.getGroupId(); +2809 artifactId = result.getArtifactId(); +2810 version = result.getVersion(); +2811 availableVersions = result.getAvailableVersions(); +2812 } +2813if (isResolved && artifactFile != null) { +2814final List<Dependency> deps = engine.scan(artifactFile.getAbsoluteFile(), +2815 createProjectReferenceName(project, dependencyNode)); +2816if (deps != null) { +2817 processResolvedArtifact(artifactFile, deps, groupId, artifactId, version, root, project, availableVersions, dependencyNode); +2818 } elseif ("import".equals(dependencyNode.getArtifact().getScope())) { +2819final String msg = String.format("Skipping '%s:%s' in project %s as it uses an `import` scope", +2820 dependencyNode.getArtifact().getId(), dependencyNode.getArtifact().getScope(), project.getName()); +2821 getLog().debug(msg); +2822 } elseif ("pom".equals(dependencyNode.getArtifact().getType())) { +2823 exCol = processPomArtifact(artifactFile, root, project, engine, exCol); +2824 } else { +2825if (!scannedFiles.contains(artifactFile)) { +2826final String msg = String.format("No analyzer could be found or the artifact has been scanned twice for '%s:%s' in project %s", +2827 dependencyNode.getArtifact().getId(), dependencyNode.getArtifact().getScope(), project.getName()); +2828 getLog().warn(msg); +2829 } +2830 } +2831 } else { +2832final String msg = String.format("Unable to resolve '%s' in project %s", +2833 dependencyNode.getArtifact().getId(), project.getName()); +2834 getLog().debug(msg); +2835if (exCol == null) { +2836 exCol = new ExceptionCollection(); +2837 } +2838 } +2839return exCol; +2840 } +2841 +2842/** +2843 * Try resolution of artifacts once, allowing for +2844 * DependencyResolutionException due to reactor-dependencies not being +2845 * resolvable. +2846 * <br> +2847 * The resolution is attempted only if allResolvedDeps is still empty. The +2848 * assumption is that for any given project at least one of the dependencies +2849 * will successfully resolve. If not, resolution will be attempted once for +2850 * every dependency (as allResolvedDeps remains empty). +2851 * +2852 * @param project The project to dependencies for +2853 * @param allResolvedDeps The collection of successfully resolved +2854 * dependencies, will be filled with the successfully resolved dependencies, +2855 * even in case of resolution failures. +2856 * @param buildingRequest The buildingRequest to hand to Maven's +2857 * DependencyResolver. +2858 * @throws DependencyResolverException For any DependencyResolverException +2859 * other than an Eclipse Aether DependencyResolutionException +2860 */ +2861privatevoid tryResolutionOnce(MavenProject project, List<ArtifactResult> allResolvedDeps, ProjectBuildingRequest buildingRequest) throws DependencyResolverException { +2862if (allResolvedDeps.isEmpty()) { // no (partially successful) resolution attempt done +2863try { +2864final List<org.apache.maven.model.Dependency> dependencies = project.getDependencies(); +2865final List<org.apache.maven.model.Dependency> managedDependencies = project +2866 .getDependencyManagement() == null ? null : project.getDependencyManagement().getDependencies(); +2867final Iterable<ArtifactResult> allDeps = dependencyResolver +2868 .resolveDependencies(buildingRequest, dependencies, managedDependencies, null); +2869 allDeps.forEach(allResolvedDeps::add); +2870 } catch (DependencyResolverException dre) { +2871if (dre.getCause() instanceof org.eclipse.aether.resolution.DependencyResolutionException) { +2872final List<ArtifactResult> successResults = Mshared998Util +2873 .getResolutionResults((org.eclipse.aether.resolution.DependencyResolutionException) dre.getCause()); +2874 allResolvedDeps.addAll(successResults); +2875 } else { +2876throw dre; +2877 } +2878 } +2879 } +2880 } +2881//CSON: ParameterNumber +2882 +2883//CSOFF: ParameterNumber +2884privatevoid processResolvedArtifact(File artifactFile, final List<Dependency> deps, +2885 String groupId, String artifactId, String version, DependencyNode root, +2886 MavenProject project1, List<ArtifactVersion> availableVersions, +2887 DependencyNode dependencyNode) { +2888 scannedFiles.add(artifactFile); +2889 Dependency d = null; +2890if (deps.size() == 1) { +2891 d = deps.get(0); +2892 +2893 } else { +2894for (Dependency possible : deps) { +2895if (artifactFile.getAbsoluteFile().equals(possible.getActualFile())) { +2896 d = possible; +2897break; +2898 } +2899 } +2900for (Dependency dep : deps) { +2901if (d != null && d != dep) { +2902final String includedBy = buildReference(groupId, artifactId, version); +2903 dep.addIncludedBy(includedBy); +2904 } +2905 } +2906 } +2907if (d != null) { +2908final MavenArtifact ma = new MavenArtifact(groupId, artifactId, version); +2909 d.addAsEvidence("pom", ma, Confidence.HIGHEST); +2910if (root != null) { +2911final String includedby = buildReference( +2912 root.getArtifact().getGroupId(), +2913 root.getArtifact().getArtifactId(), +2914 root.getArtifact().getVersion()); +2915 d.addIncludedBy(includedby); +2916 } else { +2917final String includedby = buildReference(project1.getGroupId(), project1.getArtifactId(), project1.getVersion()); +2918 d.addIncludedBy(includedby); +2919 } +2920if (availableVersions != null) { +2921for (ArtifactVersion av : availableVersions) { +2922 d.addAvailableVersion(av.toString()); +2923 } +2924 } +2925 getLog().debug(String.format("Adding project reference %s on dependency %s", project1.getName(), d.getDisplayFileName())); +2926 } elseif (getLog().isDebugEnabled()) { +2927final String msg = String.format("More than 1 dependency was identified in first pass scan of '%s' in project %s", dependencyNode.getArtifact().getId(), project1.getName()); +2928 getLog().debug(msg); +2929 } +2930 } +2931//CSON: ParameterNumber +2932 +2933private ExceptionCollection processPomArtifact(File artifactFile, DependencyNode root, +2934 MavenProject project1, Engine engine, ExceptionCollection exCollection) { +2935 ExceptionCollection exCol = exCollection; +2936try { +2937final Dependency d = new Dependency(artifactFile.getAbsoluteFile()); +2938final Model pom = PomUtils.readPom(artifactFile.getAbsoluteFile()); +2939 JarAnalyzer.setPomEvidence(d, pom, null, true); +2940if (root != null) { +2941final String includedby = buildReference( +2942 root.getArtifact().getGroupId(), +2943 root.getArtifact().getArtifactId(), +2944 root.getArtifact().getVersion()); +2945 d.addIncludedBy(includedby); +2946 } else { +2947final String includedby = buildReference(project1.getGroupId(), project1.getArtifactId(), project1.getVersion()); +2948 d.addIncludedBy(includedby); +2949 } +2950 engine.addDependency(d); +2951 } catch (AnalysisException ex) { +2952if (exCol == null) { +2953 exCol = new ExceptionCollection(); +2954 } +2955 exCol.addException(ex); +2956 getLog().debug("Error reading pom " + artifactFile.getAbsoluteFile(), ex); +2957 } +2958return exCol; +2959 } +2960 +2961 } +2962//CSON: FileLength
    diff --git a/dependency-check-maven/xref/org/owasp/dependencycheck/maven/package-frame.html b/dependency-check-maven/xref/org/owasp/dependencycheck/maven/package-frame.html index 9994d9cc6cc..3bf0128b8b1 100644 --- a/dependency-check-maven/xref/org/owasp/dependencycheck/maven/package-frame.html +++ b/dependency-check-maven/xref/org/owasp/dependencycheck/maven/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Maven Plugin 9.0.4 Reference Package org.owasp.dependencycheck.maven + Dependency-Check Maven Plugin 9.0.5 Reference Package org.owasp.dependencycheck.maven diff --git a/dependency-check-maven/xref/org/owasp/dependencycheck/maven/package-summary.html b/dependency-check-maven/xref/org/owasp/dependencycheck/maven/package-summary.html index 78c91958a8a..f4ecf78c471 100644 --- a/dependency-check-maven/xref/org/owasp/dependencycheck/maven/package-summary.html +++ b/dependency-check-maven/xref/org/owasp/dependencycheck/maven/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Maven Plugin 9.0.4 Reference Package org.owasp.dependencycheck.maven + Dependency-Check Maven Plugin 9.0.5 Reference Package org.owasp.dependencycheck.maven diff --git a/dependency-check-maven/xref/overview-frame.html b/dependency-check-maven/xref/overview-frame.html index 2620a2e9a13..912f2bcc5e6 100644 --- a/dependency-check-maven/xref/overview-frame.html +++ b/dependency-check-maven/xref/overview-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Maven Plugin 9.0.4 Reference + Dependency-Check Maven Plugin 9.0.5 Reference diff --git a/dependency-check-maven/xref/overview-summary.html b/dependency-check-maven/xref/overview-summary.html index 5bb99141d64..34965a0ed97 100644 --- a/dependency-check-maven/xref/overview-summary.html +++ b/dependency-check-maven/xref/overview-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Maven Plugin 9.0.4 Reference + Dependency-Check Maven Plugin 9.0.5 Reference @@ -24,7 +24,7 @@ -

    Dependency-Check Maven Plugin 9.0.4 Reference

    +

    Dependency-Check Maven Plugin 9.0.5 Reference

    diff --git a/dependency-check-plugin/checkstyle.html b/dependency-check-plugin/checkstyle.html index c7595f83eda..2b3691ae980 100644 --- a/dependency-check-plugin/checkstyle.html +++ b/dependency-check-plugin/checkstyle.html @@ -1,13 +1,13 @@ - + dependency-check-plugin – Checkstyle Results @@ -41,8 +41,8 @@
  • documentation/
  • dependency-check/
  • Checkstyle Results
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • diff --git a/dependency-check-plugin/ci-management.html b/dependency-check-plugin/ci-management.html index 43d2f63d6a8..3d0a7111e1f 100644 --- a/dependency-check-plugin/ci-management.html +++ b/dependency-check-plugin/ci-management.html @@ -1,13 +1,13 @@ - + dependency-check-plugin – CI Management @@ -41,8 +41,8 @@
  • documentation/
  • dependency-check/
  • CI Management
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • diff --git a/dependency-check-plugin/dependency-analysis.html b/dependency-check-plugin/dependency-analysis.html index 5e385e88199..7091329677f 100644 --- a/dependency-check-plugin/dependency-analysis.html +++ b/dependency-check-plugin/dependency-analysis.html @@ -1,13 +1,13 @@ - + dependency-check-plugin – Dependency Analysis @@ -41,8 +41,8 @@
  • documentation/
  • dependency-check/
  • Dependency Analysis
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • diff --git a/dependency-check-plugin/dependency-updates-report.html b/dependency-check-plugin/dependency-updates-report.html index ffa52d5368e..8512c03bb4e 100644 --- a/dependency-check-plugin/dependency-updates-report.html +++ b/dependency-check-plugin/dependency-updates-report.html @@ -1,13 +1,13 @@ - + dependency-check-plugin – Dependency Updates Report @@ -41,8 +41,8 @@
  • documentation/
  • dependency-check/
  • Dependency Updates Report
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • @@ -923,7 +923,7 @@

    Dependency Management

    - + @@ -934,7 +934,7 @@

    Dependency Management

    - + @@ -1248,7 +1248,7 @@

    Dependency Management

    - + @@ -1260,7 +1260,7 @@

    Dependency Management

    - + @@ -1272,7 +1272,7 @@

    Dependency Management

    - + @@ -1284,7 +1284,7 @@

    Dependency Management

    - + @@ -1296,7 +1296,7 @@

    Dependency Management

    - + @@ -3174,7 +3174,7 @@

    com.github.package-url:

    -
    jar 1.4.21.5.0
    jar 4.8.24.8.3
    3.1.1 3.9.64.0.0-alpha-8
    4.0.0-alpha-9
    org.apache.maven 3.1.1 3.9.64.0.0-alpha-8
    4.0.0-alpha-9
    org.apache.maven 3.1.1 3.9.64.0.0-alpha-8
    4.0.0-alpha-9
    org.apache.maven 3.1.1 3.9.64.0.0-alpha-8
    4.0.0-alpha-9
    org.apache.maven 3.1.1 3.9.64.0.0-alpha-8
    4.0.0-alpha-9
    org.apache.maven.plugin-testingjar
    Newer versions1.4.2 Latest Incremental
    +1.4.2 Latest Incremental
    1.5.0 Latest Minor

    com.github.spotbugs:spotbugs-annotations

    @@ -3200,7 +3200,7 @@

    com.github.spotbugs:s

    -
    jar
    Newer versions4.8.1
    4.8.2 Latest Incremental
    +4.8.1
    4.8.2
    4.8.3 Latest Incremental

    com.google.guava:guava

    @@ -3822,7 +3822,7 @@

    org.apache.maven:maven-artifac

    -
    jar
    Newer versions3.1.1 Latest Incremental
    3.2.1
    3.2.2
    3.2.3
    3.2.5
    3.3.1
    3.3.3
    3.3.9
    3.5.0-alpha-1
    3.5.0-beta-1
    3.5.0
    3.5.2
    3.5.3
    3.5.4
    3.6.0
    3.6.1
    3.6.2
    3.6.3
    3.8.1
    3.8.2
    3.8.3
    3.8.4
    3.8.5
    3.8.6
    3.8.7
    3.8.8
    3.9.0
    3.9.1
    3.9.2
    3.9.3
    3.9.4
    3.9.5
    3.9.6 Latest Minor
    4.0.0-alpha-2
    4.0.0-alpha-3
    4.0.0-alpha-4
    4.0.0-alpha-5
    4.0.0-alpha-7
    4.0.0-alpha-8 Latest Major
    +3.1.1 Latest Incremental
    3.2.1
    3.2.2
    3.2.3
    3.2.5
    3.3.1
    3.3.3
    3.3.9
    3.5.0-alpha-1
    3.5.0-beta-1
    3.5.0
    3.5.2
    3.5.3
    3.5.4
    3.6.0
    3.6.1
    3.6.2
    3.6.3
    3.8.1
    3.8.2
    3.8.3
    3.8.4
    3.8.5
    3.8.6
    3.8.7
    3.8.8
    3.9.0
    3.9.1
    3.9.2
    3.9.3
    3.9.4
    3.9.5
    3.9.6 Latest Minor
    4.0.0-alpha-2
    4.0.0-alpha-3
    4.0.0-alpha-4
    4.0.0-alpha-5
    4.0.0-alpha-7
    4.0.0-alpha-8
    4.0.0-alpha-9 Latest Major

    org.apache.maven:maven-core

    @@ -3848,7 +3848,7 @@

    org.apache.maven:maven-core

    -
    jar
    Newer versions3.1.1 Latest Incremental
    3.2.1
    3.2.2
    3.2.3
    3.2.5
    3.3.1
    3.3.3
    3.3.9
    3.5.0-alpha-1
    3.5.0-beta-1
    3.5.0
    3.5.2
    3.5.3
    3.5.4
    3.6.0
    3.6.1
    3.6.2
    3.6.3
    3.8.1
    3.8.2
    3.8.3
    3.8.4
    3.8.5
    3.8.6
    3.8.7
    3.8.8
    3.9.0
    3.9.1
    3.9.2
    3.9.3
    3.9.4
    3.9.5
    3.9.6 Latest Minor
    4.0.0-alpha-2
    4.0.0-alpha-3
    4.0.0-alpha-4
    4.0.0-alpha-5
    4.0.0-alpha-7
    4.0.0-alpha-8 Latest Major
    +3.1.1 Latest Incremental
    3.2.1
    3.2.2
    3.2.3
    3.2.5
    3.3.1
    3.3.3
    3.3.9
    3.5.0-alpha-1
    3.5.0-beta-1
    3.5.0
    3.5.2
    3.5.3
    3.5.4
    3.6.0
    3.6.1
    3.6.2
    3.6.3
    3.8.1
    3.8.2
    3.8.3
    3.8.4
    3.8.5
    3.8.6
    3.8.7
    3.8.8
    3.9.0
    3.9.1
    3.9.2
    3.9.3
    3.9.4
    3.9.5
    3.9.6 Latest Minor
    4.0.0-alpha-2
    4.0.0-alpha-3
    4.0.0-alpha-4
    4.0.0-alpha-5
    4.0.0-alpha-7
    4.0.0-alpha-8
    4.0.0-alpha-9 Latest Major

    org.apache.maven:maven-model

    @@ -3874,7 +3874,7 @@

    org.apache.maven:maven-model

    -
    jar
    Newer versions3.1.1 Latest Incremental
    3.2.1
    3.2.2
    3.2.3
    3.2.5
    3.3.1
    3.3.3
    3.3.9
    3.5.0-alpha-1
    3.5.0-beta-1
    3.5.0
    3.5.2
    3.5.3
    3.5.4
    3.6.0
    3.6.1
    3.6.2
    3.6.3
    3.8.1
    3.8.2
    3.8.3
    3.8.4
    3.8.5
    3.8.6
    3.8.7
    3.8.8
    3.9.0
    3.9.1
    3.9.2
    3.9.3
    3.9.4
    3.9.5
    3.9.6 Latest Minor
    4.0.0-alpha-2
    4.0.0-alpha-3
    4.0.0-alpha-4
    4.0.0-alpha-5
    4.0.0-alpha-7
    4.0.0-alpha-8 Latest Major
    +3.1.1 Latest Incremental
    3.2.1
    3.2.2
    3.2.3
    3.2.5
    3.3.1
    3.3.3
    3.3.9
    3.5.0-alpha-1
    3.5.0-beta-1
    3.5.0
    3.5.2
    3.5.3
    3.5.4
    3.6.0
    3.6.1
    3.6.2
    3.6.3
    3.8.1
    3.8.2
    3.8.3
    3.8.4
    3.8.5
    3.8.6
    3.8.7
    3.8.8
    3.9.0
    3.9.1
    3.9.2
    3.9.3
    3.9.4
    3.9.5
    3.9.6 Latest Minor
    4.0.0-alpha-2
    4.0.0-alpha-3
    4.0.0-alpha-4
    4.0.0-alpha-5
    4.0.0-alpha-7
    4.0.0-alpha-8
    4.0.0-alpha-9 Latest Major

    org.apache.maven:maven-plugin-api

    @@ -3900,7 +3900,7 @@

    org.apache.maven:maven-plugi

    -
    jar
    Newer versions3.1.1 Latest Incremental
    3.2.1
    3.2.2
    3.2.3
    3.2.5
    3.3.1
    3.3.3
    3.3.9
    3.5.0-alpha-1
    3.5.0-beta-1
    3.5.0
    3.5.2
    3.5.3
    3.5.4
    3.6.0
    3.6.1
    3.6.2
    3.6.3
    3.8.1
    3.8.2
    3.8.3
    3.8.4
    3.8.5
    3.8.6
    3.8.7
    3.8.8
    3.9.0
    3.9.1
    3.9.2
    3.9.3
    3.9.4
    3.9.5
    3.9.6 Latest Minor
    4.0.0-alpha-2
    4.0.0-alpha-3
    4.0.0-alpha-4
    4.0.0-alpha-5
    4.0.0-alpha-7
    4.0.0-alpha-8 Latest Major
    +3.1.1 Latest Incremental
    3.2.1
    3.2.2
    3.2.3
    3.2.5
    3.3.1
    3.3.3
    3.3.9
    3.5.0-alpha-1
    3.5.0-beta-1
    3.5.0
    3.5.2
    3.5.3
    3.5.4
    3.6.0
    3.6.1
    3.6.2
    3.6.3
    3.8.1
    3.8.2
    3.8.3
    3.8.4
    3.8.5
    3.8.6
    3.8.7
    3.8.8
    3.9.0
    3.9.1
    3.9.2
    3.9.3
    3.9.4
    3.9.5
    3.9.6 Latest Minor
    4.0.0-alpha-2
    4.0.0-alpha-3
    4.0.0-alpha-4
    4.0.0-alpha-5
    4.0.0-alpha-7
    4.0.0-alpha-8
    4.0.0-alpha-9 Latest Major

    org.apache.maven:maven-settings

    @@ -3926,7 +3926,7 @@

    org.apache.maven:maven-setting

    -
    jar
    Newer versions3.1.1 Latest Incremental
    3.2.1
    3.2.2
    3.2.3
    3.2.5
    3.3.1
    3.3.3
    3.3.9
    3.5.0-alpha-1
    3.5.0-beta-1
    3.5.0
    3.5.2
    3.5.3
    3.5.4
    3.6.0
    3.6.1
    3.6.2
    3.6.3
    3.8.1
    3.8.2
    3.8.3
    3.8.4
    3.8.5
    3.8.6
    3.8.7
    3.8.8
    3.9.0
    3.9.1
    3.9.2
    3.9.3
    3.9.4
    3.9.5
    3.9.6 Latest Minor
    4.0.0-alpha-2
    4.0.0-alpha-3
    4.0.0-alpha-4
    4.0.0-alpha-5
    4.0.0-alpha-7
    4.0.0-alpha-8 Latest Major
    +3.1.1 Latest Incremental
    3.2.1
    3.2.2
    3.2.3
    3.2.5
    3.3.1
    3.3.3
    3.3.9
    3.5.0-alpha-1
    3.5.0-beta-1
    3.5.0
    3.5.2
    3.5.3
    3.5.4
    3.6.0
    3.6.1
    3.6.2
    3.6.3
    3.8.1
    3.8.2
    3.8.3
    3.8.4
    3.8.5
    3.8.6
    3.8.7
    3.8.8
    3.9.0
    3.9.1
    3.9.2
    3.9.3
    3.9.4
    3.9.5
    3.9.6 Latest Minor
    4.0.0-alpha-2
    4.0.0-alpha-3
    4.0.0-alpha-4
    4.0.0-alpha-5
    4.0.0-alpha-7
    4.0.0-alpha-8
    4.0.0-alpha-9 Latest Major

    org.apache.maven.plugin-testing:maven-plugin-testing-harness

    diff --git a/dependency-check-plugin/index.html b/dependency-check-plugin/index.html index 920c327c8a8..9f729af5bdb 100644 --- a/dependency-check-plugin/index.html +++ b/dependency-check-plugin/index.html @@ -1,13 +1,13 @@ - + dependency-check-plugin – About @@ -41,8 +41,8 @@
  • documentation/
  • dependency-check/
  • About
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • @@ -79,7 +79,7 @@

    About

    a dependency-check plugin (i.e. a project containing one or more analyzers).

    Usage

    -
    mvn archetype:generate -DarchetypeGroupId=org.owasp -DarchetypeArtifactId=dependency-check-plugin -DarchetypeVersion=9.0.4
    +
    mvn archetype:generate -DarchetypeGroupId=org.owasp -DarchetypeArtifactId=dependency-check-plugin -DarchetypeVersion=9.0.5
     
    diff --git a/dependency-check-plugin/issue-management.html b/dependency-check-plugin/issue-management.html index 6a97a9a3328..77db6dc760f 100644 --- a/dependency-check-plugin/issue-management.html +++ b/dependency-check-plugin/issue-management.html @@ -1,13 +1,13 @@ - + dependency-check-plugin – Issue Management @@ -41,8 +41,8 @@
  • documentation/
  • dependency-check/
  • Issue Management
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • diff --git a/dependency-check-plugin/licenses.html b/dependency-check-plugin/licenses.html index e9be5b03ac5..fbd69a4a6c6 100644 --- a/dependency-check-plugin/licenses.html +++ b/dependency-check-plugin/licenses.html @@ -1,13 +1,13 @@ - + dependency-check-plugin – Project Licenses @@ -41,8 +41,8 @@
  • documentation/
  • dependency-check/
  • Project Licenses
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • diff --git a/dependency-check-plugin/plugin-updates-report.html b/dependency-check-plugin/plugin-updates-report.html index bf8939ba562..af9b8b4c7e5 100644 --- a/dependency-check-plugin/plugin-updates-report.html +++ b/dependency-check-plugin/plugin-updates-report.html @@ -1,13 +1,13 @@ - + dependency-check-plugin – Plugin Updates Report @@ -41,8 +41,8 @@
  • documentation/
  • dependency-check/
  • Plugin Updates Report
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • @@ -90,7 +90,7 @@

    Overview

    - + @@ -98,7 +98,7 @@

    Overview

    - + @@ -214,12 +214,12 @@

    Plugin Management

    - + - - + + @@ -314,12 +314,12 @@

    Plugin Management

    - + - - + + @@ -637,7 +637,7 @@

    Plugin o

    # of plugins using the latest version available27
    25
    # of plugins where the next version available is smaller than an incremental version update
    # of plugins where the next version available is an incremental version update1
    3
    # of plugins where the next version available is a minor version update
    org.apache.maven.plugins maven-failsafe-plugin3.2.23.2.2 3.2.3
    org.apache.maven.plugins maven-surefire-plugin3.2.23.2.2 3.2.3
    - + @@ -646,7 +646,10 @@

    Plugin o

    -
    Status No newer versions available.
     There is at least one newer incremental version available. Incremental updates are typically passive.
    Group Id org.apache.maven.plugins
    maven-failsafe-plugin
    Current Version3.2.2
    +3.2.2 + +Newer versions +3.2.3 Latest Incremental

    Plugin org.apache.maven.plugins:maven-gpg-plugin

    @@ -900,7 +903,7 @@

    Plugin o

    - + @@ -909,7 +912,10 @@

    Plugin o

    -
    Status No newer versions available.
     There is at least one newer incremental version available. Incremental updates are typically passive.
    Group Id org.apache.maven.plugins
    maven-surefire-plugin
    Current Version3.2.2
    +3.2.2 + +Newer versions +3.2.3 Latest Incremental

    Plugin org.codehaus.gmavenplus:gmavenplus-plugin

    diff --git a/dependency-check-plugin/project-info.html b/dependency-check-plugin/project-info.html index 47e70821aca..5caf8ac4a75 100644 --- a/dependency-check-plugin/project-info.html +++ b/dependency-check-plugin/project-info.html @@ -1,13 +1,13 @@ - + dependency-check-plugin – Project Information @@ -41,8 +41,8 @@
  • documentation/
  • dependency-check/
  • Project Information
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • diff --git a/dependency-check-plugin/project-reports.html b/dependency-check-plugin/project-reports.html index be206a2275d..cf564b86c9e 100644 --- a/dependency-check-plugin/project-reports.html +++ b/dependency-check-plugin/project-reports.html @@ -1,13 +1,13 @@ - + dependency-check-plugin – Generated Reports @@ -41,8 +41,8 @@
  • documentation/
  • dependency-check/
  • Generated Reports
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • diff --git a/dependency-check-plugin/scm.html b/dependency-check-plugin/scm.html index b8e7454d5f2..67294a8cd02 100644 --- a/dependency-check-plugin/scm.html +++ b/dependency-check-plugin/scm.html @@ -1,13 +1,13 @@ - + dependency-check-plugin – Source Code Management @@ -41,8 +41,8 @@
  • documentation/
  • dependency-check/
  • Source Code Management
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • @@ -93,11 +93,11 @@

    Web Browser Access

    Anonymous Access

    The source can be checked out anonymously from Git with this command (See https://git-scm.com/docs/git-clone):

    -
    $ git clone --branch v9.0.4 https://github.com/jeremylong/DependencyCheck.git
    +
    $ git clone --branch v9.0.5 https://github.com/jeremylong/DependencyCheck.git

    Developer Access

    Only project developers can access the Git tree via this method (See https://git-scm.com/docs/git-clone).

    -
    $ git clone --branch v9.0.4 git@github.com:jeremylong/DependencyCheck.git
    +
    $ git clone --branch v9.0.5 git@github.com:jeremylong/DependencyCheck.git

    Access from Behind a Firewall

    Refer to the documentation of the SCM used for more information about access behind a firewall.

    diff --git a/dependency-check-plugin/summary.html b/dependency-check-plugin/summary.html index 9ea0d49d63b..e4c487d8e34 100644 --- a/dependency-check-plugin/summary.html +++ b/dependency-check-plugin/summary.html @@ -1,13 +1,13 @@ - + dependency-check-plugin – Project Summary @@ -41,8 +41,8 @@
  • documentation/
  • dependency-check/
  • Project Summary
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • @@ -123,7 +123,7 @@

    Build Information

    - + diff --git a/dependency-check-plugin/surefire-report.html b/dependency-check-plugin/surefire-report.html index 162dfc7ee2e..0253e987cd5 100644 --- a/dependency-check-plugin/surefire-report.html +++ b/dependency-check-plugin/surefire-report.html @@ -1,13 +1,13 @@ - + dependency-check-plugin – Surefire Report @@ -41,8 +41,8 @@
  • documentation/
  • dependency-check/
  • Surefire Report
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • diff --git a/dependency-check-plugin/team.html b/dependency-check-plugin/team.html index 0cea46f9062..55c93489a89 100644 --- a/dependency-check-plugin/team.html +++ b/dependency-check-plugin/team.html @@ -1,13 +1,13 @@ - + dependency-check-plugin – Project Team @@ -41,8 +41,8 @@
  • documentation/
  • dependency-check/
  • Project Team
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • diff --git a/dependency-check-utils/apidocs/allclasses-frame.html b/dependency-check-utils/apidocs/allclasses-frame.html index 42d997c7fa4..c06f5913d55 100644 --- a/dependency-check-utils/apidocs/allclasses-frame.html +++ b/dependency-check-utils/apidocs/allclasses-frame.html @@ -4,7 +4,7 @@ -All Classes (Dependency-Check Utils 9.0.4 API) +All Classes (Dependency-Check Utils 9.0.5 API) diff --git a/dependency-check-utils/apidocs/allclasses-noframe.html b/dependency-check-utils/apidocs/allclasses-noframe.html index 0968fde073b..c08b7267e82 100644 --- a/dependency-check-utils/apidocs/allclasses-noframe.html +++ b/dependency-check-utils/apidocs/allclasses-noframe.html @@ -4,7 +4,7 @@ -All Classes (Dependency-Check Utils 9.0.4 API) +All Classes (Dependency-Check Utils 9.0.5 API) diff --git a/dependency-check-utils/apidocs/constant-values.html b/dependency-check-utils/apidocs/constant-values.html index 375e3c5122a..d3646b2bc7d 100644 --- a/dependency-check-utils/apidocs/constant-values.html +++ b/dependency-check-utils/apidocs/constant-values.html @@ -4,7 +4,7 @@ -Constant Field Values (Dependency-Check Utils 9.0.4 API) +Constant Field Values (Dependency-Check Utils 9.0.5 API) @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,13 +12,13 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ diff --git a/dependency-check-utils/apidocs/org/owasp/dependencycheck/utils/package-summary.html b/dependency-check-utils/apidocs/org/owasp/dependencycheck/utils/package-summary.html index a5fa7096297..97b2dfe8729 100644 --- a/dependency-check-utils/apidocs/org/owasp/dependencycheck/utils/package-summary.html +++ b/dependency-check-utils/apidocs/org/owasp/dependencycheck/utils/package-summary.html @@ -4,7 +4,7 @@ -org.owasp.dependencycheck.utils (Dependency-Check Utils 9.0.4 API) +org.owasp.dependencycheck.utils (Dependency-Check Utils 9.0.5 API) @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ diff --git a/dependency-check-utils/apidocs/org/owasp/dependencycheck/utils/processing/package-summary.html b/dependency-check-utils/apidocs/org/owasp/dependencycheck/utils/processing/package-summary.html index 37e384287c5..649bc2025f6 100644 --- a/dependency-check-utils/apidocs/org/owasp/dependencycheck/utils/processing/package-summary.html +++ b/dependency-check-utils/apidocs/org/owasp/dependencycheck/utils/processing/package-summary.html @@ -4,7 +4,7 @@ -org.owasp.dependencycheck.utils.processing (Dependency-Check Utils 9.0.4 API) +org.owasp.dependencycheck.utils.processing (Dependency-Check Utils 9.0.5 API) @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ diff --git a/dependency-check-utils/apidocs/org/owasp/dependencycheck/utils/search/package-summary.html b/dependency-check-utils/apidocs/org/owasp/dependencycheck/utils/search/package-summary.html index 497a0f74521..54fbfb92ef3 100644 --- a/dependency-check-utils/apidocs/org/owasp/dependencycheck/utils/search/package-summary.html +++ b/dependency-check-utils/apidocs/org/owasp/dependencycheck/utils/search/package-summary.html @@ -4,7 +4,7 @@ -org.owasp.dependencycheck.utils.search (Dependency-Check Utils 9.0.4 API) +org.owasp.dependencycheck.utils.search (Dependency-Check Utils 9.0.5 API) @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ diff --git a/dependency-check-utils/apidocs/overview-summary.html b/dependency-check-utils/apidocs/overview-summary.html index bfcd0970d09..c24fa5c075b 100644 --- a/dependency-check-utils/apidocs/overview-summary.html +++ b/dependency-check-utils/apidocs/overview-summary.html @@ -4,7 +4,7 @@ -Overview (Dependency-Check Utils 9.0.4 API) +Overview (Dependency-Check Utils 9.0.5 API) @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@

    Dependency-Check Utils

    Version9.0.4
    9.0.5
    Type jar
    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethodsMissedClasses
    Total2,313 of 3,99842%236 of 38138%236370551947871781022
    org.owasp.dependencycheck.utils2,1061,61143%21613939%20933748887470158718
    org.owasp.dependencycheck.utils.processing2070%200%27276363171733
    org.owasp.dependencycheck.utils.search74100%6100%060100301
    \ No newline at end of file +Dependency-Check Utils

    Dependency-Check Utils

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethodsMissedClasses
    Total2,242 of 3,92742%234 of 37938%234368536932861771022
    org.owasp.dependencycheck.utils2,0351,61144%21413939%20733547385969157718
    org.owasp.dependencycheck.utils.processing2070%200%27276363171733
    org.owasp.dependencycheck.utils.search74100%6100%060100301
    \ No newline at end of file diff --git a/dependency-check-utils/jacoco/jacoco-sessions.html b/dependency-check-utils/jacoco/jacoco-sessions.html index 4e4def41c74..5fc131c91c5 100644 --- a/dependency-check-utils/jacoco/jacoco-sessions.html +++ b/dependency-check-utils/jacoco/jacoco-sessions.html @@ -1 +1 @@ -Sessions

    Sessions

    This coverage report is based on execution data from the following sessions:

    SessionStart TimeDump Time
    fv-az773-600-1d6defffDec 8, 2023 11:16:16 AMDec 8, 2023 11:16:18 AM
    fv-az773-600-d42a1fbDec 8, 2023 11:16:49 AMDec 8, 2023 11:16:54 AM

    Execution data for the following classes is considered in this report:

    ClassId
    ch.qos.logback.classic.Levele2155b45608f35d7
    ch.qos.logback.classic.Loggerf35d4d4ad6b0173a
    ch.qos.logback.classic.LoggerContextd057ce3cea631d6b
    ch.qos.logback.classic.PatternLayout6b4fcc6f23c89763
    ch.qos.logback.classic.encoder.PatternLayoutEncoderb5df0ef8a1a735ea
    ch.qos.logback.classic.joran.JoranConfigurator63bb214e0f720ae8
    ch.qos.logback.classic.joran.action.ConfigurationAction90d861250f52b75f
    ch.qos.logback.classic.joran.action.ConsolePluginAction2969e4b8b532cec5
    ch.qos.logback.classic.joran.action.ContextNameAction4ffd1a75c51a473f
    ch.qos.logback.classic.joran.action.EvaluatorActioncc2e7d3c2fc18087
    ch.qos.logback.classic.joran.action.InsertFromJNDIActionfce902dbb9dbd2a7
    ch.qos.logback.classic.joran.action.JMXConfiguratorActiona58b513df0924938
    ch.qos.logback.classic.joran.action.LevelAction8f89eefaf59271f1
    ch.qos.logback.classic.joran.action.LoggerAction8d55f78fdf86cda9
    ch.qos.logback.classic.joran.action.LoggerContextListenerAction835263a7d9309be9
    ch.qos.logback.classic.joran.action.ReceiverAction9e9bd00760b812f2
    ch.qos.logback.classic.joran.action.RootLoggerAction0528540059645c3d
    ch.qos.logback.classic.pattern.ClassicConverter78403f02659989af
    ch.qos.logback.classic.pattern.EnsureExceptionHandlingf9c97b8da786f083
    ch.qos.logback.classic.pattern.LevelConverter05b4415a3dbcaaf4
    ch.qos.logback.classic.pattern.LineSeparatorConverter2e2dc69c3bdc6cd3
    ch.qos.logback.classic.pattern.MessageConverteref2f64b51bca1aac
    ch.qos.logback.classic.pattern.ThrowableHandlingConverter266cc4ca75fcd39d
    ch.qos.logback.classic.pattern.ThrowableProxyConverter46dc88ad0c97e462
    ch.qos.logback.classic.selector.DefaultContextSelectorfd861e3242ccff2f
    ch.qos.logback.classic.sift.SiftAction9f73df3037d696a7
    ch.qos.logback.classic.spi.EventArgUtil88f3990bf293da69
    ch.qos.logback.classic.spi.LoggerContextVOecac106025bca4a3
    ch.qos.logback.classic.spi.LoggingEvent75c5fe4974050a6f
    ch.qos.logback.classic.spi.PlatformInfo0e826c07ba59ae45
    ch.qos.logback.classic.spi.TurboFilterListaa3cf39d0c0c651e
    ch.qos.logback.classic.util.ContextInitializerf560906e9553d69f
    ch.qos.logback.classic.util.ContextSelectorStaticBinder271bbf6fa66123b1
    ch.qos.logback.classic.util.DefaultNestedComponentRules840b992fa00c7e60
    ch.qos.logback.classic.util.EnvUtil39b5543082458460
    ch.qos.logback.classic.util.LogbackMDCAdaptera05682a253fd41d4
    ch.qos.logback.classic.util.LoggerNameUtilb8d88c97a0cadcfa
    ch.qos.logback.core.BasicStatusManagerf42ab87c1f66e222
    ch.qos.logback.core.ConsoleAppenderd101474cda5e45c9
    ch.qos.logback.core.ContextBase707ceedbd09855e6
    ch.qos.logback.core.CoreConstants09363a83cd5b4101
    ch.qos.logback.core.LayoutBasee6bfd3b1edc3ab01
    ch.qos.logback.core.OutputStreamAppender79e07918442741f3
    ch.qos.logback.core.UnsynchronizedAppenderBase0672be5753362c70
    ch.qos.logback.core.encoder.EncoderBasef2507a7276f26c10
    ch.qos.logback.core.encoder.LayoutWrappingEncoder6c80790d34287d6b
    ch.qos.logback.core.helpers.CyclicBuffer422c7b9f7318f10a
    ch.qos.logback.core.joran.GenericConfigurator3f448ac12ab6a263
    ch.qos.logback.core.joran.JoranConfiguratorBase38c4decb94b320f7
    ch.qos.logback.core.joran.action.AbstractEventEvaluatorActionbf3cf252a2822906
    ch.qos.logback.core.joran.action.Action7cf2d4f3569d0788
    ch.qos.logback.core.joran.action.AppenderAction22c3c549e13663a1
    ch.qos.logback.core.joran.action.AppenderRefAction3c0bd482c9925292
    ch.qos.logback.core.joran.action.ContextPropertyAction4d47e7c289aa172b
    ch.qos.logback.core.joran.action.ConversionRuleAction6ad21d1237f36c71
    ch.qos.logback.core.joran.action.DefinePropertyAction3d08042673a6e5dc
    ch.qos.logback.core.joran.action.IADataForBasicPropertycbe844e4f3903797
    ch.qos.logback.core.joran.action.IADataForComplexProperty9b210f34ec734f9e
    ch.qos.logback.core.joran.action.ImplicitAction86dae105afebc13c
    ch.qos.logback.core.joran.action.IncludeAction2775b098b6b111dc
    ch.qos.logback.core.joran.action.NOPAction69348e8c62d1a733
    ch.qos.logback.core.joran.action.NestedBasicPropertyIA89ed90b29bc14f36
    ch.qos.logback.core.joran.action.NestedBasicPropertyIA.108e44e1168d7ea7b
    ch.qos.logback.core.joran.action.NestedComplexPropertyIA178aace2d0448f6a
    ch.qos.logback.core.joran.action.NestedComplexPropertyIA.15160250e9b77af57
    ch.qos.logback.core.joran.action.NewRuleAction265aa9ab808da62d
    ch.qos.logback.core.joran.action.ParamActionad2376677140dcb4
    ch.qos.logback.core.joran.action.PropertyAction81b578f6564d00a1
    ch.qos.logback.core.joran.action.ShutdownHookActione67fa543b234ff0d
    ch.qos.logback.core.joran.action.StatusListenerAction4cf479b0b81398f3
    ch.qos.logback.core.joran.action.TimestampActiond7a48c3648a91ea8
    ch.qos.logback.core.joran.conditional.ElseActionfe56c4a40374cd79
    ch.qos.logback.core.joran.conditional.IfAction87c92d3efc3996c9
    ch.qos.logback.core.joran.conditional.ThenActiondd7886fdda1bb93e
    ch.qos.logback.core.joran.conditional.ThenOrElseActionBase9e00d4141028a50c
    ch.qos.logback.core.joran.event.BodyEvent0c8f2f07c6888bab
    ch.qos.logback.core.joran.event.EndEvent0c2e1da47ad508cc
    ch.qos.logback.core.joran.event.SaxEvent80662212b5cc3b53
    ch.qos.logback.core.joran.event.SaxEventRecorder639eb66c9ea90531
    ch.qos.logback.core.joran.event.StartEvent914de9498a78076d
    ch.qos.logback.core.joran.spi.CAI_WithLocatorSupportf96b1cd7be830663
    ch.qos.logback.core.joran.spi.ConfigurationWatchListfba78df767e05182
    ch.qos.logback.core.joran.spi.ConsoleTarget6e2cdd5051fbf329
    ch.qos.logback.core.joran.spi.ConsoleTarget.19612187e03729cd5
    ch.qos.logback.core.joran.spi.ConsoleTarget.2ea3332451607183e
    ch.qos.logback.core.joran.spi.DefaultNestedComponentRegistryf3ac4f0369a959d6
    ch.qos.logback.core.joran.spi.ElementPathab4711e5039d31b0
    ch.qos.logback.core.joran.spi.ElementSelector605584d4fe3a6b67
    ch.qos.logback.core.joran.spi.EventPlayer739ef0261c196bb2
    ch.qos.logback.core.joran.spi.HostClassAndPropertyDouble199aef84b04dd48c
    ch.qos.logback.core.joran.spi.InterpretationContextce4c00a894617c6e
    ch.qos.logback.core.joran.spi.Interpreter634fa7d2dde257a5
    ch.qos.logback.core.joran.spi.NoAutoStartUtil6fe8a98ba9c5ce85
    ch.qos.logback.core.joran.spi.SimpleRuleStore19c383749dc55e01
    ch.qos.logback.core.joran.util.ConfigurationWatchListUtila35db514967601cf
    ch.qos.logback.core.joran.util.PropertySetter8f7e7385541ef400
    ch.qos.logback.core.joran.util.StringToObjectConverter2e393f7832702c3f
    ch.qos.logback.core.joran.util.beans.BeanDescriptiona249e33828fc438a
    ch.qos.logback.core.joran.util.beans.BeanDescriptionCache9d679b6b2b24c9f7
    ch.qos.logback.core.joran.util.beans.BeanDescriptionFactory1abb714ec36ec08c
    ch.qos.logback.core.joran.util.beans.BeanUtil889c2d82913f56d3
    ch.qos.logback.core.net.ssl.SSLNestedComponentRegistryRulescdeda61b0c175e73
    ch.qos.logback.core.pattern.Converter925f6cb417029041
    ch.qos.logback.core.pattern.ConverterUtildd9b10877d49fdef
    ch.qos.logback.core.pattern.DynamicConverter66d903dd096314f6
    ch.qos.logback.core.pattern.FormattingConverterc3110b5495da3c0a
    ch.qos.logback.core.pattern.LiteralConverter65b2e319699170e6
    ch.qos.logback.core.pattern.PatternLayoutBasea804a6743796ed4f
    ch.qos.logback.core.pattern.PatternLayoutEncoderBase8869b320200d58ca
    ch.qos.logback.core.pattern.parser.Compiler1c6d6460ba38602b
    ch.qos.logback.core.pattern.parser.FormattingNodec1ea708a78deec04
    ch.qos.logback.core.pattern.parser.Node6c2db44212d84b68
    ch.qos.logback.core.pattern.parser.Parser7b1aef016f4f95f3
    ch.qos.logback.core.pattern.parser.SimpleKeywordNodef700f290325e600d
    ch.qos.logback.core.pattern.parser.Token4f7e433507e860ed
    ch.qos.logback.core.pattern.parser.TokenStreamb0bdcf4b6e0f87aa
    ch.qos.logback.core.pattern.parser.TokenStream.1fd95c0c735fd0ef7
    ch.qos.logback.core.pattern.parser.TokenStream.TokenizerState3467111fb3bf68e6
    ch.qos.logback.core.pattern.util.RegularEscapeUtil1cc07c8d9d362995
    ch.qos.logback.core.pattern.util.RestrictedEscapeUtil05ac894407a1822b
    ch.qos.logback.core.spi.AppenderAttachableImpl356e7661a1308dba
    ch.qos.logback.core.spi.ContextAwareBase507768fbb8be644f
    ch.qos.logback.core.spi.ContextAwareImple054ab71d51b27ec
    ch.qos.logback.core.spi.FilterAttachableImple0d2c4e50fd975d2
    ch.qos.logback.core.spi.FilterReply8ffb0681c411c96a
    ch.qos.logback.core.spi.LogbackLockb3b7af385a799776
    ch.qos.logback.core.status.InfoStatus1d3c0987bb0ffe10
    ch.qos.logback.core.status.StatusBase7c1cffd1a9986020
    ch.qos.logback.core.status.StatusUtilb5fec2971e383d38
    ch.qos.logback.core.subst.Node173ef78e5278fe04
    ch.qos.logback.core.subst.Node.Typeb8a40f4b8fbe988c
    ch.qos.logback.core.subst.NodeToStringTransformer1e8620cc7b5415cb
    ch.qos.logback.core.subst.NodeToStringTransformer.15967309dea3614e0
    ch.qos.logback.core.subst.Parserc06549d7b1e1487d
    ch.qos.logback.core.subst.Parser.178a0480962b020ea
    ch.qos.logback.core.subst.Token3f38da4ca554aafd
    ch.qos.logback.core.subst.Token.Typed037d0aeea85e517
    ch.qos.logback.core.subst.Tokenizer6a388c818909b082
    ch.qos.logback.core.subst.Tokenizer.15446562f97e885f7
    ch.qos.logback.core.subst.Tokenizer.TokenizerStatea43d7665d3995d51
    ch.qos.logback.core.util.AggregationTypee82dcae26638e651
    ch.qos.logback.core.util.COWArrayListfd4fbd3c0c90c052
    ch.qos.logback.core.util.CachingDateFormatter371338e1c1d98e24
    ch.qos.logback.core.util.EnvUtiladc66c330ddaa6c4
    ch.qos.logback.core.util.Loader6a7f26fdd43cf12b
    ch.qos.logback.core.util.Loader.1d6e48f075e51e44b
    ch.qos.logback.core.util.OptionHelpered7183d6bad9d2a9
    ch.qos.logback.core.util.StatusListenerConfigHelperb3e50ff76e275069
    ch.qos.logback.core.util.StatusPrinter04fef78263405164
    com.fasterxml.jackson.annotation.JsonAutoDetect.16be52ec71dcf28a2
    com.fasterxml.jackson.annotation.JsonAutoDetect.Visibilitye56bcd385626eead
    com.fasterxml.jackson.annotation.JsonCreator.Mode5e1d947ef261f336
    com.fasterxml.jackson.annotation.JsonFormat.Featuree632f8db525e6519
    com.fasterxml.jackson.annotation.JsonFormat.Features75fb2eb9717dc62a
    com.fasterxml.jackson.annotation.JsonFormat.Shapec19c22f9661f3b7d
    com.fasterxml.jackson.annotation.JsonFormat.Value0eb8231d09bfd09a
    com.fasterxml.jackson.annotation.JsonIgnoreProperties.Value4f0da3cf85f6ca76
    com.fasterxml.jackson.annotation.JsonInclude.Include30ab0a782ad08747
    com.fasterxml.jackson.annotation.JsonInclude.Valuea558d9f40414e748
    com.fasterxml.jackson.annotation.JsonIncludeProperties.Value7ed084480a07ee84
    com.fasterxml.jackson.annotation.JsonProperty.Accessb5322e85ff85e8b9
    com.fasterxml.jackson.annotation.JsonSetter.Value6ee26ce006658a00
    com.fasterxml.jackson.annotation.Nulls724f990ec72b618f
    com.fasterxml.jackson.annotation.PropertyAccessora506c0b4a9292088
    com.fasterxml.jackson.core.Base64Variant820db952b2ce1918
    com.fasterxml.jackson.core.Base64Variant.PaddingReadBehaviourdd0e63a614fe004b
    com.fasterxml.jackson.core.Base64Variantse646bbe091ae79c0
    com.fasterxml.jackson.core.ErrorReportConfiguration6ae7b9c14364f861
    com.fasterxml.jackson.core.JsonFactory4b6dbe517dc74f05
    com.fasterxml.jackson.core.JsonFactory.Feature6053a66ef91d8599
    com.fasterxml.jackson.core.JsonGenerator8a53f1394a871e41
    com.fasterxml.jackson.core.JsonGenerator.Featuredca43627a1b1d378
    com.fasterxml.jackson.core.JsonParserbfa2b2aaf45dbdaf
    com.fasterxml.jackson.core.JsonParser.Feature7e095b73debaa45f
    com.fasterxml.jackson.core.JsonParser.NumberType88e7ccc17e76b9de
    com.fasterxml.jackson.core.JsonStreamContext369abe89770bcf3d
    com.fasterxml.jackson.core.JsonTokeneed63a6e4a8e9120
    com.fasterxml.jackson.core.ObjectCodec4de1a295d9dc31ca
    com.fasterxml.jackson.core.PrettyPrinterf27d5528a26794c9
    com.fasterxml.jackson.core.StreamReadCapabilitya4c561ff4de25114
    com.fasterxml.jackson.core.StreamReadConstraintsfef85c00a0df6225
    com.fasterxml.jackson.core.StreamWriteCapability20b236b266d25323
    com.fasterxml.jackson.core.StreamWriteConstraintsf2bb5b3756dacf82
    com.fasterxml.jackson.core.TokenStreamFactory41de330f27eca392
    com.fasterxml.jackson.core.TreeCodec18594f8a8dcec6a2
    com.fasterxml.jackson.core.Version9e2d74f157825603
    com.fasterxml.jackson.core.base.GeneratorBase769b434d47814ead
    com.fasterxml.jackson.core.base.ParserBase7ea5c57b85e68f85
    com.fasterxml.jackson.core.base.ParserMinimalBasedafc6c7b6eb27cb5
    com.fasterxml.jackson.core.io.CharTypes07a8747913d8e991
    com.fasterxml.jackson.core.io.ContentReferencec1bf9547a5b31574
    com.fasterxml.jackson.core.io.IOContext92f945a4db96d4d1
    com.fasterxml.jackson.core.io.JsonStringEncodercaf3b669acbbe223
    com.fasterxml.jackson.core.io.NumberInput6b34a37c1fb6a484
    com.fasterxml.jackson.core.io.NumberOutput9603d1200ce5afbc
    com.fasterxml.jackson.core.io.SegmentedStringWriteraf9b17af11ce151f
    com.fasterxml.jackson.core.io.SerializedStringde06c047872018ad
    com.fasterxml.jackson.core.json.JsonGeneratorImpl62f7e0732a7b3f16
    com.fasterxml.jackson.core.json.JsonReadContext7fe93ff4dfcd910a
    com.fasterxml.jackson.core.json.JsonWriteContext80adf9bb4918112e
    com.fasterxml.jackson.core.json.ReaderBasedJsonParser5a748aacc97cbeaf
    com.fasterxml.jackson.core.json.WriterBasedJsonGenerator4c9c68d95ea16405
    com.fasterxml.jackson.core.sym.ByteQuadsCanonicalizer5054f4087e115bac
    com.fasterxml.jackson.core.sym.ByteQuadsCanonicalizer.TableInfoeb0211d6faa23d01
    com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer098437effe93aab8
    com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer.Bucket7c0255c4c5f898c2
    com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer.TableInfo7f8a1e78ae4259c6
    com.fasterxml.jackson.core.type.ResolvedType8a4589ad9960ed59
    com.fasterxml.jackson.core.util.BufferRecycler130f2ce298e329d8
    com.fasterxml.jackson.core.util.BufferRecyclers4e7bee8eece90b3a
    com.fasterxml.jackson.core.util.DefaultIndenter18913563e8366f39
    com.fasterxml.jackson.core.util.DefaultPrettyPrinterdffce786178e5ff1
    com.fasterxml.jackson.core.util.DefaultPrettyPrinter.FixedSpaceIndenter418687d575a4f083
    com.fasterxml.jackson.core.util.DefaultPrettyPrinter.NopIndenter110c0bf83e5c079c
    com.fasterxml.jackson.core.util.InternCacheb55c4c122f488f2e
    com.fasterxml.jackson.core.util.JacksonFeatureSet69b6b3d8af7f13b3
    com.fasterxml.jackson.core.util.JsonRecyclerPoolsbb15cd8e45e37fee
    com.fasterxml.jackson.core.util.JsonRecyclerPools.ThreadLocalPoolb47528b0197c08e2
    com.fasterxml.jackson.core.util.MinimalPrettyPrinter4f783f17769fbb24
    com.fasterxml.jackson.core.util.ReadConstrainedTextBuffer23fc9ce24061d845
    com.fasterxml.jackson.core.util.RecyclerPool.ThreadLocalPoolBase23bd83512f98e1cd
    com.fasterxml.jackson.core.util.Separatorsdb601d3f3bad91c2
    com.fasterxml.jackson.core.util.Separators.Spacing511422cc9db17520
    com.fasterxml.jackson.core.util.TextBuffere0024e1d666b4905
    com.fasterxml.jackson.core.util.VersionUtil665fa94b3d0b07a9
    com.fasterxml.jackson.databind.AnnotationIntrospector905eb800c47f61a4
    com.fasterxml.jackson.databind.AnnotationIntrospector.ReferenceProperty09f92466c78dd697
    com.fasterxml.jackson.databind.AnnotationIntrospector.ReferenceProperty.Typed90a083248c5b3dc
    com.fasterxml.jackson.databind.BeanDescriptionb72f4d814c7d9796
    com.fasterxml.jackson.databind.BeanProperty.Std1dc3c0a141338eba
    com.fasterxml.jackson.databind.DatabindContext190fc61056492212
    com.fasterxml.jackson.databind.DeserializationConfiga66abddaffd0eeda
    com.fasterxml.jackson.databind.DeserializationContexte42cf81978826049
    com.fasterxml.jackson.databind.DeserializationFeaturee8c5e101ec4650d4
    com.fasterxml.jackson.databind.JavaType4b4e8dfd897d7a79
    com.fasterxml.jackson.databind.JsonDeserializerf155d5de89ce5a60
    com.fasterxml.jackson.databind.JsonNode56cae57f74bf28ed
    com.fasterxml.jackson.databind.JsonNode.1626d441d5b9eee73
    com.fasterxml.jackson.databind.JsonSerializable.Based7667d73e9aa24c4
    com.fasterxml.jackson.databind.JsonSerializeradb9d1fae01b02c7
    com.fasterxml.jackson.databind.KeyDeserializer57c3ce9990767641
    com.fasterxml.jackson.databind.MapperFeatured7d85f4bfd3cff7a
    com.fasterxml.jackson.databind.MappingJsonFactory65cdd9294dfaf29a
    com.fasterxml.jackson.databind.Modulebb66b81d910dbd05
    com.fasterxml.jackson.databind.ObjectMapper1267d692f0f6e0ba
    com.fasterxml.jackson.databind.ObjectMapper.10b9220e9c1bc2c47
    com.fasterxml.jackson.databind.ObjectReader1d24d1af08075eb3
    com.fasterxml.jackson.databind.ObjectWriter8c15ae21c6fdf9f9
    com.fasterxml.jackson.databind.ObjectWriter.GeneratorSettings6cd7d8bd9a437157
    com.fasterxml.jackson.databind.ObjectWriter.Prefetch25feb6c8d812df4f
    com.fasterxml.jackson.databind.PropertyMetadata56620abf8cdd07c8
    com.fasterxml.jackson.databind.PropertyName217cf81be2326911
    com.fasterxml.jackson.databind.SerializationConfig40620b2ae2347380
    com.fasterxml.jackson.databind.SerializationFeature9609ec0ec1e8bc2a
    com.fasterxml.jackson.databind.SerializerProvider10f427a250ca2427
    com.fasterxml.jackson.databind.cfg.BaseSettings74949427e8604cd4
    com.fasterxml.jackson.databind.cfg.CoercionAction9e15561f16680f97
    com.fasterxml.jackson.databind.cfg.CoercionConfigffad61191adeb87e
    com.fasterxml.jackson.databind.cfg.CoercionConfigs8937a55c926c734f
    com.fasterxml.jackson.databind.cfg.CoercionInputShape90aad4e377b3dccd
    com.fasterxml.jackson.databind.cfg.ConfigOverridef1771a0d408303c8
    com.fasterxml.jackson.databind.cfg.ConfigOverride.Empty3372ed519d9bafb4
    com.fasterxml.jackson.databind.cfg.ConfigOverrides7943101710d9f910
    com.fasterxml.jackson.databind.cfg.ConstructorDetector9af1c9a41cb4b83d
    com.fasterxml.jackson.databind.cfg.ConstructorDetector.SingleArgConstructorb0c67222cebc30be
    com.fasterxml.jackson.databind.cfg.ContextAttributes216e6db5a97ae48a
    com.fasterxml.jackson.databind.cfg.ContextAttributes.Implede427cff276c0b8
    com.fasterxml.jackson.databind.cfg.DatatypeFeaturesf4893ef156575441
    com.fasterxml.jackson.databind.cfg.DatatypeFeatures.DefaultHolder81838084595fa0c8
    com.fasterxml.jackson.databind.cfg.DefaultCacheProvider6bbb2aa855b50726
    com.fasterxml.jackson.databind.cfg.DeserializerFactoryConfig7861ff22cec5640b
    com.fasterxml.jackson.databind.cfg.EnumFeature16e95ce7a3f1f1ee
    com.fasterxml.jackson.databind.cfg.JsonNodeFeature93b45511772e9fc3
    com.fasterxml.jackson.databind.cfg.MapperConfigc7b0b1bb3bc6f9f1
    com.fasterxml.jackson.databind.cfg.MapperConfigBase5bb7b8ef48c720d7
    com.fasterxml.jackson.databind.cfg.MutableCoercionConfig262e6b36c9ca989e
    com.fasterxml.jackson.databind.cfg.SerializerFactoryConfigd93f22d3258ee4c0
    com.fasterxml.jackson.databind.deser.AbstractDeserializer0e1ba7162cf5f27f
    com.fasterxml.jackson.databind.deser.BasicDeserializerFactory3944ee9b76fde7a2
    com.fasterxml.jackson.databind.deser.BasicDeserializerFactory.ContainerDefaultMappingsdf7805e17fdc7522
    com.fasterxml.jackson.databind.deser.BasicDeserializerFactory.CreatorCollectionStatef0dbb90499e14fa4
    com.fasterxml.jackson.databind.deser.BeanDeserializer51262781f5e28489
    com.fasterxml.jackson.databind.deser.BeanDeserializerBasedf7ad1189a3b508b
    com.fasterxml.jackson.databind.deser.BeanDeserializerBuilderd5bdf1bb9953f729
    com.fasterxml.jackson.databind.deser.BeanDeserializerFactory65809d9bdea9493b
    com.fasterxml.jackson.databind.deser.DefaultDeserializationContext5756779a22fd7d68
    com.fasterxml.jackson.databind.deser.DefaultDeserializationContext.Impl8057860fe47eb5da
    com.fasterxml.jackson.databind.deser.DeserializerCache7d85f058f583e5dd
    com.fasterxml.jackson.databind.deser.DeserializerFactory2ebdf24d93849f1a
    com.fasterxml.jackson.databind.deser.Deserializers.Basea3b8086adb6ca320
    com.fasterxml.jackson.databind.deser.SettableBeanPropertye32815b47681953f
    com.fasterxml.jackson.databind.deser.ValueInstantiator500a74eea26ebb5d
    com.fasterxml.jackson.databind.deser.ValueInstantiator.Base56fce65bc9fdb762
    com.fasterxml.jackson.databind.deser.ValueInstantiators.Base409ddb33d4295a19
    com.fasterxml.jackson.databind.deser.impl.BeanPropertyMapabab716eded67ac2
    com.fasterxml.jackson.databind.deser.impl.CreatorCandidate3ec9d7560819c0da
    com.fasterxml.jackson.databind.deser.impl.CreatorCandidate.Paramc635ef4a61409ee4
    com.fasterxml.jackson.databind.deser.impl.CreatorCollector0f8b3def4682a020
    com.fasterxml.jackson.databind.deser.impl.FailingDeserializer4904d8577f214eb3
    com.fasterxml.jackson.databind.deser.impl.FieldProperty79a77498e066a15d
    com.fasterxml.jackson.databind.deser.impl.JDKValueInstantiators008ddf7a64eb2d4a
    com.fasterxml.jackson.databind.deser.impl.JDKValueInstantiators.ArrayListInstantiator187a1232f1bf2643
    com.fasterxml.jackson.databind.deser.impl.MethodPropertydf95398e08d528a0
    com.fasterxml.jackson.databind.deser.impl.NullsConstantProvider83cd716157aa0f9a
    com.fasterxml.jackson.databind.deser.std.BaseNodeDeserializer82dde7b6c751ad90
    com.fasterxml.jackson.databind.deser.std.BaseNodeDeserializer.ContainerStack47ba851b95cd1477
    com.fasterxml.jackson.databind.deser.std.CollectionDeserializer264403aa8c0a30f7
    com.fasterxml.jackson.databind.deser.std.ContainerDeserializerBase0f7cf99ff0b0c8a0
    com.fasterxml.jackson.databind.deser.std.DateDeserializers9e6826e9538c1d95
    com.fasterxml.jackson.databind.deser.std.EnumDeserializerc3ad157384d2680f
    com.fasterxml.jackson.databind.deser.std.FromStringDeserializerb5093028e19eaf91
    com.fasterxml.jackson.databind.deser.std.JdkDeserializersa7ac27fec28e8de9
    com.fasterxml.jackson.databind.deser.std.JsonNodeDeserializer39345e6cbb5ce5e8
    com.fasterxml.jackson.databind.deser.std.NumberDeserializersaf4aa96d306dfbb7
    com.fasterxml.jackson.databind.deser.std.NumberDeserializers.BooleanDeserializer30e8686ef1609fb9
    com.fasterxml.jackson.databind.deser.std.NumberDeserializers.IntegerDeserializercb695275ccadb732
    com.fasterxml.jackson.databind.deser.std.NumberDeserializers.LongDeserializer003b30a97cae021a
    com.fasterxml.jackson.databind.deser.std.NumberDeserializers.PrimitiveOrWrapperDeserializer467caf19a87c057e
    com.fasterxml.jackson.databind.deser.std.ObjectArrayDeserializer161f6edb37261bc7
    com.fasterxml.jackson.databind.deser.std.PrimitiveArrayDeserializersd1b5f17fcf047f5b
    com.fasterxml.jackson.databind.deser.std.PrimitiveArrayDeserializers.ByteDeser113f5a9a9c0e8a29
    com.fasterxml.jackson.databind.deser.std.StdDeserializer2122bf750d1b5b89
    com.fasterxml.jackson.databind.deser.std.StdKeyDeserializers2ca4ab5d0f0b71dd
    com.fasterxml.jackson.databind.deser.std.StdScalarDeserializer25286f364997b846
    com.fasterxml.jackson.databind.deser.std.StdValueInstantiator34181f4c11253cc9
    com.fasterxml.jackson.databind.deser.std.StringArrayDeserializerdbeac8e57a8a807e
    com.fasterxml.jackson.databind.deser.std.StringCollectionDeserializerea68b80c909c4561
    com.fasterxml.jackson.databind.deser.std.StringDeserializer36ba9f92a53b7892
    com.fasterxml.jackson.databind.ext.Java7Handlers31410c423d95a2d0
    com.fasterxml.jackson.databind.ext.Java7HandlersImpl423b0b9d126fb382
    com.fasterxml.jackson.databind.ext.Java7Support4b7557784caa415a
    com.fasterxml.jackson.databind.ext.Java7SupportImpl94a94fc44678f7e9
    com.fasterxml.jackson.databind.ext.OptionalHandlerFactorya873be98e8f52009
    com.fasterxml.jackson.databind.introspect.AccessorNamingStrategy3d3b7f563f5ca70a
    com.fasterxml.jackson.databind.introspect.AccessorNamingStrategy.Provider6026222786456f26
    com.fasterxml.jackson.databind.introspect.Annotated47d3d49f2b832d54
    com.fasterxml.jackson.databind.introspect.AnnotatedClass208d1216b93f97d9
    com.fasterxml.jackson.databind.introspect.AnnotatedClass.Creatorsecbba5a1c87c995f
    com.fasterxml.jackson.databind.introspect.AnnotatedClassResolver9c1435b88f5e9e91
    com.fasterxml.jackson.databind.introspect.AnnotatedConstructoreaf946db37898a44
    com.fasterxml.jackson.databind.introspect.AnnotatedCreatorCollectorf1dbd789d7b2161e
    com.fasterxml.jackson.databind.introspect.AnnotatedFielde6e45b21b9cdeda3
    com.fasterxml.jackson.databind.introspect.AnnotatedFieldCollectord6830919dea39e8f
    com.fasterxml.jackson.databind.introspect.AnnotatedFieldCollector.FieldBuilder571d9e7fb561d385
    com.fasterxml.jackson.databind.introspect.AnnotatedMember5879537c033bd580
    com.fasterxml.jackson.databind.introspect.AnnotatedMethodad2f0bf303d90ae0
    com.fasterxml.jackson.databind.introspect.AnnotatedMethodCollectore8e34bff5e47f125
    com.fasterxml.jackson.databind.introspect.AnnotatedMethodCollector.MethodBuilderb522d96f88a7ade4
    com.fasterxml.jackson.databind.introspect.AnnotatedMethodMapd69be24a07cecf16
    com.fasterxml.jackson.databind.introspect.AnnotatedParameter05eab262cf202b22
    com.fasterxml.jackson.databind.introspect.AnnotatedWithParams54f7d4537c15cfdb
    com.fasterxml.jackson.databind.introspect.AnnotationCollectorc389709d2ffbb364
    com.fasterxml.jackson.databind.introspect.AnnotationCollector.EmptyCollectora87b6b2439611ec7
    com.fasterxml.jackson.databind.introspect.AnnotationCollector.NoAnnotations9173d7167a075d90
    com.fasterxml.jackson.databind.introspect.AnnotationCollector.OneCollector4d7ed4cd12d6011c
    com.fasterxml.jackson.databind.introspect.AnnotationMap78aa63dcada1ee05
    com.fasterxml.jackson.databind.introspect.BasicBeanDescription4f0d484434fb6325
    com.fasterxml.jackson.databind.introspect.BasicClassIntrospectorfcecadfe75a5c2af
    com.fasterxml.jackson.databind.introspect.BeanPropertyDefinitiond3bbcf006607ecb0
    com.fasterxml.jackson.databind.introspect.ClassIntrospectorb20a1133edfcf6b5
    com.fasterxml.jackson.databind.introspect.CollectorBasefec0f38373f479ba
    com.fasterxml.jackson.databind.introspect.ConcreteBeanPropertyBasefa5bde6be1d392b1
    com.fasterxml.jackson.databind.introspect.DefaultAccessorNamingStrategyefc1568392fc0098
    com.fasterxml.jackson.databind.introspect.DefaultAccessorNamingStrategy.Provider9679bb882d2d354f
    com.fasterxml.jackson.databind.introspect.EnumNamingStrategyFactory9c6fffcda48914f4
    com.fasterxml.jackson.databind.introspect.JacksonAnnotationIntrospector9d54114155341c05
    com.fasterxml.jackson.databind.introspect.MemberKey0e604899c13122c4
    com.fasterxml.jackson.databind.introspect.MethodGenericTypeResolver61e8e0d7412c1d92
    com.fasterxml.jackson.databind.introspect.POJOPropertiesCollector1821e69f144ab189
    com.fasterxml.jackson.databind.introspect.POJOPropertyBuilder87b50c8168df5d0b
    com.fasterxml.jackson.databind.introspect.POJOPropertyBuilder.1925ffe3a324d008c
    com.fasterxml.jackson.databind.introspect.POJOPropertyBuilder.2f9f5816009560a85
    com.fasterxml.jackson.databind.introspect.POJOPropertyBuilder.3bc1ae84d89db28f4
    com.fasterxml.jackson.databind.introspect.POJOPropertyBuilder.4ccfa1b83e27ecd92
    com.fasterxml.jackson.databind.introspect.POJOPropertyBuilder.58bc5c843a115ba34
    com.fasterxml.jackson.databind.introspect.POJOPropertyBuilder.6a2d5a4cee9bda8de
    com.fasterxml.jackson.databind.introspect.POJOPropertyBuilder.Linkedef62b5db9e7546d6
    com.fasterxml.jackson.databind.introspect.SimpleMixInResolver6a0721d817cbf413
    com.fasterxml.jackson.databind.introspect.TypeResolutionContext.Basic09190ef225acb240
    com.fasterxml.jackson.databind.introspect.VisibilityChecker.Std86f77996bd544f4e
    com.fasterxml.jackson.databind.jsontype.PolymorphicTypeValidatorff1c7cc76de984ce
    com.fasterxml.jackson.databind.jsontype.PolymorphicTypeValidator.Baseea9ae0e64ce11069
    com.fasterxml.jackson.databind.jsontype.SubtypeResolverb2ed8bc0e5fe669c
    com.fasterxml.jackson.databind.jsontype.impl.LaissezFaireSubTypeValidatord02dab29b87ed521
    com.fasterxml.jackson.databind.jsontype.impl.StdSubtypeResolver342823e6800eb76b
    com.fasterxml.jackson.databind.jsontype.impl.SubTypeValidatora7ad2f19c2210a88
    com.fasterxml.jackson.databind.module.SimpleDeserializers53107227f2e2423e
    com.fasterxml.jackson.databind.module.SimpleKeyDeserializersa819432235e4437e
    com.fasterxml.jackson.databind.module.SimpleModulea21183dcf70aba53
    com.fasterxml.jackson.databind.module.SimpleSerializers946800aa77be606d
    com.fasterxml.jackson.databind.node.ArrayNodeeddaf67053a53e40
    com.fasterxml.jackson.databind.node.BaseJsonNodebfd90fff281f00ca
    com.fasterxml.jackson.databind.node.BooleanNodecebb2fcdf8e3b29f
    com.fasterxml.jackson.databind.node.ContainerNode3e656b4335d16878
    com.fasterxml.jackson.databind.node.IntNode980891d38da3f882
    com.fasterxml.jackson.databind.node.JsonNodeFactoryb407554ab061d84d
    com.fasterxml.jackson.databind.node.JsonNodeTypea26f1eeaaa06bdd6
    com.fasterxml.jackson.databind.node.NumericNode5272679eb5ea0a69
    com.fasterxml.jackson.databind.node.ObjectNode74aad756ca3a7d79
    com.fasterxml.jackson.databind.node.TextNode24a44d604f63089e
    com.fasterxml.jackson.databind.node.ValueNode836490b62c1c13d7
    com.fasterxml.jackson.databind.ser.BasicSerializerFactoryda909c46cb0d91a4
    com.fasterxml.jackson.databind.ser.BeanPropertyWriter190b8c3d7511b25b
    com.fasterxml.jackson.databind.ser.BeanSerializer2f76bfe21b88bf4b
    com.fasterxml.jackson.databind.ser.BeanSerializerBuilder0107159d6b8f2643
    com.fasterxml.jackson.databind.ser.BeanSerializerFactory16faed09cf6c52b8
    com.fasterxml.jackson.databind.ser.ContainerSerializer67b35562bf415143
    com.fasterxml.jackson.databind.ser.DefaultSerializerProvider7081bda43dcfcb52
    com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.Implbb7a481d8d11e37e
    com.fasterxml.jackson.databind.ser.PropertyBuilder92b8ef7a71e020f0
    com.fasterxml.jackson.databind.ser.PropertyBuilder.1ee3c9eabff3a5082
    com.fasterxml.jackson.databind.ser.PropertyWritera75647305846e8db
    com.fasterxml.jackson.databind.ser.SerializerCache05a580ec11f5621f
    com.fasterxml.jackson.databind.ser.SerializerFactorya96ec5a87f2a9dec
    com.fasterxml.jackson.databind.ser.Serializers.Base443d0df59bde7b26
    com.fasterxml.jackson.databind.ser.impl.FailingSerializer96696f091a076f00
    com.fasterxml.jackson.databind.ser.impl.IndexedListSerializercd4efc50b27864f0
    com.fasterxml.jackson.databind.ser.impl.PropertySerializerMapb896860192138c16
    com.fasterxml.jackson.databind.ser.impl.PropertySerializerMap.Empty3dce91f99b61f9c6
    com.fasterxml.jackson.databind.ser.impl.PropertySerializerMap.SerializerAndMapResult7726b41f965932aa
    com.fasterxml.jackson.databind.ser.impl.PropertySerializerMap.Singlee5e537120154be9c
    com.fasterxml.jackson.databind.ser.impl.ReadOnlyClassToSerializerMapf7673b78d4dbb21a
    com.fasterxml.jackson.databind.ser.impl.ReadOnlyClassToSerializerMap.Bucketf027017bdef27857
    com.fasterxml.jackson.databind.ser.impl.UnknownSerializer0f0b100c24ae521b
    com.fasterxml.jackson.databind.ser.std.ArraySerializerBasec8c6410977eb572f
    com.fasterxml.jackson.databind.ser.std.AsArraySerializerBase7c963189f626505a
    com.fasterxml.jackson.databind.ser.std.BeanSerializerBase5b8d77762be021c2
    com.fasterxml.jackson.databind.ser.std.BooleanSerializera5e7ba6f955baf41
    com.fasterxml.jackson.databind.ser.std.ByteArraySerializer65e2202cadcb3f06
    com.fasterxml.jackson.databind.ser.std.CalendarSerializerda6df272674c3c19
    com.fasterxml.jackson.databind.ser.std.DateSerializerdcf355b20d60965d
    com.fasterxml.jackson.databind.ser.std.DateTimeSerializerBasefb1c17ba4f02cbe0
    com.fasterxml.jackson.databind.ser.std.NullSerializer55885eb24739c250
    com.fasterxml.jackson.databind.ser.std.NumberSerializer2b09bf235752694e
    com.fasterxml.jackson.databind.ser.std.NumberSerializersdfe8936a5bca95d8
    com.fasterxml.jackson.databind.ser.std.NumberSerializers.1749c16e3536adf29
    com.fasterxml.jackson.databind.ser.std.NumberSerializers.Base243c88192bb86ee4
    com.fasterxml.jackson.databind.ser.std.NumberSerializers.DoubleSerializer5b65fb8c8ea04f02
    com.fasterxml.jackson.databind.ser.std.NumberSerializers.FloatSerializer0849cda863777be8
    com.fasterxml.jackson.databind.ser.std.NumberSerializers.IntLikeSerializer37f949791419da14
    com.fasterxml.jackson.databind.ser.std.NumberSerializers.IntegerSerializer8572ad7f464034dd
    com.fasterxml.jackson.databind.ser.std.NumberSerializers.LongSerializer1bcc67c140cfbe03
    com.fasterxml.jackson.databind.ser.std.NumberSerializers.ShortSerializera678b068eca9e8b6
    com.fasterxml.jackson.databind.ser.std.ObjectArraySerializer4bb4572b8f836147
    com.fasterxml.jackson.databind.ser.std.SerializableSerializer147abbb51ff24230
    com.fasterxml.jackson.databind.ser.std.StdArraySerializers541e9ae39ec63b46
    com.fasterxml.jackson.databind.ser.std.StdArraySerializers.BooleanArraySerializer309e24a2a527226d
    com.fasterxml.jackson.databind.ser.std.StdArraySerializers.CharArraySerializerff03321e6fb258d9
    com.fasterxml.jackson.databind.ser.std.StdArraySerializers.DoubleArraySerializer4446110208c37d4a
    com.fasterxml.jackson.databind.ser.std.StdArraySerializers.FloatArraySerializer28bfe15235252028
    com.fasterxml.jackson.databind.ser.std.StdArraySerializers.IntArraySerializer0ec9538a2d81a486
    com.fasterxml.jackson.databind.ser.std.StdArraySerializers.LongArraySerializer94ba062b0fa70c32
    com.fasterxml.jackson.databind.ser.std.StdArraySerializers.ShortArraySerializer5c15e521f0026d5a
    com.fasterxml.jackson.databind.ser.std.StdArraySerializers.TypedPrimitiveArraySerializer0ae2225f9f9aa02d
    com.fasterxml.jackson.databind.ser.std.StdJdkSerializersb1d950d41858d3ba
    com.fasterxml.jackson.databind.ser.std.StdScalarSerializer294ce690d4fde5d1
    com.fasterxml.jackson.databind.ser.std.StdSerializer2eb989e3aa9ebf8b
    com.fasterxml.jackson.databind.ser.std.StringSerializerb6342c9e6a90d477
    com.fasterxml.jackson.databind.ser.std.ToEmptyObjectSerializerdcbbfaf250568a42
    com.fasterxml.jackson.databind.ser.std.ToStringSerializerb965af9d2adb22d7
    com.fasterxml.jackson.databind.ser.std.ToStringSerializerBase4df4671bce83caa1
    com.fasterxml.jackson.databind.ser.std.UUIDSerializer9825ed90a3a1ea38
    com.fasterxml.jackson.databind.type.ArrayTypeada34943c659785c
    com.fasterxml.jackson.databind.type.ClassKeyc92de6eb0295e1ea
    com.fasterxml.jackson.databind.type.ClassStackb4e39752aaaff8ce
    com.fasterxml.jackson.databind.type.CollectionLikeTypefdca9c74891003b6
    com.fasterxml.jackson.databind.type.CollectionType754ccfd8e93b2fdd
    com.fasterxml.jackson.databind.type.IdentityEqualityTypefd3058d6950e2027
    com.fasterxml.jackson.databind.type.LogicalTypee0e08cb4c4d717b1
    com.fasterxml.jackson.databind.type.ResolvedRecursiveType6dc2c88dbe17a20b
    com.fasterxml.jackson.databind.type.SimpleType9bf726d4e15bb139
    com.fasterxml.jackson.databind.type.TypeBase84e347a8123ba86e
    com.fasterxml.jackson.databind.type.TypeBindings69af78e44b169d2b
    com.fasterxml.jackson.databind.type.TypeBindings.AsKey3cf63795dd54b8b7
    com.fasterxml.jackson.databind.type.TypeBindings.TypeParamStashc0b0ab8001879ee4
    com.fasterxml.jackson.databind.type.TypeFactory3596cbf80365f39f
    com.fasterxml.jackson.databind.type.TypeParser539ac466374b5334
    com.fasterxml.jackson.databind.util.AccessPattern44bf82acd8a3fffc
    com.fasterxml.jackson.databind.util.ArrayBuildersc14a06ce657aa67b
    com.fasterxml.jackson.databind.util.ArrayIteratore4c9e4d38ac21c90
    com.fasterxml.jackson.databind.util.BeanUtilaca352d66ffbab01
    com.fasterxml.jackson.databind.util.ClassUtil7a2a6f716f5500a1
    com.fasterxml.jackson.databind.util.ClassUtil.Ctor1fd4710f90ff53de
    com.fasterxml.jackson.databind.util.CompactStringObjectMapc829fa5bce3ca652
    com.fasterxml.jackson.databind.util.EnumResolver7d690e5e78dc143f
    com.fasterxml.jackson.databind.util.IgnorePropertiesUtil81001725c2203f99
    com.fasterxml.jackson.databind.util.LRUMapc487e14750ddd25e
    com.fasterxml.jackson.databind.util.LinkedNode73ca05873e25cb2e
    com.fasterxml.jackson.databind.util.ObjectBuffer14fbae37b93a957b
    com.fasterxml.jackson.databind.util.RootNameLookupadd4d1fb1a084862
    com.fasterxml.jackson.databind.util.StdDateFormatc6d4539431425f11
    com.fasterxml.jackson.databind.util.TypeKey32162ed128b7bbbd
    com.fasterxml.jackson.databind.util.internal.LinkedDeque9bfc4fbb2b0b1196
    com.fasterxml.jackson.databind.util.internal.PrivateMaxEntriesMap3f0ff22fe5779861
    com.fasterxml.jackson.databind.util.internal.PrivateMaxEntriesMap.AddTask866aec97a77c2650
    com.fasterxml.jackson.databind.util.internal.PrivateMaxEntriesMap.Builderdcc244062522bdc6
    com.fasterxml.jackson.databind.util.internal.PrivateMaxEntriesMap.DrainStatusa1e26b7a083af651
    com.fasterxml.jackson.databind.util.internal.PrivateMaxEntriesMap.DrainStatus.12de09d3a3bfcdca6
    com.fasterxml.jackson.databind.util.internal.PrivateMaxEntriesMap.DrainStatus.22928516020b2e91a
    com.fasterxml.jackson.databind.util.internal.PrivateMaxEntriesMap.DrainStatus.326e6a18539bc3d80
    com.fasterxml.jackson.databind.util.internal.PrivateMaxEntriesMap.EntryIterator86fc40b47b6d46b6
    com.fasterxml.jackson.databind.util.internal.PrivateMaxEntriesMap.EntrySet69a473f3bfd1c6f1
    com.fasterxml.jackson.databind.util.internal.PrivateMaxEntriesMap.Node2dc3669c077d2e56
    com.fasterxml.jackson.databind.util.internal.PrivateMaxEntriesMap.WeightedValuec5874d009c2eaa54
    com.fasterxml.jackson.databind.util.internal.PrivateMaxEntriesMap.WriteThroughEntry564e61c687d1b555
    com.fasterxml.jackson.datatype.jsr310.JavaTimeFeature11ebf8abc1c4f906
    com.fasterxml.jackson.datatype.jsr310.JavaTimeModule336759599f630d91
    com.fasterxml.jackson.datatype.jsr310.JavaTimeModule.1327c369d7a207d22
    com.fasterxml.jackson.datatype.jsr310.PackageVersion52634a35b9f96fcd
    com.fasterxml.jackson.datatype.jsr310.deser.DurationDeserializerb86657917c64cb85
    com.fasterxml.jackson.datatype.jsr310.deser.InstantDeserializer8193d32aba73cf61
    com.fasterxml.jackson.datatype.jsr310.deser.JSR310DateTimeDeserializerBase0366d6b796957250
    com.fasterxml.jackson.datatype.jsr310.deser.JSR310DeserializerBasea42a100eb3db5063
    com.fasterxml.jackson.datatype.jsr310.deser.JSR310StringParsableDeserializerec40549afa8898ca
    com.fasterxml.jackson.datatype.jsr310.deser.LocalDateDeserializer7c3dc32f44a8a7d2
    com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializerdd6bef5ff411966a
    com.fasterxml.jackson.datatype.jsr310.deser.LocalTimeDeserializer1bffe9367f89358b
    com.fasterxml.jackson.datatype.jsr310.deser.MonthDayDeserializer295fd92b5b65742e
    com.fasterxml.jackson.datatype.jsr310.deser.OffsetTimeDeserializer00fa8a1b15dfd0d9
    com.fasterxml.jackson.datatype.jsr310.deser.YearDeserializer0679c75311d6e905
    com.fasterxml.jackson.datatype.jsr310.deser.YearMonthDeserializeraf642fd7b5a7e4e8
    com.fasterxml.jackson.datatype.jsr310.deser.key.DurationKeyDeserializer86dee43d5fd8de58
    com.fasterxml.jackson.datatype.jsr310.deser.key.InstantKeyDeserializerc323cc187e10bdcd
    com.fasterxml.jackson.datatype.jsr310.deser.key.Jsr310KeyDeserializer64893f60684210d1
    com.fasterxml.jackson.datatype.jsr310.deser.key.LocalDateKeyDeserializer3639e2ff55da7fa1
    com.fasterxml.jackson.datatype.jsr310.deser.key.LocalDateTimeKeyDeserializered7e026ffd090c77
    com.fasterxml.jackson.datatype.jsr310.deser.key.LocalTimeKeyDeserializerc058ad0a221814f2
    com.fasterxml.jackson.datatype.jsr310.deser.key.MonthDayKeyDeserializerfe54a17b388e76da
    com.fasterxml.jackson.datatype.jsr310.deser.key.OffsetDateTimeKeyDeserializer1bfce89e8c6142a4
    com.fasterxml.jackson.datatype.jsr310.deser.key.OffsetTimeKeyDeserializer7e7c73d8f28d4c13
    com.fasterxml.jackson.datatype.jsr310.deser.key.PeriodKeyDeserializer1fb27ade4fa213e5
    com.fasterxml.jackson.datatype.jsr310.deser.key.YearKeyDeserializerded209cf80f75df6
    com.fasterxml.jackson.datatype.jsr310.deser.key.YearMonthKeyDeserializerbbb3a607d3512540
    com.fasterxml.jackson.datatype.jsr310.deser.key.ZoneIdKeyDeserializer010f3e4e2802434d
    com.fasterxml.jackson.datatype.jsr310.deser.key.ZoneOffsetKeyDeserializerb8b591cfa6cb7be9
    com.fasterxml.jackson.datatype.jsr310.deser.key.ZonedDateTimeKeyDeserializerc3b6fe868b1396e4
    com.fasterxml.jackson.datatype.jsr310.ser.DurationSerializer763bc2b5571c26d7
    com.fasterxml.jackson.datatype.jsr310.ser.InstantSerializerdbba40957e9eaf5e
    com.fasterxml.jackson.datatype.jsr310.ser.InstantSerializerBaseff15c4b9316eba9e
    com.fasterxml.jackson.datatype.jsr310.ser.JSR310FormattedSerializerBasebd4e59d7380ca96c
    com.fasterxml.jackson.datatype.jsr310.ser.JSR310SerializerBase2ad341990e9021dc
    com.fasterxml.jackson.datatype.jsr310.ser.LocalDateSerializer8f84db74e8d2427f
    com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializerc68b8abca15216a4
    com.fasterxml.jackson.datatype.jsr310.ser.LocalTimeSerializer30ef053f4ce38983
    com.fasterxml.jackson.datatype.jsr310.ser.MonthDaySerializer99c8e56bc8812c47
    com.fasterxml.jackson.datatype.jsr310.ser.OffsetDateTimeSerializer9ad79a2ff3bec6bd
    com.fasterxml.jackson.datatype.jsr310.ser.OffsetTimeSerializerff84bad2852f3bf7
    com.fasterxml.jackson.datatype.jsr310.ser.YearMonthSerializerb9428592c48c4dbc
    com.fasterxml.jackson.datatype.jsr310.ser.YearSerializer0f06fc30937c7746
    com.fasterxml.jackson.datatype.jsr310.ser.ZoneIdSerializer04f155c4ebbe4db1
    com.fasterxml.jackson.datatype.jsr310.ser.ZonedDateTimeSerializer6a697e11675f3119
    com.fasterxml.jackson.datatype.jsr310.ser.key.ZonedDateTimeKeySerializer244ed33273b7bb0f
    com.fasterxml.uuid.Generators7892cee32d9a70ab
    com.fasterxml.uuid.NoArgGenerator803afe0b469c791b
    com.fasterxml.uuid.UUIDGenerator93c22ffd50cfbbfb
    com.fasterxml.uuid.UUIDTypeaaf2c173cfef33ad
    com.fasterxml.uuid.impl.RandomBasedGenerator28b4c91b07ac373a
    com.fasterxml.uuid.impl.UUIDUtil28553808d64471a8
    com.github.fge.jackson.JacksonUtils542e837fe036ec04
    com.google.common.base.AbstractIteratord3c5d8c6ad30f701
    com.google.common.base.AbstractIterator.137bd022d95007827
    com.google.common.base.AbstractIterator.State5c56bd34c8972d4a
    com.google.common.base.CharMatcher0bcd1962498d67ba
    com.google.common.base.CharMatcher.FastMatcheraa197b1215c57922
    com.google.common.base.CharMatcher.Is85a5a52367686a88
    com.google.common.base.CharMatcher.NamedFastMatcher1e00ea1226db6ddb
    com.google.common.base.CharMatcher.None94d35101bfaf99d7
    com.google.common.base.Joiner4f5db87c2677ce13
    com.google.common.base.Joiner.MapJoiner3229a03a05a03536
    com.google.common.base.NullnessCasts290a1618a5ccec9b
    com.google.common.base.Preconditionsa5fabd1b8022b288
    com.google.common.base.Splitterd6c6a68453118cca
    com.google.common.base.Splitter.1d8d2c3ca70a09053
    com.google.common.base.Splitter.1.17083f874903fe1d7
    com.google.common.base.Splitter.4e8be8e15525e9287
    com.google.common.base.Splitter.55d1c083eae2ee290
    com.google.common.base.Splitter.SplittingIteratorcb39f1152c0e9779
    com.google.common.collect.AbstractMapBasedMultimapbb35dbe612d96cb3
    com.google.common.collect.AbstractMapBasedMultimap.AsMapa28642220fc8da76
    com.google.common.collect.AbstractMapBasedMultimap.KeySetc7b84e2e4c6b7f6e
    com.google.common.collect.AbstractMapBasedMultimap.KeySet.1761256ae8d43fa0e
    com.google.common.collect.AbstractMapBasedMultimap.WrappedCollection8428927e9fd2b3d8
    com.google.common.collect.AbstractMapBasedMultimap.WrappedCollection.WrappedIterator00b4b307b4cd0822
    com.google.common.collect.AbstractMapBasedMultimap.WrappedSetf079e007370bf434
    com.google.common.collect.AbstractMapEntryac555e776e16654e
    com.google.common.collect.AbstractMultimape7c8eb95d99823ce
    com.google.common.collect.AbstractMultimap.Entries819d2058e5224f7c
    com.google.common.collect.AbstractMultimap.EntrySetafd90f6d00403416
    com.google.common.collect.AbstractSetMultimapc31c838811e5f1ff
    com.google.common.collect.CollectPreconditions5e849a18474582f9
    com.google.common.collect.Hashing244a20b5740c2909
    com.google.common.collect.ImmutableCollection626210369d72ba7f
    com.google.common.collect.ImmutableCollection.Buildere04813b86f792079
    com.google.common.collect.ImmutableEntry2ec5f83324ef9bd2
    com.google.common.collect.ImmutableList7e362db835e33620
    com.google.common.collect.ImmutableMap19d11809da6ab987
    com.google.common.collect.ImmutableMap.Builder46d08377eb6f7dca
    com.google.common.collect.ImmutableMapEntry6a99dbeadae62fa1
    com.google.common.collect.ImmutableMapEntry.NonTerminalImmutableMapEntry0405292afaeafe2b
    com.google.common.collect.Iterablesd033df9aa3cb9b1d
    com.google.common.collect.LinkedHashMultimape7dc5dcb7812b1a3
    com.google.common.collect.LinkedHashMultimap.116e5f9f258d34f77
    com.google.common.collect.LinkedHashMultimap.ValueEntry93ea0ed1e6c91d20
    com.google.common.collect.LinkedHashMultimap.ValueSetd1020e4ea83a592c
    com.google.common.collect.LinkedHashMultimap.ValueSet.1b3f779efe3990689
    com.google.common.collect.LinkedHashMultimapGwtSerializationDependencieseeb635c3f160c423
    com.google.common.collect.LinkedListMultimap72b897f1e84a4ef4
    com.google.common.collect.LinkedListMultimap.1d45505c407d2f1c5
    com.google.common.collect.LinkedListMultimap.ValueForKeyIteratord2dc3edf840b00c8
    com.google.common.collect.Maps3e1a5324ae4b4e0f
    com.google.common.collect.Maps.KeySete7d39d4bf1860912
    com.google.common.collect.Maps.ViewCachingAbstractMapbd35c823212acf47
    com.google.common.collect.Multimaps.Entriese218eab7142cd3e8
    com.google.common.collect.ObjectArrays69a3fcec40250c5f
    com.google.common.collect.Platformc72aa1ba45b86c48
    com.google.common.collect.RegularImmutableList5303b11db13353b6
    com.google.common.collect.RegularImmutableMap15ade442d8d720c2
    com.google.common.collect.Setsd642191bb9c54cba
    com.google.common.collect.Sets.ImprovedAbstractSet3134efe7d0f097ea
    com.google.common.io.ByteStreams54fcce135598266c
    com.google.common.io.ByteStreams.12b43e9d0abf526aa
    com.google.common.math.IntMathe5dfbae9828a34c5
    com.google.common.net.InetAddressesd8df78ebafa6d70c
    com.google.common.primitives.Intsc5ac9c1a28bb42ab
    com.lmax.disruptor.AbstractSequencer8813b5a6910ba7df
    com.lmax.disruptor.BatchEventProcessor59c6c07af6f3ae67
    com.lmax.disruptor.BlockingWaitStrategy6f05d55720b06ea0
    com.lmax.disruptor.LhsPadding0d4ff608ca2da656
    com.lmax.disruptor.MultiProducerSequencer3f67e4dc361111a6
    com.lmax.disruptor.ProcessingSequenceBarrier1140454401f5ca3e
    com.lmax.disruptor.RhsPadding7ce1024da2ccdd82
    com.lmax.disruptor.RingBuffer0a0337302414957e
    com.lmax.disruptor.RingBufferFields6f1d421a5fd68960
    com.lmax.disruptor.RingBufferPada0bf6ef8b95933e6
    com.lmax.disruptor.Sequence2da321797bb2584e
    com.lmax.disruptor.SequenceGroupsb73904f09c24f954
    com.lmax.disruptor.Value36c83c1506d14ba3
    com.lmax.disruptor.dsl.BasicExecutor328252a8c5d4ab80
    com.lmax.disruptor.dsl.ConsumerRepository1e55cf03fba36cc8
    com.lmax.disruptor.dsl.Disruptor5d09b31560234b0b
    com.lmax.disruptor.dsl.EventHandlerGroupfde3e87cf6cb765c
    com.lmax.disruptor.dsl.EventProcessorInfo64376c8260673878
    com.lmax.disruptor.dsl.ExceptionHandlerWrapper84dce4f94f4b6a57
    com.lmax.disruptor.util.Util0f4f9189022d967f
    com.lmax.disruptor.util.Util.1bf41de670adf7f9d
    com.networknt.schema.AbstractJsonValidatora13fde0b331bf8d5
    com.networknt.schema.AbstractKeyword939707d9fc1288c4
    com.networknt.schema.AdditionalPropertiesValidator2db4f36856caf995
    com.networknt.schema.AnyOfValidatorb833199ada37c8e2
    com.networknt.schema.ApplyDefaultsStrategy91d1137bd2a6293d
    com.networknt.schema.BaseJsonValidator6ae238ea79887522
    com.networknt.schema.CollectorContext77c0ba1c314fffa3
    com.networknt.schema.FormatKeywordeede33d36cf87321
    com.networknt.schema.I18nSupport4334bf76de629660
    com.networknt.schema.ItemsValidator7c18b7c0fc058f01
    com.networknt.schema.JsonMetaSchemadb140d8092bccde4
    com.networknt.schema.JsonMetaSchema.Builder5c1c4a0839b26937
    com.networknt.schema.JsonSchema94fdc9ffb138ffb7
    com.networknt.schema.JsonSchemaFactorya0947b033a19df53
    com.networknt.schema.JsonSchemaFactory.1d5d7063719f84d95
    com.networknt.schema.JsonSchemaFactory.Builder3182932367f29ba6
    com.networknt.schema.JsonSchemaRefbd108ea94d5e6c26
    com.networknt.schema.JsonSchemaVersion476acb7d005aa88a
    com.networknt.schema.JsonTypec842e7896a02cf06
    com.networknt.schema.Keyword0d71e7162411e16d
    com.networknt.schema.NonValidationKeyword14b58f37da5f03cf
    com.networknt.schema.NonValidationKeyword.Validator215c6c8c840ac256
    com.networknt.schema.OneOfValidatord0c6ba7496cc0d4a
    com.networknt.schema.OneOfValidator.ShortcutValidator41e5aea3753642ee
    com.networknt.schema.PatternFormat6b6bd0a3c4d572f7
    com.networknt.schema.PatternPropertiesValidator71c6867c79132f77
    com.networknt.schema.PropertiesValidatorf2f552a4461a3419
    com.networknt.schema.RefValidator94131e3064c57300
    com.networknt.schema.RequiredValidator55945503e5e78d63
    com.networknt.schema.SchemaValidatorsConfigfb2704a7b5d0a8bc
    com.networknt.schema.SpecVersion4b61054105facc89
    com.networknt.schema.SpecVersion.VersionFlage1cd7fc1803a27aa
    com.networknt.schema.ThreadInfo2d1fac0115333ad4
    com.networknt.schema.ThreadInfo.174e1e60e0b2ac9e5
    com.networknt.schema.TypeFactorycc8b968f044bc4cf
    com.networknt.schema.TypeValidatorfd15b7d97f8d180a
    com.networknt.schema.ValidationContextef3df0ad72ea2df2
    com.networknt.schema.ValidationMessage9db2c1e115741e61
    com.networknt.schema.ValidationMessage.Builder5618eadd76ecb35b
    com.networknt.schema.ValidatorState150b66eca4446819
    com.networknt.schema.ValidatorTypeCode4f3900a7f8bb5c54
    com.networknt.schema.ValidatorTypeCode.188cf4eff5cd32a8a
    com.networknt.schema.Version7b4c25f876f676b5b
    com.networknt.schema.VersionCodec83b473042100615
    com.networknt.schema.uri.ClasspathURLFactory3c57465c4b806254
    com.networknt.schema.uri.ClasspathURLFetcher2a1f8588b18c98e5
    com.networknt.schema.uri.ClasspathURLStreamHandlere4470067355ccf07
    com.networknt.schema.uri.URISchemeFactorya78932da520081d7
    com.networknt.schema.uri.URISchemeFetcher1d479ed6b368f21d
    com.networknt.schema.uri.URLFactory2bcdb2658740656a
    com.networknt.schema.uri.URLFetcher7a5db306ae180d3f
    com.networknt.schema.utils.JsonNodeUtil68e62aecec19706a
    com.networknt.schema.utils.StringUtils53a7f1f890d64da7
    com.networknt.schema.walk.AbstractWalkListenerRunner34356d24df9a26a5
    com.networknt.schema.walk.DefaultItemWalkListenerRunner88863dbac26c5111
    com.networknt.schema.walk.DefaultKeywordWalkListenerRunner70b93fc00ca94a48
    com.networknt.schema.walk.DefaultPropertyWalkListenerRunnere54c3a26ee53bcec
    com.sun.crypto.provider.AESCipher9379cbb969dccdab
    com.sun.crypto.provider.AESCipher.Generaldd25667a734d67f2
    com.sun.crypto.provider.AESConstantsff56ec558b5f24b2
    com.sun.crypto.provider.AESCrypt8f74d327e3757900
    com.sun.crypto.provider.CipherCorea719a438faf0a701
    com.sun.crypto.provider.CounterModefab22112699963b8
    com.sun.crypto.provider.DHParameters16f962dbaa27c76a
    com.sun.crypto.provider.ElectronicCodeBook55bee70106027943
    com.sun.crypto.provider.FeedbackCipherfe3b493a4f1f3358
    com.sun.crypto.provider.GCTR363ef00c8e464985
    com.sun.crypto.provider.GHASHe2e4c8ed73293545
    com.sun.crypto.provider.GaloisCounterModed5653e4b1d135ece
    com.sun.crypto.provider.HmacCored10e0726d0a7a75b
    com.sun.crypto.provider.HmacCore.HmacSHA256e51d50e772714011
    com.sun.crypto.provider.PKCS5Padding2f576a81eac7847f
    com.sun.crypto.provider.Preconditionsfd7e7c3ada235a9b
    com.sun.crypto.provider.Preconditions.168fa2261aa6363f8
    com.sun.crypto.provider.RangeUtil83f9533ae557ea46
    com.sun.crypto.provider.SunJCE33c998c6ba77d73e
    com.sun.crypto.provider.SymmetricCipher67e05752931ac6b4
    com.sun.crypto.provider.TlsKeyMaterialGenerator9a670d07119f980e
    com.sun.crypto.provider.TlsMasterSecretGeneratorb5bb91b132a7e1ed
    com.sun.crypto.provider.TlsMasterSecretGenerator.TlsMasterSecretKey47a2de5eed80bb69
    com.sun.crypto.provider.TlsPrfGenerator7f3cc07aa4e0ef26
    com.sun.crypto.provider.TlsPrfGenerator.V12854f82e423bf885a
    io.netty.bootstrap.AbstractBootstrap2f2c41621c9aaac8
    io.netty.bootstrap.AbstractBootstrap.1ae2b1ab21a63d046
    io.netty.bootstrap.AbstractBootstrap.2ef379e80ed3bbf28
    io.netty.bootstrap.AbstractBootstrap.PendingRegistrationPromise0c86780079337a50
    io.netty.bootstrap.AbstractBootstrapConfig84004d406c18d897
    io.netty.bootstrap.Bootstrap6687fcdfe7171d11
    io.netty.bootstrap.Bootstrap.17720d890b87b522a
    io.netty.bootstrap.Bootstrap.3a6df97a638ae1b9a
    io.netty.bootstrap.BootstrapConfig58a6b183452f2657
    io.netty.bootstrap.ServerBootstrap233a9e44ceb89cd5
    io.netty.bootstrap.ServerBootstrap.133e7fe9a0ec8ee99
    io.netty.bootstrap.ServerBootstrap.1.1a8f72f92242d1aef
    io.netty.bootstrap.ServerBootstrap.ServerBootstrapAcceptor0636b9e24688dd96
    io.netty.bootstrap.ServerBootstrap.ServerBootstrapAcceptor.17d1a860977a2adfe
    io.netty.bootstrap.ServerBootstrap.ServerBootstrapAcceptor.2b0bfd5c379fb38a0
    io.netty.bootstrap.ServerBootstrapConfigd8456ebfaccad3dc
    io.netty.buffer.AbstractByteBuf792902241e49adcb
    io.netty.buffer.AbstractByteBufAllocator93644c1b35648fd5
    io.netty.buffer.AbstractByteBufAllocator.1c38ccfcff6302b8e
    io.netty.buffer.AbstractDerivedByteBuf2d1c59b8076661ea
    io.netty.buffer.AbstractPooledDerivedByteBuf6821e4b1071ce3ef
    io.netty.buffer.AbstractReferenceCountedByteBuff56534bd419bf7d2
    io.netty.buffer.AbstractReferenceCountedByteBuf.1cabff614dda1fcee
    io.netty.buffer.AbstractUnpooledSlicedByteBuf972c16318905b5ce
    io.netty.buffer.ByteBuf39e5c639fe46944a
    io.netty.buffer.ByteBufAllocatorcd25b806fbbcfdcc
    io.netty.buffer.ByteBufUtil54f07daefbcc9cea
    io.netty.buffer.ByteBufUtil.1db1afe3ae35787d0
    io.netty.buffer.ByteBufUtil.2790fba9f66e129f9
    io.netty.buffer.CompositeByteBuf6316345f5247c3e8
    io.netty.buffer.CompositeByteBuf.1c4d77717d0e6aa87
    io.netty.buffer.CompositeByteBuf.2e651470167eae80c
    io.netty.buffer.CompositeByteBuf.Component860fb5e22fbafc7a
    io.netty.buffer.EmptyByteBufa2da1588463d6a40
    io.netty.buffer.LongLongHashMapd745b0507f253513
    io.netty.buffer.LongPriorityQueuedcdf75cf34426833
    io.netty.buffer.PoolArenad6ab73af6fcf2e7f
    io.netty.buffer.PoolArena.DirectArena2290208ee5890a9c
    io.netty.buffer.PoolArena.HeapArena66a18a825b5bd0a5
    io.netty.buffer.PoolArena.SizeClassd8f74df4208b61d6
    io.netty.buffer.PoolChunk83025f01f3c56bde
    io.netty.buffer.PoolChunkList71c7f8577d3bd9be
    io.netty.buffer.PoolSubpagee564c3ac000ba9c9
    io.netty.buffer.PoolThreadCache011ffe1f281e6304
    io.netty.buffer.PoolThreadCache.1bfe620fc5c318b16
    io.netty.buffer.PoolThreadCache.MemoryRegionCacheeb807d0230960ea2
    io.netty.buffer.PoolThreadCache.MemoryRegionCache.1c87bb59131b5fa23
    io.netty.buffer.PoolThreadCache.MemoryRegionCache.Entry935705809b549aca
    io.netty.buffer.PoolThreadCache.NormalMemoryRegionCache21f7bebf843ab4fc
    io.netty.buffer.PoolThreadCache.SubPageMemoryRegionCacheeebb0540722636b6
    io.netty.buffer.PooledByteBuf46753652aca74d8b
    io.netty.buffer.PooledByteBufAllocatordd510c2ae9884c24
    io.netty.buffer.PooledByteBufAllocator.183108e6d6fa11a7a
    io.netty.buffer.PooledByteBufAllocator.PoolThreadLocalCacheb59e28fb849505ad
    io.netty.buffer.PooledByteBufAllocatorMetrica772634945cf0493
    io.netty.buffer.PooledSlicedByteBuf526373d1e4134ece
    io.netty.buffer.PooledSlicedByteBuf.19ea9661d432b9c6b
    io.netty.buffer.PooledUnsafeDirectByteBuf4a8d3146c73e7261
    io.netty.buffer.PooledUnsafeDirectByteBuf.194dda174db8d473a
    io.netty.buffer.ReadOnlyByteBufc2367286c8dba18c
    io.netty.buffer.SizeClasses3660b29a1a09aded
    io.netty.buffer.Unpooled9171cc8db1dcdbfc
    io.netty.buffer.UnpooledByteBufAllocatorcfaafe17bf2b126e
    io.netty.buffer.UnpooledByteBufAllocator.InstrumentedUnpooledUnsafeNoCleanerDirectByteBuf117ca9e8eeedc99e
    io.netty.buffer.UnpooledByteBufAllocator.UnpooledByteBufAllocatorMetric9a8ab03c427bd7cb
    io.netty.buffer.UnpooledDirectByteBuf3ff98764337051b2
    io.netty.buffer.UnpooledHeapByteBufef4502dc57be6d74
    io.netty.buffer.UnpooledUnsafeDirectByteBuf76b701ea9ac4eea4
    io.netty.buffer.UnpooledUnsafeNoCleanerDirectByteBufed13853db8ff1ab0
    io.netty.buffer.UnreleasableByteBuf132f52799b004e35
    io.netty.buffer.UnsafeByteBufUtil8939fbca45c0e913
    io.netty.buffer.WrappedByteBuf77ae45f82d40515f
    io.netty.channel.AbstractChannel46718de1c2b01b1c
    io.netty.channel.AbstractChannel.AbstractUnsafeb7c86f3370f55155
    io.netty.channel.AbstractChannel.AbstractUnsafe.162138d2f9f293b9c
    io.netty.channel.AbstractChannel.AbstractUnsafe.238986a01cf0b9eab
    io.netty.channel.AbstractChannel.AbstractUnsafe.7e97f00e46d024054
    io.netty.channel.AbstractChannel.CloseFuture3a4225c7643ba916
    io.netty.channel.AbstractChannelHandlerContext5ffbf1d01642a335
    io.netty.channel.AdaptiveRecvByteBufAllocator20945ea88efa2c18
    io.netty.channel.AdaptiveRecvByteBufAllocator.HandleImpl7145e918ee2b4203
    io.netty.channel.ChannelDuplexHandlerdb122ea5c380173d
    io.netty.channel.ChannelFutureListenere42310b417975c2a
    io.netty.channel.ChannelFutureListener.1af13e81c7f15a559
    io.netty.channel.ChannelFutureListener.21734a100e2ee4052
    io.netty.channel.ChannelFutureListener.369cf66e51ae7f39f
    io.netty.channel.ChannelHandlerAdapterd6f538a7fe1ffab5
    io.netty.channel.ChannelHandlerMask3531b1f98f2e8856
    io.netty.channel.ChannelHandlerMask.1dc7f9e42ea5cbcdf
    io.netty.channel.ChannelHandlerMask.2b6eba67a61fa9771
    io.netty.channel.ChannelInboundHandlerAdapter114d86e6b82a5bf1
    io.netty.channel.ChannelInitializerdf87e6a523083f6c
    io.netty.channel.ChannelMetadata4b0b88a30da71d85
    io.netty.channel.ChannelOption74508d2110a6f289
    io.netty.channel.ChannelOption.161e0301d8b444b25
    io.netty.channel.ChannelOutboundBuffer2db3c02eb502857d
    io.netty.channel.ChannelOutboundBuffer.1dacd0c21c99045cc
    io.netty.channel.ChannelOutboundBuffer.Entry2374d211584cbd90
    io.netty.channel.ChannelOutboundBuffer.Entry.12a74ec2f36b1c291
    io.netty.channel.ChannelOutboundHandlerAdapter77b9c13092ed7d9c
    io.netty.channel.CombinedChannelDuplexHandler4dd6ef0e9ecf2964
    io.netty.channel.CombinedChannelDuplexHandler.1e4ae3fa916407cf0
    io.netty.channel.CombinedChannelDuplexHandler.DelegatingChannelHandlerContexta4ef4de34538afd8
    io.netty.channel.CompleteChannelFuturee73469934e939340
    io.netty.channel.DefaultChannelConfig689511fd03214640
    io.netty.channel.DefaultChannelHandlerContext62d4fa2dd7c90b51
    io.netty.channel.DefaultChannelId49792d645b043a12
    io.netty.channel.DefaultChannelPipeline472aa5e69828de21
    io.netty.channel.DefaultChannelPipeline.1e87d77c58ff5a048
    io.netty.channel.DefaultChannelPipeline.HeadContextf87186d112def2c2
    io.netty.channel.DefaultChannelPipeline.PendingHandlerAddedTask887dd00d4d1c6544
    io.netty.channel.DefaultChannelPipeline.PendingHandlerCallback7d0e38f97f15f776
    io.netty.channel.DefaultChannelPipeline.TailContext3b2ba5b993bb7e86
    io.netty.channel.DefaultChannelPromise9d21dfb766a7dbce
    io.netty.channel.DefaultMaxMessagesRecvByteBufAllocator08052d872e0892b3
    io.netty.channel.DefaultMaxMessagesRecvByteBufAllocator.MaxMessageHandleb3669a0412f8416d
    io.netty.channel.DefaultMaxMessagesRecvByteBufAllocator.MaxMessageHandle.151ebc51ef38d0350
    io.netty.channel.DefaultMessageSizeEstimatorba919281ecbbef60
    io.netty.channel.DefaultMessageSizeEstimator.HandleImpl35c7052643247dde
    io.netty.channel.DefaultSelectStrategy650197c58ee9bd18
    io.netty.channel.DefaultSelectStrategyFactory25b2375f2f028a9d
    io.netty.channel.MultithreadEventLoopGroup8dc03731fd8990e5
    io.netty.channel.ReflectiveChannelFactoryd26638b04da2c083
    io.netty.channel.ServerChannelRecvByteBufAllocator3a8d9a0f9218e67d
    io.netty.channel.ServerChannelRecvByteBufAllocator.12e49a1cdf8bd1d52
    io.netty.channel.SimpleChannelInboundHandler966f4d0e5ebeea28
    io.netty.channel.SingleThreadEventLoopfa83b89604c40ff5
    io.netty.channel.StacklessClosedChannelExceptionef089a1f956ce5fa
    io.netty.channel.SucceededChannelFuture3fe22e0a1526c697
    io.netty.channel.VoidChannelPromise1914cb01e4f07535
    io.netty.channel.VoidChannelPromise.1c33f2a46fc3cf17e
    io.netty.channel.WriteBufferWaterMarke01698a536feb134
    io.netty.channel.nio.AbstractNioByteChannel74ad926e404a2f44
    io.netty.channel.nio.AbstractNioByteChannel.146227de3dc07c967
    io.netty.channel.nio.AbstractNioByteChannel.NioByteUnsafe0407046202a5cab6
    io.netty.channel.nio.AbstractNioChannele70da51213409fd4
    io.netty.channel.nio.AbstractNioChannel.1ca67b5744827c5a2
    io.netty.channel.nio.AbstractNioChannel.AbstractNioUnsafed02f2473b022ef3f
    io.netty.channel.nio.AbstractNioChannel.AbstractNioUnsafe.138b794cff95c84c9
    io.netty.channel.nio.AbstractNioChannel.AbstractNioUnsafe.2b3200ffd18207ff3
    io.netty.channel.nio.AbstractNioMessageChannelf5a95d3866697133
    io.netty.channel.nio.AbstractNioMessageChannel.NioMessageUnsafef4e784877c2afc09
    io.netty.channel.nio.NioEventLoope083507062b32cd7
    io.netty.channel.nio.NioEventLoop.1a720122dbc711263
    io.netty.channel.nio.NioEventLoop.39a44b36c75f62129
    io.netty.channel.nio.NioEventLoop.493e646e9f2d1b4ee
    io.netty.channel.nio.NioEventLoop.SelectorTuple68f1ec553b861d37
    io.netty.channel.nio.NioEventLoopGroupdc5946b555f40a62
    io.netty.channel.nio.SelectedSelectionKeySet99ed76c8a806663c
    io.netty.channel.nio.SelectedSelectionKeySetSelector3006d0f6b4233008
    io.netty.channel.socket.DefaultServerSocketChannelConfig53392b7269a71234
    io.netty.channel.socket.DefaultSocketChannelConfigf83f5cf81fcd0749
    io.netty.channel.socket.nio.NioServerSocketChannel1252152f1f1acbd0
    io.netty.channel.socket.nio.NioServerSocketChannel.NioServerSocketChannelConfig4cb3b8b9221f0b22
    io.netty.channel.socket.nio.NioSocketChannel35910d1ebd1e5332
    io.netty.channel.socket.nio.NioSocketChannel.NioSocketChannelConfigbdd89da4e4b51c5a
    io.netty.channel.socket.nio.NioSocketChannel.NioSocketChannelUnsafec10c20f0789f9c93
    io.netty.channel.socket.nio.SelectorProviderUtila89a46e092f30591
    io.netty.handler.codec.ByteToMessageDecoderc61c31dc0892f4d6
    io.netty.handler.codec.ByteToMessageDecoder.1a74a2ebb4f51958c
    io.netty.handler.codec.ByteToMessageDecoder.2cf79f5ab41e49b9a
    io.netty.handler.codec.CharSequenceValueConverter30e29d64f19b87d2
    io.netty.handler.codec.CodecOutputList1b3fe63944f6c889
    io.netty.handler.codec.CodecOutputList.1d8eeed8dd3956110
    io.netty.handler.codec.CodecOutputList.2c0775c66446ed45d
    io.netty.handler.codec.CodecOutputList.CodecOutputListsca5205727f18ad6a
    io.netty.handler.codec.DecoderResultfb622c5c86d24292
    io.netty.handler.codec.DefaultHeaders17fba53695bd57ab
    io.netty.handler.codec.DefaultHeaders.HeaderEntry523b7e0c3ca60c81
    io.netty.handler.codec.DefaultHeaders.HeaderIterator54b91c97a2d2da93
    io.netty.handler.codec.DefaultHeaders.ValueIteratorb05ffd8a8cc051de
    io.netty.handler.codec.DefaultHeadersImplf5153900ad8d03c5
    io.netty.handler.codec.HeadersUtils0568446f1aa6189c
    io.netty.handler.codec.HeadersUtils.12e47646f3ff655b6
    io.netty.handler.codec.HeadersUtils.CharSequenceDelegatingStringSeta41af65a875dc5b7
    io.netty.handler.codec.HeadersUtils.DelegatingStringSetf1a136b86c04cac0
    io.netty.handler.codec.HeadersUtils.StringIterator45bc2819986fd30d
    io.netty.handler.codec.MessageAggregatorc5e9828ffcc17fd1
    io.netty.handler.codec.MessageToMessageDecoder06a9805f7b3b9de2
    io.netty.handler.codec.MessageToMessageEncoderced072eb34d6c51a
    io.netty.handler.codec.ReplayingDecoderb397adc83bd46cfc
    io.netty.handler.codec.ReplayingDecoderByteBufbd644e06ddef7b17
    io.netty.handler.codec.compression.Brotli87813b062533e83a
    io.netty.handler.codec.http.DefaultFullHttpRequest1160dc57f2b3055c
    io.netty.handler.codec.http.DefaultFullHttpResponseb8599ee118dddfbf
    io.netty.handler.codec.http.DefaultHttpContent8740878cb58efb34
    io.netty.handler.codec.http.DefaultHttpHeaderscfc4d6c22c9751fe
    io.netty.handler.codec.http.DefaultHttpHeaders.12b90e94da41a67a5
    io.netty.handler.codec.http.DefaultHttpHeaders.HeaderValueConverter6dce106039152507
    io.netty.handler.codec.http.DefaultHttpHeaders.HeaderValueValidator45f20324e9e5da6d
    io.netty.handler.codec.http.DefaultHttpMessagea9805fc38b132205
    io.netty.handler.codec.http.DefaultHttpObjectd8efd8b1caab94d1
    io.netty.handler.codec.http.DefaultHttpRequest7ec510e0dbc8352a
    io.netty.handler.codec.http.DefaultHttpResponse6e38c650e40ad746
    io.netty.handler.codec.http.DefaultLastHttpContenta46bc1ea6bef852e
    io.netty.handler.codec.http.DefaultLastHttpContent.TrailingHttpHeadersa11b68fc9a321a8a
    io.netty.handler.codec.http.DefaultLastHttpContent.TrailingHttpHeaders.15cfd12c93073a46f
    io.netty.handler.codec.http.EmptyHttpHeadersa3d76000919d4186
    io.netty.handler.codec.http.EmptyHttpHeaders.InstanceInitializeradfd8b235d7de013
    io.netty.handler.codec.http.HttpClientCodec437efaceb9e2f831
    io.netty.handler.codec.http.HttpClientCodec.Decoder0bfe4bcd3f4daa3c
    io.netty.handler.codec.http.HttpClientCodec.Encoderd8475b96cbf1b845
    io.netty.handler.codec.http.HttpConstants51576064166c3791
    io.netty.handler.codec.http.HttpContentDecoder933d1ae918d25014
    io.netty.handler.codec.http.HttpContentDecompressor5002bba2eec3cdab
    io.netty.handler.codec.http.HttpHeaderNamescd7ae0d53c82a133
    io.netty.handler.codec.http.HttpHeaderValidationUtilf4ee1d13843ae8d5
    io.netty.handler.codec.http.HttpHeaderValidationUtil.BitSet128d0a5145fb53fb932
    io.netty.handler.codec.http.HttpHeaderValuesd3e28e5a0dbf3740
    io.netty.handler.codec.http.HttpHeaderse2317aa29521907f
    io.netty.handler.codec.http.HttpHeadersEncoder75cbc40e9e819f71
    io.netty.handler.codec.http.HttpMessageDecoderResult513aedd5a0f6d0be
    io.netty.handler.codec.http.HttpMethod17e5d7cc602cde84
    io.netty.handler.codec.http.HttpMethod.EnumNameMap9eb5dc907005042e
    io.netty.handler.codec.http.HttpMethod.EnumNameMap.Nodec350048dc57a9d2d
    io.netty.handler.codec.http.HttpObjectAggregator07c29013a1e636dd
    io.netty.handler.codec.http.HttpObjectAggregator.AggregatedFullHttpMessage4c9057e2586aba62
    io.netty.handler.codec.http.HttpObjectAggregator.AggregatedFullHttpRequest4a0f729374ab9dd9
    io.netty.handler.codec.http.HttpObjectAggregator.AggregatedFullHttpResponsece7aff93c4db33ad
    io.netty.handler.codec.http.HttpObjectDecoder766aaa4f78cc76f1
    io.netty.handler.codec.http.HttpObjectDecoder.1d0b529fa1bb6000e
    io.netty.handler.codec.http.HttpObjectDecoder.HeaderParser3f2cce231fd69100
    io.netty.handler.codec.http.HttpObjectDecoder.LineParserd0ad037e4480bca3
    io.netty.handler.codec.http.HttpObjectDecoder.Statecbe69b604f9b45b2
    io.netty.handler.codec.http.HttpObjectEncoder01b0cc47e44d4828
    io.netty.handler.codec.http.HttpRequestDecoderb34e14e5afd81f65
    io.netty.handler.codec.http.HttpRequestEncoderd82ec09d8aa83c6e
    io.netty.handler.codec.http.HttpResponseDecoderb38d1550caeab926
    io.netty.handler.codec.http.HttpResponseEncoderbb5a63543dbe8a7a
    io.netty.handler.codec.http.HttpResponseStatus33c3d192662574da
    io.netty.handler.codec.http.HttpServerCodec96dddceddf2b1c5f
    io.netty.handler.codec.http.HttpServerCodec.HttpServerRequestDecodereeca6da2924eceab
    io.netty.handler.codec.http.HttpServerCodec.HttpServerResponseEncodera1e7c9f92e519814
    io.netty.handler.codec.http.HttpStatusClass0597c48050b77a44
    io.netty.handler.codec.http.HttpStatusClass.1fd5d44a7ce4afe83
    io.netty.handler.codec.http.HttpUtilad6032d746224158
    io.netty.handler.codec.http.HttpVersioncff1f37cb62096f7
    io.netty.handler.codec.http.LastHttpContent5d9dd79dae786c9a
    io.netty.handler.codec.http.LastHttpContent.1dd56653639ec1a96
    io.netty.handler.codec.http.QueryStringEncoderb2b370ddf1bf620a
    io.netty.handler.codec.socksx.SocksVersion44f9725fc0d1afcc
    io.netty.handler.ssl.SslClientHelloHandlere3710e52193897f7
    io.netty.handler.ssl.SslHandler7d8d9df130f9bbe4
    io.netty.handler.ssl.SslUtils6e038c1f3a22e42b
    io.netty.resolver.AbstractAddressResolverbf8b75b1a931eade
    io.netty.resolver.AddressResolverGroup209426e30f3634d0
    io.netty.resolver.AddressResolverGroup.1a7a3348eba49ae04
    io.netty.resolver.DefaultAddressResolverGroup5eb0be8747020d8d
    io.netty.resolver.DefaultNameResolver9aa5a996f8725c89
    io.netty.resolver.InetNameResolver35d630a37037fd8a
    io.netty.resolver.InetSocketAddressResolvere7944bde43bba44b
    io.netty.resolver.SimpleNameResolver8b3ef961d6522d78
    io.netty.util.AbstractConstant0f040c9c0d06c7a3
    io.netty.util.AsciiStringbc62eee3e7e0ed23
    io.netty.util.AsciiString.1e8c5f226ca382bf7
    io.netty.util.AsciiString.2e12492b93659c11d
    io.netty.util.AttributeKey75cb5b176dc487c1
    io.netty.util.AttributeKey.121d1e71eb5b0c66a
    io.netty.util.CharsetUtil5bf18c6c056e4114
    io.netty.util.ConstantPoolf136ff447d5c0a93
    io.netty.util.DefaultAttributeMap3739e6e368244b19
    io.netty.util.DefaultAttributeMap.DefaultAttribute10f98d7687fd3f86
    io.netty.util.NetUtil56f906c8857429fb
    io.netty.util.NetUtil.SoMaxConnActionb46c0bde65cbe24a
    io.netty.util.NetUtilInitializations5b9cbf4ee6f85305
    io.netty.util.NetUtilInitializations.NetworkIfaceAndInetAddress747ca7df2a229a8a
    io.netty.util.NettyRuntime6ee4ccdf736ab16b
    io.netty.util.NettyRuntime.AvailableProcessorsHoldera5044c48058fd10b
    io.netty.util.Recyclere5dd55a9f828ad2b
    io.netty.util.Recycler.1bad37718f4ad4a99
    io.netty.util.Recycler.29c3f7d170d4ca375
    io.netty.util.Recycler.DefaultHandle8072a50038f7fd44
    io.netty.util.Recycler.LocalPool8acbf8469eb16acc
    io.netty.util.ReferenceCountUtild2137b6ff857e28f
    io.netty.util.ResourceLeakDetector965805971474376e
    io.netty.util.ResourceLeakDetector.Level134f1b85810ca4fd
    io.netty.util.ResourceLeakDetectorFactoryaf6057effdab7db2
    io.netty.util.ResourceLeakDetectorFactory.DefaultResourceLeakDetectorFactory4065620e1e913cfd
    io.netty.util.Signal0808d16a4806a1ef
    io.netty.util.Signal.1fc4a78cc4050ddbc
    io.netty.util.Signal.SignalConstante5270e43261189b2
    io.netty.util.concurrent.AbstractEventExecutord21a17fca3b2309c
    io.netty.util.concurrent.AbstractEventExecutorGroupfcf34f15b38da032
    io.netty.util.concurrent.AbstractFuture4d11cef49db6b428
    io.netty.util.concurrent.AbstractScheduledEventExecutor3b99e87df515139f
    io.netty.util.concurrent.AbstractScheduledEventExecutor.10eeeae0e8cdb379a
    io.netty.util.concurrent.AbstractScheduledEventExecutor.297511f97537fa3dd
    io.netty.util.concurrent.CompleteFuture866ca7b079aba980
    io.netty.util.concurrent.DefaultEventExecutorChooserFactory2365820ab66a0a8a
    io.netty.util.concurrent.DefaultEventExecutorChooserFactory.GenericEventExecutorChooser87a7c8bf4b30ac14
    io.netty.util.concurrent.DefaultFutureListeners777239207685e818
    io.netty.util.concurrent.DefaultPromise456c19febf076367
    io.netty.util.concurrent.DefaultPromise.CauseHolderc15765fc540308e7
    io.netty.util.concurrent.DefaultPromise.StacklessCancellationException5f7bd350e1dbc4db
    io.netty.util.concurrent.DefaultThreadFactory485fd3a9d0607b1f
    io.netty.util.concurrent.FailedFuture8cd78a9aeba94a88
    io.netty.util.concurrent.FastThreadLocalff8e34cde162f95d
    io.netty.util.concurrent.GlobalEventExecutor7951cae7c865d500
    io.netty.util.concurrent.GlobalEventExecutor.1a3f04c8033c57168
    io.netty.util.concurrent.GlobalEventExecutor.TaskRunnerc079e90c13e6f5a2
    io.netty.util.concurrent.MultithreadEventExecutorGroup95e497343ba75e14
    io.netty.util.concurrent.MultithreadEventExecutorGroup.1e5769ffce7186358
    io.netty.util.concurrent.PromiseCombiner29e1cddebcba4cfc
    io.netty.util.concurrent.PromiseCombiner.14f50209b38e477ff
    io.netty.util.concurrent.PromiseTaskb46f24cda71f5cd9
    io.netty.util.concurrent.PromiseTask.SentinelRunnablec3a8e0841a96674a
    io.netty.util.concurrent.RejectedExecutionHandlersea7b38fb955e9377
    io.netty.util.concurrent.RejectedExecutionHandlers.1d37cef6ff4b98cc4
    io.netty.util.concurrent.ScheduledFutureTaskef15e36974d943fa
    io.netty.util.concurrent.SingleThreadEventExecutorc5457c9c6852f15f
    io.netty.util.concurrent.SingleThreadEventExecutor.1d44585e3079c7f81
    io.netty.util.concurrent.SingleThreadEventExecutor.444c00c8ea0c22ede
    io.netty.util.concurrent.ThreadPerTaskExecutor822fd4c2b0b491ce
    io.netty.util.internal.AppendableCharSequencedbd2be749bee714d
    io.netty.util.internal.CleanerJava6e0db0f748fd5a92a
    io.netty.util.internal.CleanerJava6.11ce6ce74e0615d1e
    io.netty.util.internal.DefaultPriorityQueuecb9d734ef606f958
    io.netty.util.internal.EmptyArrays8362b9df9edfac52
    io.netty.util.internal.InternalThreadLocalMap99d17351d3d8594e
    io.netty.util.internal.LongAdderCounter0964f777cab324b0
    io.netty.util.internal.MacAddressUtil6ad425e22fa65000
    io.netty.util.internal.MathUtilc1c2a6ac272fbead
    io.netty.util.internal.ObjectPool51d604a8142fda10
    io.netty.util.internal.ObjectPool.RecyclerObjectPool0d54768236ae88dc
    io.netty.util.internal.ObjectPool.RecyclerObjectPool.1b5bd5b4ec82b7d3d
    io.netty.util.internal.ObjectUtilf761d0f0aaff1a5b
    io.netty.util.internal.PlatformDependent06e808f0efd2a309
    io.netty.util.internal.PlatformDependent.16de9e3bec6d77e49
    io.netty.util.internal.PlatformDependent.2bec19bd2b2a422a6
    io.netty.util.internal.PlatformDependent.465e7a0a6d8af0738
    io.netty.util.internal.PlatformDependent.Mpsc6ab651e383219a11
    io.netty.util.internal.PlatformDependent.Mpsc.16b6d1c2e23f93b52
    io.netty.util.internal.PlatformDependent0192d501cb5e4c9da
    io.netty.util.internal.PlatformDependent0.1f03ff3a49bff1101
    io.netty.util.internal.PlatformDependent0.2e854371902d30ab4
    io.netty.util.internal.PlatformDependent0.30df1a05674ffc3c4
    io.netty.util.internal.PlatformDependent0.4df80102c32cdcaf6
    io.netty.util.internal.PlatformDependent0.53cd7e2a765c36019
    io.netty.util.internal.PlatformDependent0.6684e777e0bee3ca8
    io.netty.util.internal.PromiseNotificationUtile77877912f03c005
    io.netty.util.internal.ReferenceCountUpdater3bcc675cff0c4b1f
    io.netty.util.internal.ReflectionUtilc494a7a84e352d17
    io.netty.util.internal.SocketUtilse6dd5c887029a8b5
    io.netty.util.internal.SocketUtils.1126daf5c153d89924
    io.netty.util.internal.SocketUtils.13ce2438d3cdeecffb
    io.netty.util.internal.SocketUtils.3b77cbcef97dd6608
    io.netty.util.internal.SocketUtils.5ced6bf29b08f87c4
    io.netty.util.internal.SocketUtils.76e499c8366cb013b
    io.netty.util.internal.StringUtilf1f0f8990e8a6b1e
    io.netty.util.internal.SystemPropertyUtileda8201dbf84e815
    io.netty.util.internal.ThreadExecutorMap7f9de27a89853bcf
    io.netty.util.internal.ThreadExecutorMap.18efd1fa85c7f1e80
    io.netty.util.internal.ThreadExecutorMap.2020dc7b291e1f098
    io.netty.util.internal.ThreadExecutorMap.3ff383e4d0cb0366a
    io.netty.util.internal.ThrowableUtil636e73d13bbb7e43
    io.netty.util.internal.TypeParameterMatcher2761b29eded4b5b7
    io.netty.util.internal.TypeParameterMatcher.122e9506098763b31
    io.netty.util.internal.TypeParameterMatcher.ReflectiveMatcherb27da292bdca2c43
    io.netty.util.internal.UnpaddedInternalThreadLocalMap65bc9e52de9dae47
    io.netty.util.internal.logging.AbstractInternalLogger4ed6b1fea48925d4
    io.netty.util.internal.logging.InternalLoggerFactoryfc75e15d1bb35362
    io.netty.util.internal.logging.LocationAwareSlf4JLogger06cccddcab82d498
    io.netty.util.internal.logging.Slf4JLoggerFactory1042cae2dcaea037
    io.netty.util.internal.logging.Slf4JLoggerFactory.NopInstanceHolder2dfbd24a979764a5
    io.netty.util.internal.shaded.org.jctools.queues.BaseMpscLinkedArrayQueuecfe29ded904960de
    io.netty.util.internal.shaded.org.jctools.queues.BaseMpscLinkedArrayQueueColdProducerFields391b49d6fe565f2e
    io.netty.util.internal.shaded.org.jctools.queues.BaseMpscLinkedArrayQueueConsumerFields243e4a8844ced8b3
    io.netty.util.internal.shaded.org.jctools.queues.BaseMpscLinkedArrayQueuePad15ee6eff193de3c5f
    io.netty.util.internal.shaded.org.jctools.queues.BaseMpscLinkedArrayQueuePad20452c3f6570017be
    io.netty.util.internal.shaded.org.jctools.queues.BaseMpscLinkedArrayQueuePad3e1c396ab6c6c7e50
    io.netty.util.internal.shaded.org.jctools.queues.BaseMpscLinkedArrayQueueProducerFields798abbb5fac0e8b8
    io.netty.util.internal.shaded.org.jctools.queues.ConcurrentCircularArrayQueuecb4f6dc11cf862b0
    io.netty.util.internal.shaded.org.jctools.queues.ConcurrentCircularArrayQueueL0Pad75fc6b0e3e93332b
    io.netty.util.internal.shaded.org.jctools.queues.LinkedArrayQueueUtil9e3b1278087b06dc
    io.netty.util.internal.shaded.org.jctools.queues.MpscArrayQueue9e084c7843133f1e
    io.netty.util.internal.shaded.org.jctools.queues.MpscArrayQueueConsumerIndexField956d206d3f524803
    io.netty.util.internal.shaded.org.jctools.queues.MpscArrayQueueL1Padbfc65edee839f410
    io.netty.util.internal.shaded.org.jctools.queues.MpscArrayQueueL2Pad1d67c3b01528b0d5
    io.netty.util.internal.shaded.org.jctools.queues.MpscArrayQueueL3Pad10f00f74496f6db5
    io.netty.util.internal.shaded.org.jctools.queues.MpscArrayQueueMidPadd6a88a325ae5e9f7
    io.netty.util.internal.shaded.org.jctools.queues.MpscArrayQueueProducerIndexFieldfb93d6d5ffac3a22
    io.netty.util.internal.shaded.org.jctools.queues.MpscArrayQueueProducerLimitField9e136728abfec8f6
    io.netty.util.internal.shaded.org.jctools.queues.MpscChunkedArrayQueue36966aaf2919e16d
    io.netty.util.internal.shaded.org.jctools.queues.MpscChunkedArrayQueueColdProducerFieldsab0aff0df32dd3d5
    io.netty.util.internal.shaded.org.jctools.queues.MpscUnboundedArrayQueue841eff3a7cd15cdf
    io.netty.util.internal.shaded.org.jctools.util.Pow22dad56df2521f33e
    io.netty.util.internal.shaded.org.jctools.util.RangeUtila8c11708a9fc5920
    io.netty.util.internal.shaded.org.jctools.util.UnsafeAccesscfc08f8bd7e087e4
    io.netty.util.internal.shaded.org.jctools.util.UnsafeRefArrayAccess19aa8b646a72c333
    io.prometheus.client.Collector7a94bbad326104d6
    io.prometheus.client.Collector.164afb01d6e720e1c
    io.prometheus.client.Collector.MetricFamilySamples2729e6ccc2ef8013
    io.prometheus.client.Collector.Typefe41ff924873938a
    io.prometheus.client.CollectorRegistrye87d94697058fa67
    io.prometheus.client.DoubleAddera0de78d1da7b8e2b
    io.prometheus.client.Gauge8ad89e5f1b11e673
    io.prometheus.client.Gauge.Builder90fae75ea0aa143d
    io.prometheus.client.Gauge.Child389df9c0c1b2db24
    io.prometheus.client.Gauge.TimeProvider66130108509b75a4
    io.prometheus.client.GaugeMetricFamily80bb78d80ae44c7d
    io.prometheus.client.SimpleCollector7593901fc4a86362
    io.prometheus.client.SimpleCollector.Buildera69f943e8b991b20
    io.prometheus.client.Striped64942a58ff0b1f46f2
    javax.json.EmptyArrayf63598214cdf4813
    javax.json.EmptyObjectaae67fb779fa6a51
    javax.json.Json6ffaf75211f5d863
    javax.json.JsonValue089ae0dae533de78
    javax.json.JsonValue.ValueType8eff2e7ad0d72a52
    javax.json.JsonValueImpl6019370326b8ea85
    javax.json.spi.JsonProvider888f378958cffe6e
    javax.json.stream.JsonParser.Event00828f9746dd1366
    mockit.Invocationa96336e1f386171f
    mockit.MockUpe8171f437ed496ae
    mockit.asm.AnnotatedReadercd282e0a5a53baea
    mockit.asm.BaseWriter582f5e60cf7a7aa4
    mockit.asm.SignatureWriterdf63ed411efbf4b6
    mockit.asm.annotations.AnnotationReader1a8efb95d77d1cc4
    mockit.asm.classes.ClassInfo373729acd80f0ac2
    mockit.asm.classes.ClassReader35b19ee242b52e68
    mockit.asm.classes.ClassVisitorecc8c148efb1fb05
    mockit.asm.classes.ClassWriter138f6d9fdc880f33
    mockit.asm.classes.ConstantPoolCopyinge69830abde6594e3
    mockit.asm.classes.InnerClassesWriter161eb63681ff89cf
    mockit.asm.classes.SourceFileWritere8fc300748dc0805
    mockit.asm.classes.WrappingClassVisitor05ea9f6f99307be6
    mockit.asm.constantPool.AttributeWriter14f301dde0efc458
    mockit.asm.constantPool.ClassMemberItemaa126e5329780a07
    mockit.asm.constantPool.ConstantPoolGeneration0fa17a48409c3309
    mockit.asm.constantPool.DoubleItem34f414546b36c4df
    mockit.asm.constantPool.DynamicItem3cea8c55017846c0
    mockit.asm.constantPool.FloatItembd61b107266c3b95
    mockit.asm.constantPool.IntItemd97e2f1dc717a13e
    mockit.asm.constantPool.IntValueItem98e99f11b2caca0e
    mockit.asm.constantPool.Itemd068fa4ff3fcee61
    mockit.asm.constantPool.LongItem6b22c746ea1433c1
    mockit.asm.constantPool.LongValueItem2ccc0f1c20cad69e
    mockit.asm.constantPool.MergedTypeTableItem0d0b1da6270fd88c
    mockit.asm.constantPool.MethodHandleItem39bcee524a8a7b98
    mockit.asm.constantPool.NameAndTypeItemb7bb836a0ec0d51d
    mockit.asm.constantPool.NormalTypeTableItem0f252ab8f9880312
    mockit.asm.constantPool.StringItem88ca5a93ae8a30e1
    mockit.asm.constantPool.TypeOrMemberItemdab75af23a47e2b1
    mockit.asm.constantPool.TypeTableItemd8a8ef64ff3ac452
    mockit.asm.constantPool.UninitializedTypeTableItem370461ef51a65392
    mockit.asm.controlFlow.CFGAnalysisa06e124c809928c9
    mockit.asm.controlFlow.Edge5d83111f9538c66f
    mockit.asm.controlFlow.Frame386d35773c19369a
    mockit.asm.controlFlow.Label5bca527bd719557c
    mockit.asm.controlFlow.StackMapTableWriter7bcdf022caa20775
    mockit.asm.exceptionHandling.ExceptionHandling286f458f00be3947
    mockit.asm.fields.FieldReader053ae610f8947b76
    mockit.asm.fields.FieldVisitor6c321d4980a2d7f3
    mockit.asm.jvmConstants.Access642ded812da66040
    mockit.asm.jvmConstants.JVMInstructiondeeb476cf4f7665b
    mockit.asm.metadata.ClassMetadataReader86fe7615054981b5
    mockit.asm.metadata.ClassMetadataReader.AnnotationInfobc09c40a0f38e185
    mockit.asm.metadata.ClassMetadataReader.Attribute6d901176eb06252c
    mockit.asm.metadata.ClassMetadataReader.ConstantPoolTag83ba5ffd57f73b11
    mockit.asm.metadata.ClassMetadataReader.MemberInfodd16bea0c59df08f
    mockit.asm.metadata.ClassMetadataReader.MethodInfo3e1c9829877de254
    mockit.asm.metadata.ObjectWithAttributese089abe59f8ade12
    mockit.asm.methods.ExceptionsWritere5e41e85406ed2b8
    mockit.asm.methods.LineNumberTableWriter7fa755996e63e0b5
    mockit.asm.methods.LocalVariableTableWriter0ff2250f9d363442
    mockit.asm.methods.MethodReader0d46bdb10e1cb567
    mockit.asm.methods.MethodVisitor6aafdb0e0bd9f04d
    mockit.asm.methods.MethodWriterc77ca17c110fc381
    mockit.asm.methods.WrappingMethodVisitorfe2114a373ed09e3
    mockit.asm.types.ArrayType3897ad248dad3058
    mockit.asm.types.JavaType6a617aca55015b96
    mockit.asm.types.ObjectType439dacb2d6b69467
    mockit.asm.types.PrimitiveType9907457aea9de70c
    mockit.asm.types.ReferenceTypec3a32354b2fe0c85
    mockit.asm.util.ByteVectoradf5209dcdaf01d5
    mockit.asm.util.BytecodeReaderad4c2af17a40d4d0
    mockit.coverage.CodeCoverage57c4b93cf9705048
    mockit.coverage.Configuration0f191cfcb58e3996
    mockit.coverage.testRedundancy.TestCoveragee7294c8646aeb601
    mockit.integration.TestRunnerDecorator10c6d4d07e4bb526
    mockit.integration.junit4.FakeFrameworkMethod202fa832304031cd
    mockit.integration.junit4.FakeRunNotifierf2d8e332a2590c60
    mockit.integration.junit4.JUnit4TestRunnerDecoratorc2eadb5bf6beaf6c
    mockit.internal.BaseClassModifiere801aefb4d7fd037
    mockit.internal.BaseClassModifier.1cd1242b388012ca6
    mockit.internal.BaseClassModifier.DynamicModifierc5d17ff8720815cc
    mockit.internal.BaseInvocationf7de466f17f4adbb
    mockit.internal.ClassFile41b638065ae166a7
    mockit.internal.ClassLoadingBridgee658793228cc4a49
    mockit.internal.expectations.RecordAndReplayExecutionf879ec0212b83007
    mockit.internal.expectations.mocking.FieldTypeRedefinitionsc4cb3bcb5359dd6a
    mockit.internal.expectations.mocking.MockedBridge331090874886c8c7
    mockit.internal.expectations.mocking.MockedTypeb261d998676dfb65
    mockit.internal.expectations.mocking.TypeRedefinitions055dc33e135fb36a
    mockit.internal.expectations.state.CascadingTypesb9acfb27aa4a8790
    mockit.internal.expectations.state.ExecutingTestacf34225777d2f3b
    mockit.internal.expectations.state.ExecutingTest.13b09910b1e29a191
    mockit.internal.expectations.transformation.ExpectationsTransformereaac4e9336d5ca40
    mockit.internal.faking.FakeBridgeda78f19ce898d263
    mockit.internal.faking.FakeClassSetupe4606a4618ad323c
    mockit.internal.faking.FakeClasses3cd46eb6591366cb
    mockit.internal.faking.FakeClasses.SavePointfecc58d760c6ed06
    mockit.internal.faking.FakeInvocatione3e355bfb78d2072
    mockit.internal.faking.FakeMethodBridge2fd5b959860f5d53
    mockit.internal.faking.FakeMethodCollectoraa97db550361bc87
    mockit.internal.faking.FakeMethods471e51097727667e
    mockit.internal.faking.FakeMethods.FakeMethodb5d99f462770e149
    mockit.internal.faking.FakeState01259986b514ed46
    mockit.internal.faking.FakeStatese760ab91481812c0
    mockit.internal.faking.FakedClassModifier28fa1e02ea9dd34f
    mockit.internal.injection.InjectionProvider1076f7e808be8615
    mockit.internal.injection.InjectionProviders62b38f89bfedb6c7
    mockit.internal.injection.InjectionState6e9537644e97642f
    mockit.internal.injection.InterfaceResolutionc5428bf18cac5f85
    mockit.internal.injection.InterfaceResolution.130a49c92c2d8b04f
    mockit.internal.injection.LifecycleMethodsed1a5aaae6cf42e3
    mockit.internal.injection.TestedClassInstantiationsbfc9ebb0ae421152
    mockit.internal.injection.TestedObjectbdd0e59488a17cbb
    mockit.internal.reflection.GenericTypeReflectiona556abe88b104f52
    mockit.internal.startup.ClassLoadingBridgeFields29d0d6d7f507fa33
    mockit.internal.startup.ClassLoadingBridgeFields.FieldAdditionTransformer682a4d5236ea1c37
    mockit.internal.startup.ClassLoadingBridgeFields.FieldAdditionTransformer.12e9fd2fdf39cd8c3
    mockit.internal.startup.JMockitInitialization1f5ea374ed1901b8
    mockit.internal.startup.Startup177b14c50aa68246
    mockit.internal.state.CachedClassfiles231a21c71ced4214
    mockit.internal.state.MockFixture394c3264450f978b
    mockit.internal.state.ParameterNames9f70a2910daf7cd7
    mockit.internal.state.SavePointda4c7e434f406431
    mockit.internal.state.TestRun6409fd3c8b761b63
    mockit.internal.state.TestRun.17d6ccf983062f278
    mockit.internal.util.ClassLoad5bd538d4254708e6
    mockit.internal.util.ClassNaming53e8188d1e80d2e0
    mockit.internal.util.ParameterNameExtractor23af23efb21b6d24
    mockit.internal.util.StackTraceff09e8982b37f81c
    mockit.internal.util.TypeConversione064dff353fc3c14
    org.apache.commons.io.Charsets8ae1973f359dec29
    org.apache.commons.io.FileUtilsb05a09ee270979e9
    org.apache.commons.io.FilenameUtils3144089e135875ac
    org.apache.commons.io.IOUtils6ee4556e7885ab91
    org.apache.commons.io.StandardLineSeparator40b593b9edc3531e
    org.apache.commons.io.file.Counters3347b40442150325
    org.apache.commons.io.file.Counters.AbstractPathCountersf029129367b66185
    org.apache.commons.io.file.Counters.LongCounter8a0e15c3b7aab6f0
    org.apache.commons.io.file.Counters.LongPathCounters4d05a3ec2389a891
    org.apache.commons.io.file.CountingPathVisitor1a0297f6692d68b7
    org.apache.commons.io.file.DeletingPathVisitor380d01f344f0b03a
    org.apache.commons.io.file.PathUtilsc186f18e4d52fa5b
    org.apache.commons.io.file.SimplePathVisitor42930704cb1f97c1
    org.apache.commons.io.file.StandardDeleteOption670e1c1e2863e0b5
    org.apache.commons.io.filefilter.AbstractFileFilter92dd8bb7f7b80944
    org.apache.commons.io.filefilter.IOFileFilter4896a5eee1f88d05
    org.apache.commons.io.filefilter.SymbolicLinkFileFilterd7784b41fab5d1af
    org.apache.commons.io.filefilter.TrueFileFilterfabf6490458c9b57
    org.apache.commons.io.output.StringBuilderWriter56db39b128a95142
    org.apache.commons.lang3.ArraySorter72b5b4fd78900d5c
    org.apache.commons.lang3.ArrayUtils55cd090cc4afae67
    org.apache.commons.lang3.ObjectUtils1c157e9ecfc781f4
    org.apache.commons.lang3.ObjectUtils.Nullbc56db2ba4a397f4
    org.apache.commons.lang3.StringUtilsb53e9ceb7cab46c1
    org.apache.commons.lang3.Validate1641aabfdb381324
    org.apache.commons.lang3.builder.EqualsBuilderaa8ad870ff53852c
    org.apache.commons.lang3.builder.HashCodeBuilder2143ccbdbc7e1ea5
    org.apache.commons.lang3.builder.IDKey5daf57912b530aec
    org.apache.commons.lang3.builder.Reflectiona345b02d0ec0811a
    org.apache.commons.lang3.tuple.ImmutablePairea1fdd387104f342
    org.apache.commons.lang3.tuple.Pair24fcf8d25a997dff
    org.apache.maven.plugin.surefire.log.api.NullConsoleLogger9e19e8c6ec7e2af1
    org.apache.maven.surefire.api.booter.BaseProviderFactory3859e78bd81eea39
    org.apache.maven.surefire.api.booter.BiPropertyd22c13c56d5b4593
    org.apache.maven.surefire.api.booter.Command3cd54166633f8826
    org.apache.maven.surefire.api.booter.Constantsdecb9de81c53dc77
    org.apache.maven.surefire.api.booter.DumpErrorSingleton0fb68b22eecee565
    org.apache.maven.surefire.api.booter.ForkedProcessEventTypefb813c97649a2cb4
    org.apache.maven.surefire.api.booter.ForkingReporterFactory43a09ed486105416
    org.apache.maven.surefire.api.booter.ForkingRunListener72fc487c27ef5b8d
    org.apache.maven.surefire.api.booter.MasterProcessCommand4638438d1f9cb2b7
    org.apache.maven.surefire.api.booter.Shutdown22c5299ca66a441d
    org.apache.maven.surefire.api.cli.CommandLineOption4a638448af60a346
    org.apache.maven.surefire.api.filter.NonAbstractClassFilterf9349f28027f7865
    org.apache.maven.surefire.api.provider.AbstractProvidera003e0bc84287c70
    org.apache.maven.surefire.api.report.ConsoleOutputCapture810c9018ba7d1ecc
    org.apache.maven.surefire.api.report.ConsoleOutputCapture.ForwardingPrintStream2c7c3dde8b37b8d9
    org.apache.maven.surefire.api.report.ConsoleOutputCapture.NullOutputStream5731848fa72c76c9
    org.apache.maven.surefire.api.report.ReporterConfigurationa4d0f02ee0a3ce3b
    org.apache.maven.surefire.api.report.RunMode99815bd2f7cf25b8
    org.apache.maven.surefire.api.report.SimpleReportEntrybe57bd60074f466f
    org.apache.maven.surefire.api.report.TestOutputReportEntryb7f0e6ae6773a3e5
    org.apache.maven.surefire.api.stream.AbstractStreamDecoderc51329e6fe95e03f
    org.apache.maven.surefire.api.stream.AbstractStreamDecoder.BufferedStream0e036d9195140045
    org.apache.maven.surefire.api.stream.AbstractStreamDecoder.Memento50fa22818cea4206
    org.apache.maven.surefire.api.stream.AbstractStreamDecoder.Segmentec7b2e9f3dc519b5
    org.apache.maven.surefire.api.stream.AbstractStreamDecoder.StreamReadStatusb28e22fff7af7760
    org.apache.maven.surefire.api.stream.AbstractStreamEncoder5b9d2cab05438b39
    org.apache.maven.surefire.api.stream.SegmentTypea352bcb443bb6539
    org.apache.maven.surefire.api.suite.RunResult14b135b9dcad68f4
    org.apache.maven.surefire.api.testset.DirectoryScannerParameters011c1405154cf543
    org.apache.maven.surefire.api.testset.IncludedExcludedPatternse9dcd696bf90972f
    org.apache.maven.surefire.api.testset.ResolvedTest89f52bebbeb73147
    org.apache.maven.surefire.api.testset.ResolvedTest.ClassMatcherc5f953b9f15d7ab4
    org.apache.maven.surefire.api.testset.ResolvedTest.MethodMatcher7b60e64bb228414b
    org.apache.maven.surefire.api.testset.ResolvedTest.Type2a3fe66966797e51
    org.apache.maven.surefire.api.testset.RunOrderParameters54e3b7abf0f0a29a
    org.apache.maven.surefire.api.testset.TestArtifactInfo534706d1cf843371
    org.apache.maven.surefire.api.testset.TestListResolverdf95312288764ee2
    org.apache.maven.surefire.api.testset.TestRequestc693581994b610fb
    org.apache.maven.surefire.api.util.CloseableIterator1bb59460a90e1562
    org.apache.maven.surefire.api.util.DefaultRunOrderCalculator2be55f855ffc9c23
    org.apache.maven.surefire.api.util.DefaultScanResult3abe973f1a2038a4
    org.apache.maven.surefire.api.util.ReflectionUtils463b61419dafb4bc
    org.apache.maven.surefire.api.util.RunOrdera5c43ed7ff239d28
    org.apache.maven.surefire.api.util.TestsToRun1a59fa62362c2dd4
    org.apache.maven.surefire.api.util.TestsToRun.ClassesIterator3054f1187d144893
    org.apache.maven.surefire.api.util.internal.AbstractNoninterruptibleReadableChannelb76efd5ee4f6a78a
    org.apache.maven.surefire.api.util.internal.AbstractNoninterruptibleWritableChannel7b40a9206100f626
    org.apache.maven.surefire.api.util.internal.Channelsa28ebb2dc3d003c6
    org.apache.maven.surefire.api.util.internal.Channels.31911457c5208109a
    org.apache.maven.surefire.api.util.internal.Channels.461df49d28956b732
    org.apache.maven.surefire.api.util.internal.ClassMethod831eee1f29d6b004
    org.apache.maven.surefire.api.util.internal.DaemonThreadFactory4065ee5e2ad99385
    org.apache.maven.surefire.api.util.internal.DaemonThreadFactory.NamedThreadFactory0dc63f2f250c8f58
    org.apache.maven.surefire.api.util.internal.DumpFileUtils260268350116ea1a
    org.apache.maven.surefire.api.util.internal.ImmutableMapc8d76b0bb433e1e6
    org.apache.maven.surefire.api.util.internal.ImmutableMap.Node61855d8450e86cb5
    org.apache.maven.surefire.api.util.internal.ObjectUtilsd0584b88701e9b97
    org.apache.maven.surefire.api.util.internal.TestClassMethodNameUtilsa01f540094a55e8c
    org.apache.maven.surefire.booter.AbstractPathConfiguration2ad3d057ec281500
    org.apache.maven.surefire.booter.BooterDeserializera2a1a3132d868a74
    org.apache.maven.surefire.booter.ClassLoaderConfiguration5bafac5e09ac0782
    org.apache.maven.surefire.booter.Classpath81f738f937cf4b38
    org.apache.maven.surefire.booter.ClasspathConfigurationb651758fedc3de2d
    org.apache.maven.surefire.booter.CommandReader440cf8805d3444be
    org.apache.maven.surefire.booter.CommandReader.16e995a711f46e676
    org.apache.maven.surefire.booter.CommandReader.CommandRunnable7f7bfee61ebca85e
    org.apache.maven.surefire.booter.ForkedBooterff24aeec916b680b
    org.apache.maven.surefire.booter.ForkedBooter.173179ebb6b41b643
    org.apache.maven.surefire.booter.ForkedBooter.3c51baabea2b75554
    org.apache.maven.surefire.booter.ForkedBooter.468ca1df4a9ada348
    org.apache.maven.surefire.booter.ForkedBooter.608fe853c879dd1a6
    org.apache.maven.surefire.booter.ForkedBooter.78cca77fe0fd3c98d
    org.apache.maven.surefire.booter.ForkedBooter.8779c6068c1dac1db
    org.apache.maven.surefire.booter.ForkedBooter.PingScheduler6e83f53202050979
    org.apache.maven.surefire.booter.ForkedNodeArge055a24d27c554f3
    org.apache.maven.surefire.booter.PpidChecker921ca312a6f63114
    org.apache.maven.surefire.booter.ProcessCheckerType9c8497621409bb1e
    org.apache.maven.surefire.booter.PropertiesWrapperc4362cb430c125af
    org.apache.maven.surefire.booter.ProviderConfiguration84eb716577efc3a7
    org.apache.maven.surefire.booter.StartupConfigurationf457135a627728a6
    org.apache.maven.surefire.booter.SystemPropertyManager0446c7c116836016
    org.apache.maven.surefire.booter.TypeEncodedValue1b039936542eee72
    org.apache.maven.surefire.booter.spi.AbstractMasterProcessChannelProcessorFactoryc30b5b062f066468
    org.apache.maven.surefire.booter.spi.AbstractMasterProcessChannelProcessorFactory.1644e111f23817fd3
    org.apache.maven.surefire.booter.spi.AbstractMasterProcessChannelProcessorFactory.247b08c480603fa8a
    org.apache.maven.surefire.booter.spi.CommandChannelDecoder65f2965c86411193
    org.apache.maven.surefire.booter.spi.EventChannelEncoder114071f00780f71e
    org.apache.maven.surefire.booter.spi.EventChannelEncoder.StackTracee7231bc2c7014c40
    org.apache.maven.surefire.booter.spi.LegacyMasterProcessChannelProcessorFactoryb54085754461a0d1
    org.apache.maven.surefire.booter.spi.SurefireMasterProcessChannelProcessorFactory132a213649249d64
    org.apache.maven.surefire.booter.stream.CommandDecoder0d40efcc428f82e2
    org.apache.maven.surefire.booter.stream.CommandDecoder.19d88d04fa41adab4
    org.apache.maven.surefire.booter.stream.EventEncoder4bdbe84daf58c435
    org.apache.maven.surefire.common.junit3.JUnit3TestCheckerbbad74a9945614a4
    org.apache.maven.surefire.common.junit4.JUnit4ProviderUtilfa2afc137d4ba7b3
    org.apache.maven.surefire.common.junit4.JUnit4Reflector23b83cd8942b7f95
    org.apache.maven.surefire.common.junit4.JUnit4RunListenerd8d5e5130dcf4b9b
    org.apache.maven.surefire.common.junit4.JUnit4RunListenerFactoryccfd1352f097d7b8
    org.apache.maven.surefire.common.junit4.JUnit4TestCheckerf6cf831ca6699119
    org.apache.maven.surefire.common.junit4.JUnitTestFailureListener03f07d8828d7aca4
    org.apache.maven.surefire.common.junit4.Notifiera943b086c230616e
    org.apache.maven.surefire.junit4.JUnit4Provider5d773610b092faec
    org.apache.maven.surefire.junit4.JUnit4Provider.1e7b4bc1546ba10b9
    org.apache.maven.surefire.report.ClassMethodIndexer8b31a053539323b7
    org.apache.maven.surefire.shared.lang3.JavaVersion4e21c3be19560aac
    org.apache.maven.surefire.shared.lang3.SystemUtilse5eafc9ce14dcbec
    org.apache.maven.surefire.shared.lang3.math.NumberUtils11e46630af73f131
    org.apache.maven.surefire.shared.utils.StringUtilsabd8480c7152bf46
    org.apache.maven.surefire.shared.utils.cli.ShutdownHookUtils011b23cd829ec86c
    org.bouncycastle.asn1.ASN1Object43086c9e1a3007ee
    org.bouncycastle.asn1.ASN1ObjectIdentifierf2e8b286f30103e7
    org.bouncycastle.asn1.ASN1ObjectIdentifier.12f305d621571e3b4
    org.bouncycastle.asn1.ASN1ObjectIdentifier.OidHandle268168ac735a0299
    org.bouncycastle.asn1.ASN1Primitiveeda8b3f4299f163a
    org.bouncycastle.asn1.ASN1RelativeOID82f08b63cbf52be1
    org.bouncycastle.asn1.ASN1RelativeOID.15b1354cdb0821da6
    org.bouncycastle.asn1.ASN1Tag39da6c08ccf9c083
    org.bouncycastle.asn1.ASN1Type9a715f419d9f7efc
    org.bouncycastle.asn1.ASN1UniversalType784811b77497c071
    org.bouncycastle.asn1.OIDTokenizerad6694d93971c38a
    org.bouncycastle.asn1.bc.BCObjectIdentifiers9807ebe13ae5be33
    org.bouncycastle.asn1.cryptopro.CryptoProObjectIdentifiersb6573e87b5112fa8
    org.bouncycastle.asn1.edec.EdECObjectIdentifiers013107d92e6ac3b8
    org.bouncycastle.asn1.gm.GMObjectIdentifiers39102cdd26bd1624
    org.bouncycastle.asn1.gnu.GNUObjectIdentifiersea1e2afa165f6aa2
    org.bouncycastle.asn1.iana.IANAObjectIdentifiers4f804d8c0b404433
    org.bouncycastle.asn1.isara.IsaraObjectIdentifiers5d79726c97982bfc
    org.bouncycastle.asn1.iso.ISOIECObjectIdentifiers8db23189698b2308
    org.bouncycastle.asn1.kisa.KISAObjectIdentifierse571e423786db08b
    org.bouncycastle.asn1.misc.MiscObjectIdentifiersf0842bae60cf734f
    org.bouncycastle.asn1.nist.NISTObjectIdentifiersbb1aa8f9eea7f273
    org.bouncycastle.asn1.nsri.NSRIObjectIdentifiersd1fdcfd3131f8ef8
    org.bouncycastle.asn1.ntt.NTTObjectIdentifiers6a2926f33806e468
    org.bouncycastle.asn1.oiw.OIWObjectIdentifiersfa09fa0d7584e63a
    org.bouncycastle.asn1.pkcs.PKCSObjectIdentifierse5e5f188fe82d981
    org.bouncycastle.asn1.rosstandart.RosstandartObjectIdentifiers3e67158daa403c0c
    org.bouncycastle.asn1.sec.SECObjectIdentifiers267a4c5ce9761ab0
    org.bouncycastle.asn1.teletrust.TeleTrusTObjectIdentifiers8d13a67bc75b50c5
    org.bouncycastle.asn1.ua.UAObjectIdentifiersd5bc61d5e226d42e
    org.bouncycastle.asn1.x509.X509ObjectIdentifiersce76b4c8f6b5343c
    org.bouncycastle.asn1.x9.X9ObjectIdentifiersc794e50333c4f3b6
    org.bouncycastle.crypto.CryptoServicesPermission4afee5ee743ffa30
    org.bouncycastle.crypto.CryptoServicesRegistrar71dd7fbecf7e7d37
    org.bouncycastle.crypto.CryptoServicesRegistrar.10bd06e30aabb58c2
    org.bouncycastle.crypto.CryptoServicesRegistrar.2f4e589676969b931
    org.bouncycastle.crypto.CryptoServicesRegistrar.Property41966a3f21ac014e
    org.bouncycastle.crypto.params.DHParameters94451df9b0082d21
    org.bouncycastle.crypto.params.DHValidationParameters175a1e8a114a64be
    org.bouncycastle.crypto.params.DSAParametersaecf4991bd6ca171
    org.bouncycastle.crypto.params.DSAValidationParameters95537f1b071a5686
    org.bouncycastle.internal.asn1.bsi.BSIObjectIdentifiers5152d11d29f6c48b
    org.bouncycastle.internal.asn1.cms.CMSObjectIdentifiers5862cb4cd879a7ef
    org.bouncycastle.internal.asn1.eac.EACObjectIdentifiersfb6088622285e71a
    org.bouncycastle.jcajce.provider.asymmetric.COMPOSITE608339ef696ad2b6
    org.bouncycastle.jcajce.provider.asymmetric.COMPOSITE.CompositeKeyInfoConverter1c5affdfaabae3d6
    org.bouncycastle.jcajce.provider.asymmetric.COMPOSITE.Mappingsfaae477ac5e7001f
    org.bouncycastle.jcajce.provider.asymmetric.DHbf787b0c7e486995
    org.bouncycastle.jcajce.provider.asymmetric.DH.Mappings21d007a1762af8bb
    org.bouncycastle.jcajce.provider.asymmetric.DSA.Mappings1b6503ce0c8f198f
    org.bouncycastle.jcajce.provider.asymmetric.DSTU4145.Mappings97a277f13012c019
    org.bouncycastle.jcajce.provider.asymmetric.EC18e9a61ae5ab86d5
    org.bouncycastle.jcajce.provider.asymmetric.EC.Mappingsff0149f9c30f35f4
    org.bouncycastle.jcajce.provider.asymmetric.ECGOST.Mappingsb53dd765c6bafb18
    org.bouncycastle.jcajce.provider.asymmetric.EXTERNAL8eb171b7914f6d93
    org.bouncycastle.jcajce.provider.asymmetric.EXTERNAL.ExternalKeyInfoConverter93b1146537aef928
    org.bouncycastle.jcajce.provider.asymmetric.EXTERNAL.Mappings82294aa7834be166
    org.bouncycastle.jcajce.provider.asymmetric.EdEC.Mappingsb5c3332d4af64060
    org.bouncycastle.jcajce.provider.asymmetric.ElGamal.Mappings37c1708558246b8e
    org.bouncycastle.jcajce.provider.asymmetric.GM.Mappings757d961980f61a7b
    org.bouncycastle.jcajce.provider.asymmetric.GOST.Mappings1cfe2fdf2b5cfc73
    org.bouncycastle.jcajce.provider.asymmetric.IES.Mappingsa810cdd9579b1548
    org.bouncycastle.jcajce.provider.asymmetric.LMS.Mappings74cde4d2c51f8cb8
    org.bouncycastle.jcajce.provider.asymmetric.RSA5df107437d18b937
    org.bouncycastle.jcajce.provider.asymmetric.RSA.Mappings5e3a08cbfbeb812a
    org.bouncycastle.jcajce.provider.asymmetric.SPHINCSPlus.Mappings5a563636beb6adad
    org.bouncycastle.jcajce.provider.asymmetric.X509.Mappings7d22ae4ecf3c59ab
    org.bouncycastle.jcajce.provider.asymmetric.dh.KeyFactorySpia98dbd39254fd366
    org.bouncycastle.jcajce.provider.asymmetric.dsa.DSAUtil11ee3c2846027ce7
    org.bouncycastle.jcajce.provider.asymmetric.dsa.KeyFactorySpiee1506503f1fac65
    org.bouncycastle.jcajce.provider.asymmetric.dstu.KeyFactorySpi8fed904ba17785ec
    org.bouncycastle.jcajce.provider.asymmetric.ec.KeyFactorySpiedcd0037cf7c4f20
    org.bouncycastle.jcajce.provider.asymmetric.ec.KeyFactorySpi.EC14b1a9e5cf7ca3c2
    org.bouncycastle.jcajce.provider.asymmetric.ec.KeyFactorySpi.ECMQVb59fefc1c7c800c4
    org.bouncycastle.jcajce.provider.asymmetric.ecgost.KeyFactorySpiaa37d8bb6c9f3eb2
    org.bouncycastle.jcajce.provider.asymmetric.ecgost12.KeyFactorySpi4661d5c8ddf24ca1
    org.bouncycastle.jcajce.provider.asymmetric.edec.KeyFactorySpi246feee8442fa8cc
    org.bouncycastle.jcajce.provider.asymmetric.edec.KeyFactorySpi.Ed25519868c167f9df5b6d2
    org.bouncycastle.jcajce.provider.asymmetric.edec.KeyFactorySpi.Ed448f661480ea51eca0a
    org.bouncycastle.jcajce.provider.asymmetric.edec.KeyFactorySpi.X25519e7f25dbe3d2b245d
    org.bouncycastle.jcajce.provider.asymmetric.edec.KeyFactorySpi.X44840f0b13779fbbb92
    org.bouncycastle.jcajce.provider.asymmetric.edec.SignatureSpibdd1f6a9330aa14b
    org.bouncycastle.jcajce.provider.asymmetric.edec.SignatureSpi.Ed2551920fb2971631c8996
    org.bouncycastle.jcajce.provider.asymmetric.edec.SignatureSpi.Ed448169183c3bd8931bc
    org.bouncycastle.jcajce.provider.asymmetric.elgamal.KeyFactorySpie56d5e1553f46f4e
    org.bouncycastle.jcajce.provider.asymmetric.gost.KeyFactorySpicbad1716616fbc9c
    org.bouncycastle.jcajce.provider.asymmetric.rsa.KeyFactorySpi74557bcd872d4913
    org.bouncycastle.jcajce.provider.asymmetric.util.BaseKeyFactorySpi5560105bb00c98f3
    org.bouncycastle.jcajce.provider.config.ProviderConfigurationPermission7d4a384d24337d1d
    org.bouncycastle.jcajce.provider.digest.Blake2b.Mappingsabd61f7f5229c9ee
    org.bouncycastle.jcajce.provider.digest.Blake2s.Mappings2087b14838bb5a72
    org.bouncycastle.jcajce.provider.digest.Blake3.Mappings1f6958a0c9c1e927
    org.bouncycastle.jcajce.provider.digest.DSTU7564.Mappings33e3943deb470c17
    org.bouncycastle.jcajce.provider.digest.DigestAlgorithmProvidera261829991a2fb84
    org.bouncycastle.jcajce.provider.digest.GOST3411.Mappings088db6ce1d2e08ad
    org.bouncycastle.jcajce.provider.digest.Haraka.Mappingsa5c6a81f91a32bb6
    org.bouncycastle.jcajce.provider.digest.Keccak.Mappings1574b04593f27f2b
    org.bouncycastle.jcajce.provider.digest.MD2.Mappings453bb023393966d9
    org.bouncycastle.jcajce.provider.digest.MD4.Mappings784aa398d9638322
    org.bouncycastle.jcajce.provider.digest.MD5.Mappings27b03f593144534f
    org.bouncycastle.jcajce.provider.digest.RIPEMD128.Mappingsf1dfd38292fc9d1d
    org.bouncycastle.jcajce.provider.digest.RIPEMD160.Mappings95dbbd922e438a91
    org.bouncycastle.jcajce.provider.digest.RIPEMD256.Mappings3b26a679d4e060bf
    org.bouncycastle.jcajce.provider.digest.RIPEMD320.Mappings252d9c029b601568
    org.bouncycastle.jcajce.provider.digest.SHA1.Mappings1fe96c5db560c459
    org.bouncycastle.jcajce.provider.digest.SHA224.Mappings1873b396687d9cad
    org.bouncycastle.jcajce.provider.digest.SHA256.Mappings7beaa94156022f20
    org.bouncycastle.jcajce.provider.digest.SHA3.Mappingsb4a72acba36e6c0d
    org.bouncycastle.jcajce.provider.digest.SHA384.Mappings9859db346239f47a
    org.bouncycastle.jcajce.provider.digest.SHA512.Mappings094a0ffff745c084
    org.bouncycastle.jcajce.provider.digest.SM3.Mappings497fcd8f8683646e
    org.bouncycastle.jcajce.provider.digest.Skein.Mappings49a41e09dad69bac
    org.bouncycastle.jcajce.provider.digest.Tiger.Mappingsd383b13c5f6734ca
    org.bouncycastle.jcajce.provider.digest.Whirlpool.Mappingsba081875e1b957fd
    org.bouncycastle.jcajce.provider.drbg.DRBGc00d52f4dad89e8d
    org.bouncycastle.jcajce.provider.drbg.DRBG.EntropyDaemon34172c06ea50749c
    org.bouncycastle.jcajce.provider.drbg.DRBG.Mappingsbcd70257a1276557
    org.bouncycastle.jcajce.provider.keystore.BC.Mappings44157c252728b7ef
    org.bouncycastle.jcajce.provider.keystore.BCFKS.Mappingse29bf2644c11d055
    org.bouncycastle.jcajce.provider.keystore.PKCS12.Mappings813d565ce409c83d
    org.bouncycastle.jcajce.provider.symmetric.AES8448ea2002f3395b
    org.bouncycastle.jcajce.provider.symmetric.AES.Mappingsd9e09a969bae3027
    org.bouncycastle.jcajce.provider.symmetric.ARC4.Mappingsb0ea03d39f27b812
    org.bouncycastle.jcajce.provider.symmetric.ARIA.Mappingse1d18815887eb3c6
    org.bouncycastle.jcajce.provider.symmetric.Blowfish.Mappings950f62a5a8970859
    org.bouncycastle.jcajce.provider.symmetric.CAST5.Mappings9017968020e4f4bf
    org.bouncycastle.jcajce.provider.symmetric.CAST6.Mappingsefccfa3af9e61509
    org.bouncycastle.jcajce.provider.symmetric.Camellia.Mappings39c8d28e869f1b9f
    org.bouncycastle.jcajce.provider.symmetric.ChaCha.Mappings86190913bb3c2a6d
    org.bouncycastle.jcajce.provider.symmetric.DES.Mappings0bbed83026a160be
    org.bouncycastle.jcajce.provider.symmetric.DESede.Mappingsfdabaf3cd386a85b
    org.bouncycastle.jcajce.provider.symmetric.DSTU7624.Mappings5292bf7f437f78f3
    org.bouncycastle.jcajce.provider.symmetric.GOST28147.Mappingsf39279e88146c287
    org.bouncycastle.jcajce.provider.symmetric.GOST3412_2015.Mappingse7cb720a4929e302
    org.bouncycastle.jcajce.provider.symmetric.Grain128.Mappings898d71e4d547286e
    org.bouncycastle.jcajce.provider.symmetric.Grainv1.Mappings9be47fcf481b2157
    org.bouncycastle.jcajce.provider.symmetric.HC128.Mappings8d6b810399b96fa0
    org.bouncycastle.jcajce.provider.symmetric.HC256.Mappingsafb9dcd8074d9b50
    org.bouncycastle.jcajce.provider.symmetric.IDEA.Mappings69b88284a9235ec2
    org.bouncycastle.jcajce.provider.symmetric.Noekeon.Mappings7841f8e20490900d
    org.bouncycastle.jcajce.provider.symmetric.OpenSSLPBKDF.Mappingsdf2475cff1a76c61
    org.bouncycastle.jcajce.provider.symmetric.PBEPBKDF1.Mappings663fafe2dcb440a8
    org.bouncycastle.jcajce.provider.symmetric.PBEPBKDF2.Mappings40fb634b52980c5f
    org.bouncycastle.jcajce.provider.symmetric.PBEPKCS12.Mappings917271caa9bc13e9
    org.bouncycastle.jcajce.provider.symmetric.Poly1305.Mappings9380e29d6a83f632
    org.bouncycastle.jcajce.provider.symmetric.RC2.Mappings2da739b5f11c09ef
    org.bouncycastle.jcajce.provider.symmetric.RC5.Mappingscaf2404b3d9cd697
    org.bouncycastle.jcajce.provider.symmetric.RC6.Mappingsd8ad01dedd0f4805
    org.bouncycastle.jcajce.provider.symmetric.Rijndael.Mappings89991b4fe9a291cd
    org.bouncycastle.jcajce.provider.symmetric.SCRYPT.Mappings04c1a542b2296ab1
    org.bouncycastle.jcajce.provider.symmetric.SEED.Mappings1d709e00dcfe907e
    org.bouncycastle.jcajce.provider.symmetric.SM4.Mappingsd4b511a012b89315
    org.bouncycastle.jcajce.provider.symmetric.Salsa20.Mappings9a6b8a4cb34887f1
    org.bouncycastle.jcajce.provider.symmetric.Serpent.Mappings0138fc790397557e
    org.bouncycastle.jcajce.provider.symmetric.Shacal2.Mappings87d55e35606da865
    org.bouncycastle.jcajce.provider.symmetric.SipHash.Mappingsbc6fbc9e89286a1c
    org.bouncycastle.jcajce.provider.symmetric.SipHash128.Mappings7fca953a66850036
    org.bouncycastle.jcajce.provider.symmetric.Skipjack.Mappingsea74bec3a51dd324
    org.bouncycastle.jcajce.provider.symmetric.SymmetricAlgorithmProviderd3d970cbdcad7a61
    org.bouncycastle.jcajce.provider.symmetric.TEA.Mappings995e05fd18844568
    org.bouncycastle.jcajce.provider.symmetric.TLSKDF.Mappings4afc14404d366a81
    org.bouncycastle.jcajce.provider.symmetric.Threefish.Mappings3c258c98fe656510
    org.bouncycastle.jcajce.provider.symmetric.Twofish.Mappingseba437cd93c685b8
    org.bouncycastle.jcajce.provider.symmetric.VMPC.Mappingsa51373a34af7e856
    org.bouncycastle.jcajce.provider.symmetric.VMPCKSA3.Mappingsa27062e01d1526d5
    org.bouncycastle.jcajce.provider.symmetric.XSalsa20.Mappingsbe2715240665ed39
    org.bouncycastle.jcajce.provider.symmetric.XTEA.Mappingsc983416e87922889
    org.bouncycastle.jcajce.provider.symmetric.Zuc.Mappings41e0975cf9b9d07f
    org.bouncycastle.jcajce.provider.symmetric.util.ClassUtil32a9307b42d5a3af
    org.bouncycastle.jcajce.provider.util.AlgorithmProvider8ce4d94a930e0578
    org.bouncycastle.jcajce.provider.util.AsymmetricAlgorithmProviderb27a017806da909c
    org.bouncycastle.jce.provider.BouncyCastleProviderfe008fda64039103
    org.bouncycastle.jce.provider.BouncyCastleProvider.1085a858f1c63d8fb
    org.bouncycastle.jce.provider.BouncyCastleProvider.JcaCryptoService9bd2f02589e2b679
    org.bouncycastle.jce.provider.BouncyCastleProviderConfiguration74676a6a7560aa5f
    org.bouncycastle.pqc.asn1.PQCObjectIdentifiersb409555257ba675b
    org.bouncycastle.pqc.jcajce.provider.falcon.FalconKeyFactorySpi61dc85411d615a58
    org.bouncycastle.pqc.jcajce.provider.lms.LMSKeyFactorySpi7996ed9c7d3ff61c
    org.bouncycastle.pqc.jcajce.provider.mceliece.McElieceCCA2KeyFactorySpi9c6bb6fe039ae7a8
    org.bouncycastle.pqc.jcajce.provider.mceliece.McElieceKeyFactorySpi19c29fe3b2b0229a
    org.bouncycastle.pqc.jcajce.provider.newhope.NHKeyFactorySpi93bf7ae41923d446
    org.bouncycastle.pqc.jcajce.provider.picnic.PicnicKeyFactorySpi5f7f2cf036bfa495
    org.bouncycastle.pqc.jcajce.provider.qtesla.QTESLAKeyFactorySpicb8231cf4e2bcb2f
    org.bouncycastle.pqc.jcajce.provider.rainbow.RainbowKeyFactorySpi57517603971c557b
    org.bouncycastle.pqc.jcajce.provider.sphincs.Sphincs256KeyFactorySpi154f5fd72291738e
    org.bouncycastle.pqc.jcajce.provider.sphincsplus.SPHINCSPlusKeyFactorySpi82ed5bf04d02d970
    org.bouncycastle.pqc.jcajce.provider.xmss.XMSSKeyFactorySpidb735da6f3b72cc9
    org.bouncycastle.pqc.jcajce.provider.xmss.XMSSMTKeyFactorySpid2fae645cfbe5a88
    org.bouncycastle.util.Arrays83379085ffca5398
    org.bouncycastle.util.Propertiescb3c388e648bdc5d
    org.bouncycastle.util.Properties.181bef0d667755d5e
    org.bouncycastle.util.Properties.255522de6e37839e3
    org.bouncycastle.util.Strings5d976d40689c255b
    org.bouncycastle.util.Strings.19fc765f0abe4b0af
    org.bouncycastle.util.encoders.Hex79efb19ebbaff01b
    org.bouncycastle.util.encoders.HexEncoderb5a3dd32975d6319
    org.glassfish.json.BufferPoolImpl836d09e6b15fe927
    org.glassfish.json.JsonArrayBuilderImpl6f06b1bcb60d1d9c
    org.glassfish.json.JsonArrayBuilderImpl.JsonArrayImpl2473913d684e5724
    org.glassfish.json.JsonObjectBuilderImpl1211ee75fd7bf0f1
    org.glassfish.json.JsonObjectBuilderImpl.JsonObjectImpl40b8f8ac2ba906b1
    org.glassfish.json.JsonParserImpl5cb1b1235d83a520
    org.glassfish.json.JsonParserImpl.472f5c19858fdac74
    org.glassfish.json.JsonParserImpl.ArrayContext070fe26322fac856
    org.glassfish.json.JsonParserImpl.Context7a006c910b75a2d2
    org.glassfish.json.JsonParserImpl.NoneContext03216417686aafcd
    org.glassfish.json.JsonParserImpl.ObjectContextc784c334c97a0446
    org.glassfish.json.JsonParserImpl.Stackb1ea5cd4417c3854
    org.glassfish.json.JsonProviderImpl9f077215b667ebce
    org.glassfish.json.JsonReaderImpl0505c7e42b01830d
    org.glassfish.json.JsonStringImpld4e9a70b4eb97432
    org.glassfish.json.JsonTokenizer04b00aebe1b8d506
    org.glassfish.json.JsonTokenizer.JsonTokenc25a727e32262f68
    org.glassfish.json.UnicodeDetectingInputStreamcbb27135a66d814d
    org.hamcrest.BaseMatcherf52733a4a58e8a8e
    org.hamcrest.MatcherAssert375cdaed635186e8
    org.hamcrest.core.Is1b4bc96017d7a098
    org.hamcrest.core.IsEqualdf3c8def58c301e5
    org.hamcrest.core.IsNot7b55411c1f2e51f0
    org.hamcrest.core.IsNull64a5e8d54fea456f
    org.junit.Asserteda6db924019425b
    org.junit.Assumea0bac2e5a81f9b21
    org.junit.internal.Checks5f543b0bb87b92da
    org.junit.internal.ComparisonCriteriaeb4930662485358d
    org.junit.internal.ComparisonCriteria.1078c309755193425
    org.junit.internal.ExactComparisonCriteriab46e382b993e25ce
    org.junit.internal.MethodSortera26607ae067f7352
    org.junit.internal.MethodSorter.1d3997b4bdb7889c1
    org.junit.internal.MethodSorter.2c8e6351cbf098013
    org.junit.internal.builders.AllDefaultPossibilitiesBuilder4f18a1d7932cb8ab
    org.junit.internal.builders.AnnotatedBuilder0faf353d180c9332
    org.junit.internal.builders.IgnoredBuildere152f333c53967a6
    org.junit.internal.builders.JUnit3Builder4a2cc8e608e1275e
    org.junit.internal.builders.JUnit4Builderf2e00a3e1fc23005
    org.junit.internal.builders.SuiteMethodBuilder1df136431e07e393
    org.junit.internal.requests.ClassRequest47dbc61675e5a92e
    org.junit.internal.requests.ClassRequest.CustomAllDefaultPossibilitiesBuilderea1c269d9656f543
    org.junit.internal.requests.ClassRequest.CustomSuiteMethodBuilder03d01020b1c503c7
    org.junit.internal.requests.MemoizingRequest1e70801476dbab8f
    org.junit.internal.runners.model.EachTestNotifier077481995383e000
    org.junit.internal.runners.model.ReflectiveCallabled591724635588bcb
    org.junit.internal.runners.rules.RuleMemberValidator95b5ee2068ec6875
    org.junit.internal.runners.rules.RuleMemberValidator.Builderf24845fa6fd065af
    org.junit.internal.runners.rules.RuleMemberValidator.DeclaringClassMustBePublic1de994463c748d89
    org.junit.internal.runners.rules.RuleMemberValidator.FieldMustBeARulee24e9f59de6fe5b7
    org.junit.internal.runners.rules.RuleMemberValidator.FieldMustBeATestRule690823bd2992f52e
    org.junit.internal.runners.rules.RuleMemberValidator.MemberMustBeNonStaticOrAlsoClassRule1e703fb3e7f4e533
    org.junit.internal.runners.rules.RuleMemberValidator.MemberMustBePublic806c174eb921b478
    org.junit.internal.runners.rules.RuleMemberValidator.MemberMustBeStaticac28a03dd36b2b5a
    org.junit.internal.runners.rules.RuleMemberValidator.MethodMustBeARule88ea4a2237de2b8b
    org.junit.internal.runners.rules.RuleMemberValidator.MethodMustBeATestRule9f4dd18a26005c18
    org.junit.internal.runners.statements.ExpectException943171ebab48b749
    org.junit.internal.runners.statements.InvokeMethod05a7aa636afa2c39
    org.junit.internal.runners.statements.RunAfters14a998d07920cd7b
    org.junit.internal.runners.statements.RunBeforesef86a61ca3ab20ba
    org.junit.runner.Description1d6f7ddbbf223f9a
    org.junit.runner.Request214d9ade1c7dc38d
    org.junit.runner.Resultecf6c1c04298ff7d
    org.junit.runner.Result.Listenercf649a4ffbe55db9
    org.junit.runner.Runnerf5abacc70e2e08a4
    org.junit.runner.notification.RunListener69d2c783b42f6720
    org.junit.runner.notification.RunNotifierf6313076e2224ebb
    org.junit.runner.notification.RunNotifier.1e31025c12b4dbdee
    org.junit.runner.notification.RunNotifier.24c7314c6d595dc3e
    org.junit.runner.notification.RunNotifier.3df2bada5cb3794f3
    org.junit.runner.notification.RunNotifier.4fbdd84204c215de7
    org.junit.runner.notification.RunNotifier.5f62dc396b601f8bd
    org.junit.runner.notification.RunNotifier.9c3c3d54b8ed47ee1
    org.junit.runner.notification.RunNotifier.SafeNotifier0b43c10299733bfb
    org.junit.runner.notification.SynchronizedRunListener2b59d5cb3b105225
    org.junit.runners.BlockJUnit4ClassRunner95752fb34ff12f3f
    org.junit.runners.BlockJUnit4ClassRunner.1d0f63145230a5f42
    org.junit.runners.BlockJUnit4ClassRunner.2f93eace695ddd30e
    org.junit.runners.BlockJUnit4ClassRunner.RuleCollector9c768e710e39c989
    org.junit.runners.JUnit46d26e2305347fe01
    org.junit.runners.ParentRunner335ee90b10f96ea1
    org.junit.runners.ParentRunner.1ecc6961e8bc209c4
    org.junit.runners.ParentRunner.2c5cb913a629ec4c8
    org.junit.runners.ParentRunner.320bad8188aebc0f2
    org.junit.runners.ParentRunner.480476dbdcb8d52cc
    org.junit.runners.ParentRunner.ClassRuleCollector26f7fb338afcd13b
    org.junit.runners.RuleContainerd44c3ba6dc65af53
    org.junit.runners.RuleContainer.157bbc73f6f47763b
    org.junit.runners.RuleContainer.RuleEntry33c112e80f79db7f
    org.junit.runners.model.FrameworkField2fe27c284e7d39f4
    org.junit.runners.model.FrameworkMemberbfd059486f267475
    org.junit.runners.model.FrameworkMethodf293b82d5aa86323
    org.junit.runners.model.FrameworkMethod.18fd5e02769c0e0c2
    org.junit.runners.model.MultipleFailureException187a72c573c34bac
    org.junit.runners.model.RunnerBuilder585cad2d320dc86e
    org.junit.runners.model.Statement9a75aa5de27bf4d5
    org.junit.runners.model.TestClass7e71209792391ee8
    org.junit.runners.model.TestClass.FieldComparator1b96cd3d5c4aeb07
    org.junit.runners.model.TestClass.MethodComparator0369eb29eb04248a
    org.junit.validator.AnnotationValidatorFactorye1e5570798173ab9
    org.junit.validator.AnnotationsValidator6cbe8454c9a93bb8
    org.junit.validator.AnnotationsValidator.AnnotatableValidatord211a963f22be103
    org.junit.validator.AnnotationsValidator.ClassValidator1b463c4e6642e880
    org.junit.validator.AnnotationsValidator.FieldValidator64068b954dc56a31
    org.junit.validator.AnnotationsValidator.MethodValidatorf16b57f17c787036
    org.junit.validator.PublicClassValidator3bac248cf06b18e4
    org.mockserver.cache.LRUCache10e03f56426bfddb
    org.mockserver.character.Characterbf2a046be7d2c028
    org.mockserver.client.ForwardChainExpectation02388d45f330f882
    org.mockserver.client.MockServerClientd13f4bb175ad7886
    org.mockserver.client.MockServerEventBus3cbf94f2399059aa
    org.mockserver.client.MockServerEventBus.EventTypec3b5e16a35bbc4bc
    org.mockserver.closurecallback.websocketregistry.LocalCallbackRegistry6b2e09cf35e0883f
    org.mockserver.closurecallback.websocketregistry.WebSocketClientRegistry836e292d8b3bd4e8
    org.mockserver.codec.BodyDecoderEncoderffe2a6eb1133065f
    org.mockserver.codec.ExpandedParameterDecoderdb84bcaa4d055fa1
    org.mockserver.codec.JsonSchemaBodyDecoder5c7c6f15953cc544
    org.mockserver.codec.MockServerHttpClientCodec5d0c6c02a4a2caf6
    org.mockserver.codec.MockServerHttpServerCodecee5005a14e1f1774
    org.mockserver.codec.MockServerHttpToNettyHttpRequestEncoder7fb39129d1285a70
    org.mockserver.codec.MockServerHttpToNettyHttpResponseEncoder7bef2b09481b464c
    org.mockserver.codec.NettyHttpToMockServerHttpRequestDecoder8cbf71fb1831c5ee
    org.mockserver.codec.NettyHttpToMockServerHttpResponseDecoderf612668ebda5fb93
    org.mockserver.codec.PathParametersDecodere88ba98722783cff
    org.mockserver.codec.PreserveHeadersNettyRemoves20354f56919de610
    org.mockserver.collections.CircularConcurrentLinkedDeque74701855a0752731
    org.mockserver.collections.CircularHashMap578d8d6f5aa6b9bb
    org.mockserver.collections.CircularPriorityQueue01ba7dfcc70d2c4d
    org.mockserver.collections.ImmutableEntry80d07ef8b95ccfc3
    org.mockserver.collections.NottableStringMultiMap0ef3d6a43501e278
    org.mockserver.collections.NottableStringMultiMap.140fa6d5653cca9a9
    org.mockserver.collections.SubSetMatcher2622084e566b0e9f
    org.mockserver.configuration.ClientConfiguration07225d1481363762
    org.mockserver.configuration.Configurationc09fbe76c49f3e16
    org.mockserver.configuration.ConfigurationProperties5d9c11568e399f49
    org.mockserver.cors.CORSHeaders9d898676adcfcf0c
    org.mockserver.dashboard.DashboardHandler7adba5996c176556
    org.mockserver.dashboard.DashboardWebSocketHandler229e6215c9034513
    org.mockserver.exception.ExceptionHandling3e0cb8a72b76ef83
    org.mockserver.file.FileReader8c0a9b48c7342f3c
    org.mockserver.filters.HopByHopHeaderFilter13ed941f48050429
    org.mockserver.formatting.StringFormatter4adf49428bf8ed58
    org.mockserver.httpclient.HttpClientConnectionErrorHandler6e221096aab884c5
    org.mockserver.httpclient.HttpClientHandler29bd136d8324c332
    org.mockserver.httpclient.HttpClientInitializer2d0afa6c4313d540
    org.mockserver.httpclient.NettyHttpClient89c3a61029ee2b58
    org.mockserver.integration.ClientAndServer8456040715315583
    org.mockserver.junit.MockServerRulebd4f2f92bf258494
    org.mockserver.junit.MockServerRule.172cc2f7beb9e77cc
    org.mockserver.junit.MockServerRule.ClientAndServerFactory84326d0050540bae
    org.mockserver.lifecycle.LifeCycle0837411c7fbbebb7
    org.mockserver.log.MockServerEventLog49f747db0ae7c01a
    org.mockserver.log.MockServerEventLog.1216a12b036630679
    org.mockserver.log.model.LogEntrye8fa92ebba3e032c
    org.mockserver.log.model.LogEntry.LogMessageTypeaaff730c5f11e9a1
    org.mockserver.logging.LoggingHandlera04a3e15a4a840f6
    org.mockserver.logging.MockServerLogger704dda1e2fd2b87e
    org.mockserver.logging.MockServerLogger.142a61073aea29a85
    org.mockserver.mappers.FullHttpRequestToMockServerHttpRequest15d395d36ad6f403
    org.mockserver.mappers.FullHttpResponseToMockServerHttpResponsef95540462f8f4f89
    org.mockserver.mappers.JDKCertificateToMockServerX509Certificate92554bd20747d973
    org.mockserver.mappers.MockServerHttpRequestToFullHttpRequestf666eed11ae71d0f
    org.mockserver.mappers.MockServerHttpResponseToFullHttpResponseb53684465722b23a
    org.mockserver.matchers.AbstractHttpRequestMatcher11610a17de2077a1
    org.mockserver.matchers.BodyMatcherd150e578c4b884a1
    org.mockserver.matchers.BooleanMatcherc772dd7e230752d3
    org.mockserver.matchers.ExactStringMatcherf36a3620f5e0c705
    org.mockserver.matchers.HashMapMatcher608fdfb67eaf9d1f
    org.mockserver.matchers.HttpRequestPropertiesMatcher31bae0d615dc30b5
    org.mockserver.matchers.MatchDifference.Field39d01f9045223694
    org.mockserver.matchers.MatchDifferenceCount80ab5052749c4d02
    org.mockserver.matchers.MatchType1edbc2ebea690f73
    org.mockserver.matchers.MatcherBuilderdfb3bd01343c99b2
    org.mockserver.matchers.MultiValueMapMatchere24b6dde3f9a2288
    org.mockserver.matchers.NotMatcher86e7e3d9d3e6387d
    org.mockserver.matchers.RegexStringMatcherdfca065dae96bda7
    org.mockserver.matchers.TimeToLive26672faf6a0792ec
    org.mockserver.matchers.TimeToLive.197f19dbc330d8730
    org.mockserver.matchers.Timesaaed6ac8f3f4a3a6
    org.mockserver.matchers.Times.1600771e846a83ab5
    org.mockserver.memory.Detailb2730b1ca74f294d
    org.mockserver.memory.MemoryMonitoring569f0bee4e94e2d3
    org.mockserver.memory.Summary5b0e4f1990b57866
    org.mockserver.metrics.Metrics97e0542105a88016
    org.mockserver.metrics.Metrics.Namec11bd99198ad2c5c
    org.mockserver.metrics.MetricsHandlerdd4d904b64cc00d8
    org.mockserver.mock.Expectation59d48e6018e143d7
    org.mockserver.mock.HttpStatea50eb936be8de545
    org.mockserver.mock.RequestMatchersfdae5474471a7bf7
    org.mockserver.mock.SortableExpectationIde9712856b0affd12
    org.mockserver.mock.action.http.HttpActionHandlerf09f9e5802bf4aee
    org.mockserver.mock.action.http.HttpActionHandler.1696b96f63e4e53a6
    org.mockserver.mock.action.http.HttpResponseActionHandler799aeb81fcb3089e
    org.mockserver.mock.listeners.MockServerEventLogNotifier2e3092e6c7c14dfb
    org.mockserver.mock.listeners.MockServerMatcherNotifierad3aa154052f222d
    org.mockserver.mock.listeners.MockServerMatcherNotifier.Cause24be7e699c8ee273
    org.mockserver.mock.listeners.MockServerMatcherNotifier.Cause.Type1a019e6b73e78465
    org.mockserver.model.Action263cd9e39f4e57d1
    org.mockserver.model.Action.Direction8619b73abf5bbffb
    org.mockserver.model.Action.Type29df155746a61c75
    org.mockserver.model.Body281f1a5f4ef82194
    org.mockserver.model.Body.Type8845ba9d22b84df5
    org.mockserver.model.BodyWithContentTypea9972c0f307ef09c
    org.mockserver.model.Cookies13103332c804eef3
    org.mockserver.model.Headere135e3322a9b098e
    org.mockserver.model.Headers2fcb01ec99dbd072
    org.mockserver.model.HttpForward.Schemee9c4d9811f35d933
    org.mockserver.model.HttpRequestad634297517fe1c7
    org.mockserver.model.HttpResponse41a53da68f1752ee
    org.mockserver.model.HttpTemplate.TemplateTypecc67c0de8cd2fd81
    org.mockserver.model.JsonBodyddb662c994a81d5b
    org.mockserver.model.KeyMatchStylee9c012c29f9e744b
    org.mockserver.model.KeyToMultiValuef2f1399edb22f464
    org.mockserver.model.KeysAndValuesb86a73b6c90f45de
    org.mockserver.model.KeysToMultiValues7c563c176ee38469
    org.mockserver.model.LogEntryBody16560ba57dd46a08
    org.mockserver.model.MediaType1c8b179251a80c08
    org.mockserver.model.Notc32b1b8088964f1a
    org.mockserver.model.NottableString582f0c4e2e874322
    org.mockserver.model.ObjectWithJsonToString4e34d09ac7ca091e
    org.mockserver.model.ObjectWithReflectiveEqualsHashCodeToStringc9e3e23ff2b87beb
    org.mockserver.model.Parameters0f751bde2307fccf
    org.mockserver.model.Protocole470237dfb83556b
    org.mockserver.model.RequestDefinition05e25b4dc42285fb
    org.mockserver.model.SocketAddressa8010e1c9a2ca938
    org.mockserver.model.SocketAddress.Scheme71beb5b0ba5a192a
    org.mockserver.model.StringBodyad368d60a260cfd1
    org.mockserver.netty.HttpRequestHandler6d85c0ef6de9f4fd
    org.mockserver.netty.MockServer06d082dc0afa9623
    org.mockserver.netty.MockServerUnificationInitializer6b93660e32963323
    org.mockserver.netty.proxy.socks.SocksDetectord3990ad44928289e
    org.mockserver.netty.responsewriter.NettyResponseWriter0f271f3833c1f9a8
    org.mockserver.netty.unification.HttpContentLengthRemover3ec3caa58ba49809
    org.mockserver.netty.unification.PortBindinga244ae6827e5b294
    org.mockserver.netty.unification.PortUnificationHandleraa2e9d8957f64815
    org.mockserver.netty.websocketregistry.CallbackWebSocketServerHandler9e43edb3377f8f43
    org.mockserver.openapi.OpenAPIConverter911f9bb9102dd00a
    org.mockserver.openapi.examples.JsonNodeExampleSerializer23c119e0c9261514
    org.mockserver.proxyconfiguration.ProxyConfiguration92d87e5a79dcc839
    org.mockserver.proxyconfiguration.ProxyConfiguration.Typed608965ab00949bd
    org.mockserver.responsewriter.ResponseWriterb129f98660e99aa4
    org.mockserver.scheduler.Schedulerbce312375c3e03db
    org.mockserver.scheduler.Scheduler.SchedulerThreadFactoryae66f34eff9b2b2c
    org.mockserver.serialization.Base64Converter06a2e44f9f3b1a6f
    org.mockserver.serialization.ExpectationIdSerializer72dcde2e9a5d7d79
    org.mockserver.serialization.ExpectationSerializerd48f8bf20933ae42
    org.mockserver.serialization.HttpRequestAndHttpResponseSerializerf7bc50a8ca96c5c3
    org.mockserver.serialization.HttpRequestSerializera39d9d24249a558e
    org.mockserver.serialization.HttpResponseSerializercfcb5c1d3bc0d6e9
    org.mockserver.serialization.JsonArraySerializerdf4afce7278123b0
    org.mockserver.serialization.LogEventRequestAndResponseSerializer18a40c4f25e98cc1
    org.mockserver.serialization.ObjectMapperFactorye46aabb3e2c0ccee
    org.mockserver.serialization.OpenAPIExpectationSerializer20d6d78507cacc3d
    org.mockserver.serialization.PortBindingSerializerc8cad92adbacb6ea
    org.mockserver.serialization.RequestDefinitionSerializer8bfc47387480aedd
    org.mockserver.serialization.VerificationSequenceSerializer4b93a23bf1ae0815
    org.mockserver.serialization.VerificationSerializerbe12dd80a09b0942
    org.mockserver.serialization.WebSocketMessageSerializerc3fdb2237635bafa
    org.mockserver.serialization.curl.HttpRequestToCurlSerializer6bd09f86662a1329
    org.mockserver.serialization.deserializers.body.BodyDTODeserializer7b4bcde1ff60ab6f
    org.mockserver.serialization.deserializers.body.BodyWithContentTypeDTODeserializerb6bb758e234b6ede
    org.mockserver.serialization.deserializers.collections.CookiesDeserializer264f553cbc630090
    org.mockserver.serialization.deserializers.collections.HeadersDeserializer4d938467bd88d270
    org.mockserver.serialization.deserializers.collections.KeysToMultiValuesDeserializer9c8be952ef0888e0
    org.mockserver.serialization.deserializers.collections.KeysToMultiValuesDeserializer.187491befaab1aaf6
    org.mockserver.serialization.deserializers.collections.ParametersDeserializer535be4ceea2eb211
    org.mockserver.serialization.deserializers.condition.TimeToLiveDTODeserializer777b08d9d3020ea1
    org.mockserver.serialization.deserializers.condition.VerificationTimesDTODeserializer5f8984a735a1e8f5
    org.mockserver.serialization.deserializers.expectation.OpenAPIExpectationDTODeserializer68e98c5b26e248aa
    org.mockserver.serialization.deserializers.request.RequestDefinitionDTODeserializer20db43cdc42d9b0a
    org.mockserver.serialization.deserializers.string.NottableStringDeserializer8e4b92fba4b703db
    org.mockserver.serialization.model.BodyDTOd918658b64056e83
    org.mockserver.serialization.model.BodyWithContentTypeDTOef2c485da9b73ca8
    org.mockserver.serialization.model.ExpectationDTO08f652cf404f54df
    org.mockserver.serialization.model.HttpRequestDTO85c4fd7649980e9f
    org.mockserver.serialization.model.HttpResponseDTOa5ac154402521620
    org.mockserver.serialization.model.NotDTOefb7e6d63e7c886b
    org.mockserver.serialization.model.RequestDefinitionDTOf4d30672b247c4b8
    org.mockserver.serialization.model.StringBodyDTO2e11159d024a2471
    org.mockserver.serialization.model.TimeToLiveDTO529b4526a6229120
    org.mockserver.serialization.model.TimesDTO499af123af2af2b1
    org.mockserver.serialization.serializers.body.BinaryBodyDTOSerializer5d9627e0c537a6b4
    org.mockserver.serialization.serializers.body.BinaryBodySerializer67ffdeba5b61fd69
    org.mockserver.serialization.serializers.body.JsonBodyDTOSerializer17d36b6fb5b362d6
    org.mockserver.serialization.serializers.body.JsonBodySerializerce3ff9b97655fa08
    org.mockserver.serialization.serializers.body.JsonPathBodyDTOSerializerbcdcf855776cfcba
    org.mockserver.serialization.serializers.body.JsonPathBodySerializer3b45317f93446a1c
    org.mockserver.serialization.serializers.body.JsonSchemaBodyDTOSerializere463aee285c960dc
    org.mockserver.serialization.serializers.body.JsonSchemaBodySerializere51d8bb715c3f90a
    org.mockserver.serialization.serializers.body.LogEntryBodyDTOSerializerde23edb8122576a7
    org.mockserver.serialization.serializers.body.LogEntryBodySerializerecd5b2f03b68a6e7
    org.mockserver.serialization.serializers.body.ParameterBodyDTOSerializer989372e18a525033
    org.mockserver.serialization.serializers.body.ParameterBodySerializere3f2b0bef54c4855
    org.mockserver.serialization.serializers.body.RegexBodyDTOSerializer99d4159a522be7bb
    org.mockserver.serialization.serializers.body.RegexBodySerializere52d058305e9794e
    org.mockserver.serialization.serializers.body.StringBodyDTOSerializerf1e812710b84e1f1
    org.mockserver.serialization.serializers.body.StringBodySerializerc0a5cc817c0e90ae
    org.mockserver.serialization.serializers.body.XPathBodyDTOSerializer8da5eb3b9333db73
    org.mockserver.serialization.serializers.body.XPathBodySerializer8beef6e0f4ab9c5c
    org.mockserver.serialization.serializers.body.XmlBodyDTOSerializer8dea3a45d383b448
    org.mockserver.serialization.serializers.body.XmlBodySerializerf1aaebc313bdb5e5
    org.mockserver.serialization.serializers.body.XmlSchemaBodyDTOSerializer3fdca2c5d54b2564
    org.mockserver.serialization.serializers.body.XmlSchemaBodySerializer555d3dc0daf4a55c
    org.mockserver.serialization.serializers.certificate.CertificateSerializerf004496b5e7e5135
    org.mockserver.serialization.serializers.certificate.X509CertificateSerializer934868bb382bdab2
    org.mockserver.serialization.serializers.collections.CookiesSerializerc9d12c63516b6f15
    org.mockserver.serialization.serializers.collections.HeadersSerializer730528f20abfd8a8
    org.mockserver.serialization.serializers.collections.KeysToMultiValuesSerializer1a946e861a97b8c9
    org.mockserver.serialization.serializers.collections.ParametersSerializer6549aaa2a062c3d1
    org.mockserver.serialization.serializers.condition.VerificationTimesDTOSerializer100c6ba88ccb1ee9
    org.mockserver.serialization.serializers.condition.VerificationTimesSerializer9a71689170093b33
    org.mockserver.serialization.serializers.expectation.OpenAPIExpectationDTOSerializer92da1bede793186f
    org.mockserver.serialization.serializers.expectation.OpenAPIExpectationSerializeref2984bf4cd89d5f
    org.mockserver.serialization.serializers.log.LogEntrySerializer41a84158b4cb09d8
    org.mockserver.serialization.serializers.matcher.HttpRequestPropertiesMatcherSerializer73ab3b27084afe88
    org.mockserver.serialization.serializers.matcher.HttpRequestsPropertiesMatcherSerializerb4b01fbd26ab2ed3
    org.mockserver.serialization.serializers.request.HttpRequestDTOSerializerfbab8601b39fd216
    org.mockserver.serialization.serializers.request.HttpRequestSerializerea4f5c01d4e9c10c
    org.mockserver.serialization.serializers.request.OpenAPIDefinitionDTOSerializer41457b716029345d
    org.mockserver.serialization.serializers.request.OpenAPIDefinitionSerializer18322585a719f229
    org.mockserver.serialization.serializers.response.HttpResponseDTOSerializer596505563cb1993d
    org.mockserver.serialization.serializers.response.HttpResponseSerializerc3b47e9219063a5e
    org.mockserver.serialization.serializers.response.TimeToLiveDTOSerializerce929959e2c2fb63
    org.mockserver.serialization.serializers.response.TimeToLiveSerializer80bf8224c7511190
    org.mockserver.serialization.serializers.response.TimesDTOSerializer9aca73c12d0a058b
    org.mockserver.serialization.serializers.response.TimesSerializer23be2d734585afeb
    org.mockserver.serialization.serializers.schema.AbstractSchemaSerializerfb6e7bda32d08bc0
    org.mockserver.serialization.serializers.schema.ArraySchemaSerializer0021d61c6a2be71d
    org.mockserver.serialization.serializers.schema.BinarySchemaSerializerd140910d748f8851
    org.mockserver.serialization.serializers.schema.BooleanSchemaSerializerdbca282d84365ff0
    org.mockserver.serialization.serializers.schema.ByteArraySchemaSerializer568dbf01344e3e79
    org.mockserver.serialization.serializers.schema.ComposedSchemaSerializercf584fcd8e56c900
    org.mockserver.serialization.serializers.schema.DateSchemaSerializerd08e8d79bb16c0bd
    org.mockserver.serialization.serializers.schema.DateTimeSchemaSerializer914020956b510c13
    org.mockserver.serialization.serializers.schema.EmailSchemaSerializerb80163ccb4015fbf
    org.mockserver.serialization.serializers.schema.FileSchemaSerializere8a74a86be7620e4
    org.mockserver.serialization.serializers.schema.IntegerSchemaSerializerc0d6572d9492ea2d
    org.mockserver.serialization.serializers.schema.MapSchemaSerializeraba0efbbaec8695d
    org.mockserver.serialization.serializers.schema.NumberSchemaSerializer194f5d4638c02bbf
    org.mockserver.serialization.serializers.schema.ObjectSchemaSerializer550cd7cfef2590ed
    org.mockserver.serialization.serializers.schema.PasswordSchemaSerializerc8bb32e1dc704fe5
    org.mockserver.serialization.serializers.schema.SchemaSerializer11becdf72583b458
    org.mockserver.serialization.serializers.schema.StringSchemaSerializer6206ca65317a7a19
    org.mockserver.serialization.serializers.schema.UUIDSchemaSerializer0e338d07a5fc8dc6
    org.mockserver.serialization.serializers.string.NottableStringSerializeree03f25e931d5509
    org.mockserver.socket.PortFactory70c14c34bb2ee1eb
    org.mockserver.socket.tls.KeyAndCertificateFactoryFactoryfd5e8416bc971b3a
    org.mockserver.socket.tls.NettySslContextFactory6b71b6b51490b290
    org.mockserver.socket.tls.SniHandlerb313c2e305314b74
    org.mockserver.socket.tls.bouncycastle.BCKeyAndCertificateFactorye5428bcd15e227ae
    org.mockserver.time.EpochService34a7c9806d9b3f32
    org.mockserver.url.URLParser12fef8700a682f76
    org.mockserver.uuid.UUIDServicec94b8535e09fe409
    org.mockserver.validator.jsonschema.JsonSchemaExpectationValidator297655baf0d2563a
    org.mockserver.validator.jsonschema.JsonSchemaValidatore8e00f488c2f2a11
    org.mockserver.version.Versionb3a08a3eaacabe2e
    org.owasp.dependencycheck.utils.BaseTest7400fe2fba6f4c12
    org.owasp.dependencycheck.utils.Checksumd3d032adcf9f83ac
    org.owasp.dependencycheck.utils.Checksum.FileChecksumsee01483ef72b41eb
    org.owasp.dependencycheck.utils.ChecksumTest6266b52ea69bc11e
    org.owasp.dependencycheck.utils.Downloader6bb25369b191e28e
    org.owasp.dependencycheck.utils.DownloaderITc99958a8c9eeb907
    org.owasp.dependencycheck.utils.ExpectedObjectInputStreamb025676b22c78801
    org.owasp.dependencycheck.utils.ExpectedObjectInputStreamTest7f2c52ec745186e2
    org.owasp.dependencycheck.utils.FileUtilsb4bc6fabbcb815d7
    org.owasp.dependencycheck.utils.FileUtilsTestb14eca4c9161c0ad
    org.owasp.dependencycheck.utils.HttpResourceConnection3ec0169837be2310
    org.owasp.dependencycheck.utils.HttpResourceConnectionTest1173d589d4bedeac
    org.owasp.dependencycheck.utils.InvalidSettingExceptionbe06f31793aa5d4a
    org.owasp.dependencycheck.utils.JsonArrayFixingInputStreamf4287617daab86e6
    org.owasp.dependencycheck.utils.JsonArrayFixingInputStreamTest8e50199c4d25a601
    org.owasp.dependencycheck.utils.SSLSocketFactoryExcba4c39911275cd8
    org.owasp.dependencycheck.utils.Settings54ff44735c3537b2
    org.owasp.dependencycheck.utils.SettingsTest48de1a6873d53cb2
    org.owasp.dependencycheck.utils.SimplePojo70f0c68e8d490d5b
    org.owasp.dependencycheck.utils.URLConnectionFactory20a3b96d5b95a4c9
    org.owasp.dependencycheck.utils.URLConnectionFactoryIT2511dc396ffd4e76
    org.owasp.dependencycheck.utils.search.FileContentSearch7adade2cb225852a
    org.owasp.dependencycheck.utils.search.FileContentSearchTeste60e03c37bd8fd2c
    org.slf4j.LoggerFactorya381b7ddf19bf47d
    org.slf4j.MDC4d31efbdc380017c
    org.slf4j.event.Levelb74840539e4c6dc2
    org.slf4j.helpers.NOPLoggerFactory54f5632bfcb8d8d5
    org.slf4j.helpers.SubstituteLoggerFactorydc7efc0107a4a62d
    org.slf4j.helpers.Util857ff3acc0576435
    org.slf4j.impl.StaticLoggerBinder039b3c899e055991
    org.slf4j.impl.StaticMDCBinder649700d80abb641d
    sun.security.ec.ECDHKeyAgreement98786957379e8052
    sun.security.ec.ECDSASignaturea87c8a3b4c249cae
    sun.security.ec.ECDSASignature.Raw34fd4d4f3f7b07d0
    sun.security.ec.ECDSASignature.SHA19a8c8c1fccb702ae
    sun.security.ec.ECDSASignature.SHA2244ab113fda835de86
    sun.security.ec.ECDSASignature.SHA256b847f3aa86c638a1
    sun.security.ec.ECDSASignature.SHA3841f1f0bb690cec78f
    sun.security.ec.ECDSASignature.SHA512ca949e76b48c64db
    sun.security.ec.ECKeyFactory5ffb1bf65edd3e5b
    sun.security.ec.ECKeyPairGeneratord54779aa8847492b
    sun.security.ec.ECOperations8b042a6db0c7d250
    sun.security.ec.ECPrivateKeyImple88e88043bb769c8
    sun.security.ec.ECPublicKeyImpl579a0a9fbecbe2cb
    sun.security.ec.SunECed7aaa5d851afecd
    sun.security.ec.SunEC.12aaa42d831e10c34
    sun.security.ec.SunECEntries1fc66cad07ebf775
    sun.security.ec.point.AffinePoint4473cc59511e4f38
    sun.security.ec.point.ProjectivePoint42bfa254a41c4522
    sun.security.ec.point.ProjectivePoint.Immutablef385d4fcc17d6f05
    sun.security.ec.point.ProjectivePoint.Mutableb5e8bd959990211c
    \ No newline at end of file +Sessions

    Sessions

    This coverage report is based on execution data from the following sessions:

    SessionStart TimeDump Time
    fv-az1110-746-e6c24eb8Dec 13, 2023 11:39:19 AMDec 13, 2023 11:39:22 AM
    fv-az1110-746-b2dcd06fDec 13, 2023 11:39:52 AMDec 13, 2023 11:39:57 AM

    Execution data for the following classes is considered in this report:

    ClassId
    ch.qos.logback.classic.Levele2155b45608f35d7
    ch.qos.logback.classic.Loggerf35d4d4ad6b0173a
    ch.qos.logback.classic.LoggerContextd057ce3cea631d6b
    ch.qos.logback.classic.PatternLayout6b4fcc6f23c89763
    ch.qos.logback.classic.encoder.PatternLayoutEncoderb5df0ef8a1a735ea
    ch.qos.logback.classic.joran.JoranConfigurator63bb214e0f720ae8
    ch.qos.logback.classic.joran.action.ConfigurationAction90d861250f52b75f
    ch.qos.logback.classic.joran.action.ConsolePluginAction2969e4b8b532cec5
    ch.qos.logback.classic.joran.action.ContextNameAction4ffd1a75c51a473f
    ch.qos.logback.classic.joran.action.EvaluatorActioncc2e7d3c2fc18087
    ch.qos.logback.classic.joran.action.InsertFromJNDIActionfce902dbb9dbd2a7
    ch.qos.logback.classic.joran.action.JMXConfiguratorActiona58b513df0924938
    ch.qos.logback.classic.joran.action.LevelAction8f89eefaf59271f1
    ch.qos.logback.classic.joran.action.LoggerAction8d55f78fdf86cda9
    ch.qos.logback.classic.joran.action.LoggerContextListenerAction835263a7d9309be9
    ch.qos.logback.classic.joran.action.ReceiverAction9e9bd00760b812f2
    ch.qos.logback.classic.joran.action.RootLoggerAction0528540059645c3d
    ch.qos.logback.classic.pattern.ClassicConverter78403f02659989af
    ch.qos.logback.classic.pattern.EnsureExceptionHandlingf9c97b8da786f083
    ch.qos.logback.classic.pattern.LevelConverter05b4415a3dbcaaf4
    ch.qos.logback.classic.pattern.LineSeparatorConverter2e2dc69c3bdc6cd3
    ch.qos.logback.classic.pattern.MessageConverteref2f64b51bca1aac
    ch.qos.logback.classic.pattern.ThrowableHandlingConverter266cc4ca75fcd39d
    ch.qos.logback.classic.pattern.ThrowableProxyConverter46dc88ad0c97e462
    ch.qos.logback.classic.selector.DefaultContextSelectorfd861e3242ccff2f
    ch.qos.logback.classic.sift.SiftAction9f73df3037d696a7
    ch.qos.logback.classic.spi.EventArgUtil88f3990bf293da69
    ch.qos.logback.classic.spi.LoggerContextVOecac106025bca4a3
    ch.qos.logback.classic.spi.LoggingEvent75c5fe4974050a6f
    ch.qos.logback.classic.spi.PlatformInfo0e826c07ba59ae45
    ch.qos.logback.classic.spi.TurboFilterListaa3cf39d0c0c651e
    ch.qos.logback.classic.util.ContextInitializerf560906e9553d69f
    ch.qos.logback.classic.util.ContextSelectorStaticBinder271bbf6fa66123b1
    ch.qos.logback.classic.util.DefaultNestedComponentRules840b992fa00c7e60
    ch.qos.logback.classic.util.EnvUtil39b5543082458460
    ch.qos.logback.classic.util.LogbackMDCAdaptera05682a253fd41d4
    ch.qos.logback.classic.util.LoggerNameUtilb8d88c97a0cadcfa
    ch.qos.logback.core.BasicStatusManagerf42ab87c1f66e222
    ch.qos.logback.core.ConsoleAppenderd101474cda5e45c9
    ch.qos.logback.core.ContextBase707ceedbd09855e6
    ch.qos.logback.core.CoreConstants09363a83cd5b4101
    ch.qos.logback.core.LayoutBasee6bfd3b1edc3ab01
    ch.qos.logback.core.OutputStreamAppender79e07918442741f3
    ch.qos.logback.core.UnsynchronizedAppenderBase0672be5753362c70
    ch.qos.logback.core.encoder.EncoderBasef2507a7276f26c10
    ch.qos.logback.core.encoder.LayoutWrappingEncoder6c80790d34287d6b
    ch.qos.logback.core.helpers.CyclicBuffer422c7b9f7318f10a
    ch.qos.logback.core.joran.GenericConfigurator3f448ac12ab6a263
    ch.qos.logback.core.joran.JoranConfiguratorBase38c4decb94b320f7
    ch.qos.logback.core.joran.action.AbstractEventEvaluatorActionbf3cf252a2822906
    ch.qos.logback.core.joran.action.Action7cf2d4f3569d0788
    ch.qos.logback.core.joran.action.AppenderAction22c3c549e13663a1
    ch.qos.logback.core.joran.action.AppenderRefAction3c0bd482c9925292
    ch.qos.logback.core.joran.action.ContextPropertyAction4d47e7c289aa172b
    ch.qos.logback.core.joran.action.ConversionRuleAction6ad21d1237f36c71
    ch.qos.logback.core.joran.action.DefinePropertyAction3d08042673a6e5dc
    ch.qos.logback.core.joran.action.IADataForBasicPropertycbe844e4f3903797
    ch.qos.logback.core.joran.action.IADataForComplexProperty9b210f34ec734f9e
    ch.qos.logback.core.joran.action.ImplicitAction86dae105afebc13c
    ch.qos.logback.core.joran.action.IncludeAction2775b098b6b111dc
    ch.qos.logback.core.joran.action.NOPAction69348e8c62d1a733
    ch.qos.logback.core.joran.action.NestedBasicPropertyIA89ed90b29bc14f36
    ch.qos.logback.core.joran.action.NestedBasicPropertyIA.108e44e1168d7ea7b
    ch.qos.logback.core.joran.action.NestedComplexPropertyIA178aace2d0448f6a
    ch.qos.logback.core.joran.action.NestedComplexPropertyIA.15160250e9b77af57
    ch.qos.logback.core.joran.action.NewRuleAction265aa9ab808da62d
    ch.qos.logback.core.joran.action.ParamActionad2376677140dcb4
    ch.qos.logback.core.joran.action.PropertyAction81b578f6564d00a1
    ch.qos.logback.core.joran.action.ShutdownHookActione67fa543b234ff0d
    ch.qos.logback.core.joran.action.StatusListenerAction4cf479b0b81398f3
    ch.qos.logback.core.joran.action.TimestampActiond7a48c3648a91ea8
    ch.qos.logback.core.joran.conditional.ElseActionfe56c4a40374cd79
    ch.qos.logback.core.joran.conditional.IfAction87c92d3efc3996c9
    ch.qos.logback.core.joran.conditional.ThenActiondd7886fdda1bb93e
    ch.qos.logback.core.joran.conditional.ThenOrElseActionBase9e00d4141028a50c
    ch.qos.logback.core.joran.event.BodyEvent0c8f2f07c6888bab
    ch.qos.logback.core.joran.event.EndEvent0c2e1da47ad508cc
    ch.qos.logback.core.joran.event.SaxEvent80662212b5cc3b53
    ch.qos.logback.core.joran.event.SaxEventRecorder639eb66c9ea90531
    ch.qos.logback.core.joran.event.StartEvent914de9498a78076d
    ch.qos.logback.core.joran.spi.CAI_WithLocatorSupportf96b1cd7be830663
    ch.qos.logback.core.joran.spi.ConfigurationWatchListfba78df767e05182
    ch.qos.logback.core.joran.spi.ConsoleTarget6e2cdd5051fbf329
    ch.qos.logback.core.joran.spi.ConsoleTarget.19612187e03729cd5
    ch.qos.logback.core.joran.spi.ConsoleTarget.2ea3332451607183e
    ch.qos.logback.core.joran.spi.DefaultNestedComponentRegistryf3ac4f0369a959d6
    ch.qos.logback.core.joran.spi.ElementPathab4711e5039d31b0
    ch.qos.logback.core.joran.spi.ElementSelector605584d4fe3a6b67
    ch.qos.logback.core.joran.spi.EventPlayer739ef0261c196bb2
    ch.qos.logback.core.joran.spi.HostClassAndPropertyDouble199aef84b04dd48c
    ch.qos.logback.core.joran.spi.InterpretationContextce4c00a894617c6e
    ch.qos.logback.core.joran.spi.Interpreter634fa7d2dde257a5
    ch.qos.logback.core.joran.spi.NoAutoStartUtil6fe8a98ba9c5ce85
    ch.qos.logback.core.joran.spi.SimpleRuleStore19c383749dc55e01
    ch.qos.logback.core.joran.util.ConfigurationWatchListUtila35db514967601cf
    ch.qos.logback.core.joran.util.PropertySetter8f7e7385541ef400
    ch.qos.logback.core.joran.util.StringToObjectConverter2e393f7832702c3f
    ch.qos.logback.core.joran.util.beans.BeanDescriptiona249e33828fc438a
    ch.qos.logback.core.joran.util.beans.BeanDescriptionCache9d679b6b2b24c9f7
    ch.qos.logback.core.joran.util.beans.BeanDescriptionFactory1abb714ec36ec08c
    ch.qos.logback.core.joran.util.beans.BeanUtil889c2d82913f56d3
    ch.qos.logback.core.net.ssl.SSLNestedComponentRegistryRulescdeda61b0c175e73
    ch.qos.logback.core.pattern.Converter925f6cb417029041
    ch.qos.logback.core.pattern.ConverterUtildd9b10877d49fdef
    ch.qos.logback.core.pattern.DynamicConverter66d903dd096314f6
    ch.qos.logback.core.pattern.FormattingConverterc3110b5495da3c0a
    ch.qos.logback.core.pattern.LiteralConverter65b2e319699170e6
    ch.qos.logback.core.pattern.PatternLayoutBasea804a6743796ed4f
    ch.qos.logback.core.pattern.PatternLayoutEncoderBase8869b320200d58ca
    ch.qos.logback.core.pattern.parser.Compiler1c6d6460ba38602b
    ch.qos.logback.core.pattern.parser.FormattingNodec1ea708a78deec04
    ch.qos.logback.core.pattern.parser.Node6c2db44212d84b68
    ch.qos.logback.core.pattern.parser.Parser7b1aef016f4f95f3
    ch.qos.logback.core.pattern.parser.SimpleKeywordNodef700f290325e600d
    ch.qos.logback.core.pattern.parser.Token4f7e433507e860ed
    ch.qos.logback.core.pattern.parser.TokenStreamb0bdcf4b6e0f87aa
    ch.qos.logback.core.pattern.parser.TokenStream.1fd95c0c735fd0ef7
    ch.qos.logback.core.pattern.parser.TokenStream.TokenizerState3467111fb3bf68e6
    ch.qos.logback.core.pattern.util.RegularEscapeUtil1cc07c8d9d362995
    ch.qos.logback.core.pattern.util.RestrictedEscapeUtil05ac894407a1822b
    ch.qos.logback.core.spi.AppenderAttachableImpl356e7661a1308dba
    ch.qos.logback.core.spi.ContextAwareBase507768fbb8be644f
    ch.qos.logback.core.spi.ContextAwareImple054ab71d51b27ec
    ch.qos.logback.core.spi.FilterAttachableImple0d2c4e50fd975d2
    ch.qos.logback.core.spi.FilterReply8ffb0681c411c96a
    ch.qos.logback.core.spi.LogbackLockb3b7af385a799776
    ch.qos.logback.core.status.InfoStatus1d3c0987bb0ffe10
    ch.qos.logback.core.status.StatusBase7c1cffd1a9986020
    ch.qos.logback.core.status.StatusUtilb5fec2971e383d38
    ch.qos.logback.core.subst.Node173ef78e5278fe04
    ch.qos.logback.core.subst.Node.Typeb8a40f4b8fbe988c
    ch.qos.logback.core.subst.NodeToStringTransformer1e8620cc7b5415cb
    ch.qos.logback.core.subst.NodeToStringTransformer.15967309dea3614e0
    ch.qos.logback.core.subst.Parserc06549d7b1e1487d
    ch.qos.logback.core.subst.Parser.178a0480962b020ea
    ch.qos.logback.core.subst.Token3f38da4ca554aafd
    ch.qos.logback.core.subst.Token.Typed037d0aeea85e517
    ch.qos.logback.core.subst.Tokenizer6a388c818909b082
    ch.qos.logback.core.subst.Tokenizer.15446562f97e885f7
    ch.qos.logback.core.subst.Tokenizer.TokenizerStatea43d7665d3995d51
    ch.qos.logback.core.util.AggregationTypee82dcae26638e651
    ch.qos.logback.core.util.COWArrayListfd4fbd3c0c90c052
    ch.qos.logback.core.util.CachingDateFormatter371338e1c1d98e24
    ch.qos.logback.core.util.EnvUtiladc66c330ddaa6c4
    ch.qos.logback.core.util.Loader6a7f26fdd43cf12b
    ch.qos.logback.core.util.Loader.1d6e48f075e51e44b
    ch.qos.logback.core.util.OptionHelpered7183d6bad9d2a9
    ch.qos.logback.core.util.StatusListenerConfigHelperb3e50ff76e275069
    ch.qos.logback.core.util.StatusPrinter04fef78263405164
    com.fasterxml.jackson.annotation.JsonAutoDetect.16be52ec71dcf28a2
    com.fasterxml.jackson.annotation.JsonAutoDetect.Visibilitye56bcd385626eead
    com.fasterxml.jackson.annotation.JsonCreator.Mode5e1d947ef261f336
    com.fasterxml.jackson.annotation.JsonFormat.Featuree632f8db525e6519
    com.fasterxml.jackson.annotation.JsonFormat.Features75fb2eb9717dc62a
    com.fasterxml.jackson.annotation.JsonFormat.Shapec19c22f9661f3b7d
    com.fasterxml.jackson.annotation.JsonFormat.Value0eb8231d09bfd09a
    com.fasterxml.jackson.annotation.JsonIgnoreProperties.Value4f0da3cf85f6ca76
    com.fasterxml.jackson.annotation.JsonInclude.Include30ab0a782ad08747
    com.fasterxml.jackson.annotation.JsonInclude.Valuea558d9f40414e748
    com.fasterxml.jackson.annotation.JsonIncludeProperties.Value7ed084480a07ee84
    com.fasterxml.jackson.annotation.JsonProperty.Accessb5322e85ff85e8b9
    com.fasterxml.jackson.annotation.JsonSetter.Value6ee26ce006658a00
    com.fasterxml.jackson.annotation.Nulls724f990ec72b618f
    com.fasterxml.jackson.annotation.PropertyAccessora506c0b4a9292088
    com.fasterxml.jackson.core.Base64Variant820db952b2ce1918
    com.fasterxml.jackson.core.Base64Variant.PaddingReadBehaviourdd0e63a614fe004b
    com.fasterxml.jackson.core.Base64Variantse646bbe091ae79c0
    com.fasterxml.jackson.core.ErrorReportConfiguration6ae7b9c14364f861
    com.fasterxml.jackson.core.JsonFactory4b6dbe517dc74f05
    com.fasterxml.jackson.core.JsonFactory.Feature6053a66ef91d8599
    com.fasterxml.jackson.core.JsonGenerator8a53f1394a871e41
    com.fasterxml.jackson.core.JsonGenerator.Featuredca43627a1b1d378
    com.fasterxml.jackson.core.JsonParserbfa2b2aaf45dbdaf
    com.fasterxml.jackson.core.JsonParser.Feature7e095b73debaa45f
    com.fasterxml.jackson.core.JsonParser.NumberType88e7ccc17e76b9de
    com.fasterxml.jackson.core.JsonStreamContext369abe89770bcf3d
    com.fasterxml.jackson.core.JsonTokeneed63a6e4a8e9120
    com.fasterxml.jackson.core.ObjectCodec4de1a295d9dc31ca
    com.fasterxml.jackson.core.PrettyPrinterf27d5528a26794c9
    com.fasterxml.jackson.core.StreamReadCapabilitya4c561ff4de25114
    com.fasterxml.jackson.core.StreamReadConstraintsfef85c00a0df6225
    com.fasterxml.jackson.core.StreamWriteCapability20b236b266d25323
    com.fasterxml.jackson.core.StreamWriteConstraintsf2bb5b3756dacf82
    com.fasterxml.jackson.core.TokenStreamFactory41de330f27eca392
    com.fasterxml.jackson.core.TreeCodec18594f8a8dcec6a2
    com.fasterxml.jackson.core.Version9e2d74f157825603
    com.fasterxml.jackson.core.base.GeneratorBase769b434d47814ead
    com.fasterxml.jackson.core.base.ParserBase7ea5c57b85e68f85
    com.fasterxml.jackson.core.base.ParserMinimalBasedafc6c7b6eb27cb5
    com.fasterxml.jackson.core.io.CharTypes07a8747913d8e991
    com.fasterxml.jackson.core.io.ContentReferencec1bf9547a5b31574
    com.fasterxml.jackson.core.io.IOContext92f945a4db96d4d1
    com.fasterxml.jackson.core.io.JsonStringEncodercaf3b669acbbe223
    com.fasterxml.jackson.core.io.NumberInput6b34a37c1fb6a484
    com.fasterxml.jackson.core.io.NumberOutput9603d1200ce5afbc
    com.fasterxml.jackson.core.io.SegmentedStringWriteraf9b17af11ce151f
    com.fasterxml.jackson.core.io.SerializedStringde06c047872018ad
    com.fasterxml.jackson.core.json.JsonGeneratorImpl62f7e0732a7b3f16
    com.fasterxml.jackson.core.json.JsonReadContext7fe93ff4dfcd910a
    com.fasterxml.jackson.core.json.JsonWriteContext80adf9bb4918112e
    com.fasterxml.jackson.core.json.ReaderBasedJsonParser5a748aacc97cbeaf
    com.fasterxml.jackson.core.json.WriterBasedJsonGenerator4c9c68d95ea16405
    com.fasterxml.jackson.core.sym.ByteQuadsCanonicalizer5054f4087e115bac
    com.fasterxml.jackson.core.sym.ByteQuadsCanonicalizer.TableInfoeb0211d6faa23d01
    com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer098437effe93aab8
    com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer.Bucket7c0255c4c5f898c2
    com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer.TableInfo7f8a1e78ae4259c6
    com.fasterxml.jackson.core.type.ResolvedType8a4589ad9960ed59
    com.fasterxml.jackson.core.util.BufferRecycler130f2ce298e329d8
    com.fasterxml.jackson.core.util.BufferRecyclers4e7bee8eece90b3a
    com.fasterxml.jackson.core.util.DefaultIndenter18913563e8366f39
    com.fasterxml.jackson.core.util.DefaultPrettyPrinterdffce786178e5ff1
    com.fasterxml.jackson.core.util.DefaultPrettyPrinter.FixedSpaceIndenter418687d575a4f083
    com.fasterxml.jackson.core.util.DefaultPrettyPrinter.NopIndenter110c0bf83e5c079c
    com.fasterxml.jackson.core.util.InternCacheb55c4c122f488f2e
    com.fasterxml.jackson.core.util.JacksonFeatureSet69b6b3d8af7f13b3
    com.fasterxml.jackson.core.util.JsonRecyclerPoolsbb15cd8e45e37fee
    com.fasterxml.jackson.core.util.JsonRecyclerPools.ThreadLocalPoolb47528b0197c08e2
    com.fasterxml.jackson.core.util.MinimalPrettyPrinter4f783f17769fbb24
    com.fasterxml.jackson.core.util.ReadConstrainedTextBuffer23fc9ce24061d845
    com.fasterxml.jackson.core.util.RecyclerPool.ThreadLocalPoolBase23bd83512f98e1cd
    com.fasterxml.jackson.core.util.Separatorsdb601d3f3bad91c2
    com.fasterxml.jackson.core.util.Separators.Spacing511422cc9db17520
    com.fasterxml.jackson.core.util.TextBuffere0024e1d666b4905
    com.fasterxml.jackson.core.util.VersionUtil665fa94b3d0b07a9
    com.fasterxml.jackson.databind.AnnotationIntrospector905eb800c47f61a4
    com.fasterxml.jackson.databind.AnnotationIntrospector.ReferenceProperty09f92466c78dd697
    com.fasterxml.jackson.databind.AnnotationIntrospector.ReferenceProperty.Typed90a083248c5b3dc
    com.fasterxml.jackson.databind.BeanDescriptionb72f4d814c7d9796
    com.fasterxml.jackson.databind.BeanProperty.Std1dc3c0a141338eba
    com.fasterxml.jackson.databind.DatabindContext190fc61056492212
    com.fasterxml.jackson.databind.DeserializationConfiga66abddaffd0eeda
    com.fasterxml.jackson.databind.DeserializationContexte42cf81978826049
    com.fasterxml.jackson.databind.DeserializationFeaturee8c5e101ec4650d4
    com.fasterxml.jackson.databind.JavaType4b4e8dfd897d7a79
    com.fasterxml.jackson.databind.JsonDeserializerf155d5de89ce5a60
    com.fasterxml.jackson.databind.JsonNode56cae57f74bf28ed
    com.fasterxml.jackson.databind.JsonNode.1626d441d5b9eee73
    com.fasterxml.jackson.databind.JsonSerializable.Based7667d73e9aa24c4
    com.fasterxml.jackson.databind.JsonSerializeradb9d1fae01b02c7
    com.fasterxml.jackson.databind.KeyDeserializer57c3ce9990767641
    com.fasterxml.jackson.databind.MapperFeatured7d85f4bfd3cff7a
    com.fasterxml.jackson.databind.MappingJsonFactory65cdd9294dfaf29a
    com.fasterxml.jackson.databind.Modulebb66b81d910dbd05
    com.fasterxml.jackson.databind.ObjectMapper1267d692f0f6e0ba
    com.fasterxml.jackson.databind.ObjectMapper.10b9220e9c1bc2c47
    com.fasterxml.jackson.databind.ObjectReader1d24d1af08075eb3
    com.fasterxml.jackson.databind.ObjectWriter8c15ae21c6fdf9f9
    com.fasterxml.jackson.databind.ObjectWriter.GeneratorSettings6cd7d8bd9a437157
    com.fasterxml.jackson.databind.ObjectWriter.Prefetch25feb6c8d812df4f
    com.fasterxml.jackson.databind.PropertyMetadata56620abf8cdd07c8
    com.fasterxml.jackson.databind.PropertyName217cf81be2326911
    com.fasterxml.jackson.databind.SerializationConfig40620b2ae2347380
    com.fasterxml.jackson.databind.SerializationFeature9609ec0ec1e8bc2a
    com.fasterxml.jackson.databind.SerializerProvider10f427a250ca2427
    com.fasterxml.jackson.databind.cfg.BaseSettings74949427e8604cd4
    com.fasterxml.jackson.databind.cfg.CoercionAction9e15561f16680f97
    com.fasterxml.jackson.databind.cfg.CoercionConfigffad61191adeb87e
    com.fasterxml.jackson.databind.cfg.CoercionConfigs8937a55c926c734f
    com.fasterxml.jackson.databind.cfg.CoercionInputShape90aad4e377b3dccd
    com.fasterxml.jackson.databind.cfg.ConfigOverridef1771a0d408303c8
    com.fasterxml.jackson.databind.cfg.ConfigOverride.Empty3372ed519d9bafb4
    com.fasterxml.jackson.databind.cfg.ConfigOverrides7943101710d9f910
    com.fasterxml.jackson.databind.cfg.ConstructorDetector9af1c9a41cb4b83d
    com.fasterxml.jackson.databind.cfg.ConstructorDetector.SingleArgConstructorb0c67222cebc30be
    com.fasterxml.jackson.databind.cfg.ContextAttributes216e6db5a97ae48a
    com.fasterxml.jackson.databind.cfg.ContextAttributes.Implede427cff276c0b8
    com.fasterxml.jackson.databind.cfg.DatatypeFeaturesf4893ef156575441
    com.fasterxml.jackson.databind.cfg.DatatypeFeatures.DefaultHolder81838084595fa0c8
    com.fasterxml.jackson.databind.cfg.DefaultCacheProvider6bbb2aa855b50726
    com.fasterxml.jackson.databind.cfg.DeserializerFactoryConfig7861ff22cec5640b
    com.fasterxml.jackson.databind.cfg.EnumFeature16e95ce7a3f1f1ee
    com.fasterxml.jackson.databind.cfg.JsonNodeFeature93b45511772e9fc3
    com.fasterxml.jackson.databind.cfg.MapperConfigc7b0b1bb3bc6f9f1
    com.fasterxml.jackson.databind.cfg.MapperConfigBase5bb7b8ef48c720d7
    com.fasterxml.jackson.databind.cfg.MutableCoercionConfig262e6b36c9ca989e
    com.fasterxml.jackson.databind.cfg.SerializerFactoryConfigd93f22d3258ee4c0
    com.fasterxml.jackson.databind.deser.AbstractDeserializer0e1ba7162cf5f27f
    com.fasterxml.jackson.databind.deser.BasicDeserializerFactory3944ee9b76fde7a2
    com.fasterxml.jackson.databind.deser.BasicDeserializerFactory.ContainerDefaultMappingsdf7805e17fdc7522
    com.fasterxml.jackson.databind.deser.BasicDeserializerFactory.CreatorCollectionStatef0dbb90499e14fa4
    com.fasterxml.jackson.databind.deser.BeanDeserializer51262781f5e28489
    com.fasterxml.jackson.databind.deser.BeanDeserializerBasedf7ad1189a3b508b
    com.fasterxml.jackson.databind.deser.BeanDeserializerBuilderd5bdf1bb9953f729
    com.fasterxml.jackson.databind.deser.BeanDeserializerFactory65809d9bdea9493b
    com.fasterxml.jackson.databind.deser.DefaultDeserializationContext5756779a22fd7d68
    com.fasterxml.jackson.databind.deser.DefaultDeserializationContext.Impl8057860fe47eb5da
    com.fasterxml.jackson.databind.deser.DeserializerCache7d85f058f583e5dd
    com.fasterxml.jackson.databind.deser.DeserializerFactory2ebdf24d93849f1a
    com.fasterxml.jackson.databind.deser.Deserializers.Basea3b8086adb6ca320
    com.fasterxml.jackson.databind.deser.SettableBeanPropertye32815b47681953f
    com.fasterxml.jackson.databind.deser.ValueInstantiator500a74eea26ebb5d
    com.fasterxml.jackson.databind.deser.ValueInstantiator.Base56fce65bc9fdb762
    com.fasterxml.jackson.databind.deser.ValueInstantiators.Base409ddb33d4295a19
    com.fasterxml.jackson.databind.deser.impl.BeanPropertyMapabab716eded67ac2
    com.fasterxml.jackson.databind.deser.impl.CreatorCandidate3ec9d7560819c0da
    com.fasterxml.jackson.databind.deser.impl.CreatorCandidate.Paramc635ef4a61409ee4
    com.fasterxml.jackson.databind.deser.impl.CreatorCollector0f8b3def4682a020
    com.fasterxml.jackson.databind.deser.impl.FailingDeserializer4904d8577f214eb3
    com.fasterxml.jackson.databind.deser.impl.FieldProperty79a77498e066a15d
    com.fasterxml.jackson.databind.deser.impl.JDKValueInstantiators008ddf7a64eb2d4a
    com.fasterxml.jackson.databind.deser.impl.JDKValueInstantiators.ArrayListInstantiator187a1232f1bf2643
    com.fasterxml.jackson.databind.deser.impl.MethodPropertydf95398e08d528a0
    com.fasterxml.jackson.databind.deser.impl.NullsConstantProvider83cd716157aa0f9a
    com.fasterxml.jackson.databind.deser.std.BaseNodeDeserializer82dde7b6c751ad90
    com.fasterxml.jackson.databind.deser.std.BaseNodeDeserializer.ContainerStack47ba851b95cd1477
    com.fasterxml.jackson.databind.deser.std.CollectionDeserializer264403aa8c0a30f7
    com.fasterxml.jackson.databind.deser.std.ContainerDeserializerBase0f7cf99ff0b0c8a0
    com.fasterxml.jackson.databind.deser.std.DateDeserializers9e6826e9538c1d95
    com.fasterxml.jackson.databind.deser.std.EnumDeserializerc3ad157384d2680f
    com.fasterxml.jackson.databind.deser.std.FromStringDeserializerb5093028e19eaf91
    com.fasterxml.jackson.databind.deser.std.JdkDeserializersa7ac27fec28e8de9
    com.fasterxml.jackson.databind.deser.std.JsonNodeDeserializer39345e6cbb5ce5e8
    com.fasterxml.jackson.databind.deser.std.NumberDeserializersaf4aa96d306dfbb7
    com.fasterxml.jackson.databind.deser.std.NumberDeserializers.BooleanDeserializer30e8686ef1609fb9
    com.fasterxml.jackson.databind.deser.std.NumberDeserializers.IntegerDeserializercb695275ccadb732
    com.fasterxml.jackson.databind.deser.std.NumberDeserializers.LongDeserializer003b30a97cae021a
    com.fasterxml.jackson.databind.deser.std.NumberDeserializers.PrimitiveOrWrapperDeserializer467caf19a87c057e
    com.fasterxml.jackson.databind.deser.std.ObjectArrayDeserializer161f6edb37261bc7
    com.fasterxml.jackson.databind.deser.std.PrimitiveArrayDeserializersd1b5f17fcf047f5b
    com.fasterxml.jackson.databind.deser.std.PrimitiveArrayDeserializers.ByteDeser113f5a9a9c0e8a29
    com.fasterxml.jackson.databind.deser.std.StdDeserializer2122bf750d1b5b89
    com.fasterxml.jackson.databind.deser.std.StdKeyDeserializers2ca4ab5d0f0b71dd
    com.fasterxml.jackson.databind.deser.std.StdScalarDeserializer25286f364997b846
    com.fasterxml.jackson.databind.deser.std.StdValueInstantiator34181f4c11253cc9
    com.fasterxml.jackson.databind.deser.std.StringArrayDeserializerdbeac8e57a8a807e
    com.fasterxml.jackson.databind.deser.std.StringCollectionDeserializerea68b80c909c4561
    com.fasterxml.jackson.databind.deser.std.StringDeserializer36ba9f92a53b7892
    com.fasterxml.jackson.databind.ext.Java7Handlers31410c423d95a2d0
    com.fasterxml.jackson.databind.ext.Java7HandlersImpl423b0b9d126fb382
    com.fasterxml.jackson.databind.ext.Java7Support4b7557784caa415a
    com.fasterxml.jackson.databind.ext.Java7SupportImpl94a94fc44678f7e9
    com.fasterxml.jackson.databind.ext.OptionalHandlerFactorya873be98e8f52009
    com.fasterxml.jackson.databind.introspect.AccessorNamingStrategy3d3b7f563f5ca70a
    com.fasterxml.jackson.databind.introspect.AccessorNamingStrategy.Provider6026222786456f26
    com.fasterxml.jackson.databind.introspect.Annotated47d3d49f2b832d54
    com.fasterxml.jackson.databind.introspect.AnnotatedClass208d1216b93f97d9
    com.fasterxml.jackson.databind.introspect.AnnotatedClass.Creatorsecbba5a1c87c995f
    com.fasterxml.jackson.databind.introspect.AnnotatedClassResolver9c1435b88f5e9e91
    com.fasterxml.jackson.databind.introspect.AnnotatedConstructoreaf946db37898a44
    com.fasterxml.jackson.databind.introspect.AnnotatedCreatorCollectorf1dbd789d7b2161e
    com.fasterxml.jackson.databind.introspect.AnnotatedFielde6e45b21b9cdeda3
    com.fasterxml.jackson.databind.introspect.AnnotatedFieldCollectord6830919dea39e8f
    com.fasterxml.jackson.databind.introspect.AnnotatedFieldCollector.FieldBuilder571d9e7fb561d385
    com.fasterxml.jackson.databind.introspect.AnnotatedMember5879537c033bd580
    com.fasterxml.jackson.databind.introspect.AnnotatedMethodad2f0bf303d90ae0
    com.fasterxml.jackson.databind.introspect.AnnotatedMethodCollectore8e34bff5e47f125
    com.fasterxml.jackson.databind.introspect.AnnotatedMethodCollector.MethodBuilderb522d96f88a7ade4
    com.fasterxml.jackson.databind.introspect.AnnotatedMethodMapd69be24a07cecf16
    com.fasterxml.jackson.databind.introspect.AnnotatedParameter05eab262cf202b22
    com.fasterxml.jackson.databind.introspect.AnnotatedWithParams54f7d4537c15cfdb
    com.fasterxml.jackson.databind.introspect.AnnotationCollectorc389709d2ffbb364
    com.fasterxml.jackson.databind.introspect.AnnotationCollector.EmptyCollectora87b6b2439611ec7
    com.fasterxml.jackson.databind.introspect.AnnotationCollector.NoAnnotations9173d7167a075d90
    com.fasterxml.jackson.databind.introspect.AnnotationCollector.OneCollector4d7ed4cd12d6011c
    com.fasterxml.jackson.databind.introspect.AnnotationMap78aa63dcada1ee05
    com.fasterxml.jackson.databind.introspect.BasicBeanDescription4f0d484434fb6325
    com.fasterxml.jackson.databind.introspect.BasicClassIntrospectorfcecadfe75a5c2af
    com.fasterxml.jackson.databind.introspect.BeanPropertyDefinitiond3bbcf006607ecb0
    com.fasterxml.jackson.databind.introspect.ClassIntrospectorb20a1133edfcf6b5
    com.fasterxml.jackson.databind.introspect.CollectorBasefec0f38373f479ba
    com.fasterxml.jackson.databind.introspect.ConcreteBeanPropertyBasefa5bde6be1d392b1
    com.fasterxml.jackson.databind.introspect.DefaultAccessorNamingStrategyefc1568392fc0098
    com.fasterxml.jackson.databind.introspect.DefaultAccessorNamingStrategy.Provider9679bb882d2d354f
    com.fasterxml.jackson.databind.introspect.EnumNamingStrategyFactory9c6fffcda48914f4
    com.fasterxml.jackson.databind.introspect.JacksonAnnotationIntrospector9d54114155341c05
    com.fasterxml.jackson.databind.introspect.MemberKey0e604899c13122c4
    com.fasterxml.jackson.databind.introspect.MethodGenericTypeResolver61e8e0d7412c1d92
    com.fasterxml.jackson.databind.introspect.POJOPropertiesCollector1821e69f144ab189
    com.fasterxml.jackson.databind.introspect.POJOPropertyBuilder87b50c8168df5d0b
    com.fasterxml.jackson.databind.introspect.POJOPropertyBuilder.1925ffe3a324d008c
    com.fasterxml.jackson.databind.introspect.POJOPropertyBuilder.2f9f5816009560a85
    com.fasterxml.jackson.databind.introspect.POJOPropertyBuilder.3bc1ae84d89db28f4
    com.fasterxml.jackson.databind.introspect.POJOPropertyBuilder.4ccfa1b83e27ecd92
    com.fasterxml.jackson.databind.introspect.POJOPropertyBuilder.58bc5c843a115ba34
    com.fasterxml.jackson.databind.introspect.POJOPropertyBuilder.6a2d5a4cee9bda8de
    com.fasterxml.jackson.databind.introspect.POJOPropertyBuilder.Linkedef62b5db9e7546d6
    com.fasterxml.jackson.databind.introspect.SimpleMixInResolver6a0721d817cbf413
    com.fasterxml.jackson.databind.introspect.TypeResolutionContext.Basic09190ef225acb240
    com.fasterxml.jackson.databind.introspect.VisibilityChecker.Std86f77996bd544f4e
    com.fasterxml.jackson.databind.jsontype.PolymorphicTypeValidatorff1c7cc76de984ce
    com.fasterxml.jackson.databind.jsontype.PolymorphicTypeValidator.Baseea9ae0e64ce11069
    com.fasterxml.jackson.databind.jsontype.SubtypeResolverb2ed8bc0e5fe669c
    com.fasterxml.jackson.databind.jsontype.impl.LaissezFaireSubTypeValidatord02dab29b87ed521
    com.fasterxml.jackson.databind.jsontype.impl.StdSubtypeResolver342823e6800eb76b
    com.fasterxml.jackson.databind.jsontype.impl.SubTypeValidatora7ad2f19c2210a88
    com.fasterxml.jackson.databind.module.SimpleDeserializers53107227f2e2423e
    com.fasterxml.jackson.databind.module.SimpleKeyDeserializersa819432235e4437e
    com.fasterxml.jackson.databind.module.SimpleModulea21183dcf70aba53
    com.fasterxml.jackson.databind.module.SimpleSerializers946800aa77be606d
    com.fasterxml.jackson.databind.node.ArrayNodeeddaf67053a53e40
    com.fasterxml.jackson.databind.node.BaseJsonNodebfd90fff281f00ca
    com.fasterxml.jackson.databind.node.BooleanNodecebb2fcdf8e3b29f
    com.fasterxml.jackson.databind.node.ContainerNode3e656b4335d16878
    com.fasterxml.jackson.databind.node.IntNode980891d38da3f882
    com.fasterxml.jackson.databind.node.JsonNodeFactoryb407554ab061d84d
    com.fasterxml.jackson.databind.node.JsonNodeTypea26f1eeaaa06bdd6
    com.fasterxml.jackson.databind.node.NumericNode5272679eb5ea0a69
    com.fasterxml.jackson.databind.node.ObjectNode74aad756ca3a7d79
    com.fasterxml.jackson.databind.node.TextNode24a44d604f63089e
    com.fasterxml.jackson.databind.node.ValueNode836490b62c1c13d7
    com.fasterxml.jackson.databind.ser.BasicSerializerFactoryda909c46cb0d91a4
    com.fasterxml.jackson.databind.ser.BeanPropertyWriter190b8c3d7511b25b
    com.fasterxml.jackson.databind.ser.BeanSerializer2f76bfe21b88bf4b
    com.fasterxml.jackson.databind.ser.BeanSerializerBuilder0107159d6b8f2643
    com.fasterxml.jackson.databind.ser.BeanSerializerFactory16faed09cf6c52b8
    com.fasterxml.jackson.databind.ser.ContainerSerializer67b35562bf415143
    com.fasterxml.jackson.databind.ser.DefaultSerializerProvider7081bda43dcfcb52
    com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.Implbb7a481d8d11e37e
    com.fasterxml.jackson.databind.ser.PropertyBuilder92b8ef7a71e020f0
    com.fasterxml.jackson.databind.ser.PropertyBuilder.1ee3c9eabff3a5082
    com.fasterxml.jackson.databind.ser.PropertyWritera75647305846e8db
    com.fasterxml.jackson.databind.ser.SerializerCache05a580ec11f5621f
    com.fasterxml.jackson.databind.ser.SerializerFactorya96ec5a87f2a9dec
    com.fasterxml.jackson.databind.ser.Serializers.Base443d0df59bde7b26
    com.fasterxml.jackson.databind.ser.impl.FailingSerializer96696f091a076f00
    com.fasterxml.jackson.databind.ser.impl.IndexedListSerializercd4efc50b27864f0
    com.fasterxml.jackson.databind.ser.impl.PropertySerializerMapb896860192138c16
    com.fasterxml.jackson.databind.ser.impl.PropertySerializerMap.Empty3dce91f99b61f9c6
    com.fasterxml.jackson.databind.ser.impl.PropertySerializerMap.SerializerAndMapResult7726b41f965932aa
    com.fasterxml.jackson.databind.ser.impl.PropertySerializerMap.Singlee5e537120154be9c
    com.fasterxml.jackson.databind.ser.impl.ReadOnlyClassToSerializerMapf7673b78d4dbb21a
    com.fasterxml.jackson.databind.ser.impl.ReadOnlyClassToSerializerMap.Bucketf027017bdef27857
    com.fasterxml.jackson.databind.ser.impl.UnknownSerializer0f0b100c24ae521b
    com.fasterxml.jackson.databind.ser.std.ArraySerializerBasec8c6410977eb572f
    com.fasterxml.jackson.databind.ser.std.AsArraySerializerBase7c963189f626505a
    com.fasterxml.jackson.databind.ser.std.BeanSerializerBase5b8d77762be021c2
    com.fasterxml.jackson.databind.ser.std.BooleanSerializera5e7ba6f955baf41
    com.fasterxml.jackson.databind.ser.std.ByteArraySerializer65e2202cadcb3f06
    com.fasterxml.jackson.databind.ser.std.CalendarSerializerda6df272674c3c19
    com.fasterxml.jackson.databind.ser.std.DateSerializerdcf355b20d60965d
    com.fasterxml.jackson.databind.ser.std.DateTimeSerializerBasefb1c17ba4f02cbe0
    com.fasterxml.jackson.databind.ser.std.NullSerializer55885eb24739c250
    com.fasterxml.jackson.databind.ser.std.NumberSerializer2b09bf235752694e
    com.fasterxml.jackson.databind.ser.std.NumberSerializersdfe8936a5bca95d8
    com.fasterxml.jackson.databind.ser.std.NumberSerializers.1749c16e3536adf29
    com.fasterxml.jackson.databind.ser.std.NumberSerializers.Base243c88192bb86ee4
    com.fasterxml.jackson.databind.ser.std.NumberSerializers.DoubleSerializer5b65fb8c8ea04f02
    com.fasterxml.jackson.databind.ser.std.NumberSerializers.FloatSerializer0849cda863777be8
    com.fasterxml.jackson.databind.ser.std.NumberSerializers.IntLikeSerializer37f949791419da14
    com.fasterxml.jackson.databind.ser.std.NumberSerializers.IntegerSerializer8572ad7f464034dd
    com.fasterxml.jackson.databind.ser.std.NumberSerializers.LongSerializer1bcc67c140cfbe03
    com.fasterxml.jackson.databind.ser.std.NumberSerializers.ShortSerializera678b068eca9e8b6
    com.fasterxml.jackson.databind.ser.std.ObjectArraySerializer4bb4572b8f836147
    com.fasterxml.jackson.databind.ser.std.SerializableSerializer147abbb51ff24230
    com.fasterxml.jackson.databind.ser.std.StdArraySerializers541e9ae39ec63b46
    com.fasterxml.jackson.databind.ser.std.StdArraySerializers.BooleanArraySerializer309e24a2a527226d
    com.fasterxml.jackson.databind.ser.std.StdArraySerializers.CharArraySerializerff03321e6fb258d9
    com.fasterxml.jackson.databind.ser.std.StdArraySerializers.DoubleArraySerializer4446110208c37d4a
    com.fasterxml.jackson.databind.ser.std.StdArraySerializers.FloatArraySerializer28bfe15235252028
    com.fasterxml.jackson.databind.ser.std.StdArraySerializers.IntArraySerializer0ec9538a2d81a486
    com.fasterxml.jackson.databind.ser.std.StdArraySerializers.LongArraySerializer94ba062b0fa70c32
    com.fasterxml.jackson.databind.ser.std.StdArraySerializers.ShortArraySerializer5c15e521f0026d5a
    com.fasterxml.jackson.databind.ser.std.StdArraySerializers.TypedPrimitiveArraySerializer0ae2225f9f9aa02d
    com.fasterxml.jackson.databind.ser.std.StdJdkSerializersb1d950d41858d3ba
    com.fasterxml.jackson.databind.ser.std.StdScalarSerializer294ce690d4fde5d1
    com.fasterxml.jackson.databind.ser.std.StdSerializer2eb989e3aa9ebf8b
    com.fasterxml.jackson.databind.ser.std.StringSerializerb6342c9e6a90d477
    com.fasterxml.jackson.databind.ser.std.ToEmptyObjectSerializerdcbbfaf250568a42
    com.fasterxml.jackson.databind.ser.std.ToStringSerializerb965af9d2adb22d7
    com.fasterxml.jackson.databind.ser.std.ToStringSerializerBase4df4671bce83caa1
    com.fasterxml.jackson.databind.ser.std.UUIDSerializer9825ed90a3a1ea38
    com.fasterxml.jackson.databind.type.ArrayTypeada34943c659785c
    com.fasterxml.jackson.databind.type.ClassKeyc92de6eb0295e1ea
    com.fasterxml.jackson.databind.type.ClassStackb4e39752aaaff8ce
    com.fasterxml.jackson.databind.type.CollectionLikeTypefdca9c74891003b6
    com.fasterxml.jackson.databind.type.CollectionType754ccfd8e93b2fdd
    com.fasterxml.jackson.databind.type.IdentityEqualityTypefd3058d6950e2027
    com.fasterxml.jackson.databind.type.LogicalTypee0e08cb4c4d717b1
    com.fasterxml.jackson.databind.type.ResolvedRecursiveType6dc2c88dbe17a20b
    com.fasterxml.jackson.databind.type.SimpleType9bf726d4e15bb139
    com.fasterxml.jackson.databind.type.TypeBase84e347a8123ba86e
    com.fasterxml.jackson.databind.type.TypeBindings69af78e44b169d2b
    com.fasterxml.jackson.databind.type.TypeBindings.AsKey3cf63795dd54b8b7
    com.fasterxml.jackson.databind.type.TypeBindings.TypeParamStashc0b0ab8001879ee4
    com.fasterxml.jackson.databind.type.TypeFactory3596cbf80365f39f
    com.fasterxml.jackson.databind.type.TypeParser539ac466374b5334
    com.fasterxml.jackson.databind.util.AccessPattern44bf82acd8a3fffc
    com.fasterxml.jackson.databind.util.ArrayBuildersc14a06ce657aa67b
    com.fasterxml.jackson.databind.util.ArrayIteratore4c9e4d38ac21c90
    com.fasterxml.jackson.databind.util.BeanUtilaca352d66ffbab01
    com.fasterxml.jackson.databind.util.ClassUtil7a2a6f716f5500a1
    com.fasterxml.jackson.databind.util.ClassUtil.Ctor1fd4710f90ff53de
    com.fasterxml.jackson.databind.util.CompactStringObjectMapc829fa5bce3ca652
    com.fasterxml.jackson.databind.util.EnumResolver7d690e5e78dc143f
    com.fasterxml.jackson.databind.util.IgnorePropertiesUtil81001725c2203f99
    com.fasterxml.jackson.databind.util.LRUMapc487e14750ddd25e
    com.fasterxml.jackson.databind.util.LinkedNode73ca05873e25cb2e
    com.fasterxml.jackson.databind.util.ObjectBuffer14fbae37b93a957b
    com.fasterxml.jackson.databind.util.RootNameLookupadd4d1fb1a084862
    com.fasterxml.jackson.databind.util.StdDateFormatc6d4539431425f11
    com.fasterxml.jackson.databind.util.TypeKey32162ed128b7bbbd
    com.fasterxml.jackson.databind.util.internal.LinkedDeque9bfc4fbb2b0b1196
    com.fasterxml.jackson.databind.util.internal.PrivateMaxEntriesMap3f0ff22fe5779861
    com.fasterxml.jackson.databind.util.internal.PrivateMaxEntriesMap.AddTask866aec97a77c2650
    com.fasterxml.jackson.databind.util.internal.PrivateMaxEntriesMap.Builderdcc244062522bdc6
    com.fasterxml.jackson.databind.util.internal.PrivateMaxEntriesMap.DrainStatusa1e26b7a083af651
    com.fasterxml.jackson.databind.util.internal.PrivateMaxEntriesMap.DrainStatus.12de09d3a3bfcdca6
    com.fasterxml.jackson.databind.util.internal.PrivateMaxEntriesMap.DrainStatus.22928516020b2e91a
    com.fasterxml.jackson.databind.util.internal.PrivateMaxEntriesMap.DrainStatus.326e6a18539bc3d80
    com.fasterxml.jackson.databind.util.internal.PrivateMaxEntriesMap.EntryIterator86fc40b47b6d46b6
    com.fasterxml.jackson.databind.util.internal.PrivateMaxEntriesMap.EntrySet69a473f3bfd1c6f1
    com.fasterxml.jackson.databind.util.internal.PrivateMaxEntriesMap.Node2dc3669c077d2e56
    com.fasterxml.jackson.databind.util.internal.PrivateMaxEntriesMap.WeightedValuec5874d009c2eaa54
    com.fasterxml.jackson.databind.util.internal.PrivateMaxEntriesMap.WriteThroughEntry564e61c687d1b555
    com.fasterxml.jackson.datatype.jsr310.JavaTimeFeature11ebf8abc1c4f906
    com.fasterxml.jackson.datatype.jsr310.JavaTimeModule336759599f630d91
    com.fasterxml.jackson.datatype.jsr310.JavaTimeModule.1327c369d7a207d22
    com.fasterxml.jackson.datatype.jsr310.PackageVersion52634a35b9f96fcd
    com.fasterxml.jackson.datatype.jsr310.deser.DurationDeserializerb86657917c64cb85
    com.fasterxml.jackson.datatype.jsr310.deser.InstantDeserializer8193d32aba73cf61
    com.fasterxml.jackson.datatype.jsr310.deser.JSR310DateTimeDeserializerBase0366d6b796957250
    com.fasterxml.jackson.datatype.jsr310.deser.JSR310DeserializerBasea42a100eb3db5063
    com.fasterxml.jackson.datatype.jsr310.deser.JSR310StringParsableDeserializerec40549afa8898ca
    com.fasterxml.jackson.datatype.jsr310.deser.LocalDateDeserializer7c3dc32f44a8a7d2
    com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializerdd6bef5ff411966a
    com.fasterxml.jackson.datatype.jsr310.deser.LocalTimeDeserializer1bffe9367f89358b
    com.fasterxml.jackson.datatype.jsr310.deser.MonthDayDeserializer295fd92b5b65742e
    com.fasterxml.jackson.datatype.jsr310.deser.OffsetTimeDeserializer00fa8a1b15dfd0d9
    com.fasterxml.jackson.datatype.jsr310.deser.YearDeserializer0679c75311d6e905
    com.fasterxml.jackson.datatype.jsr310.deser.YearMonthDeserializeraf642fd7b5a7e4e8
    com.fasterxml.jackson.datatype.jsr310.deser.key.DurationKeyDeserializer86dee43d5fd8de58
    com.fasterxml.jackson.datatype.jsr310.deser.key.InstantKeyDeserializerc323cc187e10bdcd
    com.fasterxml.jackson.datatype.jsr310.deser.key.Jsr310KeyDeserializer64893f60684210d1
    com.fasterxml.jackson.datatype.jsr310.deser.key.LocalDateKeyDeserializer3639e2ff55da7fa1
    com.fasterxml.jackson.datatype.jsr310.deser.key.LocalDateTimeKeyDeserializered7e026ffd090c77
    com.fasterxml.jackson.datatype.jsr310.deser.key.LocalTimeKeyDeserializerc058ad0a221814f2
    com.fasterxml.jackson.datatype.jsr310.deser.key.MonthDayKeyDeserializerfe54a17b388e76da
    com.fasterxml.jackson.datatype.jsr310.deser.key.OffsetDateTimeKeyDeserializer1bfce89e8c6142a4
    com.fasterxml.jackson.datatype.jsr310.deser.key.OffsetTimeKeyDeserializer7e7c73d8f28d4c13
    com.fasterxml.jackson.datatype.jsr310.deser.key.PeriodKeyDeserializer1fb27ade4fa213e5
    com.fasterxml.jackson.datatype.jsr310.deser.key.YearKeyDeserializerded209cf80f75df6
    com.fasterxml.jackson.datatype.jsr310.deser.key.YearMonthKeyDeserializerbbb3a607d3512540
    com.fasterxml.jackson.datatype.jsr310.deser.key.ZoneIdKeyDeserializer010f3e4e2802434d
    com.fasterxml.jackson.datatype.jsr310.deser.key.ZoneOffsetKeyDeserializerb8b591cfa6cb7be9
    com.fasterxml.jackson.datatype.jsr310.deser.key.ZonedDateTimeKeyDeserializerc3b6fe868b1396e4
    com.fasterxml.jackson.datatype.jsr310.ser.DurationSerializer763bc2b5571c26d7
    com.fasterxml.jackson.datatype.jsr310.ser.InstantSerializerdbba40957e9eaf5e
    com.fasterxml.jackson.datatype.jsr310.ser.InstantSerializerBaseff15c4b9316eba9e
    com.fasterxml.jackson.datatype.jsr310.ser.JSR310FormattedSerializerBasebd4e59d7380ca96c
    com.fasterxml.jackson.datatype.jsr310.ser.JSR310SerializerBase2ad341990e9021dc
    com.fasterxml.jackson.datatype.jsr310.ser.LocalDateSerializer8f84db74e8d2427f
    com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializerc68b8abca15216a4
    com.fasterxml.jackson.datatype.jsr310.ser.LocalTimeSerializer30ef053f4ce38983
    com.fasterxml.jackson.datatype.jsr310.ser.MonthDaySerializer99c8e56bc8812c47
    com.fasterxml.jackson.datatype.jsr310.ser.OffsetDateTimeSerializer9ad79a2ff3bec6bd
    com.fasterxml.jackson.datatype.jsr310.ser.OffsetTimeSerializerff84bad2852f3bf7
    com.fasterxml.jackson.datatype.jsr310.ser.YearMonthSerializerb9428592c48c4dbc
    com.fasterxml.jackson.datatype.jsr310.ser.YearSerializer0f06fc30937c7746
    com.fasterxml.jackson.datatype.jsr310.ser.ZoneIdSerializer04f155c4ebbe4db1
    com.fasterxml.jackson.datatype.jsr310.ser.ZonedDateTimeSerializer6a697e11675f3119
    com.fasterxml.jackson.datatype.jsr310.ser.key.ZonedDateTimeKeySerializer244ed33273b7bb0f
    com.fasterxml.uuid.Generators7892cee32d9a70ab
    com.fasterxml.uuid.NoArgGenerator803afe0b469c791b
    com.fasterxml.uuid.UUIDGenerator93c22ffd50cfbbfb
    com.fasterxml.uuid.UUIDTypeaaf2c173cfef33ad
    com.fasterxml.uuid.impl.RandomBasedGenerator28b4c91b07ac373a
    com.fasterxml.uuid.impl.UUIDUtil28553808d64471a8
    com.github.fge.jackson.JacksonUtils542e837fe036ec04
    com.google.common.base.AbstractIteratord3c5d8c6ad30f701
    com.google.common.base.AbstractIterator.137bd022d95007827
    com.google.common.base.AbstractIterator.State5c56bd34c8972d4a
    com.google.common.base.CharMatcher0bcd1962498d67ba
    com.google.common.base.CharMatcher.FastMatcheraa197b1215c57922
    com.google.common.base.CharMatcher.Is85a5a52367686a88
    com.google.common.base.CharMatcher.NamedFastMatcher1e00ea1226db6ddb
    com.google.common.base.CharMatcher.None94d35101bfaf99d7
    com.google.common.base.Joiner4f5db87c2677ce13
    com.google.common.base.Joiner.MapJoiner3229a03a05a03536
    com.google.common.base.NullnessCasts290a1618a5ccec9b
    com.google.common.base.Preconditionsa5fabd1b8022b288
    com.google.common.base.Splitterd6c6a68453118cca
    com.google.common.base.Splitter.1d8d2c3ca70a09053
    com.google.common.base.Splitter.1.17083f874903fe1d7
    com.google.common.base.Splitter.4e8be8e15525e9287
    com.google.common.base.Splitter.55d1c083eae2ee290
    com.google.common.base.Splitter.SplittingIteratorcb39f1152c0e9779
    com.google.common.collect.AbstractMapBasedMultimapbb35dbe612d96cb3
    com.google.common.collect.AbstractMapBasedMultimap.AsMapa28642220fc8da76
    com.google.common.collect.AbstractMapBasedMultimap.KeySetc7b84e2e4c6b7f6e
    com.google.common.collect.AbstractMapBasedMultimap.KeySet.1761256ae8d43fa0e
    com.google.common.collect.AbstractMapBasedMultimap.WrappedCollection8428927e9fd2b3d8
    com.google.common.collect.AbstractMapBasedMultimap.WrappedCollection.WrappedIterator00b4b307b4cd0822
    com.google.common.collect.AbstractMapBasedMultimap.WrappedSetf079e007370bf434
    com.google.common.collect.AbstractMapEntryac555e776e16654e
    com.google.common.collect.AbstractMultimape7c8eb95d99823ce
    com.google.common.collect.AbstractMultimap.Entries819d2058e5224f7c
    com.google.common.collect.AbstractMultimap.EntrySetafd90f6d00403416
    com.google.common.collect.AbstractSetMultimapc31c838811e5f1ff
    com.google.common.collect.CollectPreconditions5e849a18474582f9
    com.google.common.collect.Hashing244a20b5740c2909
    com.google.common.collect.ImmutableCollection626210369d72ba7f
    com.google.common.collect.ImmutableCollection.Buildere04813b86f792079
    com.google.common.collect.ImmutableEntry2ec5f83324ef9bd2
    com.google.common.collect.ImmutableList7e362db835e33620
    com.google.common.collect.ImmutableMap19d11809da6ab987
    com.google.common.collect.ImmutableMap.Builder46d08377eb6f7dca
    com.google.common.collect.ImmutableMapEntry6a99dbeadae62fa1
    com.google.common.collect.ImmutableMapEntry.NonTerminalImmutableMapEntry0405292afaeafe2b
    com.google.common.collect.Iterablesd033df9aa3cb9b1d
    com.google.common.collect.LinkedHashMultimape7dc5dcb7812b1a3
    com.google.common.collect.LinkedHashMultimap.116e5f9f258d34f77
    com.google.common.collect.LinkedHashMultimap.ValueEntry93ea0ed1e6c91d20
    com.google.common.collect.LinkedHashMultimap.ValueSetd1020e4ea83a592c
    com.google.common.collect.LinkedHashMultimap.ValueSet.1b3f779efe3990689
    com.google.common.collect.LinkedHashMultimapGwtSerializationDependencieseeb635c3f160c423
    com.google.common.collect.LinkedListMultimap72b897f1e84a4ef4
    com.google.common.collect.LinkedListMultimap.1d45505c407d2f1c5
    com.google.common.collect.LinkedListMultimap.ValueForKeyIteratord2dc3edf840b00c8
    com.google.common.collect.Maps3e1a5324ae4b4e0f
    com.google.common.collect.Maps.KeySete7d39d4bf1860912
    com.google.common.collect.Maps.ViewCachingAbstractMapbd35c823212acf47
    com.google.common.collect.Multimaps.Entriese218eab7142cd3e8
    com.google.common.collect.ObjectArrays69a3fcec40250c5f
    com.google.common.collect.Platformc72aa1ba45b86c48
    com.google.common.collect.RegularImmutableList5303b11db13353b6
    com.google.common.collect.RegularImmutableMap15ade442d8d720c2
    com.google.common.collect.Setsd642191bb9c54cba
    com.google.common.collect.Sets.ImprovedAbstractSet3134efe7d0f097ea
    com.google.common.io.ByteStreams54fcce135598266c
    com.google.common.io.ByteStreams.12b43e9d0abf526aa
    com.google.common.math.IntMathe5dfbae9828a34c5
    com.google.common.net.InetAddressesd8df78ebafa6d70c
    com.google.common.primitives.Intsc5ac9c1a28bb42ab
    com.lmax.disruptor.AbstractSequencer8813b5a6910ba7df
    com.lmax.disruptor.BatchEventProcessor59c6c07af6f3ae67
    com.lmax.disruptor.BlockingWaitStrategy6f05d55720b06ea0
    com.lmax.disruptor.LhsPadding0d4ff608ca2da656
    com.lmax.disruptor.MultiProducerSequencer3f67e4dc361111a6
    com.lmax.disruptor.ProcessingSequenceBarrier1140454401f5ca3e
    com.lmax.disruptor.RhsPadding7ce1024da2ccdd82
    com.lmax.disruptor.RingBuffer0a0337302414957e
    com.lmax.disruptor.RingBufferFields6f1d421a5fd68960
    com.lmax.disruptor.RingBufferPada0bf6ef8b95933e6
    com.lmax.disruptor.Sequence2da321797bb2584e
    com.lmax.disruptor.SequenceGroupsb73904f09c24f954
    com.lmax.disruptor.Value36c83c1506d14ba3
    com.lmax.disruptor.dsl.BasicExecutor328252a8c5d4ab80
    com.lmax.disruptor.dsl.ConsumerRepository1e55cf03fba36cc8
    com.lmax.disruptor.dsl.Disruptor5d09b31560234b0b
    com.lmax.disruptor.dsl.EventHandlerGroupfde3e87cf6cb765c
    com.lmax.disruptor.dsl.EventProcessorInfo64376c8260673878
    com.lmax.disruptor.dsl.ExceptionHandlerWrapper84dce4f94f4b6a57
    com.lmax.disruptor.util.Util0f4f9189022d967f
    com.lmax.disruptor.util.Util.1bf41de670adf7f9d
    com.networknt.schema.AbstractJsonValidatora13fde0b331bf8d5
    com.networknt.schema.AbstractKeyword939707d9fc1288c4
    com.networknt.schema.AdditionalPropertiesValidator2db4f36856caf995
    com.networknt.schema.AnyOfValidatorb833199ada37c8e2
    com.networknt.schema.ApplyDefaultsStrategy91d1137bd2a6293d
    com.networknt.schema.BaseJsonValidator6ae238ea79887522
    com.networknt.schema.CollectorContext77c0ba1c314fffa3
    com.networknt.schema.FormatKeywordeede33d36cf87321
    com.networknt.schema.I18nSupport4334bf76de629660
    com.networknt.schema.ItemsValidator7c18b7c0fc058f01
    com.networknt.schema.JsonMetaSchemadb140d8092bccde4
    com.networknt.schema.JsonMetaSchema.Builder5c1c4a0839b26937
    com.networknt.schema.JsonSchema94fdc9ffb138ffb7
    com.networknt.schema.JsonSchemaFactorya0947b033a19df53
    com.networknt.schema.JsonSchemaFactory.1d5d7063719f84d95
    com.networknt.schema.JsonSchemaFactory.Builder3182932367f29ba6
    com.networknt.schema.JsonSchemaRefbd108ea94d5e6c26
    com.networknt.schema.JsonSchemaVersion476acb7d005aa88a
    com.networknt.schema.JsonTypec842e7896a02cf06
    com.networknt.schema.Keyword0d71e7162411e16d
    com.networknt.schema.NonValidationKeyword14b58f37da5f03cf
    com.networknt.schema.NonValidationKeyword.Validator215c6c8c840ac256
    com.networknt.schema.OneOfValidatord0c6ba7496cc0d4a
    com.networknt.schema.OneOfValidator.ShortcutValidator41e5aea3753642ee
    com.networknt.schema.PatternFormat6b6bd0a3c4d572f7
    com.networknt.schema.PatternPropertiesValidator71c6867c79132f77
    com.networknt.schema.PropertiesValidatorf2f552a4461a3419
    com.networknt.schema.RefValidator94131e3064c57300
    com.networknt.schema.RequiredValidator55945503e5e78d63
    com.networknt.schema.SchemaValidatorsConfigfb2704a7b5d0a8bc
    com.networknt.schema.SpecVersion4b61054105facc89
    com.networknt.schema.SpecVersion.VersionFlage1cd7fc1803a27aa
    com.networknt.schema.ThreadInfo2d1fac0115333ad4
    com.networknt.schema.ThreadInfo.174e1e60e0b2ac9e5
    com.networknt.schema.TypeFactorycc8b968f044bc4cf
    com.networknt.schema.TypeValidatorfd15b7d97f8d180a
    com.networknt.schema.ValidationContextef3df0ad72ea2df2
    com.networknt.schema.ValidationMessage9db2c1e115741e61
    com.networknt.schema.ValidationMessage.Builder5618eadd76ecb35b
    com.networknt.schema.ValidatorState150b66eca4446819
    com.networknt.schema.ValidatorTypeCode4f3900a7f8bb5c54
    com.networknt.schema.ValidatorTypeCode.188cf4eff5cd32a8a
    com.networknt.schema.Version7b4c25f876f676b5b
    com.networknt.schema.VersionCodec83b473042100615
    com.networknt.schema.uri.ClasspathURLFactory3c57465c4b806254
    com.networknt.schema.uri.ClasspathURLFetcher2a1f8588b18c98e5
    com.networknt.schema.uri.ClasspathURLStreamHandlere4470067355ccf07
    com.networknt.schema.uri.URISchemeFactorya78932da520081d7
    com.networknt.schema.uri.URISchemeFetcher1d479ed6b368f21d
    com.networknt.schema.uri.URLFactory2bcdb2658740656a
    com.networknt.schema.uri.URLFetcher7a5db306ae180d3f
    com.networknt.schema.utils.JsonNodeUtil68e62aecec19706a
    com.networknt.schema.utils.StringUtils53a7f1f890d64da7
    com.networknt.schema.walk.AbstractWalkListenerRunner34356d24df9a26a5
    com.networknt.schema.walk.DefaultItemWalkListenerRunner88863dbac26c5111
    com.networknt.schema.walk.DefaultKeywordWalkListenerRunner70b93fc00ca94a48
    com.networknt.schema.walk.DefaultPropertyWalkListenerRunnere54c3a26ee53bcec
    com.sun.crypto.provider.AESCipher9379cbb969dccdab
    com.sun.crypto.provider.AESCipher.Generaldd25667a734d67f2
    com.sun.crypto.provider.AESConstantsff56ec558b5f24b2
    com.sun.crypto.provider.AESCrypt8f74d327e3757900
    com.sun.crypto.provider.CipherCorea719a438faf0a701
    com.sun.crypto.provider.CounterModefab22112699963b8
    com.sun.crypto.provider.DHParameters16f962dbaa27c76a
    com.sun.crypto.provider.ElectronicCodeBook55bee70106027943
    com.sun.crypto.provider.FeedbackCipherfe3b493a4f1f3358
    com.sun.crypto.provider.GCTR363ef00c8e464985
    com.sun.crypto.provider.GHASHe2e4c8ed73293545
    com.sun.crypto.provider.GaloisCounterModed5653e4b1d135ece
    com.sun.crypto.provider.HmacCored10e0726d0a7a75b
    com.sun.crypto.provider.HmacCore.HmacSHA256e51d50e772714011
    com.sun.crypto.provider.PKCS5Padding2f576a81eac7847f
    com.sun.crypto.provider.Preconditionsfd7e7c3ada235a9b
    com.sun.crypto.provider.Preconditions.168fa2261aa6363f8
    com.sun.crypto.provider.RangeUtil83f9533ae557ea46
    com.sun.crypto.provider.SunJCE33c998c6ba77d73e
    com.sun.crypto.provider.SymmetricCipher67e05752931ac6b4
    com.sun.crypto.provider.TlsKeyMaterialGenerator9a670d07119f980e
    com.sun.crypto.provider.TlsMasterSecretGeneratorb5bb91b132a7e1ed
    com.sun.crypto.provider.TlsMasterSecretGenerator.TlsMasterSecretKey47a2de5eed80bb69
    com.sun.crypto.provider.TlsPrfGenerator7f3cc07aa4e0ef26
    com.sun.crypto.provider.TlsPrfGenerator.V12854f82e423bf885a
    io.netty.bootstrap.AbstractBootstrap2f2c41621c9aaac8
    io.netty.bootstrap.AbstractBootstrap.1ae2b1ab21a63d046
    io.netty.bootstrap.AbstractBootstrap.2ef379e80ed3bbf28
    io.netty.bootstrap.AbstractBootstrap.PendingRegistrationPromise0c86780079337a50
    io.netty.bootstrap.AbstractBootstrapConfig84004d406c18d897
    io.netty.bootstrap.Bootstrap6687fcdfe7171d11
    io.netty.bootstrap.Bootstrap.17720d890b87b522a
    io.netty.bootstrap.Bootstrap.3a6df97a638ae1b9a
    io.netty.bootstrap.BootstrapConfig58a6b183452f2657
    io.netty.bootstrap.ServerBootstrap233a9e44ceb89cd5
    io.netty.bootstrap.ServerBootstrap.133e7fe9a0ec8ee99
    io.netty.bootstrap.ServerBootstrap.1.1a8f72f92242d1aef
    io.netty.bootstrap.ServerBootstrap.ServerBootstrapAcceptor0636b9e24688dd96
    io.netty.bootstrap.ServerBootstrap.ServerBootstrapAcceptor.17d1a860977a2adfe
    io.netty.bootstrap.ServerBootstrap.ServerBootstrapAcceptor.2b0bfd5c379fb38a0
    io.netty.bootstrap.ServerBootstrapConfigd8456ebfaccad3dc
    io.netty.buffer.AbstractByteBuf792902241e49adcb
    io.netty.buffer.AbstractByteBufAllocator93644c1b35648fd5
    io.netty.buffer.AbstractByteBufAllocator.1c38ccfcff6302b8e
    io.netty.buffer.AbstractDerivedByteBuf2d1c59b8076661ea
    io.netty.buffer.AbstractPooledDerivedByteBuf6821e4b1071ce3ef
    io.netty.buffer.AbstractReferenceCountedByteBuff56534bd419bf7d2
    io.netty.buffer.AbstractReferenceCountedByteBuf.1cabff614dda1fcee
    io.netty.buffer.AbstractUnpooledSlicedByteBuf972c16318905b5ce
    io.netty.buffer.ByteBuf39e5c639fe46944a
    io.netty.buffer.ByteBufAllocatorcd25b806fbbcfdcc
    io.netty.buffer.ByteBufUtil54f07daefbcc9cea
    io.netty.buffer.ByteBufUtil.1db1afe3ae35787d0
    io.netty.buffer.ByteBufUtil.2790fba9f66e129f9
    io.netty.buffer.CompositeByteBuf6316345f5247c3e8
    io.netty.buffer.CompositeByteBuf.1c4d77717d0e6aa87
    io.netty.buffer.CompositeByteBuf.2e651470167eae80c
    io.netty.buffer.CompositeByteBuf.Component860fb5e22fbafc7a
    io.netty.buffer.EmptyByteBufa2da1588463d6a40
    io.netty.buffer.LongLongHashMapd745b0507f253513
    io.netty.buffer.LongPriorityQueuedcdf75cf34426833
    io.netty.buffer.PoolArenad6ab73af6fcf2e7f
    io.netty.buffer.PoolArena.DirectArena2290208ee5890a9c
    io.netty.buffer.PoolArena.HeapArena66a18a825b5bd0a5
    io.netty.buffer.PoolArena.SizeClassd8f74df4208b61d6
    io.netty.buffer.PoolChunk83025f01f3c56bde
    io.netty.buffer.PoolChunkList71c7f8577d3bd9be
    io.netty.buffer.PoolSubpagee564c3ac000ba9c9
    io.netty.buffer.PoolThreadCache011ffe1f281e6304
    io.netty.buffer.PoolThreadCache.1bfe620fc5c318b16
    io.netty.buffer.PoolThreadCache.MemoryRegionCacheeb807d0230960ea2
    io.netty.buffer.PoolThreadCache.MemoryRegionCache.1c87bb59131b5fa23
    io.netty.buffer.PoolThreadCache.MemoryRegionCache.Entry935705809b549aca
    io.netty.buffer.PoolThreadCache.NormalMemoryRegionCache21f7bebf843ab4fc
    io.netty.buffer.PoolThreadCache.SubPageMemoryRegionCacheeebb0540722636b6
    io.netty.buffer.PooledByteBuf46753652aca74d8b
    io.netty.buffer.PooledByteBufAllocatordd510c2ae9884c24
    io.netty.buffer.PooledByteBufAllocator.183108e6d6fa11a7a
    io.netty.buffer.PooledByteBufAllocator.PoolThreadLocalCacheb59e28fb849505ad
    io.netty.buffer.PooledByteBufAllocatorMetrica772634945cf0493
    io.netty.buffer.PooledSlicedByteBuf526373d1e4134ece
    io.netty.buffer.PooledSlicedByteBuf.19ea9661d432b9c6b
    io.netty.buffer.PooledUnsafeDirectByteBuf4a8d3146c73e7261
    io.netty.buffer.PooledUnsafeDirectByteBuf.194dda174db8d473a
    io.netty.buffer.ReadOnlyByteBufc2367286c8dba18c
    io.netty.buffer.SimpleLeakAwareByteBuf25a2ccb6b60b0456
    io.netty.buffer.SizeClasses3660b29a1a09aded
    io.netty.buffer.Unpooled9171cc8db1dcdbfc
    io.netty.buffer.UnpooledByteBufAllocatorcfaafe17bf2b126e
    io.netty.buffer.UnpooledByteBufAllocator.InstrumentedUnpooledUnsafeNoCleanerDirectByteBuf117ca9e8eeedc99e
    io.netty.buffer.UnpooledByteBufAllocator.UnpooledByteBufAllocatorMetric9a8ab03c427bd7cb
    io.netty.buffer.UnpooledDirectByteBuf3ff98764337051b2
    io.netty.buffer.UnpooledHeapByteBufef4502dc57be6d74
    io.netty.buffer.UnpooledUnsafeDirectByteBuf76b701ea9ac4eea4
    io.netty.buffer.UnpooledUnsafeNoCleanerDirectByteBufed13853db8ff1ab0
    io.netty.buffer.UnreleasableByteBuf132f52799b004e35
    io.netty.buffer.UnsafeByteBufUtil8939fbca45c0e913
    io.netty.buffer.WrappedByteBuf77ae45f82d40515f
    io.netty.channel.AbstractChannel46718de1c2b01b1c
    io.netty.channel.AbstractChannel.AbstractUnsafeb7c86f3370f55155
    io.netty.channel.AbstractChannel.AbstractUnsafe.162138d2f9f293b9c
    io.netty.channel.AbstractChannel.AbstractUnsafe.238986a01cf0b9eab
    io.netty.channel.AbstractChannel.AbstractUnsafe.7e97f00e46d024054
    io.netty.channel.AbstractChannel.CloseFuture3a4225c7643ba916
    io.netty.channel.AbstractChannelHandlerContext5ffbf1d01642a335
    io.netty.channel.AdaptiveRecvByteBufAllocator20945ea88efa2c18
    io.netty.channel.AdaptiveRecvByteBufAllocator.HandleImpl7145e918ee2b4203
    io.netty.channel.ChannelDuplexHandlerdb122ea5c380173d
    io.netty.channel.ChannelFutureListenere42310b417975c2a
    io.netty.channel.ChannelFutureListener.1af13e81c7f15a559
    io.netty.channel.ChannelFutureListener.21734a100e2ee4052
    io.netty.channel.ChannelFutureListener.369cf66e51ae7f39f
    io.netty.channel.ChannelHandlerAdapterd6f538a7fe1ffab5
    io.netty.channel.ChannelHandlerMask3531b1f98f2e8856
    io.netty.channel.ChannelHandlerMask.1dc7f9e42ea5cbcdf
    io.netty.channel.ChannelHandlerMask.2b6eba67a61fa9771
    io.netty.channel.ChannelInboundHandlerAdapter114d86e6b82a5bf1
    io.netty.channel.ChannelInitializerdf87e6a523083f6c
    io.netty.channel.ChannelMetadata4b0b88a30da71d85
    io.netty.channel.ChannelOption74508d2110a6f289
    io.netty.channel.ChannelOption.161e0301d8b444b25
    io.netty.channel.ChannelOutboundBuffer2db3c02eb502857d
    io.netty.channel.ChannelOutboundBuffer.1dacd0c21c99045cc
    io.netty.channel.ChannelOutboundBuffer.Entry2374d211584cbd90
    io.netty.channel.ChannelOutboundBuffer.Entry.12a74ec2f36b1c291
    io.netty.channel.ChannelOutboundHandlerAdapter77b9c13092ed7d9c
    io.netty.channel.CombinedChannelDuplexHandler4dd6ef0e9ecf2964
    io.netty.channel.CombinedChannelDuplexHandler.1e4ae3fa916407cf0
    io.netty.channel.CombinedChannelDuplexHandler.DelegatingChannelHandlerContexta4ef4de34538afd8
    io.netty.channel.CompleteChannelFuturee73469934e939340
    io.netty.channel.DefaultChannelConfig689511fd03214640
    io.netty.channel.DefaultChannelHandlerContext62d4fa2dd7c90b51
    io.netty.channel.DefaultChannelId49792d645b043a12
    io.netty.channel.DefaultChannelPipeline472aa5e69828de21
    io.netty.channel.DefaultChannelPipeline.1e87d77c58ff5a048
    io.netty.channel.DefaultChannelPipeline.HeadContextf87186d112def2c2
    io.netty.channel.DefaultChannelPipeline.PendingHandlerAddedTask887dd00d4d1c6544
    io.netty.channel.DefaultChannelPipeline.PendingHandlerCallback7d0e38f97f15f776
    io.netty.channel.DefaultChannelPipeline.TailContext3b2ba5b993bb7e86
    io.netty.channel.DefaultChannelPromise9d21dfb766a7dbce
    io.netty.channel.DefaultMaxMessagesRecvByteBufAllocator08052d872e0892b3
    io.netty.channel.DefaultMaxMessagesRecvByteBufAllocator.MaxMessageHandleb3669a0412f8416d
    io.netty.channel.DefaultMaxMessagesRecvByteBufAllocator.MaxMessageHandle.151ebc51ef38d0350
    io.netty.channel.DefaultMessageSizeEstimatorba919281ecbbef60
    io.netty.channel.DefaultMessageSizeEstimator.HandleImpl35c7052643247dde
    io.netty.channel.DefaultSelectStrategy650197c58ee9bd18
    io.netty.channel.DefaultSelectStrategyFactory25b2375f2f028a9d
    io.netty.channel.MultithreadEventLoopGroup8dc03731fd8990e5
    io.netty.channel.ReflectiveChannelFactoryd26638b04da2c083
    io.netty.channel.ServerChannelRecvByteBufAllocator3a8d9a0f9218e67d
    io.netty.channel.ServerChannelRecvByteBufAllocator.12e49a1cdf8bd1d52
    io.netty.channel.SimpleChannelInboundHandler966f4d0e5ebeea28
    io.netty.channel.SingleThreadEventLoopfa83b89604c40ff5
    io.netty.channel.StacklessClosedChannelExceptionef089a1f956ce5fa
    io.netty.channel.SucceededChannelFuture3fe22e0a1526c697
    io.netty.channel.VoidChannelPromise1914cb01e4f07535
    io.netty.channel.VoidChannelPromise.1c33f2a46fc3cf17e
    io.netty.channel.WriteBufferWaterMarke01698a536feb134
    io.netty.channel.nio.AbstractNioByteChannel74ad926e404a2f44
    io.netty.channel.nio.AbstractNioByteChannel.146227de3dc07c967
    io.netty.channel.nio.AbstractNioByteChannel.NioByteUnsafe0407046202a5cab6
    io.netty.channel.nio.AbstractNioChannele70da51213409fd4
    io.netty.channel.nio.AbstractNioChannel.1ca67b5744827c5a2
    io.netty.channel.nio.AbstractNioChannel.AbstractNioUnsafed02f2473b022ef3f
    io.netty.channel.nio.AbstractNioChannel.AbstractNioUnsafe.138b794cff95c84c9
    io.netty.channel.nio.AbstractNioChannel.AbstractNioUnsafe.2b3200ffd18207ff3
    io.netty.channel.nio.AbstractNioMessageChannelf5a95d3866697133
    io.netty.channel.nio.AbstractNioMessageChannel.NioMessageUnsafef4e784877c2afc09
    io.netty.channel.nio.NioEventLoope083507062b32cd7
    io.netty.channel.nio.NioEventLoop.1a720122dbc711263
    io.netty.channel.nio.NioEventLoop.39a44b36c75f62129
    io.netty.channel.nio.NioEventLoop.493e646e9f2d1b4ee
    io.netty.channel.nio.NioEventLoop.SelectorTuple68f1ec553b861d37
    io.netty.channel.nio.NioEventLoopGroupdc5946b555f40a62
    io.netty.channel.nio.SelectedSelectionKeySet99ed76c8a806663c
    io.netty.channel.nio.SelectedSelectionKeySetSelector3006d0f6b4233008
    io.netty.channel.socket.DefaultServerSocketChannelConfig53392b7269a71234
    io.netty.channel.socket.DefaultSocketChannelConfigf83f5cf81fcd0749
    io.netty.channel.socket.nio.NioServerSocketChannel1252152f1f1acbd0
    io.netty.channel.socket.nio.NioServerSocketChannel.NioServerSocketChannelConfig4cb3b8b9221f0b22
    io.netty.channel.socket.nio.NioSocketChannel35910d1ebd1e5332
    io.netty.channel.socket.nio.NioSocketChannel.NioSocketChannelConfigbdd89da4e4b51c5a
    io.netty.channel.socket.nio.NioSocketChannel.NioSocketChannelUnsafec10c20f0789f9c93
    io.netty.channel.socket.nio.SelectorProviderUtila89a46e092f30591
    io.netty.handler.codec.ByteToMessageDecoderc61c31dc0892f4d6
    io.netty.handler.codec.ByteToMessageDecoder.1a74a2ebb4f51958c
    io.netty.handler.codec.ByteToMessageDecoder.2cf79f5ab41e49b9a
    io.netty.handler.codec.CharSequenceValueConverter30e29d64f19b87d2
    io.netty.handler.codec.CodecOutputList1b3fe63944f6c889
    io.netty.handler.codec.CodecOutputList.1d8eeed8dd3956110
    io.netty.handler.codec.CodecOutputList.2c0775c66446ed45d
    io.netty.handler.codec.CodecOutputList.CodecOutputListsca5205727f18ad6a
    io.netty.handler.codec.DecoderResultfb622c5c86d24292
    io.netty.handler.codec.DefaultHeaders17fba53695bd57ab
    io.netty.handler.codec.DefaultHeaders.HeaderEntry523b7e0c3ca60c81
    io.netty.handler.codec.DefaultHeaders.HeaderIterator54b91c97a2d2da93
    io.netty.handler.codec.DefaultHeaders.ValueIteratorb05ffd8a8cc051de
    io.netty.handler.codec.DefaultHeadersImplf5153900ad8d03c5
    io.netty.handler.codec.HeadersUtils0568446f1aa6189c
    io.netty.handler.codec.HeadersUtils.12e47646f3ff655b6
    io.netty.handler.codec.HeadersUtils.CharSequenceDelegatingStringSeta41af65a875dc5b7
    io.netty.handler.codec.HeadersUtils.DelegatingStringSetf1a136b86c04cac0
    io.netty.handler.codec.HeadersUtils.StringIterator45bc2819986fd30d
    io.netty.handler.codec.MessageAggregatorc5e9828ffcc17fd1
    io.netty.handler.codec.MessageToMessageDecoder06a9805f7b3b9de2
    io.netty.handler.codec.MessageToMessageEncoderced072eb34d6c51a
    io.netty.handler.codec.ReplayingDecoderb397adc83bd46cfc
    io.netty.handler.codec.ReplayingDecoderByteBufbd644e06ddef7b17
    io.netty.handler.codec.compression.Brotli87813b062533e83a
    io.netty.handler.codec.http.DefaultFullHttpRequest1160dc57f2b3055c
    io.netty.handler.codec.http.DefaultFullHttpResponseb8599ee118dddfbf
    io.netty.handler.codec.http.DefaultHttpContent8740878cb58efb34
    io.netty.handler.codec.http.DefaultHttpHeaderscfc4d6c22c9751fe
    io.netty.handler.codec.http.DefaultHttpHeaders.12b90e94da41a67a5
    io.netty.handler.codec.http.DefaultHttpHeaders.HeaderValueConverter6dce106039152507
    io.netty.handler.codec.http.DefaultHttpHeaders.HeaderValueValidator45f20324e9e5da6d
    io.netty.handler.codec.http.DefaultHttpMessagea9805fc38b132205
    io.netty.handler.codec.http.DefaultHttpObjectd8efd8b1caab94d1
    io.netty.handler.codec.http.DefaultHttpRequest7ec510e0dbc8352a
    io.netty.handler.codec.http.DefaultHttpResponse6e38c650e40ad746
    io.netty.handler.codec.http.DefaultLastHttpContenta46bc1ea6bef852e
    io.netty.handler.codec.http.DefaultLastHttpContent.TrailingHttpHeadersa11b68fc9a321a8a
    io.netty.handler.codec.http.DefaultLastHttpContent.TrailingHttpHeaders.15cfd12c93073a46f
    io.netty.handler.codec.http.EmptyHttpHeadersa3d76000919d4186
    io.netty.handler.codec.http.EmptyHttpHeaders.InstanceInitializeradfd8b235d7de013
    io.netty.handler.codec.http.HttpClientCodec437efaceb9e2f831
    io.netty.handler.codec.http.HttpClientCodec.Decoder0bfe4bcd3f4daa3c
    io.netty.handler.codec.http.HttpClientCodec.Encoderd8475b96cbf1b845
    io.netty.handler.codec.http.HttpConstants51576064166c3791
    io.netty.handler.codec.http.HttpContentDecoder933d1ae918d25014
    io.netty.handler.codec.http.HttpContentDecompressor5002bba2eec3cdab
    io.netty.handler.codec.http.HttpHeaderNamescd7ae0d53c82a133
    io.netty.handler.codec.http.HttpHeaderValidationUtilf4ee1d13843ae8d5
    io.netty.handler.codec.http.HttpHeaderValidationUtil.BitSet128d0a5145fb53fb932
    io.netty.handler.codec.http.HttpHeaderValuesd3e28e5a0dbf3740
    io.netty.handler.codec.http.HttpHeaderse2317aa29521907f
    io.netty.handler.codec.http.HttpHeadersEncoder75cbc40e9e819f71
    io.netty.handler.codec.http.HttpMessageDecoderResult513aedd5a0f6d0be
    io.netty.handler.codec.http.HttpMethod17e5d7cc602cde84
    io.netty.handler.codec.http.HttpMethod.EnumNameMap9eb5dc907005042e
    io.netty.handler.codec.http.HttpMethod.EnumNameMap.Nodec350048dc57a9d2d
    io.netty.handler.codec.http.HttpObjectAggregator07c29013a1e636dd
    io.netty.handler.codec.http.HttpObjectAggregator.AggregatedFullHttpMessage4c9057e2586aba62
    io.netty.handler.codec.http.HttpObjectAggregator.AggregatedFullHttpRequest4a0f729374ab9dd9
    io.netty.handler.codec.http.HttpObjectAggregator.AggregatedFullHttpResponsece7aff93c4db33ad
    io.netty.handler.codec.http.HttpObjectDecoder766aaa4f78cc76f1
    io.netty.handler.codec.http.HttpObjectDecoder.1d0b529fa1bb6000e
    io.netty.handler.codec.http.HttpObjectDecoder.HeaderParser3f2cce231fd69100
    io.netty.handler.codec.http.HttpObjectDecoder.LineParserd0ad037e4480bca3
    io.netty.handler.codec.http.HttpObjectDecoder.Statecbe69b604f9b45b2
    io.netty.handler.codec.http.HttpObjectEncoder01b0cc47e44d4828
    io.netty.handler.codec.http.HttpRequestDecoderb34e14e5afd81f65
    io.netty.handler.codec.http.HttpRequestEncoderd82ec09d8aa83c6e
    io.netty.handler.codec.http.HttpResponseDecoderb38d1550caeab926
    io.netty.handler.codec.http.HttpResponseEncoderbb5a63543dbe8a7a
    io.netty.handler.codec.http.HttpResponseStatus33c3d192662574da
    io.netty.handler.codec.http.HttpServerCodec96dddceddf2b1c5f
    io.netty.handler.codec.http.HttpServerCodec.HttpServerRequestDecodereeca6da2924eceab
    io.netty.handler.codec.http.HttpServerCodec.HttpServerResponseEncodera1e7c9f92e519814
    io.netty.handler.codec.http.HttpStatusClass0597c48050b77a44
    io.netty.handler.codec.http.HttpStatusClass.1fd5d44a7ce4afe83
    io.netty.handler.codec.http.HttpUtilad6032d746224158
    io.netty.handler.codec.http.HttpVersioncff1f37cb62096f7
    io.netty.handler.codec.http.LastHttpContent5d9dd79dae786c9a
    io.netty.handler.codec.http.LastHttpContent.1dd56653639ec1a96
    io.netty.handler.codec.http.QueryStringEncoderb2b370ddf1bf620a
    io.netty.handler.codec.socksx.SocksVersion44f9725fc0d1afcc
    io.netty.handler.ssl.SslClientHelloHandlere3710e52193897f7
    io.netty.handler.ssl.SslHandler7d8d9df130f9bbe4
    io.netty.handler.ssl.SslUtils6e038c1f3a22e42b
    io.netty.resolver.AbstractAddressResolverbf8b75b1a931eade
    io.netty.resolver.AddressResolverGroup209426e30f3634d0
    io.netty.resolver.AddressResolverGroup.1a7a3348eba49ae04
    io.netty.resolver.DefaultAddressResolverGroup5eb0be8747020d8d
    io.netty.resolver.DefaultNameResolver9aa5a996f8725c89
    io.netty.resolver.InetNameResolver35d630a37037fd8a
    io.netty.resolver.InetSocketAddressResolvere7944bde43bba44b
    io.netty.resolver.SimpleNameResolver8b3ef961d6522d78
    io.netty.util.AbstractConstant0f040c9c0d06c7a3
    io.netty.util.AsciiStringbc62eee3e7e0ed23
    io.netty.util.AsciiString.1e8c5f226ca382bf7
    io.netty.util.AsciiString.2e12492b93659c11d
    io.netty.util.AttributeKey75cb5b176dc487c1
    io.netty.util.AttributeKey.121d1e71eb5b0c66a
    io.netty.util.CharsetUtil5bf18c6c056e4114
    io.netty.util.ConstantPoolf136ff447d5c0a93
    io.netty.util.DefaultAttributeMap3739e6e368244b19
    io.netty.util.DefaultAttributeMap.DefaultAttribute10f98d7687fd3f86
    io.netty.util.NetUtil56f906c8857429fb
    io.netty.util.NetUtil.SoMaxConnActionb46c0bde65cbe24a
    io.netty.util.NetUtilInitializations5b9cbf4ee6f85305
    io.netty.util.NetUtilInitializations.NetworkIfaceAndInetAddress747ca7df2a229a8a
    io.netty.util.NettyRuntime6ee4ccdf736ab16b
    io.netty.util.NettyRuntime.AvailableProcessorsHoldera5044c48058fd10b
    io.netty.util.Recyclere5dd55a9f828ad2b
    io.netty.util.Recycler.1bad37718f4ad4a99
    io.netty.util.Recycler.29c3f7d170d4ca375
    io.netty.util.Recycler.DefaultHandle8072a50038f7fd44
    io.netty.util.Recycler.LocalPool8acbf8469eb16acc
    io.netty.util.ReferenceCountUtild2137b6ff857e28f
    io.netty.util.ResourceLeakDetector965805971474376e
    io.netty.util.ResourceLeakDetector.DefaultResourceLeak5ced4ccecc416383
    io.netty.util.ResourceLeakDetector.Level134f1b85810ca4fd
    io.netty.util.ResourceLeakDetector.TraceRecordb3350fe2af3cc9fc
    io.netty.util.ResourceLeakDetector.TraceRecord.15a9e7b3cb96b9814
    io.netty.util.ResourceLeakDetectorFactoryaf6057effdab7db2
    io.netty.util.ResourceLeakDetectorFactory.DefaultResourceLeakDetectorFactory4065620e1e913cfd
    io.netty.util.Signal0808d16a4806a1ef
    io.netty.util.Signal.1fc4a78cc4050ddbc
    io.netty.util.Signal.SignalConstante5270e43261189b2
    io.netty.util.concurrent.AbstractEventExecutord21a17fca3b2309c
    io.netty.util.concurrent.AbstractEventExecutorGroupfcf34f15b38da032
    io.netty.util.concurrent.AbstractFuture4d11cef49db6b428
    io.netty.util.concurrent.AbstractScheduledEventExecutor3b99e87df515139f
    io.netty.util.concurrent.AbstractScheduledEventExecutor.10eeeae0e8cdb379a
    io.netty.util.concurrent.AbstractScheduledEventExecutor.297511f97537fa3dd
    io.netty.util.concurrent.CompleteFuture866ca7b079aba980
    io.netty.util.concurrent.DefaultEventExecutorChooserFactory2365820ab66a0a8a
    io.netty.util.concurrent.DefaultEventExecutorChooserFactory.GenericEventExecutorChooser87a7c8bf4b30ac14
    io.netty.util.concurrent.DefaultFutureListeners777239207685e818
    io.netty.util.concurrent.DefaultPromise456c19febf076367
    io.netty.util.concurrent.DefaultPromise.CauseHolderc15765fc540308e7
    io.netty.util.concurrent.DefaultPromise.StacklessCancellationException5f7bd350e1dbc4db
    io.netty.util.concurrent.DefaultThreadFactory485fd3a9d0607b1f
    io.netty.util.concurrent.FailedFuture8cd78a9aeba94a88
    io.netty.util.concurrent.FastThreadLocalff8e34cde162f95d
    io.netty.util.concurrent.GlobalEventExecutor7951cae7c865d500
    io.netty.util.concurrent.GlobalEventExecutor.1a3f04c8033c57168
    io.netty.util.concurrent.GlobalEventExecutor.TaskRunnerc079e90c13e6f5a2
    io.netty.util.concurrent.MultithreadEventExecutorGroup95e497343ba75e14
    io.netty.util.concurrent.MultithreadEventExecutorGroup.1e5769ffce7186358
    io.netty.util.concurrent.PromiseCombiner29e1cddebcba4cfc
    io.netty.util.concurrent.PromiseCombiner.14f50209b38e477ff
    io.netty.util.concurrent.PromiseTaskb46f24cda71f5cd9
    io.netty.util.concurrent.PromiseTask.SentinelRunnablec3a8e0841a96674a
    io.netty.util.concurrent.RejectedExecutionHandlersea7b38fb955e9377
    io.netty.util.concurrent.RejectedExecutionHandlers.1d37cef6ff4b98cc4
    io.netty.util.concurrent.ScheduledFutureTaskef15e36974d943fa
    io.netty.util.concurrent.SingleThreadEventExecutorc5457c9c6852f15f
    io.netty.util.concurrent.SingleThreadEventExecutor.1d44585e3079c7f81
    io.netty.util.concurrent.SingleThreadEventExecutor.444c00c8ea0c22ede
    io.netty.util.concurrent.ThreadPerTaskExecutor822fd4c2b0b491ce
    io.netty.util.internal.AppendableCharSequencedbd2be749bee714d
    io.netty.util.internal.CleanerJava6e0db0f748fd5a92a
    io.netty.util.internal.CleanerJava6.11ce6ce74e0615d1e
    io.netty.util.internal.DefaultPriorityQueuecb9d734ef606f958
    io.netty.util.internal.EmptyArrays8362b9df9edfac52
    io.netty.util.internal.InternalThreadLocalMap99d17351d3d8594e
    io.netty.util.internal.LongAdderCounter0964f777cab324b0
    io.netty.util.internal.MacAddressUtil6ad425e22fa65000
    io.netty.util.internal.MathUtilc1c2a6ac272fbead
    io.netty.util.internal.ObjectPool51d604a8142fda10
    io.netty.util.internal.ObjectPool.RecyclerObjectPool0d54768236ae88dc
    io.netty.util.internal.ObjectPool.RecyclerObjectPool.1b5bd5b4ec82b7d3d
    io.netty.util.internal.ObjectUtilf761d0f0aaff1a5b
    io.netty.util.internal.PlatformDependent06e808f0efd2a309
    io.netty.util.internal.PlatformDependent.16de9e3bec6d77e49
    io.netty.util.internal.PlatformDependent.2bec19bd2b2a422a6
    io.netty.util.internal.PlatformDependent.465e7a0a6d8af0738
    io.netty.util.internal.PlatformDependent.Mpsc6ab651e383219a11
    io.netty.util.internal.PlatformDependent.Mpsc.16b6d1c2e23f93b52
    io.netty.util.internal.PlatformDependent0192d501cb5e4c9da
    io.netty.util.internal.PlatformDependent0.1f03ff3a49bff1101
    io.netty.util.internal.PlatformDependent0.2e854371902d30ab4
    io.netty.util.internal.PlatformDependent0.30df1a05674ffc3c4
    io.netty.util.internal.PlatformDependent0.4df80102c32cdcaf6
    io.netty.util.internal.PlatformDependent0.53cd7e2a765c36019
    io.netty.util.internal.PlatformDependent0.6684e777e0bee3ca8
    io.netty.util.internal.PromiseNotificationUtile77877912f03c005
    io.netty.util.internal.ReferenceCountUpdater3bcc675cff0c4b1f
    io.netty.util.internal.ReflectionUtilc494a7a84e352d17
    io.netty.util.internal.SocketUtilse6dd5c887029a8b5
    io.netty.util.internal.SocketUtils.1126daf5c153d89924
    io.netty.util.internal.SocketUtils.13ce2438d3cdeecffb
    io.netty.util.internal.SocketUtils.3b77cbcef97dd6608
    io.netty.util.internal.SocketUtils.5ced6bf29b08f87c4
    io.netty.util.internal.SocketUtils.76e499c8366cb013b
    io.netty.util.internal.StringUtilf1f0f8990e8a6b1e
    io.netty.util.internal.SystemPropertyUtileda8201dbf84e815
    io.netty.util.internal.ThreadExecutorMap7f9de27a89853bcf
    io.netty.util.internal.ThreadExecutorMap.18efd1fa85c7f1e80
    io.netty.util.internal.ThreadExecutorMap.2020dc7b291e1f098
    io.netty.util.internal.ThreadExecutorMap.3ff383e4d0cb0366a
    io.netty.util.internal.ThrowableUtil636e73d13bbb7e43
    io.netty.util.internal.TypeParameterMatcher2761b29eded4b5b7
    io.netty.util.internal.TypeParameterMatcher.122e9506098763b31
    io.netty.util.internal.TypeParameterMatcher.ReflectiveMatcherb27da292bdca2c43
    io.netty.util.internal.UnpaddedInternalThreadLocalMap65bc9e52de9dae47
    io.netty.util.internal.logging.AbstractInternalLogger4ed6b1fea48925d4
    io.netty.util.internal.logging.InternalLoggerFactoryfc75e15d1bb35362
    io.netty.util.internal.logging.LocationAwareSlf4JLogger06cccddcab82d498
    io.netty.util.internal.logging.Slf4JLoggerFactory1042cae2dcaea037
    io.netty.util.internal.logging.Slf4JLoggerFactory.NopInstanceHolder2dfbd24a979764a5
    io.netty.util.internal.shaded.org.jctools.queues.BaseMpscLinkedArrayQueuecfe29ded904960de
    io.netty.util.internal.shaded.org.jctools.queues.BaseMpscLinkedArrayQueueColdProducerFields391b49d6fe565f2e
    io.netty.util.internal.shaded.org.jctools.queues.BaseMpscLinkedArrayQueueConsumerFields243e4a8844ced8b3
    io.netty.util.internal.shaded.org.jctools.queues.BaseMpscLinkedArrayQueuePad15ee6eff193de3c5f
    io.netty.util.internal.shaded.org.jctools.queues.BaseMpscLinkedArrayQueuePad20452c3f6570017be
    io.netty.util.internal.shaded.org.jctools.queues.BaseMpscLinkedArrayQueuePad3e1c396ab6c6c7e50
    io.netty.util.internal.shaded.org.jctools.queues.BaseMpscLinkedArrayQueueProducerFields798abbb5fac0e8b8
    io.netty.util.internal.shaded.org.jctools.queues.ConcurrentCircularArrayQueuecb4f6dc11cf862b0
    io.netty.util.internal.shaded.org.jctools.queues.ConcurrentCircularArrayQueueL0Pad75fc6b0e3e93332b
    io.netty.util.internal.shaded.org.jctools.queues.LinkedArrayQueueUtil9e3b1278087b06dc
    io.netty.util.internal.shaded.org.jctools.queues.MpscArrayQueue9e084c7843133f1e
    io.netty.util.internal.shaded.org.jctools.queues.MpscArrayQueueConsumerIndexField956d206d3f524803
    io.netty.util.internal.shaded.org.jctools.queues.MpscArrayQueueL1Padbfc65edee839f410
    io.netty.util.internal.shaded.org.jctools.queues.MpscArrayQueueL2Pad1d67c3b01528b0d5
    io.netty.util.internal.shaded.org.jctools.queues.MpscArrayQueueL3Pad10f00f74496f6db5
    io.netty.util.internal.shaded.org.jctools.queues.MpscArrayQueueMidPadd6a88a325ae5e9f7
    io.netty.util.internal.shaded.org.jctools.queues.MpscArrayQueueProducerIndexFieldfb93d6d5ffac3a22
    io.netty.util.internal.shaded.org.jctools.queues.MpscArrayQueueProducerLimitField9e136728abfec8f6
    io.netty.util.internal.shaded.org.jctools.queues.MpscChunkedArrayQueue36966aaf2919e16d
    io.netty.util.internal.shaded.org.jctools.queues.MpscChunkedArrayQueueColdProducerFieldsab0aff0df32dd3d5
    io.netty.util.internal.shaded.org.jctools.queues.MpscUnboundedArrayQueue841eff3a7cd15cdf
    io.netty.util.internal.shaded.org.jctools.util.Pow22dad56df2521f33e
    io.netty.util.internal.shaded.org.jctools.util.RangeUtila8c11708a9fc5920
    io.netty.util.internal.shaded.org.jctools.util.UnsafeAccesscfc08f8bd7e087e4
    io.netty.util.internal.shaded.org.jctools.util.UnsafeRefArrayAccess19aa8b646a72c333
    io.prometheus.client.Collector7a94bbad326104d6
    io.prometheus.client.Collector.164afb01d6e720e1c
    io.prometheus.client.Collector.MetricFamilySamples2729e6ccc2ef8013
    io.prometheus.client.Collector.Typefe41ff924873938a
    io.prometheus.client.CollectorRegistrye87d94697058fa67
    io.prometheus.client.DoubleAddera0de78d1da7b8e2b
    io.prometheus.client.Gauge8ad89e5f1b11e673
    io.prometheus.client.Gauge.Builder90fae75ea0aa143d
    io.prometheus.client.Gauge.Child389df9c0c1b2db24
    io.prometheus.client.Gauge.TimeProvider66130108509b75a4
    io.prometheus.client.GaugeMetricFamily80bb78d80ae44c7d
    io.prometheus.client.SimpleCollector7593901fc4a86362
    io.prometheus.client.SimpleCollector.Buildera69f943e8b991b20
    io.prometheus.client.Striped64942a58ff0b1f46f2
    javax.json.EmptyArrayf63598214cdf4813
    javax.json.EmptyObjectaae67fb779fa6a51
    javax.json.Json6ffaf75211f5d863
    javax.json.JsonValue089ae0dae533de78
    javax.json.JsonValue.ValueType8eff2e7ad0d72a52
    javax.json.JsonValueImpl6019370326b8ea85
    javax.json.spi.JsonProvider888f378958cffe6e
    javax.json.stream.JsonParser.Event00828f9746dd1366
    mockit.Invocationa96336e1f386171f
    mockit.MockUpe8171f437ed496ae
    mockit.asm.AnnotatedReadercd282e0a5a53baea
    mockit.asm.BaseWriter582f5e60cf7a7aa4
    mockit.asm.SignatureWriterdf63ed411efbf4b6
    mockit.asm.annotations.AnnotationReader1a8efb95d77d1cc4
    mockit.asm.classes.ClassInfo373729acd80f0ac2
    mockit.asm.classes.ClassReader35b19ee242b52e68
    mockit.asm.classes.ClassVisitorecc8c148efb1fb05
    mockit.asm.classes.ClassWriter138f6d9fdc880f33
    mockit.asm.classes.ConstantPoolCopyinge69830abde6594e3
    mockit.asm.classes.InnerClassesWriter161eb63681ff89cf
    mockit.asm.classes.SourceFileWritere8fc300748dc0805
    mockit.asm.classes.WrappingClassVisitor05ea9f6f99307be6
    mockit.asm.constantPool.AttributeWriter14f301dde0efc458
    mockit.asm.constantPool.ClassMemberItemaa126e5329780a07
    mockit.asm.constantPool.ConstantPoolGeneration0fa17a48409c3309
    mockit.asm.constantPool.DoubleItem34f414546b36c4df
    mockit.asm.constantPool.DynamicItem3cea8c55017846c0
    mockit.asm.constantPool.FloatItembd61b107266c3b95
    mockit.asm.constantPool.IntItemd97e2f1dc717a13e
    mockit.asm.constantPool.IntValueItem98e99f11b2caca0e
    mockit.asm.constantPool.Itemd068fa4ff3fcee61
    mockit.asm.constantPool.LongItem6b22c746ea1433c1
    mockit.asm.constantPool.LongValueItem2ccc0f1c20cad69e
    mockit.asm.constantPool.MergedTypeTableItem0d0b1da6270fd88c
    mockit.asm.constantPool.MethodHandleItem39bcee524a8a7b98
    mockit.asm.constantPool.NameAndTypeItemb7bb836a0ec0d51d
    mockit.asm.constantPool.NormalTypeTableItem0f252ab8f9880312
    mockit.asm.constantPool.StringItem88ca5a93ae8a30e1
    mockit.asm.constantPool.TypeOrMemberItemdab75af23a47e2b1
    mockit.asm.constantPool.TypeTableItemd8a8ef64ff3ac452
    mockit.asm.constantPool.UninitializedTypeTableItem370461ef51a65392
    mockit.asm.controlFlow.CFGAnalysisa06e124c809928c9
    mockit.asm.controlFlow.Edge5d83111f9538c66f
    mockit.asm.controlFlow.Frame386d35773c19369a
    mockit.asm.controlFlow.Label5bca527bd719557c
    mockit.asm.controlFlow.StackMapTableWriter7bcdf022caa20775
    mockit.asm.exceptionHandling.ExceptionHandling286f458f00be3947
    mockit.asm.fields.FieldReader053ae610f8947b76
    mockit.asm.fields.FieldVisitor6c321d4980a2d7f3
    mockit.asm.jvmConstants.Access642ded812da66040
    mockit.asm.jvmConstants.JVMInstructiondeeb476cf4f7665b
    mockit.asm.metadata.ClassMetadataReader86fe7615054981b5
    mockit.asm.metadata.ClassMetadataReader.AnnotationInfobc09c40a0f38e185
    mockit.asm.metadata.ClassMetadataReader.Attribute6d901176eb06252c
    mockit.asm.metadata.ClassMetadataReader.ConstantPoolTag83ba5ffd57f73b11
    mockit.asm.metadata.ClassMetadataReader.MemberInfodd16bea0c59df08f
    mockit.asm.metadata.ClassMetadataReader.MethodInfo3e1c9829877de254
    mockit.asm.metadata.ObjectWithAttributese089abe59f8ade12
    mockit.asm.methods.ExceptionsWritere5e41e85406ed2b8
    mockit.asm.methods.LineNumberTableWriter7fa755996e63e0b5
    mockit.asm.methods.LocalVariableTableWriter0ff2250f9d363442
    mockit.asm.methods.MethodReader0d46bdb10e1cb567
    mockit.asm.methods.MethodVisitor6aafdb0e0bd9f04d
    mockit.asm.methods.MethodWriterc77ca17c110fc381
    mockit.asm.methods.WrappingMethodVisitorfe2114a373ed09e3
    mockit.asm.types.ArrayType3897ad248dad3058
    mockit.asm.types.JavaType6a617aca55015b96
    mockit.asm.types.ObjectType439dacb2d6b69467
    mockit.asm.types.PrimitiveType9907457aea9de70c
    mockit.asm.types.ReferenceTypec3a32354b2fe0c85
    mockit.asm.util.ByteVectoradf5209dcdaf01d5
    mockit.asm.util.BytecodeReaderad4c2af17a40d4d0
    mockit.coverage.CodeCoverage57c4b93cf9705048
    mockit.coverage.Configuration0f191cfcb58e3996
    mockit.coverage.testRedundancy.TestCoveragee7294c8646aeb601
    mockit.integration.TestRunnerDecorator10c6d4d07e4bb526
    mockit.integration.junit4.FakeFrameworkMethod202fa832304031cd
    mockit.integration.junit4.FakeRunNotifierf2d8e332a2590c60
    mockit.integration.junit4.JUnit4TestRunnerDecoratorc2eadb5bf6beaf6c
    mockit.internal.BaseClassModifiere801aefb4d7fd037
    mockit.internal.BaseClassModifier.1cd1242b388012ca6
    mockit.internal.BaseClassModifier.DynamicModifierc5d17ff8720815cc
    mockit.internal.BaseInvocationf7de466f17f4adbb
    mockit.internal.ClassFile41b638065ae166a7
    mockit.internal.ClassLoadingBridgee658793228cc4a49
    mockit.internal.expectations.RecordAndReplayExecutionf879ec0212b83007
    mockit.internal.expectations.mocking.FieldTypeRedefinitionsc4cb3bcb5359dd6a
    mockit.internal.expectations.mocking.MockedBridge331090874886c8c7
    mockit.internal.expectations.mocking.MockedTypeb261d998676dfb65
    mockit.internal.expectations.mocking.TypeRedefinitions055dc33e135fb36a
    mockit.internal.expectations.state.CascadingTypesb9acfb27aa4a8790
    mockit.internal.expectations.state.ExecutingTestacf34225777d2f3b
    mockit.internal.expectations.state.ExecutingTest.13b09910b1e29a191
    mockit.internal.expectations.transformation.ExpectationsTransformereaac4e9336d5ca40
    mockit.internal.faking.FakeBridgeda78f19ce898d263
    mockit.internal.faking.FakeClassSetupe4606a4618ad323c
    mockit.internal.faking.FakeClasses3cd46eb6591366cb
    mockit.internal.faking.FakeClasses.SavePointfecc58d760c6ed06
    mockit.internal.faking.FakeInvocatione3e355bfb78d2072
    mockit.internal.faking.FakeMethodBridge2fd5b959860f5d53
    mockit.internal.faking.FakeMethodCollectoraa97db550361bc87
    mockit.internal.faking.FakeMethods471e51097727667e
    mockit.internal.faking.FakeMethods.FakeMethodb5d99f462770e149
    mockit.internal.faking.FakeState01259986b514ed46
    mockit.internal.faking.FakeStatese760ab91481812c0
    mockit.internal.faking.FakedClassModifier28fa1e02ea9dd34f
    mockit.internal.injection.InjectionProvider1076f7e808be8615
    mockit.internal.injection.InjectionProviders62b38f89bfedb6c7
    mockit.internal.injection.InjectionState6e9537644e97642f
    mockit.internal.injection.InterfaceResolutionc5428bf18cac5f85
    mockit.internal.injection.InterfaceResolution.130a49c92c2d8b04f
    mockit.internal.injection.LifecycleMethodsed1a5aaae6cf42e3
    mockit.internal.injection.TestedClassInstantiationsbfc9ebb0ae421152
    mockit.internal.injection.TestedObjectbdd0e59488a17cbb
    mockit.internal.reflection.GenericTypeReflectiona556abe88b104f52
    mockit.internal.startup.ClassLoadingBridgeFields29d0d6d7f507fa33
    mockit.internal.startup.ClassLoadingBridgeFields.FieldAdditionTransformer682a4d5236ea1c37
    mockit.internal.startup.ClassLoadingBridgeFields.FieldAdditionTransformer.12e9fd2fdf39cd8c3
    mockit.internal.startup.JMockitInitialization1f5ea374ed1901b8
    mockit.internal.startup.Startup177b14c50aa68246
    mockit.internal.state.CachedClassfiles231a21c71ced4214
    mockit.internal.state.MockFixture394c3264450f978b
    mockit.internal.state.ParameterNames9f70a2910daf7cd7
    mockit.internal.state.SavePointda4c7e434f406431
    mockit.internal.state.TestRun6409fd3c8b761b63
    mockit.internal.state.TestRun.17d6ccf983062f278
    mockit.internal.util.ClassLoad5bd538d4254708e6
    mockit.internal.util.ClassNaming53e8188d1e80d2e0
    mockit.internal.util.ParameterNameExtractor23af23efb21b6d24
    mockit.internal.util.StackTraceff09e8982b37f81c
    mockit.internal.util.TypeConversione064dff353fc3c14
    org.apache.commons.io.Charsets8ae1973f359dec29
    org.apache.commons.io.FileUtilsb05a09ee270979e9
    org.apache.commons.io.FilenameUtils3144089e135875ac
    org.apache.commons.io.IOUtils6ee4556e7885ab91
    org.apache.commons.io.StandardLineSeparator40b593b9edc3531e
    org.apache.commons.io.file.Counters3347b40442150325
    org.apache.commons.io.file.Counters.AbstractPathCountersf029129367b66185
    org.apache.commons.io.file.Counters.LongCounter8a0e15c3b7aab6f0
    org.apache.commons.io.file.Counters.LongPathCounters4d05a3ec2389a891
    org.apache.commons.io.file.CountingPathVisitor1a0297f6692d68b7
    org.apache.commons.io.file.DeletingPathVisitor380d01f344f0b03a
    org.apache.commons.io.file.PathUtilsc186f18e4d52fa5b
    org.apache.commons.io.file.SimplePathVisitor42930704cb1f97c1
    org.apache.commons.io.file.StandardDeleteOption670e1c1e2863e0b5
    org.apache.commons.io.filefilter.AbstractFileFilter92dd8bb7f7b80944
    org.apache.commons.io.filefilter.IOFileFilter4896a5eee1f88d05
    org.apache.commons.io.filefilter.SymbolicLinkFileFilterd7784b41fab5d1af
    org.apache.commons.io.filefilter.TrueFileFilterfabf6490458c9b57
    org.apache.commons.io.output.StringBuilderWriter56db39b128a95142
    org.apache.commons.lang3.ArraySorter72b5b4fd78900d5c
    org.apache.commons.lang3.ArrayUtils55cd090cc4afae67
    org.apache.commons.lang3.ObjectUtils1c157e9ecfc781f4
    org.apache.commons.lang3.ObjectUtils.Nullbc56db2ba4a397f4
    org.apache.commons.lang3.StringUtilsb53e9ceb7cab46c1
    org.apache.commons.lang3.Validate1641aabfdb381324
    org.apache.commons.lang3.builder.EqualsBuilderaa8ad870ff53852c
    org.apache.commons.lang3.builder.HashCodeBuilder2143ccbdbc7e1ea5
    org.apache.commons.lang3.builder.IDKey5daf57912b530aec
    org.apache.commons.lang3.builder.Reflectiona345b02d0ec0811a
    org.apache.commons.lang3.tuple.ImmutablePairea1fdd387104f342
    org.apache.commons.lang3.tuple.Pair24fcf8d25a997dff
    org.apache.maven.plugin.surefire.log.api.NullConsoleLogger9e19e8c6ec7e2af1
    org.apache.maven.surefire.api.booter.BaseProviderFactory3859e78bd81eea39
    org.apache.maven.surefire.api.booter.BiPropertyd22c13c56d5b4593
    org.apache.maven.surefire.api.booter.Command3cd54166633f8826
    org.apache.maven.surefire.api.booter.Constantsdecb9de81c53dc77
    org.apache.maven.surefire.api.booter.DumpErrorSingleton0fb68b22eecee565
    org.apache.maven.surefire.api.booter.ForkedProcessEventTypefb813c97649a2cb4
    org.apache.maven.surefire.api.booter.ForkingReporterFactory43a09ed486105416
    org.apache.maven.surefire.api.booter.ForkingRunListener72fc487c27ef5b8d
    org.apache.maven.surefire.api.booter.MasterProcessCommand4638438d1f9cb2b7
    org.apache.maven.surefire.api.booter.Shutdown22c5299ca66a441d
    org.apache.maven.surefire.api.cli.CommandLineOption4a638448af60a346
    org.apache.maven.surefire.api.filter.NonAbstractClassFilterf9349f28027f7865
    org.apache.maven.surefire.api.provider.AbstractProvidera003e0bc84287c70
    org.apache.maven.surefire.api.report.ConsoleOutputCapture810c9018ba7d1ecc
    org.apache.maven.surefire.api.report.ConsoleOutputCapture.ForwardingPrintStream2c7c3dde8b37b8d9
    org.apache.maven.surefire.api.report.ConsoleOutputCapture.NullOutputStream5731848fa72c76c9
    org.apache.maven.surefire.api.report.ReporterConfigurationa4d0f02ee0a3ce3b
    org.apache.maven.surefire.api.report.RunMode99815bd2f7cf25b8
    org.apache.maven.surefire.api.report.SimpleReportEntrybe57bd60074f466f
    org.apache.maven.surefire.api.report.TestOutputReportEntryb7f0e6ae6773a3e5
    org.apache.maven.surefire.api.stream.AbstractStreamDecoderc51329e6fe95e03f
    org.apache.maven.surefire.api.stream.AbstractStreamDecoder.BufferedStream0e036d9195140045
    org.apache.maven.surefire.api.stream.AbstractStreamDecoder.Memento50fa22818cea4206
    org.apache.maven.surefire.api.stream.AbstractStreamDecoder.Segmentec7b2e9f3dc519b5
    org.apache.maven.surefire.api.stream.AbstractStreamDecoder.StreamReadStatusb28e22fff7af7760
    org.apache.maven.surefire.api.stream.AbstractStreamEncoder5b9d2cab05438b39
    org.apache.maven.surefire.api.stream.SegmentTypea352bcb443bb6539
    org.apache.maven.surefire.api.suite.RunResult14b135b9dcad68f4
    org.apache.maven.surefire.api.testset.DirectoryScannerParameters011c1405154cf543
    org.apache.maven.surefire.api.testset.IncludedExcludedPatternse9dcd696bf90972f
    org.apache.maven.surefire.api.testset.ResolvedTest89f52bebbeb73147
    org.apache.maven.surefire.api.testset.ResolvedTest.ClassMatcherc5f953b9f15d7ab4
    org.apache.maven.surefire.api.testset.ResolvedTest.MethodMatcher7b60e64bb228414b
    org.apache.maven.surefire.api.testset.ResolvedTest.Type2a3fe66966797e51
    org.apache.maven.surefire.api.testset.RunOrderParameters54e3b7abf0f0a29a
    org.apache.maven.surefire.api.testset.TestArtifactInfo534706d1cf843371
    org.apache.maven.surefire.api.testset.TestListResolverdf95312288764ee2
    org.apache.maven.surefire.api.testset.TestRequestc693581994b610fb
    org.apache.maven.surefire.api.util.CloseableIterator1bb59460a90e1562
    org.apache.maven.surefire.api.util.DefaultRunOrderCalculator2be55f855ffc9c23
    org.apache.maven.surefire.api.util.DefaultScanResult3abe973f1a2038a4
    org.apache.maven.surefire.api.util.ReflectionUtils463b61419dafb4bc
    org.apache.maven.surefire.api.util.RunOrdera5c43ed7ff239d28
    org.apache.maven.surefire.api.util.TestsToRun1a59fa62362c2dd4
    org.apache.maven.surefire.api.util.TestsToRun.ClassesIterator3054f1187d144893
    org.apache.maven.surefire.api.util.internal.AbstractNoninterruptibleReadableChannelb76efd5ee4f6a78a
    org.apache.maven.surefire.api.util.internal.AbstractNoninterruptibleWritableChannel7b40a9206100f626
    org.apache.maven.surefire.api.util.internal.Channelsa28ebb2dc3d003c6
    org.apache.maven.surefire.api.util.internal.Channels.31911457c5208109a
    org.apache.maven.surefire.api.util.internal.Channels.461df49d28956b732
    org.apache.maven.surefire.api.util.internal.ClassMethod831eee1f29d6b004
    org.apache.maven.surefire.api.util.internal.DaemonThreadFactory4065ee5e2ad99385
    org.apache.maven.surefire.api.util.internal.DaemonThreadFactory.NamedThreadFactory0dc63f2f250c8f58
    org.apache.maven.surefire.api.util.internal.DumpFileUtils260268350116ea1a
    org.apache.maven.surefire.api.util.internal.ImmutableMapc8d76b0bb433e1e6
    org.apache.maven.surefire.api.util.internal.ImmutableMap.Node61855d8450e86cb5
    org.apache.maven.surefire.api.util.internal.ObjectUtilsd0584b88701e9b97
    org.apache.maven.surefire.api.util.internal.TestClassMethodNameUtilsa01f540094a55e8c
    org.apache.maven.surefire.booter.AbstractPathConfiguration2ad3d057ec281500
    org.apache.maven.surefire.booter.BooterDeserializera2a1a3132d868a74
    org.apache.maven.surefire.booter.ClassLoaderConfiguration5bafac5e09ac0782
    org.apache.maven.surefire.booter.Classpath81f738f937cf4b38
    org.apache.maven.surefire.booter.ClasspathConfigurationb651758fedc3de2d
    org.apache.maven.surefire.booter.CommandReader440cf8805d3444be
    org.apache.maven.surefire.booter.CommandReader.16e995a711f46e676
    org.apache.maven.surefire.booter.CommandReader.CommandRunnable7f7bfee61ebca85e
    org.apache.maven.surefire.booter.ForkedBooterff24aeec916b680b
    org.apache.maven.surefire.booter.ForkedBooter.173179ebb6b41b643
    org.apache.maven.surefire.booter.ForkedBooter.3c51baabea2b75554
    org.apache.maven.surefire.booter.ForkedBooter.468ca1df4a9ada348
    org.apache.maven.surefire.booter.ForkedBooter.608fe853c879dd1a6
    org.apache.maven.surefire.booter.ForkedBooter.78cca77fe0fd3c98d
    org.apache.maven.surefire.booter.ForkedBooter.8779c6068c1dac1db
    org.apache.maven.surefire.booter.ForkedBooter.PingScheduler6e83f53202050979
    org.apache.maven.surefire.booter.ForkedNodeArge055a24d27c554f3
    org.apache.maven.surefire.booter.PpidChecker921ca312a6f63114
    org.apache.maven.surefire.booter.ProcessCheckerType9c8497621409bb1e
    org.apache.maven.surefire.booter.PropertiesWrapperc4362cb430c125af
    org.apache.maven.surefire.booter.ProviderConfiguration84eb716577efc3a7
    org.apache.maven.surefire.booter.StartupConfigurationf457135a627728a6
    org.apache.maven.surefire.booter.SystemPropertyManager0446c7c116836016
    org.apache.maven.surefire.booter.TypeEncodedValue1b039936542eee72
    org.apache.maven.surefire.booter.spi.AbstractMasterProcessChannelProcessorFactoryc30b5b062f066468
    org.apache.maven.surefire.booter.spi.AbstractMasterProcessChannelProcessorFactory.1644e111f23817fd3
    org.apache.maven.surefire.booter.spi.AbstractMasterProcessChannelProcessorFactory.247b08c480603fa8a
    org.apache.maven.surefire.booter.spi.CommandChannelDecoder65f2965c86411193
    org.apache.maven.surefire.booter.spi.EventChannelEncoder114071f00780f71e
    org.apache.maven.surefire.booter.spi.EventChannelEncoder.StackTracee7231bc2c7014c40
    org.apache.maven.surefire.booter.spi.LegacyMasterProcessChannelProcessorFactoryb54085754461a0d1
    org.apache.maven.surefire.booter.spi.SurefireMasterProcessChannelProcessorFactory132a213649249d64
    org.apache.maven.surefire.booter.stream.CommandDecoder0d40efcc428f82e2
    org.apache.maven.surefire.booter.stream.CommandDecoder.19d88d04fa41adab4
    org.apache.maven.surefire.booter.stream.EventEncoder4bdbe84daf58c435
    org.apache.maven.surefire.common.junit3.JUnit3TestCheckerbbad74a9945614a4
    org.apache.maven.surefire.common.junit4.JUnit4ProviderUtilfa2afc137d4ba7b3
    org.apache.maven.surefire.common.junit4.JUnit4Reflector23b83cd8942b7f95
    org.apache.maven.surefire.common.junit4.JUnit4RunListenerd8d5e5130dcf4b9b
    org.apache.maven.surefire.common.junit4.JUnit4RunListenerFactoryccfd1352f097d7b8
    org.apache.maven.surefire.common.junit4.JUnit4TestCheckerf6cf831ca6699119
    org.apache.maven.surefire.common.junit4.JUnitTestFailureListener03f07d8828d7aca4
    org.apache.maven.surefire.common.junit4.Notifiera943b086c230616e
    org.apache.maven.surefire.junit4.JUnit4Provider5d773610b092faec
    org.apache.maven.surefire.junit4.JUnit4Provider.1e7b4bc1546ba10b9
    org.apache.maven.surefire.report.ClassMethodIndexer8b31a053539323b7
    org.apache.maven.surefire.shared.lang3.JavaVersion4e21c3be19560aac
    org.apache.maven.surefire.shared.lang3.SystemUtilse5eafc9ce14dcbec
    org.apache.maven.surefire.shared.lang3.math.NumberUtils11e46630af73f131
    org.apache.maven.surefire.shared.utils.StringUtilsabd8480c7152bf46
    org.apache.maven.surefire.shared.utils.cli.ShutdownHookUtils011b23cd829ec86c
    org.bouncycastle.asn1.ASN1Object43086c9e1a3007ee
    org.bouncycastle.asn1.ASN1ObjectIdentifierf2e8b286f30103e7
    org.bouncycastle.asn1.ASN1ObjectIdentifier.12f305d621571e3b4
    org.bouncycastle.asn1.ASN1ObjectIdentifier.OidHandle268168ac735a0299
    org.bouncycastle.asn1.ASN1Primitiveeda8b3f4299f163a
    org.bouncycastle.asn1.ASN1RelativeOID82f08b63cbf52be1
    org.bouncycastle.asn1.ASN1RelativeOID.15b1354cdb0821da6
    org.bouncycastle.asn1.ASN1Tag39da6c08ccf9c083
    org.bouncycastle.asn1.ASN1Type9a715f419d9f7efc
    org.bouncycastle.asn1.ASN1UniversalType784811b77497c071
    org.bouncycastle.asn1.OIDTokenizerad6694d93971c38a
    org.bouncycastle.asn1.bc.BCObjectIdentifiers9807ebe13ae5be33
    org.bouncycastle.asn1.cryptopro.CryptoProObjectIdentifiersb6573e87b5112fa8
    org.bouncycastle.asn1.edec.EdECObjectIdentifiers013107d92e6ac3b8
    org.bouncycastle.asn1.gm.GMObjectIdentifiers39102cdd26bd1624
    org.bouncycastle.asn1.gnu.GNUObjectIdentifiersea1e2afa165f6aa2
    org.bouncycastle.asn1.iana.IANAObjectIdentifiers4f804d8c0b404433
    org.bouncycastle.asn1.isara.IsaraObjectIdentifiers5d79726c97982bfc
    org.bouncycastle.asn1.iso.ISOIECObjectIdentifiers8db23189698b2308
    org.bouncycastle.asn1.kisa.KISAObjectIdentifierse571e423786db08b
    org.bouncycastle.asn1.misc.MiscObjectIdentifiersf0842bae60cf734f
    org.bouncycastle.asn1.nist.NISTObjectIdentifiersbb1aa8f9eea7f273
    org.bouncycastle.asn1.nsri.NSRIObjectIdentifiersd1fdcfd3131f8ef8
    org.bouncycastle.asn1.ntt.NTTObjectIdentifiers6a2926f33806e468
    org.bouncycastle.asn1.oiw.OIWObjectIdentifiersfa09fa0d7584e63a
    org.bouncycastle.asn1.pkcs.PKCSObjectIdentifierse5e5f188fe82d981
    org.bouncycastle.asn1.rosstandart.RosstandartObjectIdentifiers3e67158daa403c0c
    org.bouncycastle.asn1.sec.SECObjectIdentifiers267a4c5ce9761ab0
    org.bouncycastle.asn1.teletrust.TeleTrusTObjectIdentifiers8d13a67bc75b50c5
    org.bouncycastle.asn1.ua.UAObjectIdentifiersd5bc61d5e226d42e
    org.bouncycastle.asn1.x509.X509ObjectIdentifiersce76b4c8f6b5343c
    org.bouncycastle.asn1.x9.X9ObjectIdentifiersc794e50333c4f3b6
    org.bouncycastle.crypto.CryptoServicesPermission4afee5ee743ffa30
    org.bouncycastle.crypto.CryptoServicesRegistrar71dd7fbecf7e7d37
    org.bouncycastle.crypto.CryptoServicesRegistrar.10bd06e30aabb58c2
    org.bouncycastle.crypto.CryptoServicesRegistrar.2f4e589676969b931
    org.bouncycastle.crypto.CryptoServicesRegistrar.Property41966a3f21ac014e
    org.bouncycastle.crypto.params.DHParameters94451df9b0082d21
    org.bouncycastle.crypto.params.DHValidationParameters175a1e8a114a64be
    org.bouncycastle.crypto.params.DSAParametersaecf4991bd6ca171
    org.bouncycastle.crypto.params.DSAValidationParameters95537f1b071a5686
    org.bouncycastle.internal.asn1.bsi.BSIObjectIdentifiers5152d11d29f6c48b
    org.bouncycastle.internal.asn1.cms.CMSObjectIdentifiers5862cb4cd879a7ef
    org.bouncycastle.internal.asn1.eac.EACObjectIdentifiersfb6088622285e71a
    org.bouncycastle.jcajce.provider.asymmetric.COMPOSITE608339ef696ad2b6
    org.bouncycastle.jcajce.provider.asymmetric.COMPOSITE.CompositeKeyInfoConverter1c5affdfaabae3d6
    org.bouncycastle.jcajce.provider.asymmetric.COMPOSITE.Mappingsfaae477ac5e7001f
    org.bouncycastle.jcajce.provider.asymmetric.DHbf787b0c7e486995
    org.bouncycastle.jcajce.provider.asymmetric.DH.Mappings21d007a1762af8bb
    org.bouncycastle.jcajce.provider.asymmetric.DSA.Mappings1b6503ce0c8f198f
    org.bouncycastle.jcajce.provider.asymmetric.DSTU4145.Mappings97a277f13012c019
    org.bouncycastle.jcajce.provider.asymmetric.EC18e9a61ae5ab86d5
    org.bouncycastle.jcajce.provider.asymmetric.EC.Mappingsff0149f9c30f35f4
    org.bouncycastle.jcajce.provider.asymmetric.ECGOST.Mappingsb53dd765c6bafb18
    org.bouncycastle.jcajce.provider.asymmetric.EXTERNAL8eb171b7914f6d93
    org.bouncycastle.jcajce.provider.asymmetric.EXTERNAL.ExternalKeyInfoConverter93b1146537aef928
    org.bouncycastle.jcajce.provider.asymmetric.EXTERNAL.Mappings82294aa7834be166
    org.bouncycastle.jcajce.provider.asymmetric.EdEC.Mappingsb5c3332d4af64060
    org.bouncycastle.jcajce.provider.asymmetric.ElGamal.Mappings37c1708558246b8e
    org.bouncycastle.jcajce.provider.asymmetric.GM.Mappings757d961980f61a7b
    org.bouncycastle.jcajce.provider.asymmetric.GOST.Mappings1cfe2fdf2b5cfc73
    org.bouncycastle.jcajce.provider.asymmetric.IES.Mappingsa810cdd9579b1548
    org.bouncycastle.jcajce.provider.asymmetric.LMS.Mappings74cde4d2c51f8cb8
    org.bouncycastle.jcajce.provider.asymmetric.RSA5df107437d18b937
    org.bouncycastle.jcajce.provider.asymmetric.RSA.Mappings5e3a08cbfbeb812a
    org.bouncycastle.jcajce.provider.asymmetric.SPHINCSPlus.Mappings5a563636beb6adad
    org.bouncycastle.jcajce.provider.asymmetric.X509.Mappings7d22ae4ecf3c59ab
    org.bouncycastle.jcajce.provider.asymmetric.dh.KeyFactorySpia98dbd39254fd366
    org.bouncycastle.jcajce.provider.asymmetric.dsa.DSAUtil11ee3c2846027ce7
    org.bouncycastle.jcajce.provider.asymmetric.dsa.KeyFactorySpiee1506503f1fac65
    org.bouncycastle.jcajce.provider.asymmetric.dstu.KeyFactorySpi8fed904ba17785ec
    org.bouncycastle.jcajce.provider.asymmetric.ec.KeyFactorySpiedcd0037cf7c4f20
    org.bouncycastle.jcajce.provider.asymmetric.ec.KeyFactorySpi.EC14b1a9e5cf7ca3c2
    org.bouncycastle.jcajce.provider.asymmetric.ec.KeyFactorySpi.ECMQVb59fefc1c7c800c4
    org.bouncycastle.jcajce.provider.asymmetric.ecgost.KeyFactorySpiaa37d8bb6c9f3eb2
    org.bouncycastle.jcajce.provider.asymmetric.ecgost12.KeyFactorySpi4661d5c8ddf24ca1
    org.bouncycastle.jcajce.provider.asymmetric.edec.KeyFactorySpi246feee8442fa8cc
    org.bouncycastle.jcajce.provider.asymmetric.edec.KeyFactorySpi.Ed25519868c167f9df5b6d2
    org.bouncycastle.jcajce.provider.asymmetric.edec.KeyFactorySpi.Ed448f661480ea51eca0a
    org.bouncycastle.jcajce.provider.asymmetric.edec.KeyFactorySpi.X25519e7f25dbe3d2b245d
    org.bouncycastle.jcajce.provider.asymmetric.edec.KeyFactorySpi.X44840f0b13779fbbb92
    org.bouncycastle.jcajce.provider.asymmetric.edec.SignatureSpibdd1f6a9330aa14b
    org.bouncycastle.jcajce.provider.asymmetric.edec.SignatureSpi.Ed2551920fb2971631c8996
    org.bouncycastle.jcajce.provider.asymmetric.edec.SignatureSpi.Ed448169183c3bd8931bc
    org.bouncycastle.jcajce.provider.asymmetric.elgamal.KeyFactorySpie56d5e1553f46f4e
    org.bouncycastle.jcajce.provider.asymmetric.gost.KeyFactorySpicbad1716616fbc9c
    org.bouncycastle.jcajce.provider.asymmetric.rsa.KeyFactorySpi74557bcd872d4913
    org.bouncycastle.jcajce.provider.asymmetric.util.BaseKeyFactorySpi5560105bb00c98f3
    org.bouncycastle.jcajce.provider.config.ProviderConfigurationPermission7d4a384d24337d1d
    org.bouncycastle.jcajce.provider.digest.Blake2b.Mappingsabd61f7f5229c9ee
    org.bouncycastle.jcajce.provider.digest.Blake2s.Mappings2087b14838bb5a72
    org.bouncycastle.jcajce.provider.digest.Blake3.Mappings1f6958a0c9c1e927
    org.bouncycastle.jcajce.provider.digest.DSTU7564.Mappings33e3943deb470c17
    org.bouncycastle.jcajce.provider.digest.DigestAlgorithmProvidera261829991a2fb84
    org.bouncycastle.jcajce.provider.digest.GOST3411.Mappings088db6ce1d2e08ad
    org.bouncycastle.jcajce.provider.digest.Haraka.Mappingsa5c6a81f91a32bb6
    org.bouncycastle.jcajce.provider.digest.Keccak.Mappings1574b04593f27f2b
    org.bouncycastle.jcajce.provider.digest.MD2.Mappings453bb023393966d9
    org.bouncycastle.jcajce.provider.digest.MD4.Mappings784aa398d9638322
    org.bouncycastle.jcajce.provider.digest.MD5.Mappings27b03f593144534f
    org.bouncycastle.jcajce.provider.digest.RIPEMD128.Mappingsf1dfd38292fc9d1d
    org.bouncycastle.jcajce.provider.digest.RIPEMD160.Mappings95dbbd922e438a91
    org.bouncycastle.jcajce.provider.digest.RIPEMD256.Mappings3b26a679d4e060bf
    org.bouncycastle.jcajce.provider.digest.RIPEMD320.Mappings252d9c029b601568
    org.bouncycastle.jcajce.provider.digest.SHA1.Mappings1fe96c5db560c459
    org.bouncycastle.jcajce.provider.digest.SHA224.Mappings1873b396687d9cad
    org.bouncycastle.jcajce.provider.digest.SHA256.Mappings7beaa94156022f20
    org.bouncycastle.jcajce.provider.digest.SHA3.Mappingsb4a72acba36e6c0d
    org.bouncycastle.jcajce.provider.digest.SHA384.Mappings9859db346239f47a
    org.bouncycastle.jcajce.provider.digest.SHA512.Mappings094a0ffff745c084
    org.bouncycastle.jcajce.provider.digest.SM3.Mappings497fcd8f8683646e
    org.bouncycastle.jcajce.provider.digest.Skein.Mappings49a41e09dad69bac
    org.bouncycastle.jcajce.provider.digest.Tiger.Mappingsd383b13c5f6734ca
    org.bouncycastle.jcajce.provider.digest.Whirlpool.Mappingsba081875e1b957fd
    org.bouncycastle.jcajce.provider.drbg.DRBGc00d52f4dad89e8d
    org.bouncycastle.jcajce.provider.drbg.DRBG.EntropyDaemon34172c06ea50749c
    org.bouncycastle.jcajce.provider.drbg.DRBG.Mappingsbcd70257a1276557
    org.bouncycastle.jcajce.provider.keystore.BC.Mappings44157c252728b7ef
    org.bouncycastle.jcajce.provider.keystore.BCFKS.Mappingse29bf2644c11d055
    org.bouncycastle.jcajce.provider.keystore.PKCS12.Mappings813d565ce409c83d
    org.bouncycastle.jcajce.provider.symmetric.AES8448ea2002f3395b
    org.bouncycastle.jcajce.provider.symmetric.AES.Mappingsd9e09a969bae3027
    org.bouncycastle.jcajce.provider.symmetric.ARC4.Mappingsb0ea03d39f27b812
    org.bouncycastle.jcajce.provider.symmetric.ARIA.Mappingse1d18815887eb3c6
    org.bouncycastle.jcajce.provider.symmetric.Blowfish.Mappings950f62a5a8970859
    org.bouncycastle.jcajce.provider.symmetric.CAST5.Mappings9017968020e4f4bf
    org.bouncycastle.jcajce.provider.symmetric.CAST6.Mappingsefccfa3af9e61509
    org.bouncycastle.jcajce.provider.symmetric.Camellia.Mappings39c8d28e869f1b9f
    org.bouncycastle.jcajce.provider.symmetric.ChaCha.Mappings86190913bb3c2a6d
    org.bouncycastle.jcajce.provider.symmetric.DES.Mappings0bbed83026a160be
    org.bouncycastle.jcajce.provider.symmetric.DESede.Mappingsfdabaf3cd386a85b
    org.bouncycastle.jcajce.provider.symmetric.DSTU7624.Mappings5292bf7f437f78f3
    org.bouncycastle.jcajce.provider.symmetric.GOST28147.Mappingsf39279e88146c287
    org.bouncycastle.jcajce.provider.symmetric.GOST3412_2015.Mappingse7cb720a4929e302
    org.bouncycastle.jcajce.provider.symmetric.Grain128.Mappings898d71e4d547286e
    org.bouncycastle.jcajce.provider.symmetric.Grainv1.Mappings9be47fcf481b2157
    org.bouncycastle.jcajce.provider.symmetric.HC128.Mappings8d6b810399b96fa0
    org.bouncycastle.jcajce.provider.symmetric.HC256.Mappingsafb9dcd8074d9b50
    org.bouncycastle.jcajce.provider.symmetric.IDEA.Mappings69b88284a9235ec2
    org.bouncycastle.jcajce.provider.symmetric.Noekeon.Mappings7841f8e20490900d
    org.bouncycastle.jcajce.provider.symmetric.OpenSSLPBKDF.Mappingsdf2475cff1a76c61
    org.bouncycastle.jcajce.provider.symmetric.PBEPBKDF1.Mappings663fafe2dcb440a8
    org.bouncycastle.jcajce.provider.symmetric.PBEPBKDF2.Mappings40fb634b52980c5f
    org.bouncycastle.jcajce.provider.symmetric.PBEPKCS12.Mappings917271caa9bc13e9
    org.bouncycastle.jcajce.provider.symmetric.Poly1305.Mappings9380e29d6a83f632
    org.bouncycastle.jcajce.provider.symmetric.RC2.Mappings2da739b5f11c09ef
    org.bouncycastle.jcajce.provider.symmetric.RC5.Mappingscaf2404b3d9cd697
    org.bouncycastle.jcajce.provider.symmetric.RC6.Mappingsd8ad01dedd0f4805
    org.bouncycastle.jcajce.provider.symmetric.Rijndael.Mappings89991b4fe9a291cd
    org.bouncycastle.jcajce.provider.symmetric.SCRYPT.Mappings04c1a542b2296ab1
    org.bouncycastle.jcajce.provider.symmetric.SEED.Mappings1d709e00dcfe907e
    org.bouncycastle.jcajce.provider.symmetric.SM4.Mappingsd4b511a012b89315
    org.bouncycastle.jcajce.provider.symmetric.Salsa20.Mappings9a6b8a4cb34887f1
    org.bouncycastle.jcajce.provider.symmetric.Serpent.Mappings0138fc790397557e
    org.bouncycastle.jcajce.provider.symmetric.Shacal2.Mappings87d55e35606da865
    org.bouncycastle.jcajce.provider.symmetric.SipHash.Mappingsbc6fbc9e89286a1c
    org.bouncycastle.jcajce.provider.symmetric.SipHash128.Mappings7fca953a66850036
    org.bouncycastle.jcajce.provider.symmetric.Skipjack.Mappingsea74bec3a51dd324
    org.bouncycastle.jcajce.provider.symmetric.SymmetricAlgorithmProviderd3d970cbdcad7a61
    org.bouncycastle.jcajce.provider.symmetric.TEA.Mappings995e05fd18844568
    org.bouncycastle.jcajce.provider.symmetric.TLSKDF.Mappings4afc14404d366a81
    org.bouncycastle.jcajce.provider.symmetric.Threefish.Mappings3c258c98fe656510
    org.bouncycastle.jcajce.provider.symmetric.Twofish.Mappingseba437cd93c685b8
    org.bouncycastle.jcajce.provider.symmetric.VMPC.Mappingsa51373a34af7e856
    org.bouncycastle.jcajce.provider.symmetric.VMPCKSA3.Mappingsa27062e01d1526d5
    org.bouncycastle.jcajce.provider.symmetric.XSalsa20.Mappingsbe2715240665ed39
    org.bouncycastle.jcajce.provider.symmetric.XTEA.Mappingsc983416e87922889
    org.bouncycastle.jcajce.provider.symmetric.Zuc.Mappings41e0975cf9b9d07f
    org.bouncycastle.jcajce.provider.symmetric.util.ClassUtil32a9307b42d5a3af
    org.bouncycastle.jcajce.provider.util.AlgorithmProvider8ce4d94a930e0578
    org.bouncycastle.jcajce.provider.util.AsymmetricAlgorithmProviderb27a017806da909c
    org.bouncycastle.jce.provider.BouncyCastleProviderfe008fda64039103
    org.bouncycastle.jce.provider.BouncyCastleProvider.1085a858f1c63d8fb
    org.bouncycastle.jce.provider.BouncyCastleProvider.JcaCryptoService9bd2f02589e2b679
    org.bouncycastle.jce.provider.BouncyCastleProviderConfiguration74676a6a7560aa5f
    org.bouncycastle.pqc.asn1.PQCObjectIdentifiersb409555257ba675b
    org.bouncycastle.pqc.jcajce.provider.falcon.FalconKeyFactorySpi61dc85411d615a58
    org.bouncycastle.pqc.jcajce.provider.lms.LMSKeyFactorySpi7996ed9c7d3ff61c
    org.bouncycastle.pqc.jcajce.provider.mceliece.McElieceCCA2KeyFactorySpi9c6bb6fe039ae7a8
    org.bouncycastle.pqc.jcajce.provider.mceliece.McElieceKeyFactorySpi19c29fe3b2b0229a
    org.bouncycastle.pqc.jcajce.provider.newhope.NHKeyFactorySpi93bf7ae41923d446
    org.bouncycastle.pqc.jcajce.provider.picnic.PicnicKeyFactorySpi5f7f2cf036bfa495
    org.bouncycastle.pqc.jcajce.provider.qtesla.QTESLAKeyFactorySpicb8231cf4e2bcb2f
    org.bouncycastle.pqc.jcajce.provider.rainbow.RainbowKeyFactorySpi57517603971c557b
    org.bouncycastle.pqc.jcajce.provider.sphincs.Sphincs256KeyFactorySpi154f5fd72291738e
    org.bouncycastle.pqc.jcajce.provider.sphincsplus.SPHINCSPlusKeyFactorySpi82ed5bf04d02d970
    org.bouncycastle.pqc.jcajce.provider.xmss.XMSSKeyFactorySpidb735da6f3b72cc9
    org.bouncycastle.pqc.jcajce.provider.xmss.XMSSMTKeyFactorySpid2fae645cfbe5a88
    org.bouncycastle.util.Arrays83379085ffca5398
    org.bouncycastle.util.Propertiescb3c388e648bdc5d
    org.bouncycastle.util.Properties.181bef0d667755d5e
    org.bouncycastle.util.Properties.255522de6e37839e3
    org.bouncycastle.util.Strings5d976d40689c255b
    org.bouncycastle.util.Strings.19fc765f0abe4b0af
    org.bouncycastle.util.encoders.Hex79efb19ebbaff01b
    org.bouncycastle.util.encoders.HexEncoderb5a3dd32975d6319
    org.glassfish.json.BufferPoolImpl836d09e6b15fe927
    org.glassfish.json.JsonArrayBuilderImpl6f06b1bcb60d1d9c
    org.glassfish.json.JsonArrayBuilderImpl.JsonArrayImpl2473913d684e5724
    org.glassfish.json.JsonObjectBuilderImpl1211ee75fd7bf0f1
    org.glassfish.json.JsonObjectBuilderImpl.JsonObjectImpl40b8f8ac2ba906b1
    org.glassfish.json.JsonParserImpl5cb1b1235d83a520
    org.glassfish.json.JsonParserImpl.472f5c19858fdac74
    org.glassfish.json.JsonParserImpl.ArrayContext070fe26322fac856
    org.glassfish.json.JsonParserImpl.Context7a006c910b75a2d2
    org.glassfish.json.JsonParserImpl.NoneContext03216417686aafcd
    org.glassfish.json.JsonParserImpl.ObjectContextc784c334c97a0446
    org.glassfish.json.JsonParserImpl.Stackb1ea5cd4417c3854
    org.glassfish.json.JsonProviderImpl9f077215b667ebce
    org.glassfish.json.JsonReaderImpl0505c7e42b01830d
    org.glassfish.json.JsonStringImpld4e9a70b4eb97432
    org.glassfish.json.JsonTokenizer04b00aebe1b8d506
    org.glassfish.json.JsonTokenizer.JsonTokenc25a727e32262f68
    org.glassfish.json.UnicodeDetectingInputStreamcbb27135a66d814d
    org.hamcrest.BaseMatcherf52733a4a58e8a8e
    org.hamcrest.MatcherAssert375cdaed635186e8
    org.hamcrest.core.Is1b4bc96017d7a098
    org.hamcrest.core.IsEqualdf3c8def58c301e5
    org.hamcrest.core.IsNot7b55411c1f2e51f0
    org.hamcrest.core.IsNull64a5e8d54fea456f
    org.junit.Asserteda6db924019425b
    org.junit.Assumea0bac2e5a81f9b21
    org.junit.internal.Checks5f543b0bb87b92da
    org.junit.internal.ComparisonCriteriaeb4930662485358d
    org.junit.internal.ComparisonCriteria.1078c309755193425
    org.junit.internal.ExactComparisonCriteriab46e382b993e25ce
    org.junit.internal.MethodSortera26607ae067f7352
    org.junit.internal.MethodSorter.1d3997b4bdb7889c1
    org.junit.internal.MethodSorter.2c8e6351cbf098013
    org.junit.internal.builders.AllDefaultPossibilitiesBuilder4f18a1d7932cb8ab
    org.junit.internal.builders.AnnotatedBuilder0faf353d180c9332
    org.junit.internal.builders.IgnoredBuildere152f333c53967a6
    org.junit.internal.builders.JUnit3Builder4a2cc8e608e1275e
    org.junit.internal.builders.JUnit4Builderf2e00a3e1fc23005
    org.junit.internal.builders.SuiteMethodBuilder1df136431e07e393
    org.junit.internal.requests.ClassRequest47dbc61675e5a92e
    org.junit.internal.requests.ClassRequest.CustomAllDefaultPossibilitiesBuilderea1c269d9656f543
    org.junit.internal.requests.ClassRequest.CustomSuiteMethodBuilder03d01020b1c503c7
    org.junit.internal.requests.MemoizingRequest1e70801476dbab8f
    org.junit.internal.runners.model.EachTestNotifier077481995383e000
    org.junit.internal.runners.model.ReflectiveCallabled591724635588bcb
    org.junit.internal.runners.rules.RuleMemberValidator95b5ee2068ec6875
    org.junit.internal.runners.rules.RuleMemberValidator.Builderf24845fa6fd065af
    org.junit.internal.runners.rules.RuleMemberValidator.DeclaringClassMustBePublic1de994463c748d89
    org.junit.internal.runners.rules.RuleMemberValidator.FieldMustBeARulee24e9f59de6fe5b7
    org.junit.internal.runners.rules.RuleMemberValidator.FieldMustBeATestRule690823bd2992f52e
    org.junit.internal.runners.rules.RuleMemberValidator.MemberMustBeNonStaticOrAlsoClassRule1e703fb3e7f4e533
    org.junit.internal.runners.rules.RuleMemberValidator.MemberMustBePublic806c174eb921b478
    org.junit.internal.runners.rules.RuleMemberValidator.MemberMustBeStaticac28a03dd36b2b5a
    org.junit.internal.runners.rules.RuleMemberValidator.MethodMustBeARule88ea4a2237de2b8b
    org.junit.internal.runners.rules.RuleMemberValidator.MethodMustBeATestRule9f4dd18a26005c18
    org.junit.internal.runners.statements.ExpectException943171ebab48b749
    org.junit.internal.runners.statements.InvokeMethod05a7aa636afa2c39
    org.junit.internal.runners.statements.RunAfters14a998d07920cd7b
    org.junit.internal.runners.statements.RunBeforesef86a61ca3ab20ba
    org.junit.runner.Description1d6f7ddbbf223f9a
    org.junit.runner.Request214d9ade1c7dc38d
    org.junit.runner.Resultecf6c1c04298ff7d
    org.junit.runner.Result.Listenercf649a4ffbe55db9
    org.junit.runner.Runnerf5abacc70e2e08a4
    org.junit.runner.notification.RunListener69d2c783b42f6720
    org.junit.runner.notification.RunNotifierf6313076e2224ebb
    org.junit.runner.notification.RunNotifier.1e31025c12b4dbdee
    org.junit.runner.notification.RunNotifier.24c7314c6d595dc3e
    org.junit.runner.notification.RunNotifier.3df2bada5cb3794f3
    org.junit.runner.notification.RunNotifier.4fbdd84204c215de7
    org.junit.runner.notification.RunNotifier.5f62dc396b601f8bd
    org.junit.runner.notification.RunNotifier.9c3c3d54b8ed47ee1
    org.junit.runner.notification.RunNotifier.SafeNotifier0b43c10299733bfb
    org.junit.runner.notification.SynchronizedRunListener2b59d5cb3b105225
    org.junit.runners.BlockJUnit4ClassRunner95752fb34ff12f3f
    org.junit.runners.BlockJUnit4ClassRunner.1d0f63145230a5f42
    org.junit.runners.BlockJUnit4ClassRunner.2f93eace695ddd30e
    org.junit.runners.BlockJUnit4ClassRunner.RuleCollector9c768e710e39c989
    org.junit.runners.JUnit46d26e2305347fe01
    org.junit.runners.ParentRunner335ee90b10f96ea1
    org.junit.runners.ParentRunner.1ecc6961e8bc209c4
    org.junit.runners.ParentRunner.2c5cb913a629ec4c8
    org.junit.runners.ParentRunner.320bad8188aebc0f2
    org.junit.runners.ParentRunner.480476dbdcb8d52cc
    org.junit.runners.ParentRunner.ClassRuleCollector26f7fb338afcd13b
    org.junit.runners.RuleContainerd44c3ba6dc65af53
    org.junit.runners.RuleContainer.157bbc73f6f47763b
    org.junit.runners.RuleContainer.RuleEntry33c112e80f79db7f
    org.junit.runners.model.FrameworkField2fe27c284e7d39f4
    org.junit.runners.model.FrameworkMemberbfd059486f267475
    org.junit.runners.model.FrameworkMethodf293b82d5aa86323
    org.junit.runners.model.FrameworkMethod.18fd5e02769c0e0c2
    org.junit.runners.model.MultipleFailureException187a72c573c34bac
    org.junit.runners.model.RunnerBuilder585cad2d320dc86e
    org.junit.runners.model.Statement9a75aa5de27bf4d5
    org.junit.runners.model.TestClass7e71209792391ee8
    org.junit.runners.model.TestClass.FieldComparator1b96cd3d5c4aeb07
    org.junit.runners.model.TestClass.MethodComparator0369eb29eb04248a
    org.junit.validator.AnnotationValidatorFactorye1e5570798173ab9
    org.junit.validator.AnnotationsValidator6cbe8454c9a93bb8
    org.junit.validator.AnnotationsValidator.AnnotatableValidatord211a963f22be103
    org.junit.validator.AnnotationsValidator.ClassValidator1b463c4e6642e880
    org.junit.validator.AnnotationsValidator.FieldValidator64068b954dc56a31
    org.junit.validator.AnnotationsValidator.MethodValidatorf16b57f17c787036
    org.junit.validator.PublicClassValidator3bac248cf06b18e4
    org.mockserver.cache.LRUCache10e03f56426bfddb
    org.mockserver.character.Characterbf2a046be7d2c028
    org.mockserver.client.ForwardChainExpectation02388d45f330f882
    org.mockserver.client.MockServerClientd13f4bb175ad7886
    org.mockserver.client.MockServerEventBus3cbf94f2399059aa
    org.mockserver.client.MockServerEventBus.EventTypec3b5e16a35bbc4bc
    org.mockserver.closurecallback.websocketregistry.LocalCallbackRegistry6b2e09cf35e0883f
    org.mockserver.closurecallback.websocketregistry.WebSocketClientRegistry836e292d8b3bd4e8
    org.mockserver.codec.BodyDecoderEncoderffe2a6eb1133065f
    org.mockserver.codec.ExpandedParameterDecoderdb84bcaa4d055fa1
    org.mockserver.codec.JsonSchemaBodyDecoder5c7c6f15953cc544
    org.mockserver.codec.MockServerHttpClientCodec5d0c6c02a4a2caf6
    org.mockserver.codec.MockServerHttpServerCodecee5005a14e1f1774
    org.mockserver.codec.MockServerHttpToNettyHttpRequestEncoder7fb39129d1285a70
    org.mockserver.codec.MockServerHttpToNettyHttpResponseEncoder7bef2b09481b464c
    org.mockserver.codec.NettyHttpToMockServerHttpRequestDecoder8cbf71fb1831c5ee
    org.mockserver.codec.NettyHttpToMockServerHttpResponseDecoderf612668ebda5fb93
    org.mockserver.codec.PathParametersDecodere88ba98722783cff
    org.mockserver.codec.PreserveHeadersNettyRemoves20354f56919de610
    org.mockserver.collections.CircularConcurrentLinkedDeque74701855a0752731
    org.mockserver.collections.CircularHashMap578d8d6f5aa6b9bb
    org.mockserver.collections.CircularPriorityQueue01ba7dfcc70d2c4d
    org.mockserver.collections.ImmutableEntry80d07ef8b95ccfc3
    org.mockserver.collections.NottableStringMultiMap0ef3d6a43501e278
    org.mockserver.collections.NottableStringMultiMap.140fa6d5653cca9a9
    org.mockserver.collections.SubSetMatcher2622084e566b0e9f
    org.mockserver.configuration.ClientConfiguration07225d1481363762
    org.mockserver.configuration.Configurationc09fbe76c49f3e16
    org.mockserver.configuration.ConfigurationProperties5d9c11568e399f49
    org.mockserver.cors.CORSHeaders9d898676adcfcf0c
    org.mockserver.dashboard.DashboardHandler7adba5996c176556
    org.mockserver.dashboard.DashboardWebSocketHandler229e6215c9034513
    org.mockserver.exception.ExceptionHandling3e0cb8a72b76ef83
    org.mockserver.file.FileReader8c0a9b48c7342f3c
    org.mockserver.filters.HopByHopHeaderFilter13ed941f48050429
    org.mockserver.formatting.StringFormatter4adf49428bf8ed58
    org.mockserver.httpclient.HttpClientConnectionErrorHandler6e221096aab884c5
    org.mockserver.httpclient.HttpClientHandler29bd136d8324c332
    org.mockserver.httpclient.HttpClientInitializer2d0afa6c4313d540
    org.mockserver.httpclient.NettyHttpClient89c3a61029ee2b58
    org.mockserver.integration.ClientAndServer8456040715315583
    org.mockserver.junit.MockServerRulebd4f2f92bf258494
    org.mockserver.junit.MockServerRule.172cc2f7beb9e77cc
    org.mockserver.junit.MockServerRule.ClientAndServerFactory84326d0050540bae
    org.mockserver.lifecycle.LifeCycle0837411c7fbbebb7
    org.mockserver.log.MockServerEventLog49f747db0ae7c01a
    org.mockserver.log.MockServerEventLog.1216a12b036630679
    org.mockserver.log.model.LogEntrye8fa92ebba3e032c
    org.mockserver.log.model.LogEntry.LogMessageTypeaaff730c5f11e9a1
    org.mockserver.logging.LoggingHandlera04a3e15a4a840f6
    org.mockserver.logging.MockServerLogger704dda1e2fd2b87e
    org.mockserver.logging.MockServerLogger.142a61073aea29a85
    org.mockserver.mappers.FullHttpRequestToMockServerHttpRequest15d395d36ad6f403
    org.mockserver.mappers.FullHttpResponseToMockServerHttpResponsef95540462f8f4f89
    org.mockserver.mappers.JDKCertificateToMockServerX509Certificate92554bd20747d973
    org.mockserver.mappers.MockServerHttpRequestToFullHttpRequestf666eed11ae71d0f
    org.mockserver.mappers.MockServerHttpResponseToFullHttpResponseb53684465722b23a
    org.mockserver.matchers.AbstractHttpRequestMatcher11610a17de2077a1
    org.mockserver.matchers.BodyMatcherd150e578c4b884a1
    org.mockserver.matchers.BooleanMatcherc772dd7e230752d3
    org.mockserver.matchers.ExactStringMatcherf36a3620f5e0c705
    org.mockserver.matchers.HashMapMatcher608fdfb67eaf9d1f
    org.mockserver.matchers.HttpRequestPropertiesMatcher31bae0d615dc30b5
    org.mockserver.matchers.MatchDifference.Field39d01f9045223694
    org.mockserver.matchers.MatchDifferenceCount80ab5052749c4d02
    org.mockserver.matchers.MatchType1edbc2ebea690f73
    org.mockserver.matchers.MatcherBuilderdfb3bd01343c99b2
    org.mockserver.matchers.MultiValueMapMatchere24b6dde3f9a2288
    org.mockserver.matchers.NotMatcher86e7e3d9d3e6387d
    org.mockserver.matchers.RegexStringMatcherdfca065dae96bda7
    org.mockserver.matchers.TimeToLive26672faf6a0792ec
    org.mockserver.matchers.TimeToLive.197f19dbc330d8730
    org.mockserver.matchers.Timesaaed6ac8f3f4a3a6
    org.mockserver.matchers.Times.1600771e846a83ab5
    org.mockserver.memory.Detailb2730b1ca74f294d
    org.mockserver.memory.MemoryMonitoring569f0bee4e94e2d3
    org.mockserver.memory.Summary5b0e4f1990b57866
    org.mockserver.metrics.Metrics97e0542105a88016
    org.mockserver.metrics.Metrics.Namec11bd99198ad2c5c
    org.mockserver.metrics.MetricsHandlerdd4d904b64cc00d8
    org.mockserver.mock.Expectation59d48e6018e143d7
    org.mockserver.mock.HttpStatea50eb936be8de545
    org.mockserver.mock.RequestMatchersfdae5474471a7bf7
    org.mockserver.mock.SortableExpectationIde9712856b0affd12
    org.mockserver.mock.action.http.HttpActionHandlerf09f9e5802bf4aee
    org.mockserver.mock.action.http.HttpActionHandler.1696b96f63e4e53a6
    org.mockserver.mock.action.http.HttpResponseActionHandler799aeb81fcb3089e
    org.mockserver.mock.listeners.MockServerEventLogNotifier2e3092e6c7c14dfb
    org.mockserver.mock.listeners.MockServerMatcherNotifierad3aa154052f222d
    org.mockserver.mock.listeners.MockServerMatcherNotifier.Cause24be7e699c8ee273
    org.mockserver.mock.listeners.MockServerMatcherNotifier.Cause.Type1a019e6b73e78465
    org.mockserver.model.Action263cd9e39f4e57d1
    org.mockserver.model.Action.Direction8619b73abf5bbffb
    org.mockserver.model.Action.Type29df155746a61c75
    org.mockserver.model.Body281f1a5f4ef82194
    org.mockserver.model.Body.Type8845ba9d22b84df5
    org.mockserver.model.BodyWithContentTypea9972c0f307ef09c
    org.mockserver.model.Cookies13103332c804eef3
    org.mockserver.model.Headere135e3322a9b098e
    org.mockserver.model.Headers2fcb01ec99dbd072
    org.mockserver.model.HttpForward.Schemee9c4d9811f35d933
    org.mockserver.model.HttpRequestad634297517fe1c7
    org.mockserver.model.HttpResponse41a53da68f1752ee
    org.mockserver.model.HttpTemplate.TemplateTypecc67c0de8cd2fd81
    org.mockserver.model.JsonBodyddb662c994a81d5b
    org.mockserver.model.KeyMatchStylee9c012c29f9e744b
    org.mockserver.model.KeyToMultiValuef2f1399edb22f464
    org.mockserver.model.KeysAndValuesb86a73b6c90f45de
    org.mockserver.model.KeysToMultiValues7c563c176ee38469
    org.mockserver.model.LogEntryBody16560ba57dd46a08
    org.mockserver.model.MediaType1c8b179251a80c08
    org.mockserver.model.Notc32b1b8088964f1a
    org.mockserver.model.NottableString582f0c4e2e874322
    org.mockserver.model.ObjectWithJsonToString4e34d09ac7ca091e
    org.mockserver.model.ObjectWithReflectiveEqualsHashCodeToStringc9e3e23ff2b87beb
    org.mockserver.model.Parameters0f751bde2307fccf
    org.mockserver.model.Protocole470237dfb83556b
    org.mockserver.model.RequestDefinition05e25b4dc42285fb
    org.mockserver.model.SocketAddressa8010e1c9a2ca938
    org.mockserver.model.SocketAddress.Scheme71beb5b0ba5a192a
    org.mockserver.model.StringBodyad368d60a260cfd1
    org.mockserver.netty.HttpRequestHandler6d85c0ef6de9f4fd
    org.mockserver.netty.MockServer06d082dc0afa9623
    org.mockserver.netty.MockServerUnificationInitializer6b93660e32963323
    org.mockserver.netty.proxy.socks.SocksDetectord3990ad44928289e
    org.mockserver.netty.responsewriter.NettyResponseWriter0f271f3833c1f9a8
    org.mockserver.netty.unification.HttpContentLengthRemover3ec3caa58ba49809
    org.mockserver.netty.unification.PortBindinga244ae6827e5b294
    org.mockserver.netty.unification.PortUnificationHandleraa2e9d8957f64815
    org.mockserver.netty.websocketregistry.CallbackWebSocketServerHandler9e43edb3377f8f43
    org.mockserver.openapi.OpenAPIConverter911f9bb9102dd00a
    org.mockserver.openapi.examples.JsonNodeExampleSerializer23c119e0c9261514
    org.mockserver.proxyconfiguration.ProxyConfiguration92d87e5a79dcc839
    org.mockserver.proxyconfiguration.ProxyConfiguration.Typed608965ab00949bd
    org.mockserver.responsewriter.ResponseWriterb129f98660e99aa4
    org.mockserver.scheduler.Schedulerbce312375c3e03db
    org.mockserver.scheduler.Scheduler.SchedulerThreadFactoryae66f34eff9b2b2c
    org.mockserver.serialization.Base64Converter06a2e44f9f3b1a6f
    org.mockserver.serialization.ExpectationIdSerializer72dcde2e9a5d7d79
    org.mockserver.serialization.ExpectationSerializerd48f8bf20933ae42
    org.mockserver.serialization.HttpRequestAndHttpResponseSerializerf7bc50a8ca96c5c3
    org.mockserver.serialization.HttpRequestSerializera39d9d24249a558e
    org.mockserver.serialization.HttpResponseSerializercfcb5c1d3bc0d6e9
    org.mockserver.serialization.JsonArraySerializerdf4afce7278123b0
    org.mockserver.serialization.LogEventRequestAndResponseSerializer18a40c4f25e98cc1
    org.mockserver.serialization.ObjectMapperFactorye46aabb3e2c0ccee
    org.mockserver.serialization.OpenAPIExpectationSerializer20d6d78507cacc3d
    org.mockserver.serialization.PortBindingSerializerc8cad92adbacb6ea
    org.mockserver.serialization.RequestDefinitionSerializer8bfc47387480aedd
    org.mockserver.serialization.VerificationSequenceSerializer4b93a23bf1ae0815
    org.mockserver.serialization.VerificationSerializerbe12dd80a09b0942
    org.mockserver.serialization.WebSocketMessageSerializerc3fdb2237635bafa
    org.mockserver.serialization.curl.HttpRequestToCurlSerializer6bd09f86662a1329
    org.mockserver.serialization.deserializers.body.BodyDTODeserializer7b4bcde1ff60ab6f
    org.mockserver.serialization.deserializers.body.BodyWithContentTypeDTODeserializerb6bb758e234b6ede
    org.mockserver.serialization.deserializers.collections.CookiesDeserializer264f553cbc630090
    org.mockserver.serialization.deserializers.collections.HeadersDeserializer4d938467bd88d270
    org.mockserver.serialization.deserializers.collections.KeysToMultiValuesDeserializer9c8be952ef0888e0
    org.mockserver.serialization.deserializers.collections.KeysToMultiValuesDeserializer.187491befaab1aaf6
    org.mockserver.serialization.deserializers.collections.ParametersDeserializer535be4ceea2eb211
    org.mockserver.serialization.deserializers.condition.TimeToLiveDTODeserializer777b08d9d3020ea1
    org.mockserver.serialization.deserializers.condition.VerificationTimesDTODeserializer5f8984a735a1e8f5
    org.mockserver.serialization.deserializers.expectation.OpenAPIExpectationDTODeserializer68e98c5b26e248aa
    org.mockserver.serialization.deserializers.request.RequestDefinitionDTODeserializer20db43cdc42d9b0a
    org.mockserver.serialization.deserializers.string.NottableStringDeserializer8e4b92fba4b703db
    org.mockserver.serialization.model.BodyDTOd918658b64056e83
    org.mockserver.serialization.model.BodyWithContentTypeDTOef2c485da9b73ca8
    org.mockserver.serialization.model.ExpectationDTO08f652cf404f54df
    org.mockserver.serialization.model.HttpRequestDTO85c4fd7649980e9f
    org.mockserver.serialization.model.HttpResponseDTOa5ac154402521620
    org.mockserver.serialization.model.NotDTOefb7e6d63e7c886b
    org.mockserver.serialization.model.RequestDefinitionDTOf4d30672b247c4b8
    org.mockserver.serialization.model.StringBodyDTO2e11159d024a2471
    org.mockserver.serialization.model.TimeToLiveDTO529b4526a6229120
    org.mockserver.serialization.model.TimesDTO499af123af2af2b1
    org.mockserver.serialization.serializers.body.BinaryBodyDTOSerializer5d9627e0c537a6b4
    org.mockserver.serialization.serializers.body.BinaryBodySerializer67ffdeba5b61fd69
    org.mockserver.serialization.serializers.body.JsonBodyDTOSerializer17d36b6fb5b362d6
    org.mockserver.serialization.serializers.body.JsonBodySerializerce3ff9b97655fa08
    org.mockserver.serialization.serializers.body.JsonPathBodyDTOSerializerbcdcf855776cfcba
    org.mockserver.serialization.serializers.body.JsonPathBodySerializer3b45317f93446a1c
    org.mockserver.serialization.serializers.body.JsonSchemaBodyDTOSerializere463aee285c960dc
    org.mockserver.serialization.serializers.body.JsonSchemaBodySerializere51d8bb715c3f90a
    org.mockserver.serialization.serializers.body.LogEntryBodyDTOSerializerde23edb8122576a7
    org.mockserver.serialization.serializers.body.LogEntryBodySerializerecd5b2f03b68a6e7
    org.mockserver.serialization.serializers.body.ParameterBodyDTOSerializer989372e18a525033
    org.mockserver.serialization.serializers.body.ParameterBodySerializere3f2b0bef54c4855
    org.mockserver.serialization.serializers.body.RegexBodyDTOSerializer99d4159a522be7bb
    org.mockserver.serialization.serializers.body.RegexBodySerializere52d058305e9794e
    org.mockserver.serialization.serializers.body.StringBodyDTOSerializerf1e812710b84e1f1
    org.mockserver.serialization.serializers.body.StringBodySerializerc0a5cc817c0e90ae
    org.mockserver.serialization.serializers.body.XPathBodyDTOSerializer8da5eb3b9333db73
    org.mockserver.serialization.serializers.body.XPathBodySerializer8beef6e0f4ab9c5c
    org.mockserver.serialization.serializers.body.XmlBodyDTOSerializer8dea3a45d383b448
    org.mockserver.serialization.serializers.body.XmlBodySerializerf1aaebc313bdb5e5
    org.mockserver.serialization.serializers.body.XmlSchemaBodyDTOSerializer3fdca2c5d54b2564
    org.mockserver.serialization.serializers.body.XmlSchemaBodySerializer555d3dc0daf4a55c
    org.mockserver.serialization.serializers.certificate.CertificateSerializerf004496b5e7e5135
    org.mockserver.serialization.serializers.certificate.X509CertificateSerializer934868bb382bdab2
    org.mockserver.serialization.serializers.collections.CookiesSerializerc9d12c63516b6f15
    org.mockserver.serialization.serializers.collections.HeadersSerializer730528f20abfd8a8
    org.mockserver.serialization.serializers.collections.KeysToMultiValuesSerializer1a946e861a97b8c9
    org.mockserver.serialization.serializers.collections.ParametersSerializer6549aaa2a062c3d1
    org.mockserver.serialization.serializers.condition.VerificationTimesDTOSerializer100c6ba88ccb1ee9
    org.mockserver.serialization.serializers.condition.VerificationTimesSerializer9a71689170093b33
    org.mockserver.serialization.serializers.expectation.OpenAPIExpectationDTOSerializer92da1bede793186f
    org.mockserver.serialization.serializers.expectation.OpenAPIExpectationSerializeref2984bf4cd89d5f
    org.mockserver.serialization.serializers.log.LogEntrySerializer41a84158b4cb09d8
    org.mockserver.serialization.serializers.matcher.HttpRequestPropertiesMatcherSerializer73ab3b27084afe88
    org.mockserver.serialization.serializers.matcher.HttpRequestsPropertiesMatcherSerializerb4b01fbd26ab2ed3
    org.mockserver.serialization.serializers.request.HttpRequestDTOSerializerfbab8601b39fd216
    org.mockserver.serialization.serializers.request.HttpRequestSerializerea4f5c01d4e9c10c
    org.mockserver.serialization.serializers.request.OpenAPIDefinitionDTOSerializer41457b716029345d
    org.mockserver.serialization.serializers.request.OpenAPIDefinitionSerializer18322585a719f229
    org.mockserver.serialization.serializers.response.HttpResponseDTOSerializer596505563cb1993d
    org.mockserver.serialization.serializers.response.HttpResponseSerializerc3b47e9219063a5e
    org.mockserver.serialization.serializers.response.TimeToLiveDTOSerializerce929959e2c2fb63
    org.mockserver.serialization.serializers.response.TimeToLiveSerializer80bf8224c7511190
    org.mockserver.serialization.serializers.response.TimesDTOSerializer9aca73c12d0a058b
    org.mockserver.serialization.serializers.response.TimesSerializer23be2d734585afeb
    org.mockserver.serialization.serializers.schema.AbstractSchemaSerializerfb6e7bda32d08bc0
    org.mockserver.serialization.serializers.schema.ArraySchemaSerializer0021d61c6a2be71d
    org.mockserver.serialization.serializers.schema.BinarySchemaSerializerd140910d748f8851
    org.mockserver.serialization.serializers.schema.BooleanSchemaSerializerdbca282d84365ff0
    org.mockserver.serialization.serializers.schema.ByteArraySchemaSerializer568dbf01344e3e79
    org.mockserver.serialization.serializers.schema.ComposedSchemaSerializercf584fcd8e56c900
    org.mockserver.serialization.serializers.schema.DateSchemaSerializerd08e8d79bb16c0bd
    org.mockserver.serialization.serializers.schema.DateTimeSchemaSerializer914020956b510c13
    org.mockserver.serialization.serializers.schema.EmailSchemaSerializerb80163ccb4015fbf
    org.mockserver.serialization.serializers.schema.FileSchemaSerializere8a74a86be7620e4
    org.mockserver.serialization.serializers.schema.IntegerSchemaSerializerc0d6572d9492ea2d
    org.mockserver.serialization.serializers.schema.MapSchemaSerializeraba0efbbaec8695d
    org.mockserver.serialization.serializers.schema.NumberSchemaSerializer194f5d4638c02bbf
    org.mockserver.serialization.serializers.schema.ObjectSchemaSerializer550cd7cfef2590ed
    org.mockserver.serialization.serializers.schema.PasswordSchemaSerializerc8bb32e1dc704fe5
    org.mockserver.serialization.serializers.schema.SchemaSerializer11becdf72583b458
    org.mockserver.serialization.serializers.schema.StringSchemaSerializer6206ca65317a7a19
    org.mockserver.serialization.serializers.schema.UUIDSchemaSerializer0e338d07a5fc8dc6
    org.mockserver.serialization.serializers.string.NottableStringSerializeree03f25e931d5509
    org.mockserver.socket.PortFactory70c14c34bb2ee1eb
    org.mockserver.socket.tls.KeyAndCertificateFactoryFactoryfd5e8416bc971b3a
    org.mockserver.socket.tls.NettySslContextFactory6b71b6b51490b290
    org.mockserver.socket.tls.SniHandlerb313c2e305314b74
    org.mockserver.socket.tls.bouncycastle.BCKeyAndCertificateFactorye5428bcd15e227ae
    org.mockserver.time.EpochService34a7c9806d9b3f32
    org.mockserver.url.URLParser12fef8700a682f76
    org.mockserver.uuid.UUIDServicec94b8535e09fe409
    org.mockserver.validator.jsonschema.JsonSchemaExpectationValidator297655baf0d2563a
    org.mockserver.validator.jsonschema.JsonSchemaValidatore8e00f488c2f2a11
    org.mockserver.version.Versionb3a08a3eaacabe2e
    org.owasp.dependencycheck.utils.BaseTest7400fe2fba6f4c12
    org.owasp.dependencycheck.utils.Checksumd3d032adcf9f83ac
    org.owasp.dependencycheck.utils.Checksum.FileChecksumsee01483ef72b41eb
    org.owasp.dependencycheck.utils.ChecksumTest6266b52ea69bc11e
    org.owasp.dependencycheck.utils.Downloader2535d5a88e84b460
    org.owasp.dependencycheck.utils.DownloaderITc99958a8c9eeb907
    org.owasp.dependencycheck.utils.ExpectedObjectInputStreamb025676b22c78801
    org.owasp.dependencycheck.utils.ExpectedObjectInputStreamTest7f2c52ec745186e2
    org.owasp.dependencycheck.utils.FileUtilsb4bc6fabbcb815d7
    org.owasp.dependencycheck.utils.FileUtilsTestb14eca4c9161c0ad
    org.owasp.dependencycheck.utils.HttpResourceConnection3ec0169837be2310
    org.owasp.dependencycheck.utils.HttpResourceConnectionTest1173d589d4bedeac
    org.owasp.dependencycheck.utils.InvalidSettingExceptionbe06f31793aa5d4a
    org.owasp.dependencycheck.utils.JsonArrayFixingInputStreamf4287617daab86e6
    org.owasp.dependencycheck.utils.JsonArrayFixingInputStreamTest8e50199c4d25a601
    org.owasp.dependencycheck.utils.SSLSocketFactoryExcba4c39911275cd8
    org.owasp.dependencycheck.utils.Settings22a4155a48302848
    org.owasp.dependencycheck.utils.SettingsTest48de1a6873d53cb2
    org.owasp.dependencycheck.utils.SimplePojo70f0c68e8d490d5b
    org.owasp.dependencycheck.utils.URLConnectionFactory20a3b96d5b95a4c9
    org.owasp.dependencycheck.utils.URLConnectionFactoryIT2511dc396ffd4e76
    org.owasp.dependencycheck.utils.search.FileContentSearch7adade2cb225852a
    org.owasp.dependencycheck.utils.search.FileContentSearchTeste60e03c37bd8fd2c
    org.slf4j.LoggerFactorya381b7ddf19bf47d
    org.slf4j.MDC4d31efbdc380017c
    org.slf4j.event.Levelb74840539e4c6dc2
    org.slf4j.helpers.NOPLoggerFactory54f5632bfcb8d8d5
    org.slf4j.helpers.SubstituteLoggerFactorydc7efc0107a4a62d
    org.slf4j.helpers.Util857ff3acc0576435
    org.slf4j.impl.StaticLoggerBinder039b3c899e055991
    org.slf4j.impl.StaticMDCBinder649700d80abb641d
    sun.security.ec.ECDHKeyAgreement98786957379e8052
    sun.security.ec.ECDSASignaturea87c8a3b4c249cae
    sun.security.ec.ECDSASignature.Raw34fd4d4f3f7b07d0
    sun.security.ec.ECDSASignature.SHA19a8c8c1fccb702ae
    sun.security.ec.ECDSASignature.SHA2244ab113fda835de86
    sun.security.ec.ECDSASignature.SHA256b847f3aa86c638a1
    sun.security.ec.ECDSASignature.SHA3841f1f0bb690cec78f
    sun.security.ec.ECDSASignature.SHA512ca949e76b48c64db
    sun.security.ec.ECKeyFactory5ffb1bf65edd3e5b
    sun.security.ec.ECKeyPairGeneratord54779aa8847492b
    sun.security.ec.ECOperations8b042a6db0c7d250
    sun.security.ec.ECPrivateKeyImple88e88043bb769c8
    sun.security.ec.ECPublicKeyImpl579a0a9fbecbe2cb
    sun.security.ec.SunECed7aaa5d851afecd
    sun.security.ec.SunEC.12aaa42d831e10c34
    sun.security.ec.SunECEntries1fc66cad07ebf775
    sun.security.ec.point.AffinePoint4473cc59511e4f38
    sun.security.ec.point.ProjectivePoint42bfa254a41c4522
    sun.security.ec.point.ProjectivePoint.Immutablef385d4fcc17d6f05
    sun.security.ec.point.ProjectivePoint.Mutableb5e8bd959990211c
    \ No newline at end of file diff --git a/dependency-check-utils/jacoco/jacoco.csv b/dependency-check-utils/jacoco/jacoco.csv index 6565549ecb9..59f9df09b85 100644 --- a/dependency-check-utils/jacoco/jacoco.csv +++ b/dependency-check-utils/jacoco/jacoco.csv @@ -4,20 +4,20 @@ Dependency-Check Utils,org.owasp.dependencycheck.utils,FileUtils,98,67,15,7,28,1 Dependency-Check Utils,org.owasp.dependencycheck.utils,JsonArrayFixingInputStream,68,378,21,49,7,78,15,34,0,14 Dependency-Check Utils,org.owasp.dependencycheck.utils,HttpResourceConnection,360,161,29,15,75,45,23,10,3,8 Dependency-Check Utils,org.owasp.dependencycheck.utils,Settings,480,435,57,41,108,103,55,38,14,30 -Dependency-Check Utils,org.owasp.dependencycheck.utils,SSLSocketFactoryEx,239,181,9,7,58,45,18,8,11,7 Dependency-Check Utils,org.owasp.dependencycheck.utils,ExpectedObjectInputStream,0,32,0,2,0,7,0,3,0,2 +Dependency-Check Utils,org.owasp.dependencycheck.utils,SSLSocketFactoryEx,239,181,9,7,58,45,18,8,11,7 Dependency-Check Utils,org.owasp.dependencycheck.utils,InvalidSettingException,12,4,0,0,6,2,3,1,3,1 Dependency-Check Utils,org.owasp.dependencycheck.utils,URLConnectionFactory.new Authenticator() {...},52,0,6,0,7,0,5,0,2,0 Dependency-Check Utils,org.owasp.dependencycheck.utils,URLConnectionFailureException,16,0,0,0,8,0,4,0,4,0 Dependency-Check Utils,org.owasp.dependencycheck.utils,URLConnectionFactory,283,106,53,7,62,31,30,8,2,6 +Dependency-Check Utils,org.owasp.dependencycheck.utils,Downloader,119,55,3,1,25,16,6,4,4,4 Dependency-Check Utils,org.owasp.dependencycheck.utils,ResourceNotFoundException,16,0,0,0,8,0,4,0,4,0 -Dependency-Check Utils,org.owasp.dependencycheck.utils,Downloader,190,55,5,1,40,16,8,4,5,4 Dependency-Check Utils,org.owasp.dependencycheck.utils,ExtractionException,16,0,0,0,8,0,4,0,4,0 Dependency-Check Utils,org.owasp.dependencycheck.utils,TooManyRequestsException,16,0,0,0,8,0,4,0,4,0 Dependency-Check Utils,org.owasp.dependencycheck.utils,DownloadFailedException,16,0,0,0,8,0,4,0,4,0 -Dependency-Check Utils,org.owasp.dependencycheck.utils,Checksum.FileChecksums,0,12,0,0,0,5,0,1,0,1 -Dependency-Check Utils,org.owasp.dependencycheck.utils,XmlUtils,209,0,19,0,50,0,15,0,5,0 Dependency-Check Utils,org.owasp.dependencycheck.utils,Checksum,35,180,2,10,8,36,4,15,2,10 +Dependency-Check Utils,org.owasp.dependencycheck.utils,XmlUtils,209,0,19,0,50,0,15,0,5,0 +Dependency-Check Utils,org.owasp.dependencycheck.utils,Checksum.FileChecksums,0,12,0,0,0,5,0,1,0,1 Dependency-Check Utils,org.owasp.dependencycheck.utils.processing,Processor,38,0,4,0,12,0,7,0,5,0 Dependency-Check Utils,org.owasp.dependencycheck.utils.processing,ProcessReader.Gobbler,30,0,2,0,12,0,5,0,4,0 Dependency-Check Utils,org.owasp.dependencycheck.utils.processing,ProcessReader,139,0,14,0,39,0,15,0,8,0 diff --git a/dependency-check-utils/jacoco/jacoco.xml b/dependency-check-utils/jacoco/jacoco.xml index ddc092a0315..0e5fe449201 100644 --- a/dependency-check-utils/jacoco/jacoco.xml +++ b/dependency-check-utils/jacoco/jacoco.xml @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/dependency-check-utils/jacoco/org.owasp.dependencycheck.utils/Downloader.html b/dependency-check-utils/jacoco/org.owasp.dependencycheck.utils/Downloader.html index 51f7b93e4e2..815bb584647 100644 --- a/dependency-check-utils/jacoco/org.owasp.dependencycheck.utils/Downloader.html +++ b/dependency-check-utils/jacoco/org.owasp.dependencycheck.utils/Downloader.html @@ -1 +1 @@ -Downloader

    Downloader

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
    Total190 of 24522%5 of 616%812405659
    fetchGzContent(URL, boolean, String, String)710%20%22151511
    fetchContent(URL, boolean, String, String)640%20%22141411
    fetchFile(URL, File, boolean, String, String)323451%1150%1261501
    fetchFile(URL, File, String, String)80%n/a112211
    fetchFile(URL, File, boolean)80%n/a112211
    fetchContent(URL, boolean)70%n/a111111
    fetchFile(URL, File)8100%n/a010201
    static {...}7100%n/a010201
    Downloader(Settings)6100%n/a010301
    \ No newline at end of file +Downloader

    Downloader

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
    Total119 of 17431%3 of 425%610254148
    fetchContent(URL, boolean, String, String)640%20%22141411
    fetchFile(URL, File, boolean, String, String)323451%1150%1261501
    fetchFile(URL, File, String, String)80%n/a112211
    fetchFile(URL, File, boolean)80%n/a112211
    fetchContent(URL, boolean)70%n/a111111
    fetchFile(URL, File)8100%n/a010201
    static {...}7100%n/a010201
    Downloader(Settings)6100%n/a010301
    \ No newline at end of file diff --git a/dependency-check-utils/jacoco/org.owasp.dependencycheck.utils/Downloader.java.html b/dependency-check-utils/jacoco/org.owasp.dependencycheck.utils/Downloader.java.html index 48121e731d5..7cf77b59de2 100644 --- a/dependency-check-utils/jacoco/org.owasp.dependencycheck.utils/Downloader.java.html +++ b/dependency-check-utils/jacoco/org.owasp.dependencycheck.utils/Downloader.java.html @@ -178,7 +178,7 @@ public String fetchContent(URL url, boolean useProxy, String userKey, String passwordKey) throws DownloadFailedException, TooManyRequestsException, ResourceNotFoundException { InputStream in = null; - try (HttpResourceConnection conn = new HttpResourceConnection(settings, useProxy, userKey, passwordKey); + try (HttpResourceConnection conn = new HttpResourceConnection(settings, useProxy, userKey, passwordKey); ByteArrayOutputStream out = new ByteArrayOutputStream()) { in = conn.fetch(url); IOUtils.copy(in, out); @@ -196,43 +196,5 @@ } } } - - /** - * Retrieves a gzip file from a given URL and returns the uncompressed contents. - * - * @param url the URL of the file to download - * @param useProxy whether to use the configured proxy when downloading - * files - * @return the content of the file - * @param userKey the settings key for the username to be used - * @param passwordKey the settings key for the password to be used - * @throws DownloadFailedException is thrown if there is an error - * downloading the file - * @throws TooManyRequestsException thrown when a 429 is received - * @throws ResourceNotFoundException thrown when a 404 is received - */ - public String fetchGzContent(URL url, boolean useProxy, String userKey, String passwordKey) - throws DownloadFailedException, TooManyRequestsException, ResourceNotFoundException { - InputStream in = null; - try (HttpResourceConnection conn = new HttpResourceConnection(settings, useProxy, userKey, passwordKey)) { - in = conn.fetch(url); - try (GZIPInputStream gzipIn = new GZIPInputStream(in); - ByteArrayOutputStream out = new ByteArrayOutputStream()) { - IOUtils.copy(gzipIn, out); - return out.toString(UTF8); - } - } catch (IOException ex) { - final String msg = format("Download failed, unable to retrieve '%s'; %s", url, ex.getMessage()); - throw new DownloadFailedException(msg, ex); - } finally { - if (in != null) { - try { - in.close(); - } catch (IOException ex) { - LOGGER.trace("Ignorable error", ex); - } - } - } - } } \ No newline at end of file diff --git a/dependency-check-utils/jacoco/org.owasp.dependencycheck.utils/Settings.html b/dependency-check-utils/jacoco/org.owasp.dependencycheck.utils/Settings.html index d3ce4ec3f65..c048ae02fcf 100644 --- a/dependency-check-utils/jacoco/org.owasp.dependencycheck.utils/Settings.html +++ b/dependency-check-utils/jacoco/org.owasp.dependencycheck.utils/Settings.html @@ -1 +1 @@ -Settings

    Settings

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
    Total480 of 91547%57 of 9841%55931082111444
    logProperties(String, Properties)6345%5116%34131501
    getJarPath()520%80%55131311
    getTempFile(String, String)360%20%226611
    getDataDirectory()310%80%555511
    getDataFile(String)271941%2250%2371201
    getH2DataDirectory()252044%8433%673801
    Settings(Properties)220%n/a117711
    initialize(String)192152%n/a0161201
    Settings(String)170%n/a116611
    getConnectionString(String, String)167983%5758%5732001
    getInt(String)16523%n/a012301
    getLong(String)16523%n/a012301
    getArray(String)152965%1583%142801
    getFloat(String, float)150%n/a116611
    setInt(String, int)140%n/a113311
    setArrayIfNotEmpty(String, String[])13735%1375%134601
    getFile(String)130%20%224411
    mergeProperties(File)110%n/a113311
    setBooleanIfNotNull(String, Boolean)90%20%223311
    setIntIfNotNull(String, Integer)90%20%223311
    getInt(String, int)63485%2100%022801
    initMaskedKeys()61672%1150%121701
    setBoolean(String, boolean)60%n/a112211
    setFloat(String, float)60%n/a112211
    setArrayIfNotEmpty(String, List)51575%2250%232601
    setStringIfNotEmpty(String, String)4763%2250%231301
    setStringIfNotNull(String, String)4450%1150%121301
    cleanup()40%n/a112211
    cleanup(boolean)23100%2466%240501
    getTempDirectory()19100%1150%120401
    Settings()17100%n/a010601
    isKeyMasked(String)16100%1375%130301
    setString(String, String)15100%n/a010301
    getPrintableValue(String, String)14100%1375%130401
    mergeProperties(String)11100%n/a010301
    mergeProperties(InputStream)10100%n/a010301
    getString(String, String)8100%n/a010101
    getString(String)7100%n/a010101
    getBoolean(String, boolean)7100%n/a010101
    removeProperty(String)6100%n/a010201
    getBoolean(String)5100%n/a010101
    lambda$initMaskedKeys$1(String)4100%n/a010101
    lambda$isKeyMasked$0(String, Predicate)4100%n/a010101
    static {...}4100%n/a010101
    \ No newline at end of file +Settings

    Settings

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
    Total480 of 91547%57 of 9841%55931082111444
    logProperties(String, Properties)6345%5116%34131501
    getJarPath()520%80%55131311
    getTempFile(String, String)360%20%226611
    getDataDirectory()310%80%555511
    getDataFile(String)271941%2250%2371201
    getH2DataDirectory()252044%8433%673801
    Settings(Properties)220%n/a117711
    initialize(String)192152%n/a0161201
    Settings(String)170%n/a116611
    getConnectionString(String, String)167983%5758%5732001
    getInt(String)16523%n/a012301
    getLong(String)16523%n/a012301
    getArray(String)152965%1583%142801
    getFloat(String, float)150%n/a116611
    setInt(String, int)140%n/a113311
    setArrayIfNotEmpty(String, String[])13735%1375%134601
    getFile(String)130%20%224411
    mergeProperties(File)110%n/a113311
    setBooleanIfNotNull(String, Boolean)90%20%223311
    setIntIfNotNull(String, Integer)90%20%223311
    getInt(String, int)63485%2100%022801
    initMaskedKeys()61672%1150%121701
    setBoolean(String, boolean)60%n/a112211
    setFloat(String, float)60%n/a112211
    setArrayIfNotEmpty(String, List)51575%2250%232601
    setStringIfNotEmpty(String, String)4763%2250%231301
    setStringIfNotNull(String, String)4450%1150%121301
    cleanup()40%n/a112211
    cleanup(boolean)23100%2466%240501
    getTempDirectory()19100%1150%120401
    Settings()17100%n/a010601
    isKeyMasked(String)16100%1375%130301
    setString(String, String)15100%n/a010301
    getPrintableValue(String, String)14100%1375%130401
    mergeProperties(String)11100%n/a010301
    mergeProperties(InputStream)10100%n/a010301
    getString(String, String)8100%n/a010101
    getString(String)7100%n/a010101
    getBoolean(String, boolean)7100%n/a010101
    removeProperty(String)6100%n/a010201
    getBoolean(String)5100%n/a010101
    lambda$initMaskedKeys$1(String)4100%n/a010101
    lambda$isKeyMasked$0(String, Predicate)4100%n/a010101
    static {...}4100%n/a010101
    \ No newline at end of file diff --git a/dependency-check-utils/jacoco/org.owasp.dependencycheck.utils/Settings.java.html b/dependency-check-utils/jacoco/org.owasp.dependencycheck.utils/Settings.java.html index 6880595e59e..84bfd3a2d1b 100644 --- a/dependency-check-utils/jacoco/org.owasp.dependencycheck.utils/Settings.java.html +++ b/dependency-check-utils/jacoco/org.owasp.dependencycheck.utils/Settings.java.html @@ -161,7 +161,10 @@ * be imported. */ public static final String CVE_CPE_STARTS_WITH_FILTER = "cve.cpe.startswith.filter"; - + /** + * The NVD API Endpoint. + */ + public static final String NVD_API_ENDPOINT = "nvd.api.endpoint"; /** * API Key for the NVD API. */ @@ -817,9 +820,9 @@ /** * Initialize the settings object. */ - public Settings() { - initialize(PROPERTIES_FILE); - } + public Settings() { + initialize(PROPERTIES_FILE); + } /** * Initialize the settings object using the given properties. @@ -827,19 +830,19 @@ * @param properties the properties to be used with this Settings instance * @since 4.0.3 */ - public Settings(final Properties properties) { - props = properties; - logProperties("Properties loaded", props); - } + public Settings(final Properties properties) { + props = properties; + logProperties("Properties loaded", props); + } /** * Initialize the settings object using the given properties file. * * @param propertiesFilePath the path to the base properties file to load */ - public Settings(@NotNull final String propertiesFilePath) { - initialize(propertiesFilePath); - } + public Settings(@NotNull final String propertiesFilePath) { + initialize(propertiesFilePath); + } /** * Initializes the settings object from the given file. @@ -847,25 +850,25 @@ * @param propertiesFilePath the path to the settings property file */ private void initialize(@NotNull final String propertiesFilePath) { - props = new Properties(); - try (InputStream in = FileUtils.getResourceAsStream(propertiesFilePath)) { - props.load(in); - } catch (NullPointerException ex) { - LOGGER.error("Did not find settings file '{}'.", propertiesFilePath); - LOGGER.debug("", ex); - } catch (IOException ex) { - LOGGER.error("Unable to load settings from '{}'.", propertiesFilePath); + props = new Properties(); + try (InputStream in = FileUtils.getResourceAsStream(propertiesFilePath)) { + props.load(in); + } catch (NullPointerException ex) { + LOGGER.error("Did not find settings file '{}'.", propertiesFilePath); LOGGER.debug("", ex); - } - logProperties("Properties loaded", props); - } + } catch (IOException ex) { + LOGGER.error("Unable to load settings from '{}'.", propertiesFilePath); + LOGGER.debug("", ex); + } + logProperties("Properties loaded", props); + } /** * Cleans up resources to prevent memory leaks. */ public void cleanup() { - cleanup(true); - } + cleanup(true); + } /** * Cleans up resources to prevent memory leaks. @@ -874,12 +877,12 @@ * generated should be removed */ public synchronized void cleanup(boolean deleteTemporary) { - if (deleteTemporary && tempDirectory != null && tempDirectory.exists()) { - LOGGER.debug("Deleting ALL temporary files from `{}`", tempDirectory.toString()); - FileUtils.delete(tempDirectory); - tempDirectory = null; + if (deleteTemporary && tempDirectory != null && tempDirectory.exists()) { + LOGGER.debug("Deleting ALL temporary files from `{}`", tempDirectory.toString()); + FileUtils.delete(tempDirectory); + tempDirectory = null; } - } + } /** * Check if a given key is considered to have a value with sensitive data. @@ -889,10 +892,10 @@ * otherwise <code>false</code> */ private boolean isKeyMasked(@NotNull String key) { - if (maskedKeys == null || maskedKeys.isEmpty()) { - initMaskedKeys(); + if (maskedKeys == null || maskedKeys.isEmpty()) { + initMaskedKeys(); } - return maskedKeys.stream().anyMatch(maskExp -> maskExp.test(key)); + return maskedKeys.stream().anyMatch(maskExp -> maskExp.test(key)); } /** @@ -904,11 +907,11 @@ * @return the printable value */ String getPrintableValue(@NotNull String key, String value) { - String printableValue = null; - if (value != null) { - printableValue = isKeyMasked(key) ? "********" : value; + String printableValue = null; + if (value != null) { + printableValue = isKeyMasked(key) ? "********" : value; } - return printableValue; + return printableValue; } /** @@ -918,15 +921,15 @@ * the call to initialize. */ void initMaskedKeys() { - final String[] masked = getArray(Settings.KEYS.MASKED_PROPERTIES); - if (masked == null) { - maskedKeys = new ArrayList<>(); + final String[] masked = getArray(Settings.KEYS.MASKED_PROPERTIES); + if (masked == null) { + maskedKeys = new ArrayList<>(); } else { - maskedKeys = Arrays.stream(masked) - .map(v -> Pattern.compile(v).asPredicate()) - .collect(Collectors.toList()); + maskedKeys = Arrays.stream(masked) + .map(v -> Pattern.compile(v).asPredicate()) + .collect(Collectors.toList()); } - } + } /** * Logs the properties. This will not log any properties that contain @@ -936,24 +939,24 @@ * @param properties the properties to log */ private void logProperties(@NotNull final String header, @NotNull final Properties properties) { - if (LOGGER.isDebugEnabled()) { - initMaskedKeys(); - final StringWriter sw = new StringWriter(); - try (PrintWriter pw = new PrintWriter(sw)) { - pw.format("%s:%n%n", header); - final Enumeration<?> e = properties.propertyNames(); - while (e.hasMoreElements()) { - final String key = (String) e.nextElement(); - final String value = getPrintableValue(key, properties.getProperty(key)); - if (value != null) { - pw.format("%s='%s'%n", key, value); + if (LOGGER.isDebugEnabled()) { + initMaskedKeys(); + final StringWriter sw = new StringWriter(); + try (PrintWriter pw = new PrintWriter(sw)) { + pw.format("%s:%n%n", header); + final Enumeration<?> e = properties.propertyNames(); + while (e.hasMoreElements()) { + final String key = (String) e.nextElement(); + final String value = getPrintableValue(key, properties.getProperty(key)); + if (value != null) { + pw.format("%s='%s'%n", key, value); } - } - pw.flush(); - LOGGER.debug(sw.toString()); + } + pw.flush(); + LOGGER.debug(sw.toString()); } } - } + } /** * Sets a property value. @@ -962,9 +965,9 @@ * @param value the value for the property */ public void setString(@NotNull final String key, @NotNull final String value) { - props.setProperty(key, value); - LOGGER.debug("Setting: {}='{}'", key, getPrintableValue(key, value)); - } + props.setProperty(key, value); + LOGGER.debug("Setting: {}='{}'", key, getPrintableValue(key, value)); + } /** * Sets a property value only if the value is not null. @@ -973,10 +976,10 @@ * @param value the value for the property */ public void setStringIfNotNull(@NotNull final String key, @Nullable final String value) { - if (null != value) { - setString(key, value); + if (null != value) { + setString(key, value); } - } + } /** * Sets a property value only if the value is not null and not empty. @@ -985,10 +988,10 @@ * @param value the value for the property */ public void setStringIfNotEmpty(@NotNull final String key, @Nullable final String value) { - if (null != value && !value.isEmpty()) { - setString(key, value); + if (null != value && !value.isEmpty()) { + setString(key, value); } - } + } /** * Sets a property value only if the array value is not null and not empty. @@ -997,14 +1000,14 @@ * @param value the value for the property */ public void setArrayIfNotEmpty(@NotNull final String key, @Nullable final String[] value) { - if (null != value && value.length > 0) { + if (null != value && value.length > 0) { try { - setString(key, objectMapper.writeValueAsString(value)); - } catch (JsonProcessingException e) { - throw new IllegalArgumentException(); - } + setString(key, objectMapper.writeValueAsString(value)); + } catch (JsonProcessingException e) { + throw new IllegalArgumentException(); + } } - } + } /** * Sets a property value only if the array value is not null and not empty. @@ -1013,14 +1016,14 @@ * @param value the value for the property */ public void setArrayIfNotEmpty(@NotNull final String key, @Nullable final List<String> value) { - if (null != value && !value.isEmpty()) { + if (null != value && !value.isEmpty()) { try { - setString(key, objectMapper.writeValueAsString(value)); - } catch (JsonProcessingException e) { - throw new IllegalArgumentException(); - } + setString(key, objectMapper.writeValueAsString(value)); + } catch (JsonProcessingException e) { + throw new IllegalArgumentException(); + } } - } + } /** * Sets a property value. @@ -1029,8 +1032,8 @@ * @param value the value for the property */ public void setBoolean(@NotNull final String key, boolean value) { - setString(key, Boolean.toString(value)); - } + setString(key, Boolean.toString(value)); + } /** * Sets a property value only if the value is not null. @@ -1039,10 +1042,10 @@ * @param value the value for the property */ public void setBooleanIfNotNull(@NotNull final String key, @Nullable final Boolean value) { - if (null != value) { - setBoolean(key, value); + if (null != value) { + setBoolean(key, value); } - } + } /** * Sets a float property value. @@ -1051,8 +1054,8 @@ * @param value the value for the property */ public void setFloat(@NotNull final String key, final float value) { - setString(key, Float.toString(value)); - } + setString(key, Float.toString(value)); + } /** * Sets a property value. @@ -1061,9 +1064,9 @@ * @param value the value for the property */ public void setInt(@NotNull final String key, final int value) { - props.setProperty(key, String.valueOf(value)); - LOGGER.debug("Setting: {}='{}'", key, value); - } + props.setProperty(key, String.valueOf(value)); + LOGGER.debug("Setting: {}='{}'", key, value); + } /** * Sets a property value only if the value is not null. @@ -1072,10 +1075,10 @@ * @param value the value for the property */ public void setIntIfNotNull(@NotNull final String key, @Nullable final Integer value) { - if (null != value) { - setInt(key, value); + if (null != value) { + setInt(key, value); } - } + } /** * Merges a new properties file into the current properties. This method @@ -1091,10 +1094,10 @@ */ @SuppressFBWarnings(justification = "try with resource will clenaup the resources", value = {"OBL_UNSATISFIED_OBLIGATION"}) public void mergeProperties(@NotNull final File filePath) throws FileNotFoundException, IOException { - try (FileInputStream fis = new FileInputStream(filePath)) { - mergeProperties(fis); + try (FileInputStream fis = new FileInputStream(filePath)) { + mergeProperties(fis); } - } + } /** * Merges a new properties file into the current properties. This method @@ -1110,10 +1113,10 @@ */ @SuppressFBWarnings(justification = "try with resource will clenaup the resources", value = {"OBL_UNSATISFIED_OBLIGATION"}) public void mergeProperties(@NotNull final String filePath) throws FileNotFoundException, IOException { - try (FileInputStream fis = new FileInputStream(filePath)) { - mergeProperties(fis); + try (FileInputStream fis = new FileInputStream(filePath)) { + mergeProperties(fis); } - } + } /** * Merges a new properties file into the current properties. This method @@ -1126,9 +1129,9 @@ * loading/merging the properties */ public void mergeProperties(@NotNull final InputStream stream) throws IOException { - props.load(stream); - logProperties("Properties updated via merge", props); - } + props.load(stream); + logProperties("Properties updated via merge", props); + } /** * Returns a value from the properties file as a File object. If the value @@ -1141,11 +1144,11 @@ */ @Nullable public File getFile(@NotNull final String key) { - final String file = getString(key); - if (file == null) { - return null; + final String file = getString(key); + if (file == null) { + return null; } - return new File(file); + return new File(file); } /** @@ -1163,20 +1166,20 @@ * @return the property from the properties file converted to a File object */ File getDataFile(@NotNull final String key) { - final String file = getString(key); - LOGGER.debug("Settings.getDataFile() - file: '{}'", file); - if (file == null) { - return null; + final String file = getString(key); + LOGGER.debug("Settings.getDataFile() - file: '{}'", file); + if (file == null) { + return null; } - if (file.startsWith("[JAR]")) { - LOGGER.debug("Settings.getDataFile() - transforming filename"); - final File jarPath = getJarPath(); - LOGGER.debug("Settings.getDataFile() - jar file: '{}'", jarPath.toString()); - final File retVal = new File(jarPath, file.substring(6)); - LOGGER.debug("Settings.getDataFile() - returning: '{}'", retVal); - return retVal; + if (file.startsWith("[JAR]")) { + LOGGER.debug("Settings.getDataFile() - transforming filename"); + final File jarPath = getJarPath(); + LOGGER.debug("Settings.getDataFile() - jar file: '{}'", jarPath.toString()); + final File retVal = new File(jarPath, file.substring(6)); + LOGGER.debug("Settings.getDataFile() - returning: '{}'", retVal); + return retVal; } - return new File(file); + return new File(file); } /** @@ -1186,23 +1189,23 @@ * @return a File object */ private File getJarPath() { - String decodedPath = "."; - String jarPath = ""; - final ProtectionDomain domain = Settings.class.getProtectionDomain(); - if (domain != null && domain.getCodeSource() != null && domain.getCodeSource().getLocation() != null) { - jarPath = Settings.class.getProtectionDomain().getCodeSource().getLocation().getPath(); + String decodedPath = "."; + String jarPath = ""; + final ProtectionDomain domain = Settings.class.getProtectionDomain(); + if (domain != null && domain.getCodeSource() != null && domain.getCodeSource().getLocation() != null) { + jarPath = Settings.class.getProtectionDomain().getCodeSource().getLocation().getPath(); } try { - decodedPath = URLDecoder.decode(jarPath, StandardCharsets.UTF_8.name()); - } catch (UnsupportedEncodingException ex) { - LOGGER.trace("", ex); - } + decodedPath = URLDecoder.decode(jarPath, StandardCharsets.UTF_8.name()); + } catch (UnsupportedEncodingException ex) { + LOGGER.trace("", ex); + } - final File path = new File(decodedPath); - if (path.getName().toLowerCase().endsWith(".jar")) { - return path.getParentFile(); + final File path = new File(decodedPath); + if (path.getName().toLowerCase().endsWith(".jar")) { + return path.getParentFile(); } else { - return new File("."); + return new File("."); } } @@ -1217,7 +1220,7 @@ * @return the property from the properties file */ public String getString(@NotNull final String key, @Nullable final String defaultValue) { - return System.getProperty(key, props.getProperty(key, defaultValue)); + return System.getProperty(key, props.getProperty(key, defaultValue)); } /** @@ -1227,11 +1230,11 @@ * @throws java.io.IOException if any. */ public synchronized File getTempDirectory() throws IOException { - if (tempDirectory == null) { - final File baseTemp = new File(getString(Settings.KEYS.TEMP_DIRECTORY, System.getProperty("java.io.tmpdir"))); - tempDirectory = FileUtils.createTempDirectory(baseTemp); + if (tempDirectory == null) { + final File baseTemp = new File(getString(Settings.KEYS.TEMP_DIRECTORY, System.getProperty("java.io.tmpdir"))); + tempDirectory = FileUtils.createTempDirectory(baseTemp); } - return tempDirectory; + return tempDirectory; } /** @@ -1244,7 +1247,7 @@ * @return the property from the properties file */ public String getString(@NotNull final String key) { - return System.getProperty(key, props.getProperty(key)); + return System.getProperty(key, props.getProperty(key)); } /** @@ -1257,19 +1260,19 @@ * @return the list or {@code null} if the key wasn't present. */ public String[] getArray(@NotNull final String key) { - final String string = getString(key); - if (string != null) { - if (string.charAt(0) == '{' || string.charAt(0) == '[') { + final String string = getString(key); + if (string != null) { + if (string.charAt(0) == '{' || string.charAt(0) == '[') { try { - return objectMapper.readValue(string, String[].class); - } catch (JsonProcessingException e) { - throw new IllegalStateException("Unable to read value '" + string + "' as an array"); + return objectMapper.readValue(string, String[].class); + } catch (JsonProcessingException e) { + throw new IllegalStateException("Unable to read value '" + string + "' as an array"); } } else { - return string.split(ARRAY_SEP); + return string.split(ARRAY_SEP); } } - return null; + return null; } /** @@ -1279,8 +1282,8 @@ * @param key the property key to remove */ public void removeProperty(@NotNull final String key) { - props.remove(key); - } + props.remove(key); + } /** * Returns an int value from the properties file. If the value was specified @@ -1295,9 +1298,9 @@ */ public int getInt(@NotNull final String key) throws InvalidSettingException { try { - return Integer.parseInt(getString(key)); - } catch (NumberFormatException ex) { - throw new InvalidSettingException("Could not convert property '" + key + "' to an int.", ex); + return Integer.parseInt(getString(key)); + } catch (NumberFormatException ex) { + throw new InvalidSettingException("Could not convert property '" + key + "' to an int.", ex); } } @@ -1315,15 +1318,15 @@ public int getInt(@NotNull final String key, int defaultValue) { int value; try { - value = Integer.parseInt(getString(key)); - } catch (NumberFormatException ex) { - if (!getString(key, "").isEmpty()) { - LOGGER.debug("Could not convert property '{}={}' to an int; using {} instead.", - key, getPrintableValue(key, getString(key)), defaultValue); + value = Integer.parseInt(getString(key)); + } catch (NumberFormatException ex) { + if (!getString(key, "").isEmpty()) { + LOGGER.debug("Could not convert property '{}={}' to an int; using {} instead.", + key, getPrintableValue(key, getString(key)), defaultValue); } - value = defaultValue; - } - return value; + value = defaultValue; + } + return value; } /** @@ -1339,9 +1342,9 @@ */ public long getLong(@NotNull final String key) throws InvalidSettingException { try { - return Long.parseLong(getString(key)); - } catch (NumberFormatException ex) { - throw new InvalidSettingException("Could not convert property '" + key + "' to a long.", ex); + return Long.parseLong(getString(key)); + } catch (NumberFormatException ex) { + throw new InvalidSettingException("Could not convert property '" + key + "' to a long.", ex); } } @@ -1358,7 +1361,7 @@ * if there is an error retrieving the setting */ public boolean getBoolean(@NotNull final String key) throws InvalidSettingException { - return Boolean.parseBoolean(getString(key)); + return Boolean.parseBoolean(getString(key)); } /** @@ -1374,7 +1377,7 @@ * @return the property from the properties file */ public boolean getBoolean(@NotNull final String key, boolean defaultValue) { - return Boolean.parseBoolean(getString(key, Boolean.toString(defaultValue))); + return Boolean.parseBoolean(getString(key, Boolean.toString(defaultValue))); } /** @@ -1390,13 +1393,13 @@ * @return the property from the properties file */ public float getFloat(@NotNull final String key, float defaultValue) { - float retValue = defaultValue; + float retValue = defaultValue; try { - retValue = Float.parseFloat(getString(key)); - } catch (Throwable ex) { - LOGGER.trace("ignore", ex); - } - return retValue; + retValue = Float.parseFloat(getString(key)); + } catch (Throwable ex) { + LOGGER.trace("ignore", ex); + } + return retValue; } /** @@ -1414,33 +1417,33 @@ */ public String getConnectionString(String connectionStringKey, String dbFileNameKey) throws IOException, InvalidSettingException { - final String connStr = getString(connectionStringKey); - if (connStr == null) { - final String msg = String.format("Invalid properties file; %s is missing.", connectionStringKey); - throw new InvalidSettingException(msg); + final String connStr = getString(connectionStringKey); + if (connStr == null) { + final String msg = String.format("Invalid properties file; %s is missing.", connectionStringKey); + throw new InvalidSettingException(msg); } - if (connStr.contains("%s")) { - final File directory = getH2DataDirectory(); - LOGGER.debug("Data directory: {}", directory); - String fileName = null; - if (dbFileNameKey != null) { - fileName = getString(dbFileNameKey); + if (connStr.contains("%s")) { + final File directory = getH2DataDirectory(); + LOGGER.debug("Data directory: {}", directory); + String fileName = null; + if (dbFileNameKey != null) { + fileName = getString(dbFileNameKey); } - if (fileName == null) { - final String msg = String.format("Invalid properties file to get a file based connection string; '%s' must be defined.", + if (fileName == null) { + final String msg = String.format("Invalid properties file to get a file based connection string; '%s' must be defined.", dbFileNameKey); - throw new InvalidSettingException(msg); + throw new InvalidSettingException(msg); } - if (connStr.startsWith("jdbc:h2:file:") && fileName.endsWith(".mv.db")) { - fileName = fileName.substring(0, fileName.length() - 6); + if (connStr.startsWith("jdbc:h2:file:") && fileName.endsWith(".mv.db")) { + fileName = fileName.substring(0, fileName.length() - 6); } // yes, for H2 this path won't actually exists - but this is sufficient to get the value needed - final File dbFile = new File(directory, fileName); - final String cString = String.format(connStr, dbFile.getCanonicalPath()); - LOGGER.debug("Connection String: '{}'", cString); - return cString; + final File dbFile = new File(directory, fileName); + final String cString = String.format(connStr, dbFile.getCanonicalPath()); + LOGGER.debug("Connection String: '{}'", cString); + return cString; } - return connStr; + return connStr; } /** @@ -1452,12 +1455,12 @@ * course... */ public File getDataDirectory() throws IOException { - final File path = getDataFile(Settings.KEYS.DATA_DIRECTORY); - if (path != null && (path.exists() || path.mkdirs())) { - return path; + final File path = getDataFile(Settings.KEYS.DATA_DIRECTORY); + if (path != null && (path.exists() || path.mkdirs())) { + return path; } - throw new IOException(String.format("Unable to create the data directory '%s'", - (path == null) ? "unknown" : path.getAbsolutePath())); + throw new IOException(String.format("Unable to create the data directory '%s'", + (path == null) ? "unknown" : path.getAbsolutePath())); } /** @@ -1469,18 +1472,18 @@ * course... */ public File getH2DataDirectory() throws IOException { - final String h2Test = getString(Settings.KEYS.H2_DATA_DIRECTORY); + final String h2Test = getString(Settings.KEYS.H2_DATA_DIRECTORY); final File path; - if (h2Test != null && !h2Test.isEmpty()) { - path = getDataFile(Settings.KEYS.H2_DATA_DIRECTORY); + if (h2Test != null && !h2Test.isEmpty()) { + path = getDataFile(Settings.KEYS.H2_DATA_DIRECTORY); } else { - path = getDataFile(Settings.KEYS.DATA_DIRECTORY); + path = getDataFile(Settings.KEYS.DATA_DIRECTORY); } - if (path != null && (path.exists() || path.mkdirs())) { - return path; + if (path != null && (path.exists() || path.mkdirs())) { + return path; } - throw new IOException(String.format("Unable to create the h2 data directory '%s'", - (path == null) ? "unknown" : path.getAbsolutePath())); + throw new IOException(String.format("Unable to create the h2 data directory '%s'", + (path == null) ? "unknown" : path.getAbsolutePath())); } /** @@ -1492,13 +1495,13 @@ * @throws java.io.IOException if any. */ public File getTempFile(@NotNull final String prefix, @NotNull final String extension) throws IOException { - final File dir = getTempDirectory(); - final String tempFileName = String.format("%s%s.%s", prefix, UUID.randomUUID(), extension); - final File tempFile = new File(dir, tempFileName); - if (tempFile.exists()) { - return getTempFile(prefix, extension); + final File dir = getTempDirectory(); + final String tempFileName = String.format("%s%s.%s", prefix, UUID.randomUUID(), extension); + final File tempFile = new File(dir, tempFileName); + if (tempFile.exists()) { + return getTempFile(prefix, extension); } - return tempFile; + return tempFile; } } \ No newline at end of file diff --git a/dependency-check-utils/jacoco/org.owasp.dependencycheck.utils/index.html b/dependency-check-utils/jacoco/org.owasp.dependencycheck.utils/index.html index c92b13a9068..719732a48f1 100644 --- a/dependency-check-utils/jacoco/org.owasp.dependencycheck.utils/index.html +++ b/dependency-check-utils/jacoco/org.owasp.dependencycheck.utils/index.html @@ -1 +1 @@ -org.owasp.dependencycheck.utils

    org.owasp.dependencycheck.utils

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethodsMissedClasses
    Total2,106 of 3,71743%216 of 35539%20933748887470158718
    Settings48043547%574141%5593108211144401
    HttpResourceConnection36016130%291534%23337512031101
    URLConnectionFactory28310627%53711%303862932801
    SSLSocketFactoryEx23918143%9743%182658103111801
    XmlUtils2090%190%151550505511
    Downloader1905522%5116%81240565901
    FileUtils986740%15731%131928463801
    JsonArrayFixingInputStream6837884%214970%154978501401
    URLConnectionFactory.new Authenticator() {...}520%60%55772211
    Checksum3518083%21083%41984421201
    URLConnectionFailureException160%n/a44884411
    ResourceNotFoundException160%n/a44884411
    ExtractionException160%n/a44884411
    TooManyRequestsException160%n/a44884411
    DownloadFailedException160%n/a44884411
    InvalidSettingException1225%n/a34683401
    ExpectedObjectInputStream32100%2100%03070201
    Checksum.FileChecksums12100%n/a01050101
    \ No newline at end of file +org.owasp.dependencycheck.utils

    org.owasp.dependencycheck.utils

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethodsMissedClasses
    Total2,035 of 3,64644%214 of 35339%20733547385969157718
    Settings48043547%574141%5593108211144401
    HttpResourceConnection36016130%291534%23337512031101
    URLConnectionFactory28310627%53711%303862932801
    SSLSocketFactoryEx23918143%9743%182658103111801
    XmlUtils2090%190%151550505511
    Downloader1195531%3125%61025414801
    FileUtils986740%15731%131928463801
    JsonArrayFixingInputStream6837884%214970%154978501401
    URLConnectionFactory.new Authenticator() {...}520%60%55772211
    Checksum3518083%21083%41984421201
    URLConnectionFailureException160%n/a44884411
    ResourceNotFoundException160%n/a44884411
    ExtractionException160%n/a44884411
    TooManyRequestsException160%n/a44884411
    DownloadFailedException160%n/a44884411
    InvalidSettingException1225%n/a34683401
    ExpectedObjectInputStream32100%2100%03070201
    Checksum.FileChecksums12100%n/a01050101
    \ No newline at end of file diff --git a/dependency-check-utils/jacoco/org.owasp.dependencycheck.utils/index.source.html b/dependency-check-utils/jacoco/org.owasp.dependencycheck.utils/index.source.html index 421db61b4a4..0c4b2e4b689 100644 --- a/dependency-check-utils/jacoco/org.owasp.dependencycheck.utils/index.source.html +++ b/dependency-check-utils/jacoco/org.owasp.dependencycheck.utils/index.source.html @@ -1 +1 @@ -org.owasp.dependencycheck.utils

    org.owasp.dependencycheck.utils

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethodsMissedClasses
    Total2,106 of 3,71743%216 of 35539%20933748887470158718
    Settings.java48043547%574141%5593108211144401
    HttpResourceConnection.java36016130%291534%23337512031101
    URLConnectionFactory.java33510624%59710%3543689941012
    SSLSocketFactoryEx.java23918143%9743%182658103111801
    XmlUtils.java2090%190%151550505511
    Downloader.java1905522%5116%81240565901
    FileUtils.java986740%15731%131928463801
    JsonArrayFixingInputStream.java6837884%214970%154978501401
    Checksum.java3519284%21083%42084921302
    ResourceNotFoundException.java160%n/a44884411
    DownloadFailedException.java160%n/a44884411
    ExtractionException.java160%n/a44884411
    URLConnectionFailureException.java160%n/a44884411
    TooManyRequestsException.java160%n/a44884411
    InvalidSettingException.java1225%n/a34683401
    ExpectedObjectInputStream.java32100%2100%03070201
    \ No newline at end of file +org.owasp.dependencycheck.utils

    org.owasp.dependencycheck.utils

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethodsMissedClasses
    Total2,035 of 3,64644%214 of 35339%20733547385969157718
    Settings.java48043547%574141%5593108211144401
    HttpResourceConnection.java36016130%291534%23337512031101
    URLConnectionFactory.java33510624%59710%3543689941012
    SSLSocketFactoryEx.java23918143%9743%182658103111801
    XmlUtils.java2090%190%151550505511
    Downloader.java1195531%3125%61025414801
    FileUtils.java986740%15731%131928463801
    JsonArrayFixingInputStream.java6837884%214970%154978501401
    Checksum.java3519284%21083%42084921302
    ResourceNotFoundException.java160%n/a44884411
    DownloadFailedException.java160%n/a44884411
    ExtractionException.java160%n/a44884411
    URLConnectionFailureException.java160%n/a44884411
    TooManyRequestsException.java160%n/a44884411
    InvalidSettingException.java1225%n/a34683401
    ExpectedObjectInputStream.java32100%2100%03070201
    \ No newline at end of file diff --git a/dependency-check-utils/licenses.html b/dependency-check-utils/licenses.html index d73b2db2f69..c7b0cd0b785 100644 --- a/dependency-check-utils/licenses.html +++ b/dependency-check-utils/licenses.html @@ -1,13 +1,13 @@ - + dependency-check-utils – Project Licenses @@ -41,8 +41,8 @@
  • documentation/
  • dependency-check/
  • Project Licenses
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • diff --git a/dependency-check-utils/plugin-updates-report.html b/dependency-check-utils/plugin-updates-report.html index a813899f9e9..6c903b06b0c 100644 --- a/dependency-check-utils/plugin-updates-report.html +++ b/dependency-check-utils/plugin-updates-report.html @@ -1,13 +1,13 @@ - + dependency-check-utils – Plugin Updates Report @@ -41,8 +41,8 @@
  • documentation/
  • dependency-check/
  • Plugin Updates Report
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • @@ -95,7 +95,7 @@

    Overview

    # of plugins using the latest version available -27 +25 # of plugins where the next version available is smaller than an incremental version update @@ -103,7 +103,7 @@

    Overview

    # of plugins where the next version available is an incremental version update -1 +3 # of plugins where the next version available is a minor version update @@ -219,12 +219,12 @@

    Plugin Management

    - + org.apache.maven.plugins maven-failsafe-plugin -3.2.2 - +3.2.2 +3.2.3 @@ -319,12 +319,12 @@

    Plugin Management

    - + org.apache.maven.plugins maven-surefire-plugin -3.2.2 - +3.2.2 +3.2.3 @@ -642,7 +642,7 @@

    Plugin o - + @@ -651,7 +651,10 @@

    Plugin o

    -
    Status No newer versions available.
     There is at least one newer incremental version available. Incremental updates are typically passive.
    Group Id org.apache.maven.plugins
    maven-failsafe-plugin
    Current Version3.2.2

    +3.2.2 + +Newer versions +3.2.3 Latest Incremental

    Plugin org.apache.maven.plugins:maven-gpg-plugin

    @@ -905,7 +908,7 @@

    Plugin o

    - + @@ -914,7 +917,10 @@

    Plugin o

    -
    Status No newer versions available.
     There is at least one newer incremental version available. Incremental updates are typically passive.
    Group Id org.apache.maven.plugins
    maven-surefire-plugin
    Current Version3.2.2
    +3.2.2 + +Newer versions +3.2.3 Latest Incremental

    Plugin org.codehaus.gmavenplus:gmavenplus-plugin

    diff --git a/dependency-check-utils/project-info.html b/dependency-check-utils/project-info.html index 85ec2403464..75e92979165 100644 --- a/dependency-check-utils/project-info.html +++ b/dependency-check-utils/project-info.html @@ -1,13 +1,13 @@ - + dependency-check-utils – Project Information @@ -41,8 +41,8 @@
  • documentation/
  • dependency-check/
  • Project Information
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • diff --git a/dependency-check-utils/project-reports.html b/dependency-check-utils/project-reports.html index a618b135ecb..6b772705063 100644 --- a/dependency-check-utils/project-reports.html +++ b/dependency-check-utils/project-reports.html @@ -1,13 +1,13 @@ - + dependency-check-utils – Generated Reports @@ -41,8 +41,8 @@
  • documentation/
  • dependency-check/
  • Generated Reports
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • diff --git a/dependency-check-utils/scm.html b/dependency-check-utils/scm.html index c9e79c1e270..55fb3efe84d 100644 --- a/dependency-check-utils/scm.html +++ b/dependency-check-utils/scm.html @@ -1,13 +1,13 @@ - + dependency-check-utils – Source Code Management @@ -41,8 +41,8 @@
  • documentation/
  • dependency-check/
  • Source Code Management
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • @@ -91,11 +91,11 @@

    Web Browser Access

    Anonymous Access

    The source can be checked out anonymously from Git with this command (See https://git-scm.com/docs/git-clone):

    -
    $ git clone --branch v9.0.4 https://github.com/jeremylong/DependencyCheck.git
    +
    $ git clone --branch v9.0.5 https://github.com/jeremylong/DependencyCheck.git

    Developer Access

    Only project developers can access the Git tree via this method (See https://git-scm.com/docs/git-clone).

    -
    $ git clone --branch v9.0.4 git@github.com:jeremylong/DependencyCheck.git
    +
    $ git clone --branch v9.0.5 git@github.com:jeremylong/DependencyCheck.git

    Access from Behind a Firewall

    Refer to the documentation of the SCM used for more information about access behind a firewall.

    diff --git a/dependency-check-utils/spotbugs.html b/dependency-check-utils/spotbugs.html index 37e50696260..6b7b5d50d0d 100644 --- a/dependency-check-utils/spotbugs.html +++ b/dependency-check-utils/spotbugs.html @@ -1,13 +1,13 @@ - + dependency-check-utils – SpotBugs Bug Detector Report @@ -41,8 +41,8 @@
  • documentation/
  • dependency-check/
  • SpotBugs Bug Detector Report
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • @@ -125,7 +125,7 @@

    org.owasp.dependencyc

    - +
    Do not catch NullPointerException like in org.owasp.dependencycheck.utils.Settings.initialize(String) STYLE DCN_NULLPOINTER_EXCEPTION853856 Medium
    diff --git a/dependency-check-utils/summary.html b/dependency-check-utils/summary.html index 1ad9badb130..091a239a310 100644 --- a/dependency-check-utils/summary.html +++ b/dependency-check-utils/summary.html @@ -1,13 +1,13 @@ - + dependency-check-utils – Project Summary @@ -41,8 +41,8 @@
  • documentation/
  • dependency-check/
  • Project Summary
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • @@ -121,7 +121,7 @@

    Build Information

    Version -9.0.4 +9.0.5 Type jar diff --git a/dependency-check-utils/surefire-report.html b/dependency-check-utils/surefire-report.html index c59bfcd5a53..0e293ce7e5e 100644 --- a/dependency-check-utils/surefire-report.html +++ b/dependency-check-utils/surefire-report.html @@ -1,13 +1,13 @@ - + dependency-check-utils – Surefire Report @@ -41,8 +41,8 @@
  • documentation/
  • dependency-check/
  • Surefire Report
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • @@ -121,7 +121,7 @@

    Summary

    0 0 100% -1.485 s
    +1.635 s

    Note: failures are anticipated and checked for with assertions while errors are unanticipated.


    Package List

    [Summary] [Package List] [Test Cases]


    @@ -141,7 +141,7 @@

    Package List

    0 0 100% -0.007 s +0.826 s org.owasp.dependencycheck.utils 49 @@ -149,7 +149,7 @@

    Package List

    0 0 100% -1.478 s
    +0.809 s

    Note: package statistics are not computed recursively, they only sum up all of its testsuites numbers.

    org.owasp.dependencycheck.utils.search

    @@ -170,7 +170,7 @@

    org.owasp.dependencyche

    -
    0 0 100%0.007 s
    +0.826 s

    org.owasp.dependencycheck.utils

    @@ -183,24 +183,15 @@

    org.owasp.dependencycheck.util

    - - - + + + - + - - - - - - - - - @@ -208,8 +199,8 @@

    org.owasp.dependencycheck.util

    - - + + @@ -217,8 +208,8 @@

    org.owasp.dependencycheck.util

    - - + + @@ -226,28 +217,123 @@

    org.owasp.dependencycheck.util

    - + + + + + + + + + + - - - + + + -
    Success Rate Time
    ChecksumTest11FileUtilsTest2 0 0 0 100%0.365 s
    0.034 s
    SettingsTest21000100%0.087 s
    HttpResourceConnectionTest 30 0 100%0.483 s
    0.630 s
    ExpectedObjectInputStreamTest 20 0 100%0.010 s
    0.018 s
    JsonArrayFixingInputStreamTest 100 0 100%0.041 s
    0.048 s
    ChecksumTest11000100%0.006 s
    FileUtilsTest2SettingsTest21 0 0 0 100%0.492 s

    +0.073 s

    Test Cases

    -

    [Summary] [Package List] [Test Cases]

    +

    [Summary] [Package List] [Test Cases]

    +

    FileUtilsTest

    + + + + + + + + +
    testGetFileExtension0 s
    testDelete0.030 s
    +

    HttpResourceConnectionTest

    + + + + + + + + + + + + +
    testClose0.001 s
    testFetch0.503 s
    testIsClosed0.119 s
    +

    ExpectedObjectInputStreamTest

    + + + + + + + + +
    testResolveClassException0.013 s
    testResolveClass0 s
    +

    FileContentSearchTest

    + + + + + + + + +
    testContains_File_List0.728 s
    testContains_File_String0 s
    +

    JsonArrayFixingInputStreamTest

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    testRead_byteArr0.001 s
    testRead_RealSample0.021 s
    testClose0 s
    testSkip0.003 s
    testMarkSupported0 s
    testRead_0args0 s
    testRead_3args0.002 s
    testIsWhiteSpace0 s
    testAvailable0.014 s
    testRead_IOUtils0.001 s

    ChecksumTest

    - + - + @@ -259,7 +345,7 @@

    ChecksumTest

    - + @@ -267,7 +353,7 @@

    ChecksumTest

    - + @@ -275,7 +361,7 @@

    ChecksumTest

    - + @@ -289,7 +375,7 @@

    SettingsTest

    - + @@ -305,19 +391,19 @@

    SettingsTest

    - + - + - + - + @@ -325,23 +411,23 @@

    SettingsTest

    - + - + - + - + - + @@ -349,11 +435,11 @@

    SettingsTest

    - + - + @@ -361,7 +447,7 @@

    SettingsTest

    - + @@ -369,93 +455,7 @@

    SettingsTest

    -
    testGetChecksum_NoSuchAlgorithm0.267 s
    0 s
    testGetChecksum_String_byteArr0.001 s
    0 s
    testGetChecksum_String_File
    testGetSHA1Checksum_File0 s
    0.001 s
    testGetChecksum_FileNotFound
    testGetSHA1Checksum_String0.001 s
    0 s
    testGetMD5Checksum_File
    testGetHex0.001 s
    0 s
    testGetSHA1Checksum
    testGetArrayFromADelimitedString0.008 s
    0.001 s
    testSetStringIfNotNull
    testGetDataFile0.001 s
    0 s
    testGetLong0.001 s
    0 s
    testGetBoolean0.001 s
    0 s
    testGetIntDefault0.001 s
    0 s
    testRemoveProperty
    testGetTempDirectory0.001 s
    0.002 s
    testSetArrayNotEmptyIgnoresAnNullArray0.001 s
    0 s
    testSetArrayNotEmptyWithList0.050 s
    0.049 s
    testSetString0.001 s
    0 s
    testGetInt0.002 s
    0.001 s
    testGetArrayWhereThePropertyIsNotSet
    testGetString_String0.002 s
    0.001 s
    testGetString0.001 s
    0 s
    testGetConnectionString
    testSetArrayNotEmptyIgnoresAnEmptyArray0.001 s
    0 s
    testGetString_String_String
    testMaskedKeys0.001 s
    -

    HttpResourceConnectionTest

    - - - - - - - - - - - - -
    testClose0 s
    testFetch0.369 s
    testIsClosed0.111 s
    -

    FileContentSearchTest

    - - - - - - - - -
    testContains_File_List0 s
    testContains_File_String0.007 s
    -

    ExpectedObjectInputStreamTest

    - - - - - - - - -
    testResolveClassException0.006 s
    testResolveClass0.001 s
    -

    JsonArrayFixingInputStreamTest

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    testRead_byteArr0 s
    testRead_RealSample0.029 s
    testClose0 s
    testSkip0.002 s
    testMarkSupported0.001 s
    testRead_0args0 s
    testRead_3args0.001 s
    testIsWhiteSpace0 s
    testAvailable0.002 s
    testRead_IOUtils0 s
    -

    FileUtilsTest

    - - - - - - - - -
    testGetFileExtension0.438 s
    testDelete0.049 s

    +0.001 s

    diff --git a/dependency-check-utils/taglist.html b/dependency-check-utils/taglist.html index 225a94119bd..8286eea5b43 100644 --- a/dependency-check-utils/taglist.html +++ b/dependency-check-utils/taglist.html @@ -1,13 +1,13 @@ - + dependency-check-utils – Tag List report @@ -41,8 +41,8 @@
  • documentation/
  • dependency-check/
  • Tag List report
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • diff --git a/dependency-check-utils/team.html b/dependency-check-utils/team.html index 0a4fbd99300..526bacccefd 100644 --- a/dependency-check-utils/team.html +++ b/dependency-check-utils/team.html @@ -1,13 +1,13 @@ - + dependency-check-utils – Project Team @@ -41,8 +41,8 @@
  • documentation/
  • dependency-check/
  • Project Team
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • diff --git a/dependency-check-utils/xref-test/index.html b/dependency-check-utils/xref-test/index.html index 4c827eb5aaf..2d8aad742ad 100644 --- a/dependency-check-utils/xref-test/index.html +++ b/dependency-check-utils/xref-test/index.html @@ -4,7 +4,7 @@ - Dependency-Check Utils 9.0.4 Reference + Dependency-Check Utils 9.0.5 Reference diff --git a/dependency-check-utils/xref-test/org/owasp/dependencycheck/utils/package-frame.html b/dependency-check-utils/xref-test/org/owasp/dependencycheck/utils/package-frame.html index e46a5600743..2bf066f4198 100644 --- a/dependency-check-utils/xref-test/org/owasp/dependencycheck/utils/package-frame.html +++ b/dependency-check-utils/xref-test/org/owasp/dependencycheck/utils/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Utils 9.0.4 Reference Package org.owasp.dependencycheck.utils + Dependency-Check Utils 9.0.5 Reference Package org.owasp.dependencycheck.utils diff --git a/dependency-check-utils/xref-test/org/owasp/dependencycheck/utils/package-summary.html b/dependency-check-utils/xref-test/org/owasp/dependencycheck/utils/package-summary.html index da202fdb2d2..6bd7fd9faa6 100644 --- a/dependency-check-utils/xref-test/org/owasp/dependencycheck/utils/package-summary.html +++ b/dependency-check-utils/xref-test/org/owasp/dependencycheck/utils/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Utils 9.0.4 Reference Package org.owasp.dependencycheck.utils + Dependency-Check Utils 9.0.5 Reference Package org.owasp.dependencycheck.utils diff --git a/dependency-check-utils/xref-test/org/owasp/dependencycheck/utils/search/package-frame.html b/dependency-check-utils/xref-test/org/owasp/dependencycheck/utils/search/package-frame.html index b125c59bd76..57dc98ea626 100644 --- a/dependency-check-utils/xref-test/org/owasp/dependencycheck/utils/search/package-frame.html +++ b/dependency-check-utils/xref-test/org/owasp/dependencycheck/utils/search/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Utils 9.0.4 Reference Package org.owasp.dependencycheck.utils.search + Dependency-Check Utils 9.0.5 Reference Package org.owasp.dependencycheck.utils.search diff --git a/dependency-check-utils/xref-test/org/owasp/dependencycheck/utils/search/package-summary.html b/dependency-check-utils/xref-test/org/owasp/dependencycheck/utils/search/package-summary.html index c478c87cc8e..7aeac12233d 100644 --- a/dependency-check-utils/xref-test/org/owasp/dependencycheck/utils/search/package-summary.html +++ b/dependency-check-utils/xref-test/org/owasp/dependencycheck/utils/search/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Utils 9.0.4 Reference Package org.owasp.dependencycheck.utils.search + Dependency-Check Utils 9.0.5 Reference Package org.owasp.dependencycheck.utils.search diff --git a/dependency-check-utils/xref-test/overview-frame.html b/dependency-check-utils/xref-test/overview-frame.html index 58b839a64e2..1eb835e0e45 100644 --- a/dependency-check-utils/xref-test/overview-frame.html +++ b/dependency-check-utils/xref-test/overview-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Utils 9.0.4 Reference + Dependency-Check Utils 9.0.5 Reference diff --git a/dependency-check-utils/xref-test/overview-summary.html b/dependency-check-utils/xref-test/overview-summary.html index c9648e8ba63..73850caa731 100644 --- a/dependency-check-utils/xref-test/overview-summary.html +++ b/dependency-check-utils/xref-test/overview-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Utils 9.0.4 Reference + Dependency-Check Utils 9.0.5 Reference @@ -24,7 +24,7 @@
    -

    Dependency-Check Utils 9.0.4 Reference

    +

    Dependency-Check Utils 9.0.5 Reference

    diff --git a/dependency-check-utils/xref/index.html b/dependency-check-utils/xref/index.html index 4c827eb5aaf..2d8aad742ad 100644 --- a/dependency-check-utils/xref/index.html +++ b/dependency-check-utils/xref/index.html @@ -4,7 +4,7 @@ - Dependency-Check Utils 9.0.4 Reference + Dependency-Check Utils 9.0.5 Reference diff --git a/dependency-check-utils/xref/org/owasp/dependencycheck/utils/Downloader.html b/dependency-check-utils/xref/org/owasp/dependencycheck/utils/Downloader.html index f8c64caa7da..18212e87822 100644 --- a/dependency-check-utils/xref/org/owasp/dependencycheck/utils/Downloader.html +++ b/dependency-check-utils/xref/org/owasp/dependencycheck/utils/Downloader.html @@ -186,7 +186,7 @@ 178public String fetchContent(URL url, boolean useProxy, String userKey, String passwordKey) 179throws DownloadFailedException, TooManyRequestsException, ResourceNotFoundException { 180 InputStream in = null; -181try (HttpResourceConnection conn = new HttpResourceConnection(settings, useProxy, userKey, passwordKey); +181try (HttpResourceConnection conn = new HttpResourceConnection(settings, useProxy, userKey, passwordKey); 182 ByteArrayOutputStream out = new ByteArrayOutputStream()) { 183 in = conn.fetch(url); 184 IOUtils.copy(in, out); @@ -204,45 +204,7 @@ 196 } 197 } 198 } -199 -200/** -201 * Retrieves a gzip file from a given URL and returns the uncompressed contents. -202 * -203 * @param url the URL of the file to download -204 * @param useProxy whether to use the configured proxy when downloading -205 * files -206 * @return the content of the file -207 * @param userKey the settings key for the username to be used -208 * @param passwordKey the settings key for the password to be used -209 * @throws DownloadFailedException is thrown if there is an error -210 * downloading the file -211 * @throws TooManyRequestsException thrown when a 429 is received -212 * @throws ResourceNotFoundException thrown when a 404 is received -213 */ -214public String fetchGzContent(URL url, boolean useProxy, String userKey, String passwordKey) -215throws DownloadFailedException, TooManyRequestsException, ResourceNotFoundException { -216 InputStream in = null; -217try (HttpResourceConnection conn = new HttpResourceConnection(settings, useProxy, userKey, passwordKey)) { -218 in = conn.fetch(url); -219try (GZIPInputStream gzipIn = new GZIPInputStream(in); -220 ByteArrayOutputStream out = new ByteArrayOutputStream()) { -221 IOUtils.copy(gzipIn, out); -222return out.toString(UTF8); -223 } -224 } catch (IOException ex) { -225final String msg = format("Download failed, unable to retrieve '%s'; %s", url, ex.getMessage()); -226thrownewDownloadFailedException(msg, ex); -227 } finally { -228if (in != null) { -229try { -230 in.close(); -231 } catch (IOException ex) { -232 LOGGER.trace("Ignorable error", ex); -233 } -234 } -235 } -236 } -237 } +199 }
    diff --git a/dependency-check-utils/xref/org/owasp/dependencycheck/utils/Settings.html b/dependency-check-utils/xref/org/owasp/dependencycheck/utils/Settings.html index 6e2905f37f6..6e19d836586 100644 --- a/dependency-check-utils/xref/org/owasp/dependencycheck/utils/Settings.html +++ b/dependency-check-utils/xref/org/owasp/dependencycheck/utils/Settings.html @@ -169,1346 +169,1349 @@ 161 * be imported.162 */163publicstaticfinal String CVE_CPE_STARTS_WITH_FILTER = "cve.cpe.startswith.filter"; -164 -165/** -166 * API Key for the NVD API. -167 */ -168publicstaticfinal String NVD_API_KEY = "nvd.api.key"; -169/** -170 * The delay between requests for the NVD API. -171 */ -172publicstaticfinal String NVD_API_DELAY = "nvd.api.delay"; -173/** -174 * The maximum number of retry requests for a single call to the NVD -175 * API. -176 */ -177publicstaticfinal String NVD_API_MAX_RETRY_COUNT = "nvd.api.max.retry.count"; -178/** -179 * The properties key to control the skipping of the check for NVD -180 * updates. -181 */ -182publicstaticfinal String NVD_API_VALID_FOR_HOURS = "nvd.api.check.validforhours"; -183/** -184 * The properties key that indicates how often the NVD API data feed -185 * needs to be updated before a full refresh is evaluated. -186 */ -187publicstaticfinal String NVD_API_DATAFEED_VALID_FOR_DAYS = "nvd.api.datafeed.validfordays"; -188/** -189 * The URL for the NVD API Data Feed. -190 */ -191publicstaticfinal String NVD_API_DATAFEED_URL = "nvd.api.datafeed.url"; -192/** -193 * The username to use when connecting to the NVD Data feed. -194 */ -195publicstaticfinal String NVD_API_DATAFEED_USER = "nvd.api.datafeed.user"; -196/** -197 * The password to authenticate to the NVD Data feed. -198 */ -199publicstaticfinal String NVD_API_DATAFEED_PASSWORD = "nvd.api.datafeed.password"; -200/** -201 * The starting year for the NVD CVE Data feed cache. -202 */ -203publicstaticfinal String NVD_API_DATAFEED_START_YEAR = "nvd.api.datafeed.startyear"; -204//END NEW -205/** -206 * The key to determine if the NVD CVE analyzer is enabled. -207 */ -208publicstaticfinal String ANALYZER_NVD_CVE_ENABLED = "analyzer.nvdcve.enabled"; -209/** -210 * The properties key that indicates how often the CPE data needs to be -211 * updated. -212 */ -213publicstaticfinal String CPE_MODIFIED_VALID_FOR_DAYS = "cpe.validfordays"; -214/** -215 * The properties key for the URL to retrieve the CPE. -216 */ -217publicstaticfinal String CPE_URL = "cpe.url"; -218/** -219 * The properties key for the URL to retrieve the Known Exploited -220 * Vulnerabilities.. -221 */ -222publicstaticfinal String KEV_URL = "kev.url"; -223/** -224 * The properties key to control the skipping of the check for Known -225 * Exploited Vulnerabilities updates. -226 */ -227publicstaticfinal String KEV_CHECK_VALID_FOR_HOURS = "kev.check.validforhours"; -228/** -229 * Whether or not if using basic auth with a proxy the system setting -230 * 'jdk.http.auth.tunneling.disabledSchemes' should be set to an empty -231 * string. -232 */ -233publicstaticfinal String PROXY_DISABLE_SCHEMAS = "proxy.disableSchemas"; -234/** -235 * The properties key for the proxy server. -236 */ -237publicstaticfinal String PROXY_SERVER = "proxy.server"; -238/** -239 * The properties key for the proxy port - this must be an integer -240 * value. -241 */ -242publicstaticfinal String PROXY_PORT = "proxy.port"; -243/** -244 * The properties key for the proxy username. -245 */ -246publicstaticfinal String PROXY_USERNAME = "proxy.username"; -247/** -248 * The properties key for the proxy password. -249 */ -250publicstaticfinal String PROXY_PASSWORD = "proxy.password"; -251/** -252 * The properties key for the non proxy hosts. -253 */ -254publicstaticfinal String PROXY_NON_PROXY_HOSTS = "proxy.nonproxyhosts"; -255/** -256 * The properties key for the connection timeout. -257 */ -258publicstaticfinal String CONNECTION_TIMEOUT = "connection.timeout"; -259/** -260 * The properties key for the connection read timeout. -261 */ -262publicstaticfinal String CONNECTION_READ_TIMEOUT = "connection.read.timeout"; -263/** -264 * The location of the temporary directory. -265 */ -266publicstaticfinal String TEMP_DIRECTORY = "temp.directory"; -267/** -268 * The maximum number of threads to allocate when downloading files. -269 */ -270publicstaticfinal String MAX_DOWNLOAD_THREAD_POOL_SIZE = "max.download.threads"; -271/** -272 * The properties key for the analysis timeout. -273 */ -274publicstaticfinal String ANALYSIS_TIMEOUT = "odc.analysis.timeout"; -275/** -276 * The key for the suppression file. -277 */ -278publicstaticfinal String SUPPRESSION_FILE = "suppression.file"; -279/** -280 * The username used when connecting to the suppressionFiles. -281 */ -282publicstaticfinal String SUPPRESSION_FILE_USER = "suppression.file.user"; -283/** -284 * The password used when connecting to the suppressionFiles. -285 */ -286publicstaticfinal String SUPPRESSION_FILE_PASSWORD = "suppression.file.password"; -287/** -288 * The key for the whether the hosted suppressions file datasource is -289 * enabled. -290 */ -291publicstaticfinal String HOSTED_SUPPRESSIONS_ENABLED = "hosted.suppressions.enabled"; -292/** -293 * The key for the hosted suppressions file URL. -294 */ -295publicstaticfinal String HOSTED_SUPPRESSIONS_URL = "hosted.suppressions.url"; -296 -297/** -298 * The properties key for defining whether the hosted suppressions file -299 * will be updated regardless of the autoupdate settings. -300 */ -301publicstaticfinal String HOSTED_SUPPRESSIONS_FORCEUPDATE = "hosted.suppressions.forceupdate"; -302 -303/** -304 * The properties key to control the skipping of the check for hosted -305 * suppressions file updates. -306 */ -307publicstaticfinal String HOSTED_SUPPRESSIONS_VALID_FOR_HOURS = "hosted.suppressions.validforhours"; -308 -309/** -310 * The key for the hint file. -311 */ -312publicstaticfinal String HINTS_FILE = "hints.file"; -313/** -314 * The key for the property that controls what CVSS scores are -315 * considered failing test cases for the JUNIT repor. -316 */ -317publicstaticfinal String JUNIT_FAIL_ON_CVSS = "junit.fail.on.cvss"; -318 -319/** -320 * The properties key for whether the Jar Analyzer is enabled. -321 */ -322publicstaticfinal String ANALYZER_JAR_ENABLED = "analyzer.jar.enabled"; -323 -324/** -325 * The properties key for whether the Known Exploited Vulnerability -326 * Analyzer is enabled. -327 */ -328publicstaticfinal String ANALYZER_KNOWN_EXPLOITED_ENABLED = "analyzer.knownexploited.enabled"; -329 -330/** -331 * The properties key for whether experimental analyzers are loaded. -332 */ -333publicstaticfinal String ANALYZER_EXPERIMENTAL_ENABLED = "analyzer.experimental.enabled"; -334/** -335 * The properties key for whether experimental analyzers are loaded. -336 */ -337publicstaticfinal String ANALYZER_RETIRED_ENABLED = "analyzer.retired.enabled"; -338/** -339 * The properties key for whether the Archive analyzer is enabled. -340 */ -341publicstaticfinal String ANALYZER_ARCHIVE_ENABLED = "analyzer.archive.enabled"; -342/** -343 * The properties key for whether the node.js package analyzer is -344 * enabled. -345 */ -346publicstaticfinal String ANALYZER_NODE_PACKAGE_ENABLED = "analyzer.node.package.enabled"; -347/** -348 * The properties key for configure whether the Node Package analyzer -349 * should skip devDependencies. -350 */ -351publicstaticfinal String ANALYZER_NODE_PACKAGE_SKIPDEV = "analyzer.node.package.skipdev"; -352/** -353 * The properties key for whether the Node Audit analyzer is enabled. -354 */ -355publicstaticfinal String ANALYZER_NODE_AUDIT_ENABLED = "analyzer.node.audit.enabled"; -356/** -357 * The properties key for whether the Yarn Audit analyzer is enabled. -358 */ -359publicstaticfinal String ANALYZER_YARN_AUDIT_ENABLED = "analyzer.yarn.audit.enabled"; -360/** -361 * The properties key for whether the Pnpm Audit analyzer is enabled. -362 */ -363publicstaticfinal String ANALYZER_PNPM_AUDIT_ENABLED = "analyzer.pnpm.audit.enabled"; -364/** -365 * The properties key for supplying the URL to the Node Audit API. -366 */ -367publicstaticfinal String ANALYZER_NODE_AUDIT_URL = "analyzer.node.audit.url"; -368/** -369 * The properties key for configure whether the Node Audit analyzer -370 * should skip devDependencies. -371 */ -372publicstaticfinal String ANALYZER_NODE_AUDIT_SKIPDEV = "analyzer.node.audit.skipdev"; -373/** -374 * The properties key for whether node audit analyzer results will be -375 * cached. -376 */ -377publicstaticfinal String ANALYZER_NODE_AUDIT_USE_CACHE = "analyzer.node.audit.use.cache"; -378/** -379 * The properties key for whether the RetireJS analyzer is enabled. -380 */ -381publicstaticfinal String ANALYZER_RETIREJS_ENABLED = "analyzer.retirejs.enabled"; -382/** -383 * The properties key for whether the RetireJS analyzer file content -384 * filters. -385 */ -386publicstaticfinal String ANALYZER_RETIREJS_FILTERS = "analyzer.retirejs.filters"; -387/** -388 * The properties key for whether the RetireJS analyzer should filter -389 * out non-vulnerable dependencies. -390 */ -391publicstaticfinal String ANALYZER_RETIREJS_FILTER_NON_VULNERABLE = "analyzer.retirejs.filternonvulnerable"; -392/** -393 * The properties key for defining the URL to the RetireJS repository. -394 */ -395publicstaticfinal String ANALYZER_RETIREJS_REPO_JS_URL = "analyzer.retirejs.repo.js.url"; -396/** -397 * The properties key for the Nexus search credentials username. -398 */ -399publicstaticfinal String ANALYZER_RETIREJS_REPO_JS_USER = "analyzer.retirejs.repo.js.username"; -400/** -401 * The properties key for the Nexus search credentials password. -402 */ -403publicstaticfinal String ANALYZER_RETIREJS_REPO_JS_PASSWORD = "analyzer.retirejs.repo.js.password"; -404/** -405 * The properties key for defining whether the RetireJS repository will -406 * be updated regardless of the autoupdate settings. -407 */ -408publicstaticfinal String ANALYZER_RETIREJS_FORCEUPDATE = "analyzer.retirejs.forceupdate"; -409/** -410 * The properties key to control the skipping of the check for CVE -411 * updates. -412 */ -413publicstaticfinal String ANALYZER_RETIREJS_REPO_VALID_FOR_HOURS = "analyzer.retirejs.repo.validforhours"; -414/** -415 * The properties key for whether the PHP composer lock file analyzer is -416 * enabled. -417 */ -418publicstaticfinal String ANALYZER_COMPOSER_LOCK_ENABLED = "analyzer.composer.lock.enabled"; -419/** -420 * The properties key for whether the Perl CPAN file file analyzer is -421 * enabled. -422 */ -423publicstaticfinal String ANALYZER_CPANFILE_ENABLED = "analyzer.cpanfile.enabled"; -424/** -425 * The properties key for whether the Python Distribution analyzer is -426 * enabled. -427 */ -428publicstaticfinal String ANALYZER_PYTHON_DISTRIBUTION_ENABLED = "analyzer.python.distribution.enabled"; -429/** -430 * The properties key for whether the Python Package analyzer is -431 * enabled. -432 */ -433publicstaticfinal String ANALYZER_PYTHON_PACKAGE_ENABLED = "analyzer.python.package.enabled"; -434/** -435 * The properties key for whether the Elixir mix audit analyzer is -436 * enabled. -437 */ -438publicstaticfinal String ANALYZER_MIX_AUDIT_ENABLED = "analyzer.mix.audit.enabled"; -439/** -440 * The path to mix_audit, if available. -441 */ -442publicstaticfinal String ANALYZER_MIX_AUDIT_PATH = "analyzer.mix.audit.path"; -443/** -444 * The properties key for whether the Golang Mod analyzer is enabled. -445 */ -446publicstaticfinal String ANALYZER_GOLANG_MOD_ENABLED = "analyzer.golang.mod.enabled"; -447/** -448 * The path to go, if available. -449 */ -450publicstaticfinal String ANALYZER_GOLANG_PATH = "analyzer.golang.path"; -451/** -452 * The path to go, if available. -453 */ -454publicstaticfinal String ANALYZER_YARN_PATH = "analyzer.yarn.path"; -455/** -456 * The path to pnpm, if available. -457 */ -458publicstaticfinal String ANALYZER_PNPM_PATH = "analyzer.pnpm.path"; -459/** -460 * The properties key for whether the Golang Dep analyzer is enabled. -461 */ -462publicstaticfinal String ANALYZER_GOLANG_DEP_ENABLED = "analyzer.golang.dep.enabled"; -463/** -464 * The properties key for whether the Ruby Gemspec Analyzer is enabled. -465 */ -466publicstaticfinal String ANALYZER_RUBY_GEMSPEC_ENABLED = "analyzer.ruby.gemspec.enabled"; -467/** -468 * The properties key for whether the Autoconf analyzer is enabled. -469 */ -470publicstaticfinal String ANALYZER_AUTOCONF_ENABLED = "analyzer.autoconf.enabled"; -471/** -472 * The properties key for whether the maven_install.json analyzer is -473 * enabled. -474 */ -475publicstaticfinal String ANALYZER_MAVEN_INSTALL_ENABLED = "analyzer.maveninstall.enabled"; -476/** -477 * The properties key for whether the pip analyzer is enabled. -478 */ -479publicstaticfinal String ANALYZER_PIP_ENABLED = "analyzer.pip.enabled"; -480/** -481 * The properties key for whether the pipfile analyzer is enabled. -482 */ -483publicstaticfinal String ANALYZER_PIPFILE_ENABLED = "analyzer.pipfile.enabled"; -484/** -485 * The properties key for whether the Poetry analyzer is enabled. -486 */ -487publicstaticfinal String ANALYZER_POETRY_ENABLED = "analyzer.poetry.enabled"; -488/** -489 * The properties key for whether the CMake analyzer is enabled. -490 */ -491publicstaticfinal String ANALYZER_CMAKE_ENABLED = "analyzer.cmake.enabled"; -492/** -493 * The properties key for whether the Ruby Bundler Audit analyzer is -494 * enabled. -495 */ -496publicstaticfinal String ANALYZER_BUNDLE_AUDIT_ENABLED = "analyzer.bundle.audit.enabled"; -497/** -498 * The properties key for whether the .NET Assembly analyzer is enabled. -499 */ -500publicstaticfinal String ANALYZER_ASSEMBLY_ENABLED = "analyzer.assembly.enabled"; -501/** -502 * The properties key for whether the .NET Nuspec analyzer is enabled. -503 */ -504publicstaticfinal String ANALYZER_NUSPEC_ENABLED = "analyzer.nuspec.enabled"; -505/** -506 * The properties key for whether the .NET Nuget packages.config -507 * analyzer is enabled. -508 */ -509publicstaticfinal String ANALYZER_NUGETCONF_ENABLED = "analyzer.nugetconf.enabled"; -510/** -511 * The properties key for whether the Libman analyzer is enabled. -512 */ -513publicstaticfinal String ANALYZER_LIBMAN_ENABLED = "analyzer.libman.enabled"; -514/** -515 * The properties key for whether the .NET MSBuild Project analyzer is -516 * enabled. -517 */ -518publicstaticfinal String ANALYZER_MSBUILD_PROJECT_ENABLED = "analyzer.msbuildproject.enabled"; -519/** -520 * The properties key for whether the Nexus analyzer is enabled. -521 */ -522publicstaticfinal String ANALYZER_NEXUS_ENABLED = "analyzer.nexus.enabled"; -523/** -524 * The properties key for the Nexus search URL. -525 */ -526publicstaticfinal String ANALYZER_NEXUS_URL = "analyzer.nexus.url"; -527/** -528 * The properties key for the Nexus search credentials username. -529 */ -530publicstaticfinal String ANALYZER_NEXUS_USER = "analyzer.nexus.username"; -531/** -532 * The properties key for the Nexus search credentials password. -533 */ -534publicstaticfinal String ANALYZER_NEXUS_PASSWORD = "analyzer.nexus.password"; -535/** -536 * The properties key for using the proxy to reach Nexus. -537 */ -538publicstaticfinal String ANALYZER_NEXUS_USES_PROXY = "analyzer.nexus.proxy"; -539/** -540 * The properties key for whether the Artifactory analyzer is enabled. -541 */ -542publicstaticfinal String ANALYZER_ARTIFACTORY_ENABLED = "analyzer.artifactory.enabled"; -543/** -544 * The properties key for the Artifactory search URL. -545 */ -546publicstaticfinal String ANALYZER_ARTIFACTORY_URL = "analyzer.artifactory.url"; -547/** -548 * The properties key for the Artifactory username. -549 */ -550publicstaticfinal String ANALYZER_ARTIFACTORY_API_USERNAME = "analyzer.artifactory.api.username"; -551/** -552 * The properties key for the Artifactory API token. -553 */ -554publicstaticfinal String ANALYZER_ARTIFACTORY_API_TOKEN = "analyzer.artifactory.api.token"; -555/** -556 * The properties key for the Artifactory bearer token -557 * (https://www.jfrog.com/confluence/display/RTF/Access+Tokens). It can -558 * be generated using: -559 * <pre>curl -u yourUserName -X POST \ -560 * "https://artifactory.techno.ingenico.com/artifactory/api/security/token" \ -561 * -d "username=yourUserName"</pre>. -562 */ -563publicstaticfinal String ANALYZER_ARTIFACTORY_BEARER_TOKEN = "analyzer.artifactory.bearer.token"; -564/** -565 * The properties key for using the proxy to reach Artifactory. -566 */ -567publicstaticfinal String ANALYZER_ARTIFACTORY_USES_PROXY = "analyzer.artifactory.proxy"; -568/** -569 * The properties key for whether the Artifactory analyzer should use -570 * parallel processing. -571 */ -572publicstaticfinal String ANALYZER_ARTIFACTORY_PARALLEL_ANALYSIS = "analyzer.artifactory.parallel.analysis"; -573/** -574 * The properties key for whether the Central analyzer is enabled. -575 */ -576publicstaticfinal String ANALYZER_CENTRAL_ENABLED = "analyzer.central.enabled"; -577/** -578 * Key for the path to the local Maven repository. -579 */ -580publicstaticfinal String MAVEN_LOCAL_REPO = "odc.maven.local.repo"; -581/** -582 * Key for the URL to obtain content from Maven Central. -583 */ -584publicstaticfinal String CENTRAL_CONTENT_URL = "central.content.url"; -585/** -586 * The properties key for whether the Central analyzer should use -587 * parallel processing. -588 */ -589publicstaticfinal String ANALYZER_CENTRAL_PARALLEL_ANALYSIS = "analyzer.central.parallel.analysis"; -590/** -591 * The properties key for whether the Central analyzer should use -592 * parallel processing. -593 */ -594publicstaticfinal String ANALYZER_CENTRAL_RETRY_COUNT = "analyzer.central.retry.count"; -595/** -596 * The properties key for whether the OpenSSL analyzer is enabled. -597 */ -598publicstaticfinal String ANALYZER_OPENSSL_ENABLED = "analyzer.openssl.enabled"; -599/** -600 * The properties key for whether the cocoapods analyzer is enabled. -601 */ -602publicstaticfinal String ANALYZER_COCOAPODS_ENABLED = "analyzer.cocoapods.enabled"; -603/** -604 * The properties key for whether the SWIFT package manager analyzer is -605 * enabled. -606 */ -607publicstaticfinal String ANALYZER_SWIFT_PACKAGE_MANAGER_ENABLED = "analyzer.swift.package.manager.enabled"; -608/** -609 * The properties key for whether the SWIFT package resolved analyzer is -610 * enabled. -611 */ -612publicstaticfinal String ANALYZER_SWIFT_PACKAGE_RESOLVED_ENABLED = "analyzer.swift.package.resolved.enabled"; -613/** -614 * The properties key for the Central search URL. -615 */ -616publicstaticfinal String ANALYZER_CENTRAL_URL = "analyzer.central.url"; -617/** -618 * The properties key for the Central search query. -619 */ -620publicstaticfinal String ANALYZER_CENTRAL_QUERY = "analyzer.central.query"; -621/** -622 * The properties key for whether Central search results will be cached. -623 */ -624publicstaticfinal String ANALYZER_CENTRAL_USE_CACHE = "analyzer.central.use.cache"; -625/** -626 * The path to dotnet core, if available. -627 */ -628publicstaticfinal String ANALYZER_ASSEMBLY_DOTNET_PATH = "analyzer.assembly.dotnet.path"; -629/** -630 * The path to bundle-audit, if available. -631 */ -632publicstaticfinal String ANALYZER_BUNDLE_AUDIT_PATH = "analyzer.bundle.audit.path"; -633/** -634 * The path to bundle-audit, if available. -635 */ -636publicstaticfinal String ANALYZER_BUNDLE_AUDIT_WORKING_DIRECTORY = "analyzer.bundle.audit.working.directory"; -637/** -638 * The additional configured zip file extensions, if available. -639 */ -640publicstaticfinal String ADDITIONAL_ZIP_EXTENSIONS = "extensions.zip"; -641/** -642 * The key to obtain the path to the VFEED data file. -643 */ -644publicstaticfinal String VFEED_DATA_FILE = "vfeed.data_file"; -645/** -646 * The key to obtain the VFEED connection string. -647 */ -648publicstaticfinal String VFEED_CONNECTION_STRING = "vfeed.connection_string"; -649/** -650 * The key to obtain the base download URL for the VFeed data file. -651 */ -652publicstaticfinal String VFEED_DOWNLOAD_URL = "vfeed.download_url"; -653/** -654 * The key to obtain the download file name for the VFeed data. -655 */ -656publicstaticfinal String VFEED_DOWNLOAD_FILE = "vfeed.download_file"; -657/** -658 * The key to obtain the VFeed update status. -659 */ -660publicstaticfinal String VFEED_UPDATE_STATUS = "vfeed.update_status"; -661/** -662 * The key to the HTTP request method for query last modified date. -663 */ -664publicstaticfinal String DOWNLOADER_QUICK_QUERY_TIMESTAMP = "downloader.quick.query.timestamp"; -665/** -666 * The key to HTTP protocol list to use. -667 */ -668publicstaticfinal String DOWNLOADER_TLS_PROTOCOL_LIST = "downloader.tls.protocols"; -669/** -670 * The key to determine if the CPE analyzer is enabled. -671 */ -672publicstaticfinal String ANALYZER_CPE_ENABLED = "analyzer.cpe.enabled"; -673/** -674 * The key to determine if the NPM CPE analyzer is enabled. -675 */ -676publicstaticfinal String ANALYZER_NPM_CPE_ENABLED = "analyzer.npm.cpe.enabled"; -677/** -678 * The key to determine if the CPE Suppression analyzer is enabled. -679 */ -680publicstaticfinal String ANALYZER_CPE_SUPPRESSION_ENABLED = "analyzer.cpesuppression.enabled"; -681/** -682 * The key to determine if the Dependency Bundling analyzer is enabled. -683 */ -684publicstaticfinal String ANALYZER_DEPENDENCY_BUNDLING_ENABLED = "analyzer.dependencybundling.enabled"; -685/** -686 * The key to determine if the Dependency Merging analyzer is enabled. -687 */ -688publicstaticfinal String ANALYZER_DEPENDENCY_MERGING_ENABLED = "analyzer.dependencymerging.enabled"; -689/** -690 * The key to determine if the False Positive analyzer is enabled. -691 */ -692publicstaticfinal String ANALYZER_FALSE_POSITIVE_ENABLED = "analyzer.falsepositive.enabled"; -693/** -694 * The key to determine if the File Name analyzer is enabled. -695 */ -696publicstaticfinal String ANALYZER_FILE_NAME_ENABLED = "analyzer.filename.enabled"; -697/** -698 * The key to determine if the File Version analyzer is enabled. -699 */ -700publicstaticfinal String ANALYZER_PE_ENABLED = "analyzer.pe.enabled"; -701/** -702 * The key to determine if the Hint analyzer is enabled. -703 */ -704publicstaticfinal String ANALYZER_HINT_ENABLED = "analyzer.hint.enabled"; -705/** -706 * The key to determine if the Version Filter analyzer is enabled. -707 */ -708publicstaticfinal String ANALYZER_VERSION_FILTER_ENABLED = "analyzer.versionfilter.enabled"; -709/** -710 * The key to determine if the Vulnerability Suppression analyzer is -711 * enabled. -712 */ -713publicstaticfinal String ANALYZER_VULNERABILITY_SUPPRESSION_ENABLED = "analyzer.vulnerabilitysuppression.enabled"; -714/** -715 * The key to determine if the NVD CVE updater should be enabled. -716 */ -717publicstaticfinal String UPDATE_NVDCVE_ENABLED = "updater.nvdcve.enabled"; -718/** -719 * The key to determine if dependency-check should check if there is a -720 * new version available. -721 */ -722publicstaticfinal String UPDATE_VERSION_CHECK_ENABLED = "updater.versioncheck.enabled"; -723/** -724 * The key to determine which ecosystems should skip the CPE analysis. -725 */ -726publicstaticfinal String ECOSYSTEM_SKIP_CPEANALYZER = "ecosystem.skip.cpeanalyzer"; -727/** -728 * Adds capabilities to batch insert. Tested on PostgreSQL and H2. -729 */ -730publicstaticfinal String ENABLE_BATCH_UPDATES = "database.batchinsert.enabled"; -731/** -732 * Size of database batch inserts. -733 */ -734publicstaticfinal String MAX_BATCH_SIZE = "database.batchinsert.maxsize"; -735/** -736 * The key that specifies the class name of the Write Lock shutdown -737 * hook. -738 */ -739publicstaticfinal String WRITELOCK_SHUTDOWN_HOOK = "data.writelock.shutdownhook"; -740/** -741 * The properties key for whether the Sonatype OSS Index analyzer is -742 * enabled. -743 */ -744publicstaticfinal String ANALYZER_OSSINDEX_ENABLED = "analyzer.ossindex.enabled"; -745/** -746 * The properties key for whether the Sonatype OSS Index should use a -747 * local cache. -748 */ -749publicstaticfinal String ANALYZER_OSSINDEX_USE_CACHE = "analyzer.ossindex.use.cache"; -750/** -751 * The properties key for the Sonatype OSS Index URL. -752 */ -753publicstaticfinal String ANALYZER_OSSINDEX_URL = "analyzer.ossindex.url"; -754/** -755 * The properties key for the Sonatype OSS Index user. -756 */ -757publicstaticfinal String ANALYZER_OSSINDEX_USER = "analyzer.ossindex.user"; -758/** -759 * The properties key for the Sonatype OSS Index password. -760 */ -761publicstaticfinal String ANALYZER_OSSINDEX_PASSWORD = "analyzer.ossindex.password"; -762/** -763 * The properties key for the Sonatype OSS batch-size. -764 */ -765publicstaticfinal String ANALYZER_OSSINDEX_BATCH_SIZE = "analyzer.ossindex.batch.size"; -766/** -767 * The properties key for the Sonatype OSS Request Delay. Amount of time -768 * in seconds to wait before executing a request against the Sonatype -769 * OSS Rest API -770 */ -771publicstaticfinal String ANALYZER_OSSINDEX_REQUEST_DELAY = "analyzer.ossindex.request.delay"; -772/** -773 * The properties key for only warning about Sonatype OSS Index remote -774 * errors instead of failing the request. -775 */ -776publicstaticfinal String ANALYZER_OSSINDEX_WARN_ONLY_ON_REMOTE_ERRORS = "analyzer.ossindex.remote-error.warn-only"; -777/** -778 * The properties key setting whether or not the JSON and XML reports -779 * will be pretty printed. -780 */ -781 -782/** -783 * The properties key for whether the Dart analyzer is enabled. -784 */ -785publicstaticfinal String ANALYZER_DART_ENABLED = "analyzer.dart.enabled"; -786 -787/** -788 * The properties key for whether to pretty print the XML/JSON reports. -789 */ -790publicstaticfinal String PRETTY_PRINT = "odc.reports.pretty.print"; -791/** -792 * The properties key setting which other keys should be considered -793 * sensitive and subsequently masked when logged. -794 */ -795publicstaticfinal String MASKED_PROPERTIES = "odc.settings.mask"; -796/** -797 * The properties key for the default max query size for Lucene query -798 * results. -799 */ -800publicstaticfinal String MAX_QUERY_SIZE_DEFAULT = "odc.ecosystem.maxquerylimit.default"; -801/** -802 * The properties key prefix for the default max query size for Lucene -803 * query results; append the ecosystem to obtain the default query size. -804 */ -805publicstaticfinal String MAX_QUERY_SIZE_PREFIX = "odc.ecosystem.maxquerylimit."; -806 -807/** -808 * private constructor because this is a "utility" class containing -809 * constants -810 */ -811privateKEYS() { -812//do nothing -813 } -814 } -815//</editor-fold> -816 -817/** -818 * Initialize the settings object. -819 */ -820publicSettings() { -821 initialize(PROPERTIES_FILE); -822 } -823 -824/** -825 * Initialize the settings object using the given properties. -826 * -827 * @param properties the properties to be used with this Settings instance -828 * @since 4.0.3 -829 */ -830publicSettings(final Properties properties) { -831 props = properties; -832 logProperties("Properties loaded", props); -833 } -834 -835/** -836 * Initialize the settings object using the given properties file. -837 * -838 * @param propertiesFilePath the path to the base properties file to load -839 */ -840publicSettings(@NotNull final String propertiesFilePath) { -841 initialize(propertiesFilePath); -842 } -843 -844/** -845 * Initializes the settings object from the given file. -846 * -847 * @param propertiesFilePath the path to the settings property file -848 */ -849privatevoid initialize(@NotNull final String propertiesFilePath) { -850 props = new Properties(); -851try (InputStream in = FileUtils.getResourceAsStream(propertiesFilePath)) { -852 props.load(in); -853 } catch (NullPointerException ex) { -854 LOGGER.error("Did not find settings file '{}'.", propertiesFilePath); -855 LOGGER.debug("", ex); -856 } catch (IOException ex) { -857 LOGGER.error("Unable to load settings from '{}'.", propertiesFilePath); +164/** +165 * The NVD API Endpoint. +166 */ +167publicstaticfinal String NVD_API_ENDPOINT = "nvd.api.endpoint"; +168/** +169 * API Key for the NVD API. +170 */ +171publicstaticfinal String NVD_API_KEY = "nvd.api.key"; +172/** +173 * The delay between requests for the NVD API. +174 */ +175publicstaticfinal String NVD_API_DELAY = "nvd.api.delay"; +176/** +177 * The maximum number of retry requests for a single call to the NVD +178 * API. +179 */ +180publicstaticfinal String NVD_API_MAX_RETRY_COUNT = "nvd.api.max.retry.count"; +181/** +182 * The properties key to control the skipping of the check for NVD +183 * updates. +184 */ +185publicstaticfinal String NVD_API_VALID_FOR_HOURS = "nvd.api.check.validforhours"; +186/** +187 * The properties key that indicates how often the NVD API data feed +188 * needs to be updated before a full refresh is evaluated. +189 */ +190publicstaticfinal String NVD_API_DATAFEED_VALID_FOR_DAYS = "nvd.api.datafeed.validfordays"; +191/** +192 * The URL for the NVD API Data Feed. +193 */ +194publicstaticfinal String NVD_API_DATAFEED_URL = "nvd.api.datafeed.url"; +195/** +196 * The username to use when connecting to the NVD Data feed. +197 */ +198publicstaticfinal String NVD_API_DATAFEED_USER = "nvd.api.datafeed.user"; +199/** +200 * The password to authenticate to the NVD Data feed. +201 */ +202publicstaticfinal String NVD_API_DATAFEED_PASSWORD = "nvd.api.datafeed.password"; +203/** +204 * The starting year for the NVD CVE Data feed cache. +205 */ +206publicstaticfinal String NVD_API_DATAFEED_START_YEAR = "nvd.api.datafeed.startyear"; +207//END NEW +208/** +209 * The key to determine if the NVD CVE analyzer is enabled. +210 */ +211publicstaticfinal String ANALYZER_NVD_CVE_ENABLED = "analyzer.nvdcve.enabled"; +212/** +213 * The properties key that indicates how often the CPE data needs to be +214 * updated. +215 */ +216publicstaticfinal String CPE_MODIFIED_VALID_FOR_DAYS = "cpe.validfordays"; +217/** +218 * The properties key for the URL to retrieve the CPE. +219 */ +220publicstaticfinal String CPE_URL = "cpe.url"; +221/** +222 * The properties key for the URL to retrieve the Known Exploited +223 * Vulnerabilities.. +224 */ +225publicstaticfinal String KEV_URL = "kev.url"; +226/** +227 * The properties key to control the skipping of the check for Known +228 * Exploited Vulnerabilities updates. +229 */ +230publicstaticfinal String KEV_CHECK_VALID_FOR_HOURS = "kev.check.validforhours"; +231/** +232 * Whether or not if using basic auth with a proxy the system setting +233 * 'jdk.http.auth.tunneling.disabledSchemes' should be set to an empty +234 * string. +235 */ +236publicstaticfinal String PROXY_DISABLE_SCHEMAS = "proxy.disableSchemas"; +237/** +238 * The properties key for the proxy server. +239 */ +240publicstaticfinal String PROXY_SERVER = "proxy.server"; +241/** +242 * The properties key for the proxy port - this must be an integer +243 * value. +244 */ +245publicstaticfinal String PROXY_PORT = "proxy.port"; +246/** +247 * The properties key for the proxy username. +248 */ +249publicstaticfinal String PROXY_USERNAME = "proxy.username"; +250/** +251 * The properties key for the proxy password. +252 */ +253publicstaticfinal String PROXY_PASSWORD = "proxy.password"; +254/** +255 * The properties key for the non proxy hosts. +256 */ +257publicstaticfinal String PROXY_NON_PROXY_HOSTS = "proxy.nonproxyhosts"; +258/** +259 * The properties key for the connection timeout. +260 */ +261publicstaticfinal String CONNECTION_TIMEOUT = "connection.timeout"; +262/** +263 * The properties key for the connection read timeout. +264 */ +265publicstaticfinal String CONNECTION_READ_TIMEOUT = "connection.read.timeout"; +266/** +267 * The location of the temporary directory. +268 */ +269publicstaticfinal String TEMP_DIRECTORY = "temp.directory"; +270/** +271 * The maximum number of threads to allocate when downloading files. +272 */ +273publicstaticfinal String MAX_DOWNLOAD_THREAD_POOL_SIZE = "max.download.threads"; +274/** +275 * The properties key for the analysis timeout. +276 */ +277publicstaticfinal String ANALYSIS_TIMEOUT = "odc.analysis.timeout"; +278/** +279 * The key for the suppression file. +280 */ +281publicstaticfinal String SUPPRESSION_FILE = "suppression.file"; +282/** +283 * The username used when connecting to the suppressionFiles. +284 */ +285publicstaticfinal String SUPPRESSION_FILE_USER = "suppression.file.user"; +286/** +287 * The password used when connecting to the suppressionFiles. +288 */ +289publicstaticfinal String SUPPRESSION_FILE_PASSWORD = "suppression.file.password"; +290/** +291 * The key for the whether the hosted suppressions file datasource is +292 * enabled. +293 */ +294publicstaticfinal String HOSTED_SUPPRESSIONS_ENABLED = "hosted.suppressions.enabled"; +295/** +296 * The key for the hosted suppressions file URL. +297 */ +298publicstaticfinal String HOSTED_SUPPRESSIONS_URL = "hosted.suppressions.url"; +299 +300/** +301 * The properties key for defining whether the hosted suppressions file +302 * will be updated regardless of the autoupdate settings. +303 */ +304publicstaticfinal String HOSTED_SUPPRESSIONS_FORCEUPDATE = "hosted.suppressions.forceupdate"; +305 +306/** +307 * The properties key to control the skipping of the check for hosted +308 * suppressions file updates. +309 */ +310publicstaticfinal String HOSTED_SUPPRESSIONS_VALID_FOR_HOURS = "hosted.suppressions.validforhours"; +311 +312/** +313 * The key for the hint file. +314 */ +315publicstaticfinal String HINTS_FILE = "hints.file"; +316/** +317 * The key for the property that controls what CVSS scores are +318 * considered failing test cases for the JUNIT repor. +319 */ +320publicstaticfinal String JUNIT_FAIL_ON_CVSS = "junit.fail.on.cvss"; +321 +322/** +323 * The properties key for whether the Jar Analyzer is enabled. +324 */ +325publicstaticfinal String ANALYZER_JAR_ENABLED = "analyzer.jar.enabled"; +326 +327/** +328 * The properties key for whether the Known Exploited Vulnerability +329 * Analyzer is enabled. +330 */ +331publicstaticfinal String ANALYZER_KNOWN_EXPLOITED_ENABLED = "analyzer.knownexploited.enabled"; +332 +333/** +334 * The properties key for whether experimental analyzers are loaded. +335 */ +336publicstaticfinal String ANALYZER_EXPERIMENTAL_ENABLED = "analyzer.experimental.enabled"; +337/** +338 * The properties key for whether experimental analyzers are loaded. +339 */ +340publicstaticfinal String ANALYZER_RETIRED_ENABLED = "analyzer.retired.enabled"; +341/** +342 * The properties key for whether the Archive analyzer is enabled. +343 */ +344publicstaticfinal String ANALYZER_ARCHIVE_ENABLED = "analyzer.archive.enabled"; +345/** +346 * The properties key for whether the node.js package analyzer is +347 * enabled. +348 */ +349publicstaticfinal String ANALYZER_NODE_PACKAGE_ENABLED = "analyzer.node.package.enabled"; +350/** +351 * The properties key for configure whether the Node Package analyzer +352 * should skip devDependencies. +353 */ +354publicstaticfinal String ANALYZER_NODE_PACKAGE_SKIPDEV = "analyzer.node.package.skipdev"; +355/** +356 * The properties key for whether the Node Audit analyzer is enabled. +357 */ +358publicstaticfinal String ANALYZER_NODE_AUDIT_ENABLED = "analyzer.node.audit.enabled"; +359/** +360 * The properties key for whether the Yarn Audit analyzer is enabled. +361 */ +362publicstaticfinal String ANALYZER_YARN_AUDIT_ENABLED = "analyzer.yarn.audit.enabled"; +363/** +364 * The properties key for whether the Pnpm Audit analyzer is enabled. +365 */ +366publicstaticfinal String ANALYZER_PNPM_AUDIT_ENABLED = "analyzer.pnpm.audit.enabled"; +367/** +368 * The properties key for supplying the URL to the Node Audit API. +369 */ +370publicstaticfinal String ANALYZER_NODE_AUDIT_URL = "analyzer.node.audit.url"; +371/** +372 * The properties key for configure whether the Node Audit analyzer +373 * should skip devDependencies. +374 */ +375publicstaticfinal String ANALYZER_NODE_AUDIT_SKIPDEV = "analyzer.node.audit.skipdev"; +376/** +377 * The properties key for whether node audit analyzer results will be +378 * cached. +379 */ +380publicstaticfinal String ANALYZER_NODE_AUDIT_USE_CACHE = "analyzer.node.audit.use.cache"; +381/** +382 * The properties key for whether the RetireJS analyzer is enabled. +383 */ +384publicstaticfinal String ANALYZER_RETIREJS_ENABLED = "analyzer.retirejs.enabled"; +385/** +386 * The properties key for whether the RetireJS analyzer file content +387 * filters. +388 */ +389publicstaticfinal String ANALYZER_RETIREJS_FILTERS = "analyzer.retirejs.filters"; +390/** +391 * The properties key for whether the RetireJS analyzer should filter +392 * out non-vulnerable dependencies. +393 */ +394publicstaticfinal String ANALYZER_RETIREJS_FILTER_NON_VULNERABLE = "analyzer.retirejs.filternonvulnerable"; +395/** +396 * The properties key for defining the URL to the RetireJS repository. +397 */ +398publicstaticfinal String ANALYZER_RETIREJS_REPO_JS_URL = "analyzer.retirejs.repo.js.url"; +399/** +400 * The properties key for the Nexus search credentials username. +401 */ +402publicstaticfinal String ANALYZER_RETIREJS_REPO_JS_USER = "analyzer.retirejs.repo.js.username"; +403/** +404 * The properties key for the Nexus search credentials password. +405 */ +406publicstaticfinal String ANALYZER_RETIREJS_REPO_JS_PASSWORD = "analyzer.retirejs.repo.js.password"; +407/** +408 * The properties key for defining whether the RetireJS repository will +409 * be updated regardless of the autoupdate settings. +410 */ +411publicstaticfinal String ANALYZER_RETIREJS_FORCEUPDATE = "analyzer.retirejs.forceupdate"; +412/** +413 * The properties key to control the skipping of the check for CVE +414 * updates. +415 */ +416publicstaticfinal String ANALYZER_RETIREJS_REPO_VALID_FOR_HOURS = "analyzer.retirejs.repo.validforhours"; +417/** +418 * The properties key for whether the PHP composer lock file analyzer is +419 * enabled. +420 */ +421publicstaticfinal String ANALYZER_COMPOSER_LOCK_ENABLED = "analyzer.composer.lock.enabled"; +422/** +423 * The properties key for whether the Perl CPAN file file analyzer is +424 * enabled. +425 */ +426publicstaticfinal String ANALYZER_CPANFILE_ENABLED = "analyzer.cpanfile.enabled"; +427/** +428 * The properties key for whether the Python Distribution analyzer is +429 * enabled. +430 */ +431publicstaticfinal String ANALYZER_PYTHON_DISTRIBUTION_ENABLED = "analyzer.python.distribution.enabled"; +432/** +433 * The properties key for whether the Python Package analyzer is +434 * enabled. +435 */ +436publicstaticfinal String ANALYZER_PYTHON_PACKAGE_ENABLED = "analyzer.python.package.enabled"; +437/** +438 * The properties key for whether the Elixir mix audit analyzer is +439 * enabled. +440 */ +441publicstaticfinal String ANALYZER_MIX_AUDIT_ENABLED = "analyzer.mix.audit.enabled"; +442/** +443 * The path to mix_audit, if available. +444 */ +445publicstaticfinal String ANALYZER_MIX_AUDIT_PATH = "analyzer.mix.audit.path"; +446/** +447 * The properties key for whether the Golang Mod analyzer is enabled. +448 */ +449publicstaticfinal String ANALYZER_GOLANG_MOD_ENABLED = "analyzer.golang.mod.enabled"; +450/** +451 * The path to go, if available. +452 */ +453publicstaticfinal String ANALYZER_GOLANG_PATH = "analyzer.golang.path"; +454/** +455 * The path to go, if available. +456 */ +457publicstaticfinal String ANALYZER_YARN_PATH = "analyzer.yarn.path"; +458/** +459 * The path to pnpm, if available. +460 */ +461publicstaticfinal String ANALYZER_PNPM_PATH = "analyzer.pnpm.path"; +462/** +463 * The properties key for whether the Golang Dep analyzer is enabled. +464 */ +465publicstaticfinal String ANALYZER_GOLANG_DEP_ENABLED = "analyzer.golang.dep.enabled"; +466/** +467 * The properties key for whether the Ruby Gemspec Analyzer is enabled. +468 */ +469publicstaticfinal String ANALYZER_RUBY_GEMSPEC_ENABLED = "analyzer.ruby.gemspec.enabled"; +470/** +471 * The properties key for whether the Autoconf analyzer is enabled. +472 */ +473publicstaticfinal String ANALYZER_AUTOCONF_ENABLED = "analyzer.autoconf.enabled"; +474/** +475 * The properties key for whether the maven_install.json analyzer is +476 * enabled. +477 */ +478publicstaticfinal String ANALYZER_MAVEN_INSTALL_ENABLED = "analyzer.maveninstall.enabled"; +479/** +480 * The properties key for whether the pip analyzer is enabled. +481 */ +482publicstaticfinal String ANALYZER_PIP_ENABLED = "analyzer.pip.enabled"; +483/** +484 * The properties key for whether the pipfile analyzer is enabled. +485 */ +486publicstaticfinal String ANALYZER_PIPFILE_ENABLED = "analyzer.pipfile.enabled"; +487/** +488 * The properties key for whether the Poetry analyzer is enabled. +489 */ +490publicstaticfinal String ANALYZER_POETRY_ENABLED = "analyzer.poetry.enabled"; +491/** +492 * The properties key for whether the CMake analyzer is enabled. +493 */ +494publicstaticfinal String ANALYZER_CMAKE_ENABLED = "analyzer.cmake.enabled"; +495/** +496 * The properties key for whether the Ruby Bundler Audit analyzer is +497 * enabled. +498 */ +499publicstaticfinal String ANALYZER_BUNDLE_AUDIT_ENABLED = "analyzer.bundle.audit.enabled"; +500/** +501 * The properties key for whether the .NET Assembly analyzer is enabled. +502 */ +503publicstaticfinal String ANALYZER_ASSEMBLY_ENABLED = "analyzer.assembly.enabled"; +504/** +505 * The properties key for whether the .NET Nuspec analyzer is enabled. +506 */ +507publicstaticfinal String ANALYZER_NUSPEC_ENABLED = "analyzer.nuspec.enabled"; +508/** +509 * The properties key for whether the .NET Nuget packages.config +510 * analyzer is enabled. +511 */ +512publicstaticfinal String ANALYZER_NUGETCONF_ENABLED = "analyzer.nugetconf.enabled"; +513/** +514 * The properties key for whether the Libman analyzer is enabled. +515 */ +516publicstaticfinal String ANALYZER_LIBMAN_ENABLED = "analyzer.libman.enabled"; +517/** +518 * The properties key for whether the .NET MSBuild Project analyzer is +519 * enabled. +520 */ +521publicstaticfinal String ANALYZER_MSBUILD_PROJECT_ENABLED = "analyzer.msbuildproject.enabled"; +522/** +523 * The properties key for whether the Nexus analyzer is enabled. +524 */ +525publicstaticfinal String ANALYZER_NEXUS_ENABLED = "analyzer.nexus.enabled"; +526/** +527 * The properties key for the Nexus search URL. +528 */ +529publicstaticfinal String ANALYZER_NEXUS_URL = "analyzer.nexus.url"; +530/** +531 * The properties key for the Nexus search credentials username. +532 */ +533publicstaticfinal String ANALYZER_NEXUS_USER = "analyzer.nexus.username"; +534/** +535 * The properties key for the Nexus search credentials password. +536 */ +537publicstaticfinal String ANALYZER_NEXUS_PASSWORD = "analyzer.nexus.password"; +538/** +539 * The properties key for using the proxy to reach Nexus. +540 */ +541publicstaticfinal String ANALYZER_NEXUS_USES_PROXY = "analyzer.nexus.proxy"; +542/** +543 * The properties key for whether the Artifactory analyzer is enabled. +544 */ +545publicstaticfinal String ANALYZER_ARTIFACTORY_ENABLED = "analyzer.artifactory.enabled"; +546/** +547 * The properties key for the Artifactory search URL. +548 */ +549publicstaticfinal String ANALYZER_ARTIFACTORY_URL = "analyzer.artifactory.url"; +550/** +551 * The properties key for the Artifactory username. +552 */ +553publicstaticfinal String ANALYZER_ARTIFACTORY_API_USERNAME = "analyzer.artifactory.api.username"; +554/** +555 * The properties key for the Artifactory API token. +556 */ +557publicstaticfinal String ANALYZER_ARTIFACTORY_API_TOKEN = "analyzer.artifactory.api.token"; +558/** +559 * The properties key for the Artifactory bearer token +560 * (https://www.jfrog.com/confluence/display/RTF/Access+Tokens). It can +561 * be generated using: +562 * <pre>curl -u yourUserName -X POST \ +563 * "https://artifactory.techno.ingenico.com/artifactory/api/security/token" \ +564 * -d "username=yourUserName"</pre>. +565 */ +566publicstaticfinal String ANALYZER_ARTIFACTORY_BEARER_TOKEN = "analyzer.artifactory.bearer.token"; +567/** +568 * The properties key for using the proxy to reach Artifactory. +569 */ +570publicstaticfinal String ANALYZER_ARTIFACTORY_USES_PROXY = "analyzer.artifactory.proxy"; +571/** +572 * The properties key for whether the Artifactory analyzer should use +573 * parallel processing. +574 */ +575publicstaticfinal String ANALYZER_ARTIFACTORY_PARALLEL_ANALYSIS = "analyzer.artifactory.parallel.analysis"; +576/** +577 * The properties key for whether the Central analyzer is enabled. +578 */ +579publicstaticfinal String ANALYZER_CENTRAL_ENABLED = "analyzer.central.enabled"; +580/** +581 * Key for the path to the local Maven repository. +582 */ +583publicstaticfinal String MAVEN_LOCAL_REPO = "odc.maven.local.repo"; +584/** +585 * Key for the URL to obtain content from Maven Central. +586 */ +587publicstaticfinal String CENTRAL_CONTENT_URL = "central.content.url"; +588/** +589 * The properties key for whether the Central analyzer should use +590 * parallel processing. +591 */ +592publicstaticfinal String ANALYZER_CENTRAL_PARALLEL_ANALYSIS = "analyzer.central.parallel.analysis"; +593/** +594 * The properties key for whether the Central analyzer should use +595 * parallel processing. +596 */ +597publicstaticfinal String ANALYZER_CENTRAL_RETRY_COUNT = "analyzer.central.retry.count"; +598/** +599 * The properties key for whether the OpenSSL analyzer is enabled. +600 */ +601publicstaticfinal String ANALYZER_OPENSSL_ENABLED = "analyzer.openssl.enabled"; +602/** +603 * The properties key for whether the cocoapods analyzer is enabled. +604 */ +605publicstaticfinal String ANALYZER_COCOAPODS_ENABLED = "analyzer.cocoapods.enabled"; +606/** +607 * The properties key for whether the SWIFT package manager analyzer is +608 * enabled. +609 */ +610publicstaticfinal String ANALYZER_SWIFT_PACKAGE_MANAGER_ENABLED = "analyzer.swift.package.manager.enabled"; +611/** +612 * The properties key for whether the SWIFT package resolved analyzer is +613 * enabled. +614 */ +615publicstaticfinal String ANALYZER_SWIFT_PACKAGE_RESOLVED_ENABLED = "analyzer.swift.package.resolved.enabled"; +616/** +617 * The properties key for the Central search URL. +618 */ +619publicstaticfinal String ANALYZER_CENTRAL_URL = "analyzer.central.url"; +620/** +621 * The properties key for the Central search query. +622 */ +623publicstaticfinal String ANALYZER_CENTRAL_QUERY = "analyzer.central.query"; +624/** +625 * The properties key for whether Central search results will be cached. +626 */ +627publicstaticfinal String ANALYZER_CENTRAL_USE_CACHE = "analyzer.central.use.cache"; +628/** +629 * The path to dotnet core, if available. +630 */ +631publicstaticfinal String ANALYZER_ASSEMBLY_DOTNET_PATH = "analyzer.assembly.dotnet.path"; +632/** +633 * The path to bundle-audit, if available. +634 */ +635publicstaticfinal String ANALYZER_BUNDLE_AUDIT_PATH = "analyzer.bundle.audit.path"; +636/** +637 * The path to bundle-audit, if available. +638 */ +639publicstaticfinal String ANALYZER_BUNDLE_AUDIT_WORKING_DIRECTORY = "analyzer.bundle.audit.working.directory"; +640/** +641 * The additional configured zip file extensions, if available. +642 */ +643publicstaticfinal String ADDITIONAL_ZIP_EXTENSIONS = "extensions.zip"; +644/** +645 * The key to obtain the path to the VFEED data file. +646 */ +647publicstaticfinal String VFEED_DATA_FILE = "vfeed.data_file"; +648/** +649 * The key to obtain the VFEED connection string. +650 */ +651publicstaticfinal String VFEED_CONNECTION_STRING = "vfeed.connection_string"; +652/** +653 * The key to obtain the base download URL for the VFeed data file. +654 */ +655publicstaticfinal String VFEED_DOWNLOAD_URL = "vfeed.download_url"; +656/** +657 * The key to obtain the download file name for the VFeed data. +658 */ +659publicstaticfinal String VFEED_DOWNLOAD_FILE = "vfeed.download_file"; +660/** +661 * The key to obtain the VFeed update status. +662 */ +663publicstaticfinal String VFEED_UPDATE_STATUS = "vfeed.update_status"; +664/** +665 * The key to the HTTP request method for query last modified date. +666 */ +667publicstaticfinal String DOWNLOADER_QUICK_QUERY_TIMESTAMP = "downloader.quick.query.timestamp"; +668/** +669 * The key to HTTP protocol list to use. +670 */ +671publicstaticfinal String DOWNLOADER_TLS_PROTOCOL_LIST = "downloader.tls.protocols"; +672/** +673 * The key to determine if the CPE analyzer is enabled. +674 */ +675publicstaticfinal String ANALYZER_CPE_ENABLED = "analyzer.cpe.enabled"; +676/** +677 * The key to determine if the NPM CPE analyzer is enabled. +678 */ +679publicstaticfinal String ANALYZER_NPM_CPE_ENABLED = "analyzer.npm.cpe.enabled"; +680/** +681 * The key to determine if the CPE Suppression analyzer is enabled. +682 */ +683publicstaticfinal String ANALYZER_CPE_SUPPRESSION_ENABLED = "analyzer.cpesuppression.enabled"; +684/** +685 * The key to determine if the Dependency Bundling analyzer is enabled. +686 */ +687publicstaticfinal String ANALYZER_DEPENDENCY_BUNDLING_ENABLED = "analyzer.dependencybundling.enabled"; +688/** +689 * The key to determine if the Dependency Merging analyzer is enabled. +690 */ +691publicstaticfinal String ANALYZER_DEPENDENCY_MERGING_ENABLED = "analyzer.dependencymerging.enabled"; +692/** +693 * The key to determine if the False Positive analyzer is enabled. +694 */ +695publicstaticfinal String ANALYZER_FALSE_POSITIVE_ENABLED = "analyzer.falsepositive.enabled"; +696/** +697 * The key to determine if the File Name analyzer is enabled. +698 */ +699publicstaticfinal String ANALYZER_FILE_NAME_ENABLED = "analyzer.filename.enabled"; +700/** +701 * The key to determine if the File Version analyzer is enabled. +702 */ +703publicstaticfinal String ANALYZER_PE_ENABLED = "analyzer.pe.enabled"; +704/** +705 * The key to determine if the Hint analyzer is enabled. +706 */ +707publicstaticfinal String ANALYZER_HINT_ENABLED = "analyzer.hint.enabled"; +708/** +709 * The key to determine if the Version Filter analyzer is enabled. +710 */ +711publicstaticfinal String ANALYZER_VERSION_FILTER_ENABLED = "analyzer.versionfilter.enabled"; +712/** +713 * The key to determine if the Vulnerability Suppression analyzer is +714 * enabled. +715 */ +716publicstaticfinal String ANALYZER_VULNERABILITY_SUPPRESSION_ENABLED = "analyzer.vulnerabilitysuppression.enabled"; +717/** +718 * The key to determine if the NVD CVE updater should be enabled. +719 */ +720publicstaticfinal String UPDATE_NVDCVE_ENABLED = "updater.nvdcve.enabled"; +721/** +722 * The key to determine if dependency-check should check if there is a +723 * new version available. +724 */ +725publicstaticfinal String UPDATE_VERSION_CHECK_ENABLED = "updater.versioncheck.enabled"; +726/** +727 * The key to determine which ecosystems should skip the CPE analysis. +728 */ +729publicstaticfinal String ECOSYSTEM_SKIP_CPEANALYZER = "ecosystem.skip.cpeanalyzer"; +730/** +731 * Adds capabilities to batch insert. Tested on PostgreSQL and H2. +732 */ +733publicstaticfinal String ENABLE_BATCH_UPDATES = "database.batchinsert.enabled"; +734/** +735 * Size of database batch inserts. +736 */ +737publicstaticfinal String MAX_BATCH_SIZE = "database.batchinsert.maxsize"; +738/** +739 * The key that specifies the class name of the Write Lock shutdown +740 * hook. +741 */ +742publicstaticfinal String WRITELOCK_SHUTDOWN_HOOK = "data.writelock.shutdownhook"; +743/** +744 * The properties key for whether the Sonatype OSS Index analyzer is +745 * enabled. +746 */ +747publicstaticfinal String ANALYZER_OSSINDEX_ENABLED = "analyzer.ossindex.enabled"; +748/** +749 * The properties key for whether the Sonatype OSS Index should use a +750 * local cache. +751 */ +752publicstaticfinal String ANALYZER_OSSINDEX_USE_CACHE = "analyzer.ossindex.use.cache"; +753/** +754 * The properties key for the Sonatype OSS Index URL. +755 */ +756publicstaticfinal String ANALYZER_OSSINDEX_URL = "analyzer.ossindex.url"; +757/** +758 * The properties key for the Sonatype OSS Index user. +759 */ +760publicstaticfinal String ANALYZER_OSSINDEX_USER = "analyzer.ossindex.user"; +761/** +762 * The properties key for the Sonatype OSS Index password. +763 */ +764publicstaticfinal String ANALYZER_OSSINDEX_PASSWORD = "analyzer.ossindex.password"; +765/** +766 * The properties key for the Sonatype OSS batch-size. +767 */ +768publicstaticfinal String ANALYZER_OSSINDEX_BATCH_SIZE = "analyzer.ossindex.batch.size"; +769/** +770 * The properties key for the Sonatype OSS Request Delay. Amount of time +771 * in seconds to wait before executing a request against the Sonatype +772 * OSS Rest API +773 */ +774publicstaticfinal String ANALYZER_OSSINDEX_REQUEST_DELAY = "analyzer.ossindex.request.delay"; +775/** +776 * The properties key for only warning about Sonatype OSS Index remote +777 * errors instead of failing the request. +778 */ +779publicstaticfinal String ANALYZER_OSSINDEX_WARN_ONLY_ON_REMOTE_ERRORS = "analyzer.ossindex.remote-error.warn-only"; +780/** +781 * The properties key setting whether or not the JSON and XML reports +782 * will be pretty printed. +783 */ +784 +785/** +786 * The properties key for whether the Dart analyzer is enabled. +787 */ +788publicstaticfinal String ANALYZER_DART_ENABLED = "analyzer.dart.enabled"; +789 +790/** +791 * The properties key for whether to pretty print the XML/JSON reports. +792 */ +793publicstaticfinal String PRETTY_PRINT = "odc.reports.pretty.print"; +794/** +795 * The properties key setting which other keys should be considered +796 * sensitive and subsequently masked when logged. +797 */ +798publicstaticfinal String MASKED_PROPERTIES = "odc.settings.mask"; +799/** +800 * The properties key for the default max query size for Lucene query +801 * results. +802 */ +803publicstaticfinal String MAX_QUERY_SIZE_DEFAULT = "odc.ecosystem.maxquerylimit.default"; +804/** +805 * The properties key prefix for the default max query size for Lucene +806 * query results; append the ecosystem to obtain the default query size. +807 */ +808publicstaticfinal String MAX_QUERY_SIZE_PREFIX = "odc.ecosystem.maxquerylimit."; +809 +810/** +811 * private constructor because this is a "utility" class containing +812 * constants +813 */ +814privateKEYS() { +815//do nothing +816 } +817 } +818//</editor-fold> +819 +820/** +821 * Initialize the settings object. +822 */ +823publicSettings() { +824 initialize(PROPERTIES_FILE); +825 } +826 +827/** +828 * Initialize the settings object using the given properties. +829 * +830 * @param properties the properties to be used with this Settings instance +831 * @since 4.0.3 +832 */ +833publicSettings(final Properties properties) { +834 props = properties; +835 logProperties("Properties loaded", props); +836 } +837 +838/** +839 * Initialize the settings object using the given properties file. +840 * +841 * @param propertiesFilePath the path to the base properties file to load +842 */ +843publicSettings(@NotNull final String propertiesFilePath) { +844 initialize(propertiesFilePath); +845 } +846 +847/** +848 * Initializes the settings object from the given file. +849 * +850 * @param propertiesFilePath the path to the settings property file +851 */ +852privatevoid initialize(@NotNull final String propertiesFilePath) { +853 props = new Properties(); +854try (InputStream in = FileUtils.getResourceAsStream(propertiesFilePath)) { +855 props.load(in); +856 } catch (NullPointerException ex) { +857 LOGGER.error("Did not find settings file '{}'.", propertiesFilePath); 858 LOGGER.debug("", ex); -859 } -860 logProperties("Properties loaded", props); -861 } -862 -863/** -864 * Cleans up resources to prevent memory leaks. -865 */ -866publicvoid cleanup() { -867 cleanup(true); -868 } -869 -870/** -871 * Cleans up resources to prevent memory leaks. -872 * -873 * @param deleteTemporary flag indicating whether any temporary directories -874 * generated should be removed -875 */ -876publicsynchronizedvoid cleanup(boolean deleteTemporary) { -877if (deleteTemporary && tempDirectory != null && tempDirectory.exists()) { -878 LOGGER.debug("Deleting ALL temporary files from `{}`", tempDirectory.toString()); -879 FileUtils.delete(tempDirectory); -880 tempDirectory = null; -881 } -882 } -883 -884/** -885 * Check if a given key is considered to have a value with sensitive data. -886 * -887 * @param key the key to determine if the property should be masked -888 * @return <code>true</code> if the key is for a sensitive property value; -889 * otherwise <code>false</code> -890 */ -891privateboolean isKeyMasked(@NotNull String key) { -892if (maskedKeys == null || maskedKeys.isEmpty()) { -893 initMaskedKeys(); -894 } -895return maskedKeys.stream().anyMatch(maskExp -> maskExp.test(key)); -896 } -897 -898/** -899 * Obtains the printable/loggable value for a given key/value pair. This -900 * will mask some values so as to not leak sensitive information. -901 * -902 * @param key the property key -903 * @param value the property value -904 * @return the printable value -905 */ -906 String getPrintableValue(@NotNull String key, String value) { -907 String printableValue = null; -908if (value != null) { -909 printableValue = isKeyMasked(key) ? "********" : value; -910 } -911return printableValue; -912 } -913 -914/** -915 * Initializes the masked keys collection. This is done outside of the -916 * {@link #initialize(java.lang.String)} method because a caller may use the -917 * {@link #mergeProperties(java.io.File)} to add additional properties after -918 * the call to initialize. -919 */ -920void initMaskedKeys() { -921final String[] masked = getArray(Settings.KEYS.MASKED_PROPERTIES); -922if (masked == null) { -923 maskedKeys = new ArrayList<>(); -924 } else { -925 maskedKeys = Arrays.stream(masked) -926 .map(v -> Pattern.compile(v).asPredicate()) -927 .collect(Collectors.toList()); -928 } -929 } -930 -931/** -932 * Logs the properties. This will not log any properties that contain -933 * 'password' in the key. -934 * -935 * @param header the header to print with the log message -936 * @param properties the properties to log -937 */ -938privatevoid logProperties(@NotNull final String header, @NotNull final Properties properties) { -939if (LOGGER.isDebugEnabled()) { -940 initMaskedKeys(); -941final StringWriter sw = new StringWriter(); -942try (PrintWriter pw = new PrintWriter(sw)) { -943 pw.format("%s:%n%n", header); -944final Enumeration<?> e = properties.propertyNames(); -945while (e.hasMoreElements()) { -946final String key = (String) e.nextElement(); -947final String value = getPrintableValue(key, properties.getProperty(key)); -948if (value != null) { -949 pw.format("%s='%s'%n", key, value); -950 } -951 } -952 pw.flush(); -953 LOGGER.debug(sw.toString()); -954 } -955 } -956 } -957 -958/** -959 * Sets a property value. -960 * -961 * @param key the key for the property -962 * @param value the value for the property -963 */ -964publicvoid setString(@NotNull final String key, @NotNull final String value) { -965 props.setProperty(key, value); -966 LOGGER.debug("Setting: {}='{}'", key, getPrintableValue(key, value)); -967 } -968 -969/** -970 * Sets a property value only if the value is not null. -971 * -972 * @param key the key for the property -973 * @param value the value for the property -974 */ -975publicvoid setStringIfNotNull(@NotNull final String key, @Nullable final String value) { -976if (null != value) { -977 setString(key, value); -978 } -979 } -980 -981/** -982 * Sets a property value only if the value is not null and not empty. -983 * -984 * @param key the key for the property -985 * @param value the value for the property -986 */ -987publicvoid setStringIfNotEmpty(@NotNull final String key, @Nullable final String value) { -988if (null != value && !value.isEmpty()) { -989 setString(key, value); -990 } -991 } -992 -993/** -994 * Sets a property value only if the array value is not null and not empty. -995 * -996 * @param key the key for the property -997 * @param value the value for the property -998 */ -999publicvoid setArrayIfNotEmpty(@NotNull final String key, @Nullable final String[] value) { -1000if (null != value && value.length > 0) { -1001try { -1002 setString(key, objectMapper.writeValueAsString(value)); -1003 } catch (JsonProcessingException e) { -1004thrownew IllegalArgumentException(); -1005 } -1006 } -1007 } -1008 -1009/** -1010 * Sets a property value only if the array value is not null and not empty. -1011 * -1012 * @param key the key for the property -1013 * @param value the value for the property -1014 */ -1015publicvoid setArrayIfNotEmpty(@NotNull final String key, @Nullable final List<String> value) { -1016if (null != value && !value.isEmpty()) { -1017try { -1018 setString(key, objectMapper.writeValueAsString(value)); -1019 } catch (JsonProcessingException e) { -1020thrownew IllegalArgumentException(); -1021 } -1022 } -1023 } -1024 -1025/** -1026 * Sets a property value. -1027 * -1028 * @param key the key for the property -1029 * @param value the value for the property -1030 */ -1031publicvoid setBoolean(@NotNull final String key, boolean value) { -1032 setString(key, Boolean.toString(value)); -1033 } -1034 -1035/** -1036 * Sets a property value only if the value is not null. -1037 * -1038 * @param key the key for the property -1039 * @param value the value for the property -1040 */ -1041publicvoid setBooleanIfNotNull(@NotNull final String key, @Nullable final Boolean value) { -1042if (null != value) { -1043 setBoolean(key, value); -1044 } -1045 } -1046 -1047/** -1048 * Sets a float property value. -1049 * -1050 * @param key the key for the property -1051 * @param value the value for the property -1052 */ -1053publicvoid setFloat(@NotNull final String key, finalfloat value) { -1054 setString(key, Float.toString(value)); -1055 } -1056 -1057/** -1058 * Sets a property value. -1059 * -1060 * @param key the key for the property -1061 * @param value the value for the property -1062 */ -1063publicvoid setInt(@NotNull final String key, finalint value) { -1064 props.setProperty(key, String.valueOf(value)); -1065 LOGGER.debug("Setting: {}='{}'", key, value); -1066 } -1067 -1068/** -1069 * Sets a property value only if the value is not null. -1070 * -1071 * @param key the key for the property -1072 * @param value the value for the property -1073 */ -1074publicvoid setIntIfNotNull(@NotNull final String key, @Nullable final Integer value) { -1075if (null != value) { -1076 setInt(key, value); -1077 } -1078 } -1079 -1080/** -1081 * Merges a new properties file into the current properties. This method -1082 * allows for the loading of a user provided properties file.<br><br> -1083 * <b>Note</b>: even if using this method - system properties will be loaded -1084 * before properties loaded from files. -1085 * -1086 * @param filePath the path to the properties file to merge. -1087 * @throws java.io.FileNotFoundException is thrown when the filePath points -1088 * to a non-existent file -1089 * @throws java.io.IOException is thrown when there is an exception -1090 * loading/merging the properties -1091 */ -1092 @SuppressFBWarnings(justification = "try with resource will clenaup the resources", value = {"OBL_UNSATISFIED_OBLIGATION"}) -1093publicvoid mergeProperties(@NotNull final File filePath) throws FileNotFoundException, IOException { -1094try (FileInputStream fis = new FileInputStream(filePath)) { -1095 mergeProperties(fis); -1096 } -1097 } -1098 -1099/** -1100 * Merges a new properties file into the current properties. This method -1101 * allows for the loading of a user provided properties file.<br><br> -1102 * Note: even if using this method - system properties will be loaded before -1103 * properties loaded from files. -1104 * -1105 * @param filePath the path to the properties file to merge. -1106 * @throws java.io.FileNotFoundException is thrown when the filePath points -1107 * to a non-existent file -1108 * @throws java.io.IOException is thrown when there is an exception -1109 * loading/merging the properties -1110 */ -1111 @SuppressFBWarnings(justification = "try with resource will clenaup the resources", value = {"OBL_UNSATISFIED_OBLIGATION"}) -1112publicvoid mergeProperties(@NotNull final String filePath) throws FileNotFoundException, IOException { -1113try (FileInputStream fis = new FileInputStream(filePath)) { -1114 mergeProperties(fis); -1115 } -1116 } -1117 -1118/** -1119 * Merges a new properties file into the current properties. This method -1120 * allows for the loading of a user provided properties file.<br><br> -1121 * <b>Note</b>: even if using this method - system properties will be loaded -1122 * before properties loaded from files. -1123 * -1124 * @param stream an Input Stream pointing at a properties file to merge -1125 * @throws java.io.IOException is thrown when there is an exception -1126 * loading/merging the properties -1127 */ -1128publicvoid mergeProperties(@NotNull final InputStream stream) throws IOException { -1129 props.load(stream); -1130 logProperties("Properties updated via merge", props); -1131 } -1132 -1133/** -1134 * Returns a value from the properties file as a File object. If the value -1135 * was specified as a system property or passed in via the -Dprop=value -1136 * argument - this method will return the value from the system properties -1137 * before the values in the contained configuration file. -1138 * -1139 * @param key the key to lookup within the properties file -1140 * @return the property from the properties file converted to a File object -1141 */ -1142 @Nullable -1143public File getFile(@NotNull final String key) { -1144final String file = getString(key); -1145if (file == null) { -1146returnnull; -1147 } -1148returnnew File(file); -1149 } -1150 -1151/** -1152 * Returns a value from the properties file as a File object. If the value -1153 * was specified as a system property or passed in via the -Dprop=value -1154 * argument - this method will return the value from the system properties -1155 * before the values in the contained configuration file. -1156 * <p> -1157 * This method will check the configured base directory and will use this as -1158 * the base of the file path. Additionally, if the base directory begins -1159 * with a leading "[JAR]\" sequence with the path to the folder containing -1160 * the JAR file containing this class. -1161 * -1162 * @param key the key to lookup within the properties file -1163 * @return the property from the properties file converted to a File object -1164 */ -1165 File getDataFile(@NotNull final String key) { -1166final String file = getString(key); -1167 LOGGER.debug("Settings.getDataFile() - file: '{}'", file); -1168if (file == null) { -1169returnnull; -1170 } -1171if (file.startsWith("[JAR]")) { -1172 LOGGER.debug("Settings.getDataFile() - transforming filename"); -1173final File jarPath = getJarPath(); -1174 LOGGER.debug("Settings.getDataFile() - jar file: '{}'", jarPath.toString()); -1175final File retVal = new File(jarPath, file.substring(6)); -1176 LOGGER.debug("Settings.getDataFile() - returning: '{}'", retVal); -1177return retVal; -1178 } -1179returnnew File(file); -1180 } -1181 -1182/** -1183 * Attempts to retrieve the folder containing the Jar file containing the -1184 * Settings class. -1185 * -1186 * @return a File object -1187 */ -1188private File getJarPath() { -1189 String decodedPath = "."; -1190 String jarPath = ""; -1191final ProtectionDomain domain = Settings.class.getProtectionDomain(); -1192if (domain != null && domain.getCodeSource() != null && domain.getCodeSource().getLocation() != null) { -1193 jarPath = Settings.class.getProtectionDomain().getCodeSource().getLocation().getPath(); -1194 } -1195try { -1196 decodedPath = URLDecoder.decode(jarPath, StandardCharsets.UTF_8.name()); -1197 } catch (UnsupportedEncodingException ex) { -1198 LOGGER.trace("", ex); -1199 } -1200 -1201final File path = new File(decodedPath); -1202if (path.getName().toLowerCase().endsWith(".jar")) { -1203return path.getParentFile(); -1204 } else { -1205returnnew File("."); -1206 } -1207 } -1208 -1209/** -1210 * Returns a value from the properties file. If the value was specified as a -1211 * system property or passed in via the -Dprop=value argument - this method -1212 * will return the value from the system properties before the values in the -1213 * contained configuration file. -1214 * -1215 * @param key the key to lookup within the properties file -1216 * @param defaultValue the default value for the requested property -1217 * @return the property from the properties file -1218 */ -1219public String getString(@NotNull final String key, @Nullable final String defaultValue) { -1220return System.getProperty(key, props.getProperty(key, defaultValue)); -1221 } -1222 -1223/** -1224 * Returns the temporary directory. -1225 * -1226 * @return the temporary directory -1227 * @throws java.io.IOException if any. -1228 */ -1229publicsynchronized File getTempDirectory() throws IOException { -1230if (tempDirectory == null) { -1231final File baseTemp = new File(getString(Settings.KEYS.TEMP_DIRECTORY, System.getProperty("java.io.tmpdir"))); -1232 tempDirectory = FileUtils.createTempDirectory(baseTemp); -1233 } -1234return tempDirectory; -1235 } -1236 -1237/** -1238 * Returns a value from the properties file. If the value was specified as a -1239 * system property or passed in via the -Dprop=value argument - this method -1240 * will return the value from the system properties before the values in the -1241 * contained configuration file. -1242 * -1243 * @param key the key to lookup within the properties file -1244 * @return the property from the properties file -1245 */ -1246public String getString(@NotNull final String key) { -1247return System.getProperty(key, props.getProperty(key)); -1248 } -1249 -1250/** -1251 * Returns a list with the given key. -1252 * <p> -1253 * If the property is not set then {@code null} will be returned. -1254 * -1255 * @param key the key to get from this -1256 * {@link org.owasp.dependencycheck.utils.Settings}. -1257 * @return the list or {@code null} if the key wasn't present. -1258 */ -1259public String[] getArray(@NotNull final String key) { -1260final String string = getString(key); -1261if (string != null) { -1262if (string.charAt(0) == '{' || string.charAt(0) == '[') { -1263try { -1264return objectMapper.readValue(string, String[].class); -1265 } catch (JsonProcessingException e) { -1266thrownew IllegalStateException("Unable to read value '" + string + "' as an array"); -1267 } -1268 } else { -1269return string.split(ARRAY_SEP); -1270 } -1271 } -1272returnnull; -1273 } -1274 -1275/** -1276 * Removes a property from the local properties collection. This is mainly -1277 * used in test cases. -1278 * -1279 * @param key the property key to remove -1280 */ -1281publicvoid removeProperty(@NotNull final String key) { -1282 props.remove(key); -1283 } -1284 -1285/** -1286 * Returns an int value from the properties file. If the value was specified -1287 * as a system property or passed in via the -Dprop=value argument - this -1288 * method will return the value from the system properties before the values -1289 * in the contained configuration file. -1290 * -1291 * @param key the key to lookup within the properties file -1292 * @return the property from the properties file -1293 * @throws org.owasp.dependencycheck.utils.InvalidSettingException is thrown -1294 * if there is an error retrieving the setting -1295 */ -1296publicint getInt(@NotNull final String key) throws InvalidSettingException { -1297try { -1298return Integer.parseInt(getString(key)); -1299 } catch (NumberFormatException ex) { -1300thrownewInvalidSettingException("Could not convert property '" + key + "' to an int.", ex); -1301 } -1302 } -1303 -1304/** -1305 * Returns an int value from the properties file. If the value was specified -1306 * as a system property or passed in via the -Dprop=value argument - this -1307 * method will return the value from the system properties before the values -1308 * in the contained configuration file. -1309 * -1310 * @param key the key to lookup within the properties file -1311 * @param defaultValue the default value to return -1312 * @return the property from the properties file or the defaultValue if the -1313 * property does not exist or cannot be converted to an integer -1314 */ -1315publicint getInt(@NotNull final String key, int defaultValue) { -1316int value; -1317try { -1318 value = Integer.parseInt(getString(key)); -1319 } catch (NumberFormatException ex) { -1320if (!getString(key, "").isEmpty()) { -1321 LOGGER.debug("Could not convert property '{}={}' to an int; using {} instead.", -1322 key, getPrintableValue(key, getString(key)), defaultValue); -1323 } -1324 value = defaultValue; -1325 } -1326return value; -1327 } -1328 -1329/** -1330 * Returns a long value from the properties file. If the value was specified -1331 * as a system property or passed in via the -Dprop=value argument - this -1332 * method will return the value from the system properties before the values -1333 * in the contained configuration file. -1334 * -1335 * @param key the key to lookup within the properties file -1336 * @return the property from the properties file -1337 * @throws org.owasp.dependencycheck.utils.InvalidSettingException is thrown -1338 * if there is an error retrieving the setting -1339 */ -1340publiclong getLong(@NotNull final String key) throws InvalidSettingException { -1341try { -1342return Long.parseLong(getString(key)); -1343 } catch (NumberFormatException ex) { -1344thrownewInvalidSettingException("Could not convert property '" + key + "' to a long.", ex); -1345 } -1346 } -1347 -1348/** -1349 * Returns a boolean value from the properties file. If the value was -1350 * specified as a system property or passed in via the -1351 * <code>-Dprop=value</code> argument this method will return the value from -1352 * the system properties before the values in the contained configuration -1353 * file. -1354 * -1355 * @param key the key to lookup within the properties file -1356 * @return the property from the properties file -1357 * @throws org.owasp.dependencycheck.utils.InvalidSettingException is thrown -1358 * if there is an error retrieving the setting -1359 */ -1360publicboolean getBoolean(@NotNull final String key) throws InvalidSettingException { -1361return Boolean.parseBoolean(getString(key)); -1362 } -1363 -1364/** -1365 * Returns a boolean value from the properties file. If the value was -1366 * specified as a system property or passed in via the -1367 * <code>-Dprop=value</code> argument this method will return the value from -1368 * the system properties before the values in the contained configuration -1369 * file. -1370 * -1371 * @param key the key to lookup within the properties file -1372 * @param defaultValue the default value to return if the setting does not -1373 * exist -1374 * @return the property from the properties file -1375 */ -1376publicboolean getBoolean(@NotNull final String key, boolean defaultValue) { -1377return Boolean.parseBoolean(getString(key, Boolean.toString(defaultValue))); -1378 } -1379 -1380/** -1381 * Returns a float value from the properties file. If the value was -1382 * specified as a system property or passed in via the -1383 * <code>-Dprop=value</code> argument this method will return the value from -1384 * the system properties before the values in the contained configuration -1385 * file. -1386 * -1387 * @param key the key to lookup within the properties file -1388 * @param defaultValue the default value to return if the setting does not -1389 * exist -1390 * @return the property from the properties file -1391 */ -1392publicfloat getFloat(@NotNull final String key, float defaultValue) { -1393float retValue = defaultValue; -1394try { -1395 retValue = Float.parseFloat(getString(key)); -1396 } catch (Throwable ex) { -1397 LOGGER.trace("ignore", ex); -1398 } -1399return retValue; -1400 } -1401 -1402/** -1403 * Returns a connection string from the configured properties. If the -1404 * connection string contains a %s, this method will determine the 'data' -1405 * directory and replace the %s with the path to the data directory. If the -1406 * data directory does not exist it will be created. -1407 * -1408 * @param connectionStringKey the property file key for the connection -1409 * string -1410 * @param dbFileNameKey the settings key for the db filename -1411 * @return the connection string -1412 * @throws IOException thrown the data directory cannot be created -1413 * @throws InvalidSettingException thrown if there is an invalid setting -1414 */ -1415public String getConnectionString(String connectionStringKey, String dbFileNameKey) -1416throws IOException, InvalidSettingException { -1417final String connStr = getString(connectionStringKey); -1418if (connStr == null) { -1419final String msg = String.format("Invalid properties file; %s is missing.", connectionStringKey); -1420thrownewInvalidSettingException(msg); -1421 } -1422if (connStr.contains("%s")) { -1423final File directory = getH2DataDirectory(); -1424 LOGGER.debug("Data directory: {}", directory); -1425 String fileName = null; -1426if (dbFileNameKey != null) { -1427 fileName = getString(dbFileNameKey); -1428 } -1429if (fileName == null) { -1430final String msg = String.format("Invalid properties file to get a file based connection string; '%s' must be defined.", -1431 dbFileNameKey); -1432thrownewInvalidSettingException(msg); -1433 } -1434if (connStr.startsWith("jdbc:h2:file:") && fileName.endsWith(".mv.db")) { -1435 fileName = fileName.substring(0, fileName.length() - 6); +859 } catch (IOException ex) { +860 LOGGER.error("Unable to load settings from '{}'.", propertiesFilePath); +861 LOGGER.debug("", ex); +862 } +863 logProperties("Properties loaded", props); +864 } +865 +866/** +867 * Cleans up resources to prevent memory leaks. +868 */ +869publicvoid cleanup() { +870 cleanup(true); +871 } +872 +873/** +874 * Cleans up resources to prevent memory leaks. +875 * +876 * @param deleteTemporary flag indicating whether any temporary directories +877 * generated should be removed +878 */ +879publicsynchronizedvoid cleanup(boolean deleteTemporary) { +880if (deleteTemporary && tempDirectory != null && tempDirectory.exists()) { +881 LOGGER.debug("Deleting ALL temporary files from `{}`", tempDirectory.toString()); +882 FileUtils.delete(tempDirectory); +883 tempDirectory = null; +884 } +885 } +886 +887/** +888 * Check if a given key is considered to have a value with sensitive data. +889 * +890 * @param key the key to determine if the property should be masked +891 * @return <code>true</code> if the key is for a sensitive property value; +892 * otherwise <code>false</code> +893 */ +894privateboolean isKeyMasked(@NotNull String key) { +895if (maskedKeys == null || maskedKeys.isEmpty()) { +896 initMaskedKeys(); +897 } +898return maskedKeys.stream().anyMatch(maskExp -> maskExp.test(key)); +899 } +900 +901/** +902 * Obtains the printable/loggable value for a given key/value pair. This +903 * will mask some values so as to not leak sensitive information. +904 * +905 * @param key the property key +906 * @param value the property value +907 * @return the printable value +908 */ +909 String getPrintableValue(@NotNull String key, String value) { +910 String printableValue = null; +911if (value != null) { +912 printableValue = isKeyMasked(key) ? "********" : value; +913 } +914return printableValue; +915 } +916 +917/** +918 * Initializes the masked keys collection. This is done outside of the +919 * {@link #initialize(java.lang.String)} method because a caller may use the +920 * {@link #mergeProperties(java.io.File)} to add additional properties after +921 * the call to initialize. +922 */ +923void initMaskedKeys() { +924final String[] masked = getArray(Settings.KEYS.MASKED_PROPERTIES); +925if (masked == null) { +926 maskedKeys = new ArrayList<>(); +927 } else { +928 maskedKeys = Arrays.stream(masked) +929 .map(v -> Pattern.compile(v).asPredicate()) +930 .collect(Collectors.toList()); +931 } +932 } +933 +934/** +935 * Logs the properties. This will not log any properties that contain +936 * 'password' in the key. +937 * +938 * @param header the header to print with the log message +939 * @param properties the properties to log +940 */ +941privatevoid logProperties(@NotNull final String header, @NotNull final Properties properties) { +942if (LOGGER.isDebugEnabled()) { +943 initMaskedKeys(); +944final StringWriter sw = new StringWriter(); +945try (PrintWriter pw = new PrintWriter(sw)) { +946 pw.format("%s:%n%n", header); +947final Enumeration<?> e = properties.propertyNames(); +948while (e.hasMoreElements()) { +949final String key = (String) e.nextElement(); +950final String value = getPrintableValue(key, properties.getProperty(key)); +951if (value != null) { +952 pw.format("%s='%s'%n", key, value); +953 } +954 } +955 pw.flush(); +956 LOGGER.debug(sw.toString()); +957 } +958 } +959 } +960 +961/** +962 * Sets a property value. +963 * +964 * @param key the key for the property +965 * @param value the value for the property +966 */ +967publicvoid setString(@NotNull final String key, @NotNull final String value) { +968 props.setProperty(key, value); +969 LOGGER.debug("Setting: {}='{}'", key, getPrintableValue(key, value)); +970 } +971 +972/** +973 * Sets a property value only if the value is not null. +974 * +975 * @param key the key for the property +976 * @param value the value for the property +977 */ +978publicvoid setStringIfNotNull(@NotNull final String key, @Nullable final String value) { +979if (null != value) { +980 setString(key, value); +981 } +982 } +983 +984/** +985 * Sets a property value only if the value is not null and not empty. +986 * +987 * @param key the key for the property +988 * @param value the value for the property +989 */ +990publicvoid setStringIfNotEmpty(@NotNull final String key, @Nullable final String value) { +991if (null != value && !value.isEmpty()) { +992 setString(key, value); +993 } +994 } +995 +996/** +997 * Sets a property value only if the array value is not null and not empty. +998 * +999 * @param key the key for the property +1000 * @param value the value for the property +1001 */ +1002publicvoid setArrayIfNotEmpty(@NotNull final String key, @Nullable final String[] value) { +1003if (null != value && value.length > 0) { +1004try { +1005 setString(key, objectMapper.writeValueAsString(value)); +1006 } catch (JsonProcessingException e) { +1007thrownew IllegalArgumentException(); +1008 } +1009 } +1010 } +1011 +1012/** +1013 * Sets a property value only if the array value is not null and not empty. +1014 * +1015 * @param key the key for the property +1016 * @param value the value for the property +1017 */ +1018publicvoid setArrayIfNotEmpty(@NotNull final String key, @Nullable final List<String> value) { +1019if (null != value && !value.isEmpty()) { +1020try { +1021 setString(key, objectMapper.writeValueAsString(value)); +1022 } catch (JsonProcessingException e) { +1023thrownew IllegalArgumentException(); +1024 } +1025 } +1026 } +1027 +1028/** +1029 * Sets a property value. +1030 * +1031 * @param key the key for the property +1032 * @param value the value for the property +1033 */ +1034publicvoid setBoolean(@NotNull final String key, boolean value) { +1035 setString(key, Boolean.toString(value)); +1036 } +1037 +1038/** +1039 * Sets a property value only if the value is not null. +1040 * +1041 * @param key the key for the property +1042 * @param value the value for the property +1043 */ +1044publicvoid setBooleanIfNotNull(@NotNull final String key, @Nullable final Boolean value) { +1045if (null != value) { +1046 setBoolean(key, value); +1047 } +1048 } +1049 +1050/** +1051 * Sets a float property value. +1052 * +1053 * @param key the key for the property +1054 * @param value the value for the property +1055 */ +1056publicvoid setFloat(@NotNull final String key, finalfloat value) { +1057 setString(key, Float.toString(value)); +1058 } +1059 +1060/** +1061 * Sets a property value. +1062 * +1063 * @param key the key for the property +1064 * @param value the value for the property +1065 */ +1066publicvoid setInt(@NotNull final String key, finalint value) { +1067 props.setProperty(key, String.valueOf(value)); +1068 LOGGER.debug("Setting: {}='{}'", key, value); +1069 } +1070 +1071/** +1072 * Sets a property value only if the value is not null. +1073 * +1074 * @param key the key for the property +1075 * @param value the value for the property +1076 */ +1077publicvoid setIntIfNotNull(@NotNull final String key, @Nullable final Integer value) { +1078if (null != value) { +1079 setInt(key, value); +1080 } +1081 } +1082 +1083/** +1084 * Merges a new properties file into the current properties. This method +1085 * allows for the loading of a user provided properties file.<br><br> +1086 * <b>Note</b>: even if using this method - system properties will be loaded +1087 * before properties loaded from files. +1088 * +1089 * @param filePath the path to the properties file to merge. +1090 * @throws java.io.FileNotFoundException is thrown when the filePath points +1091 * to a non-existent file +1092 * @throws java.io.IOException is thrown when there is an exception +1093 * loading/merging the properties +1094 */ +1095 @SuppressFBWarnings(justification = "try with resource will clenaup the resources", value = {"OBL_UNSATISFIED_OBLIGATION"}) +1096publicvoid mergeProperties(@NotNull final File filePath) throws FileNotFoundException, IOException { +1097try (FileInputStream fis = new FileInputStream(filePath)) { +1098 mergeProperties(fis); +1099 } +1100 } +1101 +1102/** +1103 * Merges a new properties file into the current properties. This method +1104 * allows for the loading of a user provided properties file.<br><br> +1105 * Note: even if using this method - system properties will be loaded before +1106 * properties loaded from files. +1107 * +1108 * @param filePath the path to the properties file to merge. +1109 * @throws java.io.FileNotFoundException is thrown when the filePath points +1110 * to a non-existent file +1111 * @throws java.io.IOException is thrown when there is an exception +1112 * loading/merging the properties +1113 */ +1114 @SuppressFBWarnings(justification = "try with resource will clenaup the resources", value = {"OBL_UNSATISFIED_OBLIGATION"}) +1115publicvoid mergeProperties(@NotNull final String filePath) throws FileNotFoundException, IOException { +1116try (FileInputStream fis = new FileInputStream(filePath)) { +1117 mergeProperties(fis); +1118 } +1119 } +1120 +1121/** +1122 * Merges a new properties file into the current properties. This method +1123 * allows for the loading of a user provided properties file.<br><br> +1124 * <b>Note</b>: even if using this method - system properties will be loaded +1125 * before properties loaded from files. +1126 * +1127 * @param stream an Input Stream pointing at a properties file to merge +1128 * @throws java.io.IOException is thrown when there is an exception +1129 * loading/merging the properties +1130 */ +1131publicvoid mergeProperties(@NotNull final InputStream stream) throws IOException { +1132 props.load(stream); +1133 logProperties("Properties updated via merge", props); +1134 } +1135 +1136/** +1137 * Returns a value from the properties file as a File object. If the value +1138 * was specified as a system property or passed in via the -Dprop=value +1139 * argument - this method will return the value from the system properties +1140 * before the values in the contained configuration file. +1141 * +1142 * @param key the key to lookup within the properties file +1143 * @return the property from the properties file converted to a File object +1144 */ +1145 @Nullable +1146public File getFile(@NotNull final String key) { +1147final String file = getString(key); +1148if (file == null) { +1149returnnull; +1150 } +1151returnnew File(file); +1152 } +1153 +1154/** +1155 * Returns a value from the properties file as a File object. If the value +1156 * was specified as a system property or passed in via the -Dprop=value +1157 * argument - this method will return the value from the system properties +1158 * before the values in the contained configuration file. +1159 * <p> +1160 * This method will check the configured base directory and will use this as +1161 * the base of the file path. Additionally, if the base directory begins +1162 * with a leading "[JAR]\" sequence with the path to the folder containing +1163 * the JAR file containing this class. +1164 * +1165 * @param key the key to lookup within the properties file +1166 * @return the property from the properties file converted to a File object +1167 */ +1168 File getDataFile(@NotNull final String key) { +1169final String file = getString(key); +1170 LOGGER.debug("Settings.getDataFile() - file: '{}'", file); +1171if (file == null) { +1172returnnull; +1173 } +1174if (file.startsWith("[JAR]")) { +1175 LOGGER.debug("Settings.getDataFile() - transforming filename"); +1176final File jarPath = getJarPath(); +1177 LOGGER.debug("Settings.getDataFile() - jar file: '{}'", jarPath.toString()); +1178final File retVal = new File(jarPath, file.substring(6)); +1179 LOGGER.debug("Settings.getDataFile() - returning: '{}'", retVal); +1180return retVal; +1181 } +1182returnnew File(file); +1183 } +1184 +1185/** +1186 * Attempts to retrieve the folder containing the Jar file containing the +1187 * Settings class. +1188 * +1189 * @return a File object +1190 */ +1191private File getJarPath() { +1192 String decodedPath = "."; +1193 String jarPath = ""; +1194final ProtectionDomain domain = Settings.class.getProtectionDomain(); +1195if (domain != null && domain.getCodeSource() != null && domain.getCodeSource().getLocation() != null) { +1196 jarPath = Settings.class.getProtectionDomain().getCodeSource().getLocation().getPath(); +1197 } +1198try { +1199 decodedPath = URLDecoder.decode(jarPath, StandardCharsets.UTF_8.name()); +1200 } catch (UnsupportedEncodingException ex) { +1201 LOGGER.trace("", ex); +1202 } +1203 +1204final File path = new File(decodedPath); +1205if (path.getName().toLowerCase().endsWith(".jar")) { +1206return path.getParentFile(); +1207 } else { +1208returnnew File("."); +1209 } +1210 } +1211 +1212/** +1213 * Returns a value from the properties file. If the value was specified as a +1214 * system property or passed in via the -Dprop=value argument - this method +1215 * will return the value from the system properties before the values in the +1216 * contained configuration file. +1217 * +1218 * @param key the key to lookup within the properties file +1219 * @param defaultValue the default value for the requested property +1220 * @return the property from the properties file +1221 */ +1222public String getString(@NotNull final String key, @Nullable final String defaultValue) { +1223return System.getProperty(key, props.getProperty(key, defaultValue)); +1224 } +1225 +1226/** +1227 * Returns the temporary directory. +1228 * +1229 * @return the temporary directory +1230 * @throws java.io.IOException if any. +1231 */ +1232publicsynchronized File getTempDirectory() throws IOException { +1233if (tempDirectory == null) { +1234final File baseTemp = new File(getString(Settings.KEYS.TEMP_DIRECTORY, System.getProperty("java.io.tmpdir"))); +1235 tempDirectory = FileUtils.createTempDirectory(baseTemp); +1236 } +1237return tempDirectory; +1238 } +1239 +1240/** +1241 * Returns a value from the properties file. If the value was specified as a +1242 * system property or passed in via the -Dprop=value argument - this method +1243 * will return the value from the system properties before the values in the +1244 * contained configuration file. +1245 * +1246 * @param key the key to lookup within the properties file +1247 * @return the property from the properties file +1248 */ +1249public String getString(@NotNull final String key) { +1250return System.getProperty(key, props.getProperty(key)); +1251 } +1252 +1253/** +1254 * Returns a list with the given key. +1255 * <p> +1256 * If the property is not set then {@code null} will be returned. +1257 * +1258 * @param key the key to get from this +1259 * {@link org.owasp.dependencycheck.utils.Settings}. +1260 * @return the list or {@code null} if the key wasn't present. +1261 */ +1262public String[] getArray(@NotNull final String key) { +1263final String string = getString(key); +1264if (string != null) { +1265if (string.charAt(0) == '{' || string.charAt(0) == '[') { +1266try { +1267return objectMapper.readValue(string, String[].class); +1268 } catch (JsonProcessingException e) { +1269thrownew IllegalStateException("Unable to read value '" + string + "' as an array"); +1270 } +1271 } else { +1272return string.split(ARRAY_SEP); +1273 } +1274 } +1275returnnull; +1276 } +1277 +1278/** +1279 * Removes a property from the local properties collection. This is mainly +1280 * used in test cases. +1281 * +1282 * @param key the property key to remove +1283 */ +1284publicvoid removeProperty(@NotNull final String key) { +1285 props.remove(key); +1286 } +1287 +1288/** +1289 * Returns an int value from the properties file. If the value was specified +1290 * as a system property or passed in via the -Dprop=value argument - this +1291 * method will return the value from the system properties before the values +1292 * in the contained configuration file. +1293 * +1294 * @param key the key to lookup within the properties file +1295 * @return the property from the properties file +1296 * @throws org.owasp.dependencycheck.utils.InvalidSettingException is thrown +1297 * if there is an error retrieving the setting +1298 */ +1299publicint getInt(@NotNull final String key) throws InvalidSettingException { +1300try { +1301return Integer.parseInt(getString(key)); +1302 } catch (NumberFormatException ex) { +1303thrownewInvalidSettingException("Could not convert property '" + key + "' to an int.", ex); +1304 } +1305 } +1306 +1307/** +1308 * Returns an int value from the properties file. If the value was specified +1309 * as a system property or passed in via the -Dprop=value argument - this +1310 * method will return the value from the system properties before the values +1311 * in the contained configuration file. +1312 * +1313 * @param key the key to lookup within the properties file +1314 * @param defaultValue the default value to return +1315 * @return the property from the properties file or the defaultValue if the +1316 * property does not exist or cannot be converted to an integer +1317 */ +1318publicint getInt(@NotNull final String key, int defaultValue) { +1319int value; +1320try { +1321 value = Integer.parseInt(getString(key)); +1322 } catch (NumberFormatException ex) { +1323if (!getString(key, "").isEmpty()) { +1324 LOGGER.debug("Could not convert property '{}={}' to an int; using {} instead.", +1325 key, getPrintableValue(key, getString(key)), defaultValue); +1326 } +1327 value = defaultValue; +1328 } +1329return value; +1330 } +1331 +1332/** +1333 * Returns a long value from the properties file. If the value was specified +1334 * as a system property or passed in via the -Dprop=value argument - this +1335 * method will return the value from the system properties before the values +1336 * in the contained configuration file. +1337 * +1338 * @param key the key to lookup within the properties file +1339 * @return the property from the properties file +1340 * @throws org.owasp.dependencycheck.utils.InvalidSettingException is thrown +1341 * if there is an error retrieving the setting +1342 */ +1343publiclong getLong(@NotNull final String key) throws InvalidSettingException { +1344try { +1345return Long.parseLong(getString(key)); +1346 } catch (NumberFormatException ex) { +1347thrownewInvalidSettingException("Could not convert property '" + key + "' to a long.", ex); +1348 } +1349 } +1350 +1351/** +1352 * Returns a boolean value from the properties file. If the value was +1353 * specified as a system property or passed in via the +1354 * <code>-Dprop=value</code> argument this method will return the value from +1355 * the system properties before the values in the contained configuration +1356 * file. +1357 * +1358 * @param key the key to lookup within the properties file +1359 * @return the property from the properties file +1360 * @throws org.owasp.dependencycheck.utils.InvalidSettingException is thrown +1361 * if there is an error retrieving the setting +1362 */ +1363publicboolean getBoolean(@NotNull final String key) throws InvalidSettingException { +1364return Boolean.parseBoolean(getString(key)); +1365 } +1366 +1367/** +1368 * Returns a boolean value from the properties file. If the value was +1369 * specified as a system property or passed in via the +1370 * <code>-Dprop=value</code> argument this method will return the value from +1371 * the system properties before the values in the contained configuration +1372 * file. +1373 * +1374 * @param key the key to lookup within the properties file +1375 * @param defaultValue the default value to return if the setting does not +1376 * exist +1377 * @return the property from the properties file +1378 */ +1379publicboolean getBoolean(@NotNull final String key, boolean defaultValue) { +1380return Boolean.parseBoolean(getString(key, Boolean.toString(defaultValue))); +1381 } +1382 +1383/** +1384 * Returns a float value from the properties file. If the value was +1385 * specified as a system property or passed in via the +1386 * <code>-Dprop=value</code> argument this method will return the value from +1387 * the system properties before the values in the contained configuration +1388 * file. +1389 * +1390 * @param key the key to lookup within the properties file +1391 * @param defaultValue the default value to return if the setting does not +1392 * exist +1393 * @return the property from the properties file +1394 */ +1395publicfloat getFloat(@NotNull final String key, float defaultValue) { +1396float retValue = defaultValue; +1397try { +1398 retValue = Float.parseFloat(getString(key)); +1399 } catch (Throwable ex) { +1400 LOGGER.trace("ignore", ex); +1401 } +1402return retValue; +1403 } +1404 +1405/** +1406 * Returns a connection string from the configured properties. If the +1407 * connection string contains a %s, this method will determine the 'data' +1408 * directory and replace the %s with the path to the data directory. If the +1409 * data directory does not exist it will be created. +1410 * +1411 * @param connectionStringKey the property file key for the connection +1412 * string +1413 * @param dbFileNameKey the settings key for the db filename +1414 * @return the connection string +1415 * @throws IOException thrown the data directory cannot be created +1416 * @throws InvalidSettingException thrown if there is an invalid setting +1417 */ +1418public String getConnectionString(String connectionStringKey, String dbFileNameKey) +1419throws IOException, InvalidSettingException { +1420final String connStr = getString(connectionStringKey); +1421if (connStr == null) { +1422final String msg = String.format("Invalid properties file; %s is missing.", connectionStringKey); +1423thrownewInvalidSettingException(msg); +1424 } +1425if (connStr.contains("%s")) { +1426final File directory = getH2DataDirectory(); +1427 LOGGER.debug("Data directory: {}", directory); +1428 String fileName = null; +1429if (dbFileNameKey != null) { +1430 fileName = getString(dbFileNameKey); +1431 } +1432if (fileName == null) { +1433final String msg = String.format("Invalid properties file to get a file based connection string; '%s' must be defined.", +1434 dbFileNameKey); +1435thrownewInvalidSettingException(msg); 1436 } -1437// yes, for H2 this path won't actually exists - but this is sufficient to get the value needed -1438final File dbFile = new File(directory, fileName); -1439final String cString = String.format(connStr, dbFile.getCanonicalPath()); -1440 LOGGER.debug("Connection String: '{}'", cString); -1441return cString; -1442 } -1443return connStr; -1444 } -1445 -1446/** -1447 * Retrieves the primary data directory that is used for caching web -1448 * content. -1449 * -1450 * @return the data directory to store data files -1451 * @throws java.io.IOException is thrown if an java.io.IOException occurs of -1452 * course... -1453 */ -1454public File getDataDirectory() throws IOException { -1455final File path = getDataFile(Settings.KEYS.DATA_DIRECTORY); -1456if (path != null && (path.exists() || path.mkdirs())) { -1457return path; -1458 } -1459thrownew IOException(String.format("Unable to create the data directory '%s'", -1460 (path == null) ? "unknown" : path.getAbsolutePath())); -1461 } -1462 -1463/** -1464 * Retrieves the H2 data directory - if the database has been moved to the -1465 * temp directory this method will return the temp directory. -1466 * -1467 * @return the data directory to store data files -1468 * @throws java.io.IOException is thrown if an java.io.IOException occurs of -1469 * course... -1470 */ -1471public File getH2DataDirectory() throws IOException { -1472final String h2Test = getString(Settings.KEYS.H2_DATA_DIRECTORY); -1473final File path; -1474if (h2Test != null && !h2Test.isEmpty()) { -1475 path = getDataFile(Settings.KEYS.H2_DATA_DIRECTORY); -1476 } else { -1477 path = getDataFile(Settings.KEYS.DATA_DIRECTORY); -1478 } -1479if (path != null && (path.exists() || path.mkdirs())) { -1480return path; +1437if (connStr.startsWith("jdbc:h2:file:") && fileName.endsWith(".mv.db")) { +1438 fileName = fileName.substring(0, fileName.length() - 6); +1439 } +1440// yes, for H2 this path won't actually exists - but this is sufficient to get the value needed +1441final File dbFile = new File(directory, fileName); +1442final String cString = String.format(connStr, dbFile.getCanonicalPath()); +1443 LOGGER.debug("Connection String: '{}'", cString); +1444return cString; +1445 } +1446return connStr; +1447 } +1448 +1449/** +1450 * Retrieves the primary data directory that is used for caching web +1451 * content. +1452 * +1453 * @return the data directory to store data files +1454 * @throws java.io.IOException is thrown if an java.io.IOException occurs of +1455 * course... +1456 */ +1457public File getDataDirectory() throws IOException { +1458final File path = getDataFile(Settings.KEYS.DATA_DIRECTORY); +1459if (path != null && (path.exists() || path.mkdirs())) { +1460return path; +1461 } +1462thrownew IOException(String.format("Unable to create the data directory '%s'", +1463 (path == null) ? "unknown" : path.getAbsolutePath())); +1464 } +1465 +1466/** +1467 * Retrieves the H2 data directory - if the database has been moved to the +1468 * temp directory this method will return the temp directory. +1469 * +1470 * @return the data directory to store data files +1471 * @throws java.io.IOException is thrown if an java.io.IOException occurs of +1472 * course... +1473 */ +1474public File getH2DataDirectory() throws IOException { +1475final String h2Test = getString(Settings.KEYS.H2_DATA_DIRECTORY); +1476final File path; +1477if (h2Test != null && !h2Test.isEmpty()) { +1478 path = getDataFile(Settings.KEYS.H2_DATA_DIRECTORY); +1479 } else { +1480 path = getDataFile(Settings.KEYS.DATA_DIRECTORY); 1481 } -1482thrownew IOException(String.format("Unable to create the h2 data directory '%s'", -1483 (path == null) ? "unknown" : path.getAbsolutePath())); -1484 } -1485 -1486/** -1487 * Generates a new temporary file name that is guaranteed to be unique. -1488 * -1489 * @param prefix the prefix for the file name to generate -1490 * @param extension the extension of the generated file name -1491 * @return a temporary File -1492 * @throws java.io.IOException if any. -1493 */ -1494public File getTempFile(@NotNull final String prefix, @NotNull final String extension) throws IOException { -1495final File dir = getTempDirectory(); -1496final String tempFileName = String.format("%s%s.%s", prefix, UUID.randomUUID(), extension); -1497final File tempFile = new File(dir, tempFileName); -1498if (tempFile.exists()) { -1499return getTempFile(prefix, extension); -1500 } -1501return tempFile; -1502 } -1503 } +1482if (path != null && (path.exists() || path.mkdirs())) { +1483return path; +1484 } +1485thrownew IOException(String.format("Unable to create the h2 data directory '%s'", +1486 (path == null) ? "unknown" : path.getAbsolutePath())); +1487 } +1488 +1489/** +1490 * Generates a new temporary file name that is guaranteed to be unique. +1491 * +1492 * @param prefix the prefix for the file name to generate +1493 * @param extension the extension of the generated file name +1494 * @return a temporary File +1495 * @throws java.io.IOException if any. +1496 */ +1497public File getTempFile(@NotNull final String prefix, @NotNull final String extension) throws IOException { +1498final File dir = getTempDirectory(); +1499final String tempFileName = String.format("%s%s.%s", prefix, UUID.randomUUID(), extension); +1500final File tempFile = new File(dir, tempFileName); +1501if (tempFile.exists()) { +1502return getTempFile(prefix, extension); +1503 } +1504return tempFile; +1505 } +1506 }
    diff --git a/dependency-check-utils/xref/org/owasp/dependencycheck/utils/package-frame.html b/dependency-check-utils/xref/org/owasp/dependencycheck/utils/package-frame.html index ae5ed2e8a53..6d11aba458d 100644 --- a/dependency-check-utils/xref/org/owasp/dependencycheck/utils/package-frame.html +++ b/dependency-check-utils/xref/org/owasp/dependencycheck/utils/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Utils 9.0.4 Reference Package org.owasp.dependencycheck.utils + Dependency-Check Utils 9.0.5 Reference Package org.owasp.dependencycheck.utils diff --git a/dependency-check-utils/xref/org/owasp/dependencycheck/utils/package-summary.html b/dependency-check-utils/xref/org/owasp/dependencycheck/utils/package-summary.html index b2427b05cad..dd45672011f 100644 --- a/dependency-check-utils/xref/org/owasp/dependencycheck/utils/package-summary.html +++ b/dependency-check-utils/xref/org/owasp/dependencycheck/utils/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Utils 9.0.4 Reference Package org.owasp.dependencycheck.utils + Dependency-Check Utils 9.0.5 Reference Package org.owasp.dependencycheck.utils diff --git a/dependency-check-utils/xref/org/owasp/dependencycheck/utils/processing/package-frame.html b/dependency-check-utils/xref/org/owasp/dependencycheck/utils/processing/package-frame.html index be0bb10928b..08a66de578d 100644 --- a/dependency-check-utils/xref/org/owasp/dependencycheck/utils/processing/package-frame.html +++ b/dependency-check-utils/xref/org/owasp/dependencycheck/utils/processing/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Utils 9.0.4 Reference Package org.owasp.dependencycheck.utils.processing + Dependency-Check Utils 9.0.5 Reference Package org.owasp.dependencycheck.utils.processing diff --git a/dependency-check-utils/xref/org/owasp/dependencycheck/utils/processing/package-summary.html b/dependency-check-utils/xref/org/owasp/dependencycheck/utils/processing/package-summary.html index b47ccad23c6..683abb0fc36 100644 --- a/dependency-check-utils/xref/org/owasp/dependencycheck/utils/processing/package-summary.html +++ b/dependency-check-utils/xref/org/owasp/dependencycheck/utils/processing/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Utils 9.0.4 Reference Package org.owasp.dependencycheck.utils.processing + Dependency-Check Utils 9.0.5 Reference Package org.owasp.dependencycheck.utils.processing diff --git a/dependency-check-utils/xref/org/owasp/dependencycheck/utils/search/package-frame.html b/dependency-check-utils/xref/org/owasp/dependencycheck/utils/search/package-frame.html index ab2f8c42d72..f87db3c12fa 100644 --- a/dependency-check-utils/xref/org/owasp/dependencycheck/utils/search/package-frame.html +++ b/dependency-check-utils/xref/org/owasp/dependencycheck/utils/search/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Utils 9.0.4 Reference Package org.owasp.dependencycheck.utils.search + Dependency-Check Utils 9.0.5 Reference Package org.owasp.dependencycheck.utils.search diff --git a/dependency-check-utils/xref/org/owasp/dependencycheck/utils/search/package-summary.html b/dependency-check-utils/xref/org/owasp/dependencycheck/utils/search/package-summary.html index 2a81e2a0c1a..f33e34b8c1f 100644 --- a/dependency-check-utils/xref/org/owasp/dependencycheck/utils/search/package-summary.html +++ b/dependency-check-utils/xref/org/owasp/dependencycheck/utils/search/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Utils 9.0.4 Reference Package org.owasp.dependencycheck.utils.search + Dependency-Check Utils 9.0.5 Reference Package org.owasp.dependencycheck.utils.search diff --git a/dependency-check-utils/xref/overview-frame.html b/dependency-check-utils/xref/overview-frame.html index ace94ba5387..d8493464903 100644 --- a/dependency-check-utils/xref/overview-frame.html +++ b/dependency-check-utils/xref/overview-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Utils 9.0.4 Reference + Dependency-Check Utils 9.0.5 Reference diff --git a/dependency-check-utils/xref/overview-summary.html b/dependency-check-utils/xref/overview-summary.html index 1093e3be94e..44fa81fbfa2 100644 --- a/dependency-check-utils/xref/overview-summary.html +++ b/dependency-check-utils/xref/overview-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Utils 9.0.4 Reference + Dependency-Check Utils 9.0.5 Reference @@ -24,7 +24,7 @@ -

    Dependency-Check Utils 9.0.4 Reference

    +

    Dependency-Check Utils 9.0.5 Reference

    diff --git a/dependency-updates-report.html b/dependency-updates-report.html index 80e5648bd1a..df826eb2ef4 100644 --- a/dependency-updates-report.html +++ b/dependency-updates-report.html @@ -1,13 +1,13 @@ - + dependency-check – Dependency Updates Report @@ -40,8 +40,8 @@
  • Dependency-Check/
  • documentation/
  • Dependency Updates Report
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • @@ -926,7 +926,7 @@

    Dependency Management

    - + @@ -937,7 +937,7 @@

    Dependency Management

    - + @@ -1251,7 +1251,7 @@

    Dependency Management

    - + @@ -1263,7 +1263,7 @@

    Dependency Management

    - + @@ -1275,7 +1275,7 @@

    Dependency Management

    - + @@ -1287,7 +1287,7 @@

    Dependency Management

    - + @@ -1299,7 +1299,7 @@

    Dependency Management

    - + @@ -3177,7 +3177,7 @@

    com.github.package-url:

    -
    jar 1.4.21.5.0
    jar 4.8.24.8.3
    3.1.1 3.9.64.0.0-alpha-8
    4.0.0-alpha-9
    org.apache.maven 3.1.1 3.9.64.0.0-alpha-8
    4.0.0-alpha-9
    org.apache.maven 3.1.1 3.9.64.0.0-alpha-8
    4.0.0-alpha-9
    org.apache.maven 3.1.1 3.9.64.0.0-alpha-8
    4.0.0-alpha-9
    org.apache.maven 3.1.1 3.9.64.0.0-alpha-8
    4.0.0-alpha-9
    org.apache.maven.plugin-testingjar
    Newer versions1.4.2 Latest Incremental
    +1.4.2 Latest Incremental
    1.5.0 Latest Minor

    com.github.spotbugs:spotbugs-annotations

    @@ -3203,7 +3203,7 @@

    com.github.spotbugs:s

    -
    jar
    Newer versions4.8.1
    4.8.2 Latest Incremental
    +4.8.1
    4.8.2
    4.8.3 Latest Incremental

    com.google.guava:guava

    @@ -3825,7 +3825,7 @@

    org.apache.maven:maven-artifac

    -
    jar
    Newer versions3.1.1 Latest Incremental
    3.2.1
    3.2.2
    3.2.3
    3.2.5
    3.3.1
    3.3.3
    3.3.9
    3.5.0-alpha-1
    3.5.0-beta-1
    3.5.0
    3.5.2
    3.5.3
    3.5.4
    3.6.0
    3.6.1
    3.6.2
    3.6.3
    3.8.1
    3.8.2
    3.8.3
    3.8.4
    3.8.5
    3.8.6
    3.8.7
    3.8.8
    3.9.0
    3.9.1
    3.9.2
    3.9.3
    3.9.4
    3.9.5
    3.9.6 Latest Minor
    4.0.0-alpha-2
    4.0.0-alpha-3
    4.0.0-alpha-4
    4.0.0-alpha-5
    4.0.0-alpha-7
    4.0.0-alpha-8 Latest Major
    +3.1.1 Latest Incremental
    3.2.1
    3.2.2
    3.2.3
    3.2.5
    3.3.1
    3.3.3
    3.3.9
    3.5.0-alpha-1
    3.5.0-beta-1
    3.5.0
    3.5.2
    3.5.3
    3.5.4
    3.6.0
    3.6.1
    3.6.2
    3.6.3
    3.8.1
    3.8.2
    3.8.3
    3.8.4
    3.8.5
    3.8.6
    3.8.7
    3.8.8
    3.9.0
    3.9.1
    3.9.2
    3.9.3
    3.9.4
    3.9.5
    3.9.6 Latest Minor
    4.0.0-alpha-2
    4.0.0-alpha-3
    4.0.0-alpha-4
    4.0.0-alpha-5
    4.0.0-alpha-7
    4.0.0-alpha-8
    4.0.0-alpha-9 Latest Major

    org.apache.maven:maven-core

    @@ -3851,7 +3851,7 @@

    org.apache.maven:maven-core

    -
    jar
    Newer versions3.1.1 Latest Incremental
    3.2.1
    3.2.2
    3.2.3
    3.2.5
    3.3.1
    3.3.3
    3.3.9
    3.5.0-alpha-1
    3.5.0-beta-1
    3.5.0
    3.5.2
    3.5.3
    3.5.4
    3.6.0
    3.6.1
    3.6.2
    3.6.3
    3.8.1
    3.8.2
    3.8.3
    3.8.4
    3.8.5
    3.8.6
    3.8.7
    3.8.8
    3.9.0
    3.9.1
    3.9.2
    3.9.3
    3.9.4
    3.9.5
    3.9.6 Latest Minor
    4.0.0-alpha-2
    4.0.0-alpha-3
    4.0.0-alpha-4
    4.0.0-alpha-5
    4.0.0-alpha-7
    4.0.0-alpha-8 Latest Major
    +3.1.1 Latest Incremental
    3.2.1
    3.2.2
    3.2.3
    3.2.5
    3.3.1
    3.3.3
    3.3.9
    3.5.0-alpha-1
    3.5.0-beta-1
    3.5.0
    3.5.2
    3.5.3
    3.5.4
    3.6.0
    3.6.1
    3.6.2
    3.6.3
    3.8.1
    3.8.2
    3.8.3
    3.8.4
    3.8.5
    3.8.6
    3.8.7
    3.8.8
    3.9.0
    3.9.1
    3.9.2
    3.9.3
    3.9.4
    3.9.5
    3.9.6 Latest Minor
    4.0.0-alpha-2
    4.0.0-alpha-3
    4.0.0-alpha-4
    4.0.0-alpha-5
    4.0.0-alpha-7
    4.0.0-alpha-8
    4.0.0-alpha-9 Latest Major

    org.apache.maven:maven-model

    @@ -3877,7 +3877,7 @@

    org.apache.maven:maven-model

    -
    jar
    Newer versions3.1.1 Latest Incremental
    3.2.1
    3.2.2
    3.2.3
    3.2.5
    3.3.1
    3.3.3
    3.3.9
    3.5.0-alpha-1
    3.5.0-beta-1
    3.5.0
    3.5.2
    3.5.3
    3.5.4
    3.6.0
    3.6.1
    3.6.2
    3.6.3
    3.8.1
    3.8.2
    3.8.3
    3.8.4
    3.8.5
    3.8.6
    3.8.7
    3.8.8
    3.9.0
    3.9.1
    3.9.2
    3.9.3
    3.9.4
    3.9.5
    3.9.6 Latest Minor
    4.0.0-alpha-2
    4.0.0-alpha-3
    4.0.0-alpha-4
    4.0.0-alpha-5
    4.0.0-alpha-7
    4.0.0-alpha-8 Latest Major
    +3.1.1 Latest Incremental
    3.2.1
    3.2.2
    3.2.3
    3.2.5
    3.3.1
    3.3.3
    3.3.9
    3.5.0-alpha-1
    3.5.0-beta-1
    3.5.0
    3.5.2
    3.5.3
    3.5.4
    3.6.0
    3.6.1
    3.6.2
    3.6.3
    3.8.1
    3.8.2
    3.8.3
    3.8.4
    3.8.5
    3.8.6
    3.8.7
    3.8.8
    3.9.0
    3.9.1
    3.9.2
    3.9.3
    3.9.4
    3.9.5
    3.9.6 Latest Minor
    4.0.0-alpha-2
    4.0.0-alpha-3
    4.0.0-alpha-4
    4.0.0-alpha-5
    4.0.0-alpha-7
    4.0.0-alpha-8
    4.0.0-alpha-9 Latest Major

    org.apache.maven:maven-plugin-api

    @@ -3903,7 +3903,7 @@

    org.apache.maven:maven-plugi

    -
    jar
    Newer versions3.1.1 Latest Incremental
    3.2.1
    3.2.2
    3.2.3
    3.2.5
    3.3.1
    3.3.3
    3.3.9
    3.5.0-alpha-1
    3.5.0-beta-1
    3.5.0
    3.5.2
    3.5.3
    3.5.4
    3.6.0
    3.6.1
    3.6.2
    3.6.3
    3.8.1
    3.8.2
    3.8.3
    3.8.4
    3.8.5
    3.8.6
    3.8.7
    3.8.8
    3.9.0
    3.9.1
    3.9.2
    3.9.3
    3.9.4
    3.9.5
    3.9.6 Latest Minor
    4.0.0-alpha-2
    4.0.0-alpha-3
    4.0.0-alpha-4
    4.0.0-alpha-5
    4.0.0-alpha-7
    4.0.0-alpha-8 Latest Major
    +3.1.1 Latest Incremental
    3.2.1
    3.2.2
    3.2.3
    3.2.5
    3.3.1
    3.3.3
    3.3.9
    3.5.0-alpha-1
    3.5.0-beta-1
    3.5.0
    3.5.2
    3.5.3
    3.5.4
    3.6.0
    3.6.1
    3.6.2
    3.6.3
    3.8.1
    3.8.2
    3.8.3
    3.8.4
    3.8.5
    3.8.6
    3.8.7
    3.8.8
    3.9.0
    3.9.1
    3.9.2
    3.9.3
    3.9.4
    3.9.5
    3.9.6 Latest Minor
    4.0.0-alpha-2
    4.0.0-alpha-3
    4.0.0-alpha-4
    4.0.0-alpha-5
    4.0.0-alpha-7
    4.0.0-alpha-8
    4.0.0-alpha-9 Latest Major

    org.apache.maven:maven-settings

    @@ -3929,7 +3929,7 @@

    org.apache.maven:maven-setting

    -
    jar
    Newer versions3.1.1 Latest Incremental
    3.2.1
    3.2.2
    3.2.3
    3.2.5
    3.3.1
    3.3.3
    3.3.9
    3.5.0-alpha-1
    3.5.0-beta-1
    3.5.0
    3.5.2
    3.5.3
    3.5.4
    3.6.0
    3.6.1
    3.6.2
    3.6.3
    3.8.1
    3.8.2
    3.8.3
    3.8.4
    3.8.5
    3.8.6
    3.8.7
    3.8.8
    3.9.0
    3.9.1
    3.9.2
    3.9.3
    3.9.4
    3.9.5
    3.9.6 Latest Minor
    4.0.0-alpha-2
    4.0.0-alpha-3
    4.0.0-alpha-4
    4.0.0-alpha-5
    4.0.0-alpha-7
    4.0.0-alpha-8 Latest Major
    +3.1.1 Latest Incremental
    3.2.1
    3.2.2
    3.2.3
    3.2.5
    3.3.1
    3.3.3
    3.3.9
    3.5.0-alpha-1
    3.5.0-beta-1
    3.5.0
    3.5.2
    3.5.3
    3.5.4
    3.6.0
    3.6.1
    3.6.2
    3.6.3
    3.8.1
    3.8.2
    3.8.3
    3.8.4
    3.8.5
    3.8.6
    3.8.7
    3.8.8
    3.9.0
    3.9.1
    3.9.2
    3.9.3
    3.9.4
    3.9.5
    3.9.6 Latest Minor
    4.0.0-alpha-2
    4.0.0-alpha-3
    4.0.0-alpha-4
    4.0.0-alpha-5
    4.0.0-alpha-7
    4.0.0-alpha-8
    4.0.0-alpha-9 Latest Major

    org.apache.maven.plugin-testing:maven-plugin-testing-harness

    diff --git a/general/hints.html b/general/hints.html index 8d815d4e636..695f43f034d 100644 --- a/general/hints.html +++ b/general/hints.html @@ -1,13 +1,13 @@ - + dependency-check – Resolving False Negatives @@ -40,8 +40,8 @@
  • Dependency-Check/
  • documentation/
  • Resolving False Negatives
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • diff --git a/general/internals.html b/general/internals.html index d9ad95d1095..5a7266f8132 100644 --- a/general/internals.html +++ b/general/internals.html @@ -1,13 +1,13 @@ - + dependency-check – How does dependency-check work? @@ -40,8 +40,8 @@
  • Dependency-Check/
  • documentation/
  • How does dependency-check work?
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • diff --git a/general/scan_iso.html b/general/scan_iso.html index 83b27e277d3..60a667d60a3 100644 --- a/general/scan_iso.html +++ b/general/scan_iso.html @@ -1,13 +1,13 @@ - + dependency-check – How to Mount ISO Files for Scanning @@ -40,8 +40,8 @@
  • Dependency-Check/
  • documentation/
  • How to Mount ISO Files for Scanning
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • diff --git a/general/suppression.html b/general/suppression.html index d7efca90726..a277866c48f 100644 --- a/general/suppression.html +++ b/general/suppression.html @@ -1,13 +1,13 @@ - + dependency-check – Suppressing False Positives @@ -40,8 +40,8 @@
  • Dependency-Check/
  • documentation/
  • Suppressing False Positives
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • diff --git a/general/thereport.html b/general/thereport.html index d1bb2abb9c1..a47853824e3 100644 --- a/general/thereport.html +++ b/general/thereport.html @@ -1,13 +1,13 @@ - + dependency-check – How To Read The Reports @@ -40,8 +40,8 @@
  • Dependency-Check/
  • documentation/
  • How To Read The Reports
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • diff --git a/index.html b/index.html index b488a8bb289..aa9c59f78c8 100644 --- a/index.html +++ b/index.html @@ -1,13 +1,13 @@ - + dependency-check – About @@ -40,8 +40,8 @@
  • Dependency-Check/
  • documentation/
  • About
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • diff --git a/issue-management.html b/issue-management.html index 6ef763f3b20..bc5d6e3565e 100644 --- a/issue-management.html +++ b/issue-management.html @@ -1,13 +1,13 @@ - + dependency-check – Issue Management @@ -40,8 +40,8 @@
  • Dependency-Check/
  • documentation/
  • Issue Management
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • diff --git a/licenses.html b/licenses.html index adfa9ef8fed..56fe34764d9 100644 --- a/licenses.html +++ b/licenses.html @@ -1,13 +1,13 @@ - + dependency-check – Project Licenses @@ -40,8 +40,8 @@
  • Dependency-Check/
  • documentation/
  • Project Licenses
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • diff --git a/modules.html b/modules.html index f66bfe3b2f0..e445acc2fe5 100644 --- a/modules.html +++ b/modules.html @@ -1,13 +1,13 @@ - + dependency-check – Modules @@ -40,8 +40,8 @@
  • Dependency-Check/
  • documentation/
  • Modules
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • diff --git a/plugin-updates-report.html b/plugin-updates-report.html index d74a7178df2..ceb68f67044 100644 --- a/plugin-updates-report.html +++ b/plugin-updates-report.html @@ -1,13 +1,13 @@ - + dependency-check – Plugin Updates Report @@ -40,8 +40,8 @@
  • Dependency-Check/
  • documentation/
  • Plugin Updates Report
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • @@ -93,7 +93,7 @@

    Overview

    - + @@ -101,7 +101,7 @@

    Overview

    - + @@ -217,12 +217,12 @@

    Plugin Management

    - + - - + + @@ -317,12 +317,12 @@

    Plugin Management

    - + - - + + @@ -640,7 +640,7 @@

    Plugin o

    # of plugins using the latest version available27
    25
    # of plugins where the next version available is smaller than an incremental version update
    # of plugins where the next version available is an incremental version update1
    3
    # of plugins where the next version available is a minor version update
    org.apache.maven.plugins maven-failsafe-plugin3.2.23.2.2 3.2.3
    org.apache.maven.plugins maven-surefire-plugin3.2.23.2.2 3.2.3
    - + @@ -649,7 +649,10 @@

    Plugin o

    -
    Status No newer versions available.
     There is at least one newer incremental version available. Incremental updates are typically passive.
    Group Id org.apache.maven.plugins
    maven-failsafe-plugin
    Current Version3.2.2
    +3.2.2 + +Newer versions +3.2.3 Latest Incremental

    Plugin org.apache.maven.plugins:maven-gpg-plugin

    @@ -903,7 +906,7 @@

    Plugin o

    - + @@ -912,7 +915,10 @@

    Plugin o

    -
    Status No newer versions available.
     There is at least one newer incremental version available. Incremental updates are typically passive.
    Group Id org.apache.maven.plugins
    maven-surefire-plugin
    Current Version3.2.2
    +3.2.2 + +Newer versions +3.2.3 Latest Incremental

    Plugin org.codehaus.gmavenplus:gmavenplus-plugin

    diff --git a/project-info.html b/project-info.html index 5b3c9099c44..64ceeafa968 100644 --- a/project-info.html +++ b/project-info.html @@ -1,13 +1,13 @@ - + dependency-check – Project Information @@ -40,8 +40,8 @@
  • Dependency-Check/
  • documentation/
  • Project Information
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • diff --git a/project-reports.html b/project-reports.html index c9d4936d660..8d9003071c2 100644 --- a/project-reports.html +++ b/project-reports.html @@ -1,13 +1,13 @@ - + dependency-check – Generated Reports @@ -40,8 +40,8 @@
  • Dependency-Check/
  • documentation/
  • Generated Reports
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • diff --git a/related.html b/related.html index 5aa24cb49a5..4d08498d017 100644 --- a/related.html +++ b/related.html @@ -1,13 +1,13 @@ - + dependency-check – Related Work @@ -40,8 +40,8 @@
  • Dependency-Check/
  • documentation/
  • Related Work
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • diff --git a/scm.html b/scm.html index 16b1befe4e5..4e72336003a 100644 --- a/scm.html +++ b/scm.html @@ -1,13 +1,13 @@ - + dependency-check – Source Code Management @@ -40,8 +40,8 @@
  • Dependency-Check/
  • documentation/
  • Source Code Management
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • @@ -95,11 +95,11 @@

    Web Browser Access

    Anonymous Access

    The source can be checked out anonymously from Git with this command (See https://git-scm.com/docs/git-clone):

    -
    $ git clone --branch v9.0.4 https://github.com/jeremylong/DependencyCheck.git
    +
    $ git clone --branch v9.0.5 https://github.com/jeremylong/DependencyCheck.git

    Developer Access

    Only project developers can access the Git tree via this method (See https://git-scm.com/docs/git-clone).

    -
    $ git clone --branch v9.0.4 https://github.com/jeremylong/DependencyCheck.git
    +
    $ git clone --branch v9.0.5 https://github.com/jeremylong/DependencyCheck.git

    Access from Behind a Firewall

    Refer to the documentation of the SCM used for more information about access behind a firewall.

    diff --git a/summary.html b/summary.html index 2e349650305..6c08960140d 100644 --- a/summary.html +++ b/summary.html @@ -1,13 +1,13 @@ - + dependency-check – Project Summary @@ -40,8 +40,8 @@
  • Dependency-Check/
  • documentation/
  • Project Summary
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • @@ -125,7 +125,7 @@

    Build Information

    - +
    Version9.0.4
    9.0.5
    Type pom
    diff --git a/surefire-report.html b/surefire-report.html index ff5d96d9ddd..f5b4839baeb 100644 --- a/surefire-report.html +++ b/surefire-report.html @@ -1,13 +1,13 @@ - + dependency-check – Surefire Report @@ -40,8 +40,8 @@
  • Dependency-Check/
  • documentation/
  • Surefire Report
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • diff --git a/team.html b/team.html index 38a6e4826cc..d5bce97ee44 100644 --- a/team.html +++ b/team.html @@ -1,13 +1,13 @@ - + dependency-check – Project Team @@ -40,8 +40,8 @@
  • Dependency-Check/
  • documentation/
  • Project Team
  • -
  • | Last Published: 2023-12-08
  • -
  • Version: 9.0.4
  • +
  • | Last Published: 2023-12-13
  • +
  • Version: 9.0.5
  • diff --git a/xref-test/allclasses-frame.html b/xref-test/allclasses-frame.html index 1a765fc809f..db65d7d14c1 100644 --- a/xref-test/allclasses-frame.html +++ b/xref-test/allclasses-frame.html @@ -322,6 +322,9 @@

    All Classes

  • NuspecAnalyzerTest +
  • +
  • + NvdApiDataSourceTest
  • OpenSSLAnalyzerTest diff --git a/xref-test/index.html b/xref-test/index.html index 5e4aed3dff9..55fdb1f88da 100644 --- a/xref-test/index.html +++ b/xref-test/index.html @@ -4,7 +4,7 @@ - Dependency-Check 9.0.4 Reference + Dependency-Check 9.0.5 Reference diff --git a/xref-test/org/owasp/dependencycheck/agent/package-frame.html b/xref-test/org/owasp/dependencycheck/agent/package-frame.html index e928ab8858a..13ec5e56d8b 100644 --- a/xref-test/org/owasp/dependencycheck/agent/package-frame.html +++ b/xref-test/org/owasp/dependencycheck/agent/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.agent + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.agent diff --git a/xref-test/org/owasp/dependencycheck/agent/package-summary.html b/xref-test/org/owasp/dependencycheck/agent/package-summary.html index ddafae4174c..b282583a2af 100644 --- a/xref-test/org/owasp/dependencycheck/agent/package-summary.html +++ b/xref-test/org/owasp/dependencycheck/agent/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.agent + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.agent diff --git a/xref-test/org/owasp/dependencycheck/analyzer/package-frame.html b/xref-test/org/owasp/dependencycheck/analyzer/package-frame.html index aeedc0a9f43..4c1f5ab10e1 100644 --- a/xref-test/org/owasp/dependencycheck/analyzer/package-frame.html +++ b/xref-test/org/owasp/dependencycheck/analyzer/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.analyzer + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.analyzer diff --git a/xref-test/org/owasp/dependencycheck/analyzer/package-summary.html b/xref-test/org/owasp/dependencycheck/analyzer/package-summary.html index 2e1eac058ac..ac1222f0886 100644 --- a/xref-test/org/owasp/dependencycheck/analyzer/package-summary.html +++ b/xref-test/org/owasp/dependencycheck/analyzer/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.analyzer + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.analyzer diff --git a/xref-test/org/owasp/dependencycheck/data/artifactory/package-frame.html b/xref-test/org/owasp/dependencycheck/data/artifactory/package-frame.html index 09df66e7e57..558c15c16a6 100644 --- a/xref-test/org/owasp/dependencycheck/data/artifactory/package-frame.html +++ b/xref-test/org/owasp/dependencycheck/data/artifactory/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.data.artifactory + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.data.artifactory diff --git a/xref-test/org/owasp/dependencycheck/data/artifactory/package-summary.html b/xref-test/org/owasp/dependencycheck/data/artifactory/package-summary.html index b2b4691f82a..cee1101ad5d 100644 --- a/xref-test/org/owasp/dependencycheck/data/artifactory/package-summary.html +++ b/xref-test/org/owasp/dependencycheck/data/artifactory/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.data.artifactory + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.data.artifactory diff --git a/xref-test/org/owasp/dependencycheck/data/cache/package-frame.html b/xref-test/org/owasp/dependencycheck/data/cache/package-frame.html index a6daccb50ac..7daf42d91a2 100644 --- a/xref-test/org/owasp/dependencycheck/data/cache/package-frame.html +++ b/xref-test/org/owasp/dependencycheck/data/cache/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.data.cache + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.data.cache diff --git a/xref-test/org/owasp/dependencycheck/data/cache/package-summary.html b/xref-test/org/owasp/dependencycheck/data/cache/package-summary.html index 87dd9609d41..a3af3eff7bb 100644 --- a/xref-test/org/owasp/dependencycheck/data/cache/package-summary.html +++ b/xref-test/org/owasp/dependencycheck/data/cache/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.data.cache + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.data.cache diff --git a/xref-test/org/owasp/dependencycheck/data/central/package-frame.html b/xref-test/org/owasp/dependencycheck/data/central/package-frame.html index ba20cd52478..77553145558 100644 --- a/xref-test/org/owasp/dependencycheck/data/central/package-frame.html +++ b/xref-test/org/owasp/dependencycheck/data/central/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.data.central + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.data.central diff --git a/xref-test/org/owasp/dependencycheck/data/central/package-summary.html b/xref-test/org/owasp/dependencycheck/data/central/package-summary.html index 84fe749fc5b..ef8cdc51da0 100644 --- a/xref-test/org/owasp/dependencycheck/data/central/package-summary.html +++ b/xref-test/org/owasp/dependencycheck/data/central/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.data.central + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.data.central diff --git a/xref-test/org/owasp/dependencycheck/data/composer/package-frame.html b/xref-test/org/owasp/dependencycheck/data/composer/package-frame.html index 02198e1fef9..9e4ef327c09 100644 --- a/xref-test/org/owasp/dependencycheck/data/composer/package-frame.html +++ b/xref-test/org/owasp/dependencycheck/data/composer/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.data.composer + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.data.composer diff --git a/xref-test/org/owasp/dependencycheck/data/composer/package-summary.html b/xref-test/org/owasp/dependencycheck/data/composer/package-summary.html index 91aabc5f79e..b83f5026007 100644 --- a/xref-test/org/owasp/dependencycheck/data/composer/package-summary.html +++ b/xref-test/org/owasp/dependencycheck/data/composer/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.data.composer + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.data.composer diff --git a/xref-test/org/owasp/dependencycheck/data/cpe/package-frame.html b/xref-test/org/owasp/dependencycheck/data/cpe/package-frame.html index d8267532ca2..ec620cabd15 100644 --- a/xref-test/org/owasp/dependencycheck/data/cpe/package-frame.html +++ b/xref-test/org/owasp/dependencycheck/data/cpe/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.data.cpe + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.data.cpe diff --git a/xref-test/org/owasp/dependencycheck/data/cpe/package-summary.html b/xref-test/org/owasp/dependencycheck/data/cpe/package-summary.html index 8931d6ee8c2..3a5a169497b 100644 --- a/xref-test/org/owasp/dependencycheck/data/cpe/package-summary.html +++ b/xref-test/org/owasp/dependencycheck/data/cpe/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.data.cpe + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.data.cpe diff --git a/xref-test/org/owasp/dependencycheck/data/cwe/package-frame.html b/xref-test/org/owasp/dependencycheck/data/cwe/package-frame.html index 601ba822db2..b8cbf41edd1 100644 --- a/xref-test/org/owasp/dependencycheck/data/cwe/package-frame.html +++ b/xref-test/org/owasp/dependencycheck/data/cwe/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.data.cwe + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.data.cwe diff --git a/xref-test/org/owasp/dependencycheck/data/cwe/package-summary.html b/xref-test/org/owasp/dependencycheck/data/cwe/package-summary.html index 20e0509d179..ada52d3e706 100644 --- a/xref-test/org/owasp/dependencycheck/data/cwe/package-summary.html +++ b/xref-test/org/owasp/dependencycheck/data/cwe/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.data.cwe + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.data.cwe diff --git a/xref-test/org/owasp/dependencycheck/data/elixir/package-frame.html b/xref-test/org/owasp/dependencycheck/data/elixir/package-frame.html index b438e73f6ec..0780fa8c287 100644 --- a/xref-test/org/owasp/dependencycheck/data/elixir/package-frame.html +++ b/xref-test/org/owasp/dependencycheck/data/elixir/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.data.elixir + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.data.elixir diff --git a/xref-test/org/owasp/dependencycheck/data/elixir/package-summary.html b/xref-test/org/owasp/dependencycheck/data/elixir/package-summary.html index 10305d28ec3..a61c62d182f 100644 --- a/xref-test/org/owasp/dependencycheck/data/elixir/package-summary.html +++ b/xref-test/org/owasp/dependencycheck/data/elixir/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.data.elixir + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.data.elixir diff --git a/xref-test/org/owasp/dependencycheck/data/golang/package-frame.html b/xref-test/org/owasp/dependencycheck/data/golang/package-frame.html index 41d93da7647..5dee0b8fee1 100644 --- a/xref-test/org/owasp/dependencycheck/data/golang/package-frame.html +++ b/xref-test/org/owasp/dependencycheck/data/golang/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.data.golang + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.data.golang diff --git a/xref-test/org/owasp/dependencycheck/data/golang/package-summary.html b/xref-test/org/owasp/dependencycheck/data/golang/package-summary.html index 62e754ea67e..bc2c58ba56b 100644 --- a/xref-test/org/owasp/dependencycheck/data/golang/package-summary.html +++ b/xref-test/org/owasp/dependencycheck/data/golang/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.data.golang + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.data.golang diff --git a/xref-test/org/owasp/dependencycheck/data/lucene/package-frame.html b/xref-test/org/owasp/dependencycheck/data/lucene/package-frame.html index 3f25be45b38..7845bd675d1 100644 --- a/xref-test/org/owasp/dependencycheck/data/lucene/package-frame.html +++ b/xref-test/org/owasp/dependencycheck/data/lucene/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.data.lucene + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.data.lucene diff --git a/xref-test/org/owasp/dependencycheck/data/lucene/package-summary.html b/xref-test/org/owasp/dependencycheck/data/lucene/package-summary.html index 9ed15404f74..ae7e4b7de03 100644 --- a/xref-test/org/owasp/dependencycheck/data/lucene/package-summary.html +++ b/xref-test/org/owasp/dependencycheck/data/lucene/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.data.lucene + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.data.lucene diff --git a/xref-test/org/owasp/dependencycheck/data/nexus/package-frame.html b/xref-test/org/owasp/dependencycheck/data/nexus/package-frame.html index 8afb7507855..a3883ed89ea 100644 --- a/xref-test/org/owasp/dependencycheck/data/nexus/package-frame.html +++ b/xref-test/org/owasp/dependencycheck/data/nexus/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.data.nexus + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.data.nexus diff --git a/xref-test/org/owasp/dependencycheck/data/nexus/package-summary.html b/xref-test/org/owasp/dependencycheck/data/nexus/package-summary.html index b4cef996caf..23ec1e20e0b 100644 --- a/xref-test/org/owasp/dependencycheck/data/nexus/package-summary.html +++ b/xref-test/org/owasp/dependencycheck/data/nexus/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.data.nexus + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.data.nexus diff --git a/xref-test/org/owasp/dependencycheck/data/nodeaudit/package-frame.html b/xref-test/org/owasp/dependencycheck/data/nodeaudit/package-frame.html index 9c712665757..0e7f0f2530d 100644 --- a/xref-test/org/owasp/dependencycheck/data/nodeaudit/package-frame.html +++ b/xref-test/org/owasp/dependencycheck/data/nodeaudit/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.data.nodeaudit + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.data.nodeaudit diff --git a/xref-test/org/owasp/dependencycheck/data/nodeaudit/package-summary.html b/xref-test/org/owasp/dependencycheck/data/nodeaudit/package-summary.html index 300eecd7005..beade579589 100644 --- a/xref-test/org/owasp/dependencycheck/data/nodeaudit/package-summary.html +++ b/xref-test/org/owasp/dependencycheck/data/nodeaudit/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.data.nodeaudit + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.data.nodeaudit diff --git a/xref-test/org/owasp/dependencycheck/data/nuget/package-frame.html b/xref-test/org/owasp/dependencycheck/data/nuget/package-frame.html index 7a482a9394a..c4590ea33f2 100644 --- a/xref-test/org/owasp/dependencycheck/data/nuget/package-frame.html +++ b/xref-test/org/owasp/dependencycheck/data/nuget/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.data.nuget + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.data.nuget diff --git a/xref-test/org/owasp/dependencycheck/data/nuget/package-summary.html b/xref-test/org/owasp/dependencycheck/data/nuget/package-summary.html index 295bba49124..bd53a44fe2e 100644 --- a/xref-test/org/owasp/dependencycheck/data/nuget/package-summary.html +++ b/xref-test/org/owasp/dependencycheck/data/nuget/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.data.nuget + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.data.nuget diff --git a/xref-test/org/owasp/dependencycheck/data/nvd/ecosystem/package-frame.html b/xref-test/org/owasp/dependencycheck/data/nvd/ecosystem/package-frame.html index 23c50cd9302..55b062e10fd 100644 --- a/xref-test/org/owasp/dependencycheck/data/nvd/ecosystem/package-frame.html +++ b/xref-test/org/owasp/dependencycheck/data/nvd/ecosystem/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.data.nvd.ecosystem + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.data.nvd.ecosystem diff --git a/xref-test/org/owasp/dependencycheck/data/nvd/ecosystem/package-summary.html b/xref-test/org/owasp/dependencycheck/data/nvd/ecosystem/package-summary.html index b055f405bcb..579b240f6a4 100644 --- a/xref-test/org/owasp/dependencycheck/data/nvd/ecosystem/package-summary.html +++ b/xref-test/org/owasp/dependencycheck/data/nvd/ecosystem/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.data.nvd.ecosystem + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.data.nvd.ecosystem diff --git a/xref-test/org/owasp/dependencycheck/data/nvdcve/package-frame.html b/xref-test/org/owasp/dependencycheck/data/nvdcve/package-frame.html index 3d5733c82be..9decc93bd71 100644 --- a/xref-test/org/owasp/dependencycheck/data/nvdcve/package-frame.html +++ b/xref-test/org/owasp/dependencycheck/data/nvdcve/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.data.nvdcve + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.data.nvdcve diff --git a/xref-test/org/owasp/dependencycheck/data/nvdcve/package-summary.html b/xref-test/org/owasp/dependencycheck/data/nvdcve/package-summary.html index 5565ee60d8d..94cd13fbe7f 100644 --- a/xref-test/org/owasp/dependencycheck/data/nvdcve/package-summary.html +++ b/xref-test/org/owasp/dependencycheck/data/nvdcve/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.data.nvdcve + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.data.nvdcve diff --git a/xref-test/org/owasp/dependencycheck/data/update/NvdApiDataSourceTest.html b/xref-test/org/owasp/dependencycheck/data/update/NvdApiDataSourceTest.html new file mode 100644 index 00000000000..32592bafca2 --- /dev/null +++ b/xref-test/org/owasp/dependencycheck/data/update/NvdApiDataSourceTest.html @@ -0,0 +1,90 @@ + + + +NvdApiDataSourceTest xref + + + +
    +1   /*
    +2    * This file is part of dependency-check-core.
    +3    *
    +4    * Licensed under the Apache License, Version 2.0 (the "License");
    +5    * you may not use this file except in compliance with the License.
    +6    * You may obtain a copy of the License at
    +7    *
    +8    *     http://www.apache.org/licenses/LICENSE-2.0
    +9    *
    +10   * Unless required by applicable law or agreed to in writing, software
    +11   * distributed under the License is distributed on an "AS IS" BASIS,
    +12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +13   * See the License for the specific language governing permissions and
    +14   * limitations under the License.
    +15   *
    +16   * Copyright (c) 2023 Jeremy Long. All Rights Reserved.
    +17   */
    +18  package org.owasp.dependencycheck.data.update;
    +19  
    +20  import java.time.ZonedDateTime;
    +21  import java.util.Map;
    +22  import java.util.Properties;
    +23  import org.junit.After;
    +24  import org.junit.AfterClass;
    +25  import org.junit.Before;
    +26  import org.junit.BeforeClass;
    +27  import org.junit.Test;
    +28  import static org.junit.Assert.*;
    +29  import org.owasp.dependencycheck.Engine;
    +30  
    +31  /**
    +32   *
    +33   * @author Jeremy Long
    +34   */
    +35  public class NvdApiDataSourceTest {
    +36  
    +37      /**
    +38       * Test of extractUrlData method, of class NvdApiDataSource.
    +39       */
    +40      @Test
    +41      public void testExtractUrlData() {
    +42          String nvdDataFeedUrl = "https://internal.server/nist/nvdcve-{0}.json.gz";
    +43          NvdApiDataSource instance = new NvdApiDataSource();
    +44          String expectedUrl = "https://internal.server/nist/";
    +45          String expectedPattern = "nvdcve-{0}.json.gz";
    +46          NvdApiDataSource.UrlData result = instance.extractUrlData(nvdDataFeedUrl);
    +47  
    +48          nvdDataFeedUrl = "https://internal.server/nist/";
    +49          expectedUrl = "https://internal.server/nist/";
    +50          result = instance.extractUrlData(nvdDataFeedUrl);
    +51  
    +52          assertEquals(expectedUrl, result.getUrl());
    +53          assertNull(result.getPattern());
    +54          
    +55          nvdDataFeedUrl = "https://internal.server/nist";
    +56          expectedUrl = "https://internal.server/nist/";
    +57          result = instance.extractUrlData(nvdDataFeedUrl);
    +58  
    +59          assertEquals(expectedUrl, result.getUrl());
    +60          assertNull(result.getPattern());
    +61      }
    +62  
    +63  //    /**
    +64  //     * Test of getRemoteCacheProperties method, of class NvdApiDataSource.
    +65  //     */
    +66  //    @Test
    +67  //    public void testGetRemoteCacheProperties() throws Exception {
    +68  //        System.out.println("getRemoteCacheProperties");
    +69  //        String url = "";
    +70  //        NvdApiDataSource instance = new NvdApiDataSource();
    +71  //        Properties expResult = null;
    +72  //        Properties result = instance.getRemoteCacheProperties(url);
    +73  //        assertEquals(expResult, result);
    +74  //        // TODO review the generated test code and remove the default call to fail.
    +75  //        fail("The test case is a prototype.");
    +76  //    }
    +77  }
    +
    +
    + + + diff --git a/xref-test/org/owasp/dependencycheck/data/update/cisa/package-frame.html b/xref-test/org/owasp/dependencycheck/data/update/cisa/package-frame.html index 24132c96caa..04acf8544b2 100644 --- a/xref-test/org/owasp/dependencycheck/data/update/cisa/package-frame.html +++ b/xref-test/org/owasp/dependencycheck/data/update/cisa/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.data.update.cisa + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.data.update.cisa diff --git a/xref-test/org/owasp/dependencycheck/data/update/cisa/package-summary.html b/xref-test/org/owasp/dependencycheck/data/update/cisa/package-summary.html index 4c535fa5764..fe8fe81640b 100644 --- a/xref-test/org/owasp/dependencycheck/data/update/cisa/package-summary.html +++ b/xref-test/org/owasp/dependencycheck/data/update/cisa/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.data.update.cisa + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.data.update.cisa diff --git a/xref-test/org/owasp/dependencycheck/data/update/cpe/package-frame.html b/xref-test/org/owasp/dependencycheck/data/update/cpe/package-frame.html index e02e0530bd9..58d6d8b72dc 100644 --- a/xref-test/org/owasp/dependencycheck/data/update/cpe/package-frame.html +++ b/xref-test/org/owasp/dependencycheck/data/update/cpe/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.data.update.cpe + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.data.update.cpe diff --git a/xref-test/org/owasp/dependencycheck/data/update/cpe/package-summary.html b/xref-test/org/owasp/dependencycheck/data/update/cpe/package-summary.html index fd42b5b2770..821e8410a90 100644 --- a/xref-test/org/owasp/dependencycheck/data/update/cpe/package-summary.html +++ b/xref-test/org/owasp/dependencycheck/data/update/cpe/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.data.update.cpe + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.data.update.cpe diff --git a/xref-test/org/owasp/dependencycheck/data/update/package-frame.html b/xref-test/org/owasp/dependencycheck/data/update/package-frame.html index ec2102d74b7..ea80ccb61ba 100644 --- a/xref-test/org/owasp/dependencycheck/data/update/package-frame.html +++ b/xref-test/org/owasp/dependencycheck/data/update/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.data.update + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.data.update @@ -17,6 +17,9 @@

    Classes

    diff --git a/xref-test/org/owasp/dependencycheck/data/update/package-summary.html b/xref-test/org/owasp/dependencycheck/data/update/package-summary.html index fac8619686f..1d96a2cbf50 100644 --- a/xref-test/org/owasp/dependencycheck/data/update/package-summary.html +++ b/xref-test/org/owasp/dependencycheck/data/update/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.data.update + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.data.update @@ -39,6 +39,11 @@

    Package org.owasp.dependencycheck.data.update

    EngineVersionCheckTest + + + + NvdApiDataSourceTest + diff --git a/xref-test/org/owasp/dependencycheck/dependency/package-frame.html b/xref-test/org/owasp/dependencycheck/dependency/package-frame.html index 42670030ab5..763fa82af35 100644 --- a/xref-test/org/owasp/dependencycheck/dependency/package-frame.html +++ b/xref-test/org/owasp/dependencycheck/dependency/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.dependency + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.dependency diff --git a/xref-test/org/owasp/dependencycheck/dependency/package-summary.html b/xref-test/org/owasp/dependencycheck/dependency/package-summary.html index 76a1078daac..55c8a2225dd 100644 --- a/xref-test/org/owasp/dependencycheck/dependency/package-summary.html +++ b/xref-test/org/owasp/dependencycheck/dependency/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.dependency + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.dependency diff --git a/xref-test/org/owasp/dependencycheck/maven/package-frame.html b/xref-test/org/owasp/dependencycheck/maven/package-frame.html index 4e07d09c70d..d88ae5834e8 100644 --- a/xref-test/org/owasp/dependencycheck/maven/package-frame.html +++ b/xref-test/org/owasp/dependencycheck/maven/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.maven + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.maven diff --git a/xref-test/org/owasp/dependencycheck/maven/package-summary.html b/xref-test/org/owasp/dependencycheck/maven/package-summary.html index 951d1f35941..230e8330367 100644 --- a/xref-test/org/owasp/dependencycheck/maven/package-summary.html +++ b/xref-test/org/owasp/dependencycheck/maven/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.maven + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.maven diff --git a/xref-test/org/owasp/dependencycheck/package-frame.html b/xref-test/org/owasp/dependencycheck/package-frame.html index a49a2aca561..b81db56b065 100644 --- a/xref-test/org/owasp/dependencycheck/package-frame.html +++ b/xref-test/org/owasp/dependencycheck/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck diff --git a/xref-test/org/owasp/dependencycheck/package-summary.html b/xref-test/org/owasp/dependencycheck/package-summary.html index ba5e510ab8f..2685aef1b5e 100644 --- a/xref-test/org/owasp/dependencycheck/package-summary.html +++ b/xref-test/org/owasp/dependencycheck/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck diff --git a/xref-test/org/owasp/dependencycheck/reporting/package-frame.html b/xref-test/org/owasp/dependencycheck/reporting/package-frame.html index b022d68cf67..6cd8944e7f6 100644 --- a/xref-test/org/owasp/dependencycheck/reporting/package-frame.html +++ b/xref-test/org/owasp/dependencycheck/reporting/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.reporting + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.reporting diff --git a/xref-test/org/owasp/dependencycheck/reporting/package-summary.html b/xref-test/org/owasp/dependencycheck/reporting/package-summary.html index 9d3a87c4510..84c1a3e0664 100644 --- a/xref-test/org/owasp/dependencycheck/reporting/package-summary.html +++ b/xref-test/org/owasp/dependencycheck/reporting/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.reporting + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.reporting diff --git a/xref-test/org/owasp/dependencycheck/resources/package-frame.html b/xref-test/org/owasp/dependencycheck/resources/package-frame.html index 4c1e951e398..12f24b84692 100644 --- a/xref-test/org/owasp/dependencycheck/resources/package-frame.html +++ b/xref-test/org/owasp/dependencycheck/resources/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.resources + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.resources diff --git a/xref-test/org/owasp/dependencycheck/resources/package-summary.html b/xref-test/org/owasp/dependencycheck/resources/package-summary.html index 1be5254575c..8592fac346f 100644 --- a/xref-test/org/owasp/dependencycheck/resources/package-summary.html +++ b/xref-test/org/owasp/dependencycheck/resources/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.resources + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.resources diff --git a/xref-test/org/owasp/dependencycheck/taskdefs/package-frame.html b/xref-test/org/owasp/dependencycheck/taskdefs/package-frame.html index e984fb40d8c..0ede977fc24 100644 --- a/xref-test/org/owasp/dependencycheck/taskdefs/package-frame.html +++ b/xref-test/org/owasp/dependencycheck/taskdefs/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.taskdefs + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.taskdefs diff --git a/xref-test/org/owasp/dependencycheck/taskdefs/package-summary.html b/xref-test/org/owasp/dependencycheck/taskdefs/package-summary.html index 25496c8cfc0..1b80e76a69f 100644 --- a/xref-test/org/owasp/dependencycheck/taskdefs/package-summary.html +++ b/xref-test/org/owasp/dependencycheck/taskdefs/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.taskdefs + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.taskdefs diff --git a/xref-test/org/owasp/dependencycheck/utils/package-frame.html b/xref-test/org/owasp/dependencycheck/utils/package-frame.html index bb5b60049ae..47bebc28e6b 100644 --- a/xref-test/org/owasp/dependencycheck/utils/package-frame.html +++ b/xref-test/org/owasp/dependencycheck/utils/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.utils + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.utils diff --git a/xref-test/org/owasp/dependencycheck/utils/package-summary.html b/xref-test/org/owasp/dependencycheck/utils/package-summary.html index ad51bfccd25..2f5a1277191 100644 --- a/xref-test/org/owasp/dependencycheck/utils/package-summary.html +++ b/xref-test/org/owasp/dependencycheck/utils/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.utils + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.utils diff --git a/xref-test/org/owasp/dependencycheck/utils/search/package-frame.html b/xref-test/org/owasp/dependencycheck/utils/search/package-frame.html index ae5cf9835d1..a4a1cad793a 100644 --- a/xref-test/org/owasp/dependencycheck/utils/search/package-frame.html +++ b/xref-test/org/owasp/dependencycheck/utils/search/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.utils.search + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.utils.search diff --git a/xref-test/org/owasp/dependencycheck/utils/search/package-summary.html b/xref-test/org/owasp/dependencycheck/utils/search/package-summary.html index ff12a29a639..5eb8ac308db 100644 --- a/xref-test/org/owasp/dependencycheck/utils/search/package-summary.html +++ b/xref-test/org/owasp/dependencycheck/utils/search/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.utils.search + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.utils.search diff --git a/xref-test/org/owasp/dependencycheck/xml/assembly/package-frame.html b/xref-test/org/owasp/dependencycheck/xml/assembly/package-frame.html index f6c443fdeb9..7b9c5eb3be3 100644 --- a/xref-test/org/owasp/dependencycheck/xml/assembly/package-frame.html +++ b/xref-test/org/owasp/dependencycheck/xml/assembly/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.xml.assembly + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.xml.assembly diff --git a/xref-test/org/owasp/dependencycheck/xml/assembly/package-summary.html b/xref-test/org/owasp/dependencycheck/xml/assembly/package-summary.html index b2738686f66..6f45b29c0ae 100644 --- a/xref-test/org/owasp/dependencycheck/xml/assembly/package-summary.html +++ b/xref-test/org/owasp/dependencycheck/xml/assembly/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.xml.assembly + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.xml.assembly diff --git a/xref-test/org/owasp/dependencycheck/xml/hints/package-frame.html b/xref-test/org/owasp/dependencycheck/xml/hints/package-frame.html index 82df8835366..0b76f349355 100644 --- a/xref-test/org/owasp/dependencycheck/xml/hints/package-frame.html +++ b/xref-test/org/owasp/dependencycheck/xml/hints/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.xml.hints + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.xml.hints diff --git a/xref-test/org/owasp/dependencycheck/xml/hints/package-summary.html b/xref-test/org/owasp/dependencycheck/xml/hints/package-summary.html index afc26fc8a4d..619cffa2484 100644 --- a/xref-test/org/owasp/dependencycheck/xml/hints/package-summary.html +++ b/xref-test/org/owasp/dependencycheck/xml/hints/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.xml.hints + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.xml.hints diff --git a/xref-test/org/owasp/dependencycheck/xml/package-frame.html b/xref-test/org/owasp/dependencycheck/xml/package-frame.html index ad6e9205e4b..b3477748215 100644 --- a/xref-test/org/owasp/dependencycheck/xml/package-frame.html +++ b/xref-test/org/owasp/dependencycheck/xml/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.xml + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.xml diff --git a/xref-test/org/owasp/dependencycheck/xml/package-summary.html b/xref-test/org/owasp/dependencycheck/xml/package-summary.html index 4883d9d9cb4..e0ef0d579c0 100644 --- a/xref-test/org/owasp/dependencycheck/xml/package-summary.html +++ b/xref-test/org/owasp/dependencycheck/xml/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.xml + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.xml diff --git a/xref-test/org/owasp/dependencycheck/xml/pom/package-frame.html b/xref-test/org/owasp/dependencycheck/xml/pom/package-frame.html index fb64173bc73..8a5499d4bd2 100644 --- a/xref-test/org/owasp/dependencycheck/xml/pom/package-frame.html +++ b/xref-test/org/owasp/dependencycheck/xml/pom/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.xml.pom + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.xml.pom diff --git a/xref-test/org/owasp/dependencycheck/xml/pom/package-summary.html b/xref-test/org/owasp/dependencycheck/xml/pom/package-summary.html index d7c60a047ce..60ee24fe1d5 100644 --- a/xref-test/org/owasp/dependencycheck/xml/pom/package-summary.html +++ b/xref-test/org/owasp/dependencycheck/xml/pom/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.xml.pom + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.xml.pom diff --git a/xref-test/org/owasp/dependencycheck/xml/suppression/package-frame.html b/xref-test/org/owasp/dependencycheck/xml/suppression/package-frame.html index 0a7143e7581..f95b2d8134b 100644 --- a/xref-test/org/owasp/dependencycheck/xml/suppression/package-frame.html +++ b/xref-test/org/owasp/dependencycheck/xml/suppression/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.xml.suppression + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.xml.suppression diff --git a/xref-test/org/owasp/dependencycheck/xml/suppression/package-summary.html b/xref-test/org/owasp/dependencycheck/xml/suppression/package-summary.html index 3dd15c36bde..4fd948c8fd8 100644 --- a/xref-test/org/owasp/dependencycheck/xml/suppression/package-summary.html +++ b/xref-test/org/owasp/dependencycheck/xml/suppression/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.xml.suppression + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.xml.suppression diff --git a/xref-test/overview-frame.html b/xref-test/overview-frame.html index 511641ecf84..da5d42a59e7 100644 --- a/xref-test/overview-frame.html +++ b/xref-test/overview-frame.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference + Dependency-Check 9.0.5 Reference diff --git a/xref-test/overview-summary.html b/xref-test/overview-summary.html index 28c2ab3d3f5..d0c4d1ae2c9 100644 --- a/xref-test/overview-summary.html +++ b/xref-test/overview-summary.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference + Dependency-Check 9.0.5 Reference @@ -24,7 +24,7 @@
  • -

    Dependency-Check 9.0.4 Reference

    +

    Dependency-Check 9.0.5 Reference

    diff --git a/xref/allclasses-frame.html b/xref/allclasses-frame.html index 20e87eee4d3..83698ecc534 100644 --- a/xref/allclasses-frame.html +++ b/xref/allclasses-frame.html @@ -844,6 +844,9 @@

    All Classes

  • UpdateService +
  • +
  • + UrlData
  • UrlEcosystemMapper diff --git a/xref/index.html b/xref/index.html index 5e4aed3dff9..55fdb1f88da 100644 --- a/xref/index.html +++ b/xref/index.html @@ -4,7 +4,7 @@ - Dependency-Check 9.0.4 Reference + Dependency-Check 9.0.5 Reference diff --git a/xref/org/owasp/dependencycheck/App.html b/xref/org/owasp/dependencycheck/App.html index a8f036f7b54..5f66bc63788 100644 --- a/xref/org/owasp/dependencycheck/App.html +++ b/xref/org/owasp/dependencycheck/App.html @@ -664,118 +664,120 @@ 656 } 657 settings.setStringIfNotEmpty(Settings.KEYS.NVD_API_KEY, key); 658 } -659 settings.setIntIfNotNull(Settings.KEYS.NVD_API_DELAY, cli.getIntegerValue(CliParser.ARGUMENT.NVD_API_DELAY)); -660 settings.setStringIfNotEmpty(Settings.KEYS.NVD_API_DATAFEED_URL, cli.getStringArgument(CliParser.ARGUMENT.NVD_API_DATAFEED_URL)); -661 settings.setStringIfNotEmpty(Settings.KEYS.NVD_API_DATAFEED_USER, cli.getStringArgument(CliParser.ARGUMENT.NVD_API_DATAFEED_USER)); -662 settings.setStringIfNotEmpty(Settings.KEYS.NVD_API_DATAFEED_PASSWORD, cli.getStringArgument(CliParser.ARGUMENT.NVD_API_DATAFEED_PASSWORD)); -663 settings.setIntIfNotNull(Settings.KEYS.NVD_API_MAX_RETRY_COUNT, cli.getIntegerValue(CliParser.ARGUMENT.NVD_API_MAX_RETRY_COUNT)); -664 settings.setIntIfNotNull(Settings.KEYS.NVD_API_VALID_FOR_HOURS, cli.getIntegerValue(CliParser.ARGUMENT.NVD_API_VALID_FOR_HOURS)); -665 -666 settings.setStringIfNotNull(Settings.KEYS.HOSTED_SUPPRESSIONS_URL, -667 cli.getStringArgument(CliParser.ARGUMENT.HOSTED_SUPPRESSIONS_URL)); -668 settings.setBoolean(Settings.KEYS.HOSTED_SUPPRESSIONS_ENABLED, -669 !cli.isDisabled(CliParser.ARGUMENT.DISABLE_HOSTED_SUPPRESSIONS, Settings.KEYS.HOSTED_SUPPRESSIONS_ENABLED)); -670 settings.setBooleanIfNotNull(Settings.KEYS.HOSTED_SUPPRESSIONS_FORCEUPDATE, -671 cli.hasOption(CliParser.ARGUMENT.HOSTED_SUPPRESSIONS_FORCEUPDATE)); -672 settings.setIntIfNotNull(Settings.KEYS.HOSTED_SUPPRESSIONS_VALID_FOR_HOURS, -673 cli.getIntegerValue(CliParser.ARGUMENT.HOSTED_SUPPRESSIONS_VALID_FOR_HOURS)); -674 } -675 -676 //CSON: MethodLength -677 /** -678 * Creates a file appender and adds it to logback. -679 * -680 * @param verboseLog the path to the verbose log file -681 */ -682 private void prepareLogger(String verboseLog) { -683 final LoggerContext context = (LoggerContext) LoggerFactory.getILoggerFactory(); -684 final PatternLayoutEncoder encoder = new PatternLayoutEncoder(); -685 encoder.setPattern("%d %C:%L%n%-5level - %msg%n"); -686 encoder.setContext(context); -687 encoder.start(); -688 final FileAppender<ILoggingEvent> fa = new FileAppender<>(); -689 fa.setAppend(true); -690 fa.setEncoder(encoder); -691 fa.setContext(context); -692 fa.setFile(verboseLog); -693 final File f = new File(verboseLog); -694 String name = f.getName(); -695 final int i = name.lastIndexOf('.'); -696 if (i > 1) { -697 name = name.substring(0, i); -698 } -699 fa.setName(name); -700 fa.start(); -701 final ch.qos.logback.classic.Logger rootLogger = context.getLogger(ch.qos.logback.classic.Logger.ROOT_LOGGER_NAME); -702 rootLogger.setLevel(Level.DEBUG); -703 final ThresholdFilter filter = new ThresholdFilter(); -704 filter.setLevel(LogLevel.INFO.getValue()); -705 filter.setContext(context); -706 filter.start(); -707 rootLogger.iteratorForAppenders().forEachRemaining(action -> action.addFilter(filter)); -708 rootLogger.addAppender(fa); -709 } -710 -711 /** -712 * Takes a path and resolves it to be a canonical &amp; absolute path. The -713 * caveats are that this method will take an Ant style file selector path -714 * (../someDir/**\/*.jar) and convert it to an absolute/canonical path (at -715 * least to the left of the first * or ?). -716 * -717 * @param path the path to canonicalize -718 * @return the canonical path -719 */ -720 protected String ensureCanonicalPath(String path) { -721 final String basePath; -722 String wildCards = null; -723 final String file = path.replace('\\', '/'); -724 if (file.contains("*") || file.contains("?")) { -725 -726 int pos = getLastFileSeparator(file); -727 if (pos < 0) { -728 return file; -729 } -730 pos += 1; -731 basePath = file.substring(0, pos); -732 wildCards = file.substring(pos); -733 } else { -734 basePath = file; -735 } -736 -737 File f = new File(basePath); -738 try { -739 f = f.getCanonicalFile(); -740 if (wildCards != null) { -741 f = new File(f, wildCards); -742 } -743 } catch (IOException ex) { -744 LOGGER.warn("Invalid path '{}' was provided.", path); -745 LOGGER.debug("Invalid path provided", ex); -746 } -747 return f.getAbsolutePath().replace('\\', '/'); -748 } -749 -750 /** -751 * Returns the position of the last file separator. -752 * -753 * @param file a file path -754 * @return the position of the last file separator -755 */ -756 @SuppressWarnings("ManualMinMaxCalculation") -757 private int getLastFileSeparator(String file) { -758 if (file.contains("*") || file.contains("?")) { -759 int p1 = file.indexOf('*'); -760 int p2 = file.indexOf('?'); -761 p1 = p1 > 0 ? p1 : file.length(); -762 p2 = p2 > 0 ? p2 : file.length(); -763 int pos = p1 < p2 ? p1 : p2; -764 pos = file.lastIndexOf('/', pos); -765 return pos; -766 } else { -767 return file.lastIndexOf('/'); -768 } -769 } -770 } +659 settings.setStringIfNotEmpty(Settings.KEYS.NVD_API_ENDPOINT, +660 cli.getStringArgument(CliParser.ARGUMENT.NVD_API_ENDPOINT)); +661 settings.setIntIfNotNull(Settings.KEYS.NVD_API_DELAY, cli.getIntegerValue(CliParser.ARGUMENT.NVD_API_DELAY)); +662 settings.setStringIfNotEmpty(Settings.KEYS.NVD_API_DATAFEED_URL, cli.getStringArgument(CliParser.ARGUMENT.NVD_API_DATAFEED_URL)); +663 settings.setStringIfNotEmpty(Settings.KEYS.NVD_API_DATAFEED_USER, cli.getStringArgument(CliParser.ARGUMENT.NVD_API_DATAFEED_USER)); +664 settings.setStringIfNotEmpty(Settings.KEYS.NVD_API_DATAFEED_PASSWORD, cli.getStringArgument(CliParser.ARGUMENT.NVD_API_DATAFEED_PASSWORD)); +665 settings.setIntIfNotNull(Settings.KEYS.NVD_API_MAX_RETRY_COUNT, cli.getIntegerValue(CliParser.ARGUMENT.NVD_API_MAX_RETRY_COUNT)); +666 settings.setIntIfNotNull(Settings.KEYS.NVD_API_VALID_FOR_HOURS, cli.getIntegerValue(CliParser.ARGUMENT.NVD_API_VALID_FOR_HOURS)); +667 +668 settings.setStringIfNotNull(Settings.KEYS.HOSTED_SUPPRESSIONS_URL, +669 cli.getStringArgument(CliParser.ARGUMENT.HOSTED_SUPPRESSIONS_URL)); +670 settings.setBoolean(Settings.KEYS.HOSTED_SUPPRESSIONS_ENABLED, +671 !cli.isDisabled(CliParser.ARGUMENT.DISABLE_HOSTED_SUPPRESSIONS, Settings.KEYS.HOSTED_SUPPRESSIONS_ENABLED)); +672 settings.setBooleanIfNotNull(Settings.KEYS.HOSTED_SUPPRESSIONS_FORCEUPDATE, +673 cli.hasOption(CliParser.ARGUMENT.HOSTED_SUPPRESSIONS_FORCEUPDATE)); +674 settings.setIntIfNotNull(Settings.KEYS.HOSTED_SUPPRESSIONS_VALID_FOR_HOURS, +675 cli.getIntegerValue(CliParser.ARGUMENT.HOSTED_SUPPRESSIONS_VALID_FOR_HOURS)); +676 } +677 +678 //CSON: MethodLength +679 /** +680 * Creates a file appender and adds it to logback. +681 * +682 * @param verboseLog the path to the verbose log file +683 */ +684 private void prepareLogger(String verboseLog) { +685 final LoggerContext context = (LoggerContext) LoggerFactory.getILoggerFactory(); +686 final PatternLayoutEncoder encoder = new PatternLayoutEncoder(); +687 encoder.setPattern("%d %C:%L%n%-5level - %msg%n"); +688 encoder.setContext(context); +689 encoder.start(); +690 final FileAppender<ILoggingEvent> fa = new FileAppender<>(); +691 fa.setAppend(true); +692 fa.setEncoder(encoder); +693 fa.setContext(context); +694 fa.setFile(verboseLog); +695 final File f = new File(verboseLog); +696 String name = f.getName(); +697 final int i = name.lastIndexOf('.'); +698 if (i > 1) { +699 name = name.substring(0, i); +700 } +701 fa.setName(name); +702 fa.start(); +703 final ch.qos.logback.classic.Logger rootLogger = context.getLogger(ch.qos.logback.classic.Logger.ROOT_LOGGER_NAME); +704 rootLogger.setLevel(Level.DEBUG); +705 final ThresholdFilter filter = new ThresholdFilter(); +706 filter.setLevel(LogLevel.INFO.getValue()); +707 filter.setContext(context); +708 filter.start(); +709 rootLogger.iteratorForAppenders().forEachRemaining(action -> action.addFilter(filter)); +710 rootLogger.addAppender(fa); +711 } +712 +713 /** +714 * Takes a path and resolves it to be a canonical &amp; absolute path. The +715 * caveats are that this method will take an Ant style file selector path +716 * (../someDir/**\/*.jar) and convert it to an absolute/canonical path (at +717 * least to the left of the first * or ?). +718 * +719 * @param path the path to canonicalize +720 * @return the canonical path +721 */ +722 protected String ensureCanonicalPath(String path) { +723 final String basePath; +724 String wildCards = null; +725 final String file = path.replace('\\', '/'); +726 if (file.contains("*") || file.contains("?")) { +727 +728 int pos = getLastFileSeparator(file); +729 if (pos < 0) { +730 return file; +731 } +732 pos += 1; +733 basePath = file.substring(0, pos); +734 wildCards = file.substring(pos); +735 } else { +736 basePath = file; +737 } +738 +739 File f = new File(basePath); +740 try { +741 f = f.getCanonicalFile(); +742 if (wildCards != null) { +743 f = new File(f, wildCards); +744 } +745 } catch (IOException ex) { +746 LOGGER.warn("Invalid path '{}' was provided.", path); +747 LOGGER.debug("Invalid path provided", ex); +748 } +749 return f.getAbsolutePath().replace('\\', '/'); +750 } +751 +752 /** +753 * Returns the position of the last file separator. +754 * +755 * @param file a file path +756 * @return the position of the last file separator +757 */ +758 @SuppressWarnings("ManualMinMaxCalculation") +759 private int getLastFileSeparator(String file) { +760 if (file.contains("*") || file.contains("?")) { +761 int p1 = file.indexOf('*'); +762 int p2 = file.indexOf('?'); +763 p1 = p1 > 0 ? p1 : file.length(); +764 p2 = p2 > 0 ? p2 : file.length(); +765 int pos = p1 < p2 ? p1 : p2; +766 pos = file.lastIndexOf('/', pos); +767 return pos; +768 } else { +769 return file.lastIndexOf('/'); +770 } +771 } +772 }
    diff --git a/xref/org/owasp/dependencycheck/CliParser.html b/xref/org/owasp/dependencycheck/CliParser.html index c58779d4086..a0d5358a8c5 100644 --- a/xref/org/owasp/dependencycheck/CliParser.html +++ b/xref/org/owasp/dependencycheck/CliParser.html @@ -361,1207 +361,1213 @@ 353 "Only update the local NVD data cache; no scan will be executed.")) 354 .addOption(newOptionWithArg(ARGUMENT.NVD_API_DELAY, "milliseconds", 355 "Time in milliseconds to wait between downloading from the NVD.")) -356 .addOption(newOptionWithArg(ARGUMENT.NVD_API_DATAFEED_URL, "url", -357 "The URL to the NVD API Datafeed.")) -358 .addOption(newOptionWithArg(ARGUMENT.NVD_API_DATAFEED_USER, "user", -359 "Credentials for basic authentication to the NVD API Datafeed.")) -360 .addOption(newOptionWithArg(ARGUMENT.NVD_API_DATAFEED_PASSWORD, "password", +356 .addOption(newOptionWithArg(ARGUMENT.NVD_API_ENDPOINT, "endpoint", +357 "The NVD API Endpoint - setting this is rare.")) +358 .addOption(newOptionWithArg(ARGUMENT.NVD_API_DATAFEED_URL, "url", +359 "The URL to the NVD API Datafeed.")) +360 .addOption(newOptionWithArg(ARGUMENT.NVD_API_DATAFEED_USER, "user", 361 "Credentials for basic authentication to the NVD API Datafeed.")) -362 .addOption(newOptionWithArg(ARGUMENT.NVD_API_MAX_RETRY_COUNT,"count", -363 "The maximum number of retry requests for a single call to the NVD API.")) -364 .addOption(newOptionWithArg(ARGUMENT.NVD_API_VALID_FOR_HOURS, "hours", -365 "The number of hours to wait before checking for new updates from the NVD.")) -366 .addOption(newOptionWithArg(ARGUMENT.PROXY_PORT, "port", -367 "The proxy port to use when downloading resources.")) -368 .addOption(newOptionWithArg(ARGUMENT.PROXY_SERVER, "server", -369 "The proxy server to use when downloading resources.")) -370 .addOption(newOptionWithArg(ARGUMENT.PROXY_USERNAME, "user", -371 "The proxy username to use when downloading resources.")) -372 .addOption(newOptionWithArg(ARGUMENT.PROXY_PASSWORD, "pass", -373 "The proxy password to use when downloading resources.")) -374 .addOption(newOptionWithArg(ARGUMENT.NON_PROXY_HOSTS, "list", -375 "The proxy exclusion list: hostnames (or patterns) for which proxy should not be used. " -376 + "Use pipe, comma or colon as list separator.")) -377 .addOption(newOptionWithArg(ARGUMENT.CONNECTION_TIMEOUT_SHORT, ARGUMENT.CONNECTION_TIMEOUT, "timeout", -378 "The connection timeout (in milliseconds) to use when downloading resources.")) -379 .addOption(newOptionWithArg(ARGUMENT.CONNECTION_READ_TIMEOUT, "timeout", -380 "The read timeout (in milliseconds) to use when downloading resources.")) -381 .addOption(newOptionWithArg(ARGUMENT.CONNECTION_STRING, "connStr", -382 "The connection string to the database.")) -383 .addOption(newOptionWithArg(ARGUMENT.DB_NAME, "user", -384 "The username used to connect to the database.")) -385 .addOption(newOptionWithArg(ARGUMENT.DATA_DIRECTORY_SHORT, ARGUMENT.DATA_DIRECTORY, "path", -386 "The location of the H2 Database file. This option should generally not be set.")) -387 .addOption(newOptionWithArg(ARGUMENT.DB_PASSWORD, "password", -388 "The password for connecting to the database.")) -389 .addOption(newOptionWithArg(ARGUMENT.DB_DRIVER, "driver", -390 "The database driver name.")) -391 .addOption(newOptionWithArg(ARGUMENT.DB_DRIVER_PATH, "path", -392 "The path to the database driver; note, this does not need to be set unless the JAR is " -393 + "outside of the classpath.")) -394 .addOption(newOptionWithArg(ARGUMENT.SYM_LINK_DEPTH, "depth", -395 "Sets how deep nested symbolic links will be followed; 0 indicates symbolic links will not be followed.")) -396 .addOption(newOptionWithArg(ARGUMENT.PATH_TO_BUNDLE_AUDIT, "path", -397 "The path to bundle-audit for Gem bundle analysis.")) -398 .addOption(newOptionWithArg(ARGUMENT.PATH_TO_BUNDLE_AUDIT_WORKING_DIRECTORY, "path", -399 "The path to working directory that the bundle-audit command should be executed from when " -400 + "doing Gem bundle analysis.")) -401 .addOption(newOptionWithArg(ARGUMENT.CENTRAL_URL, "url", -402 "Alternative URL for Maven Central Search. If not set the public Sonatype Maven Central will be used.")) -403 .addOption(newOptionWithArg(ARGUMENT.OSSINDEX_URL, "url", -404 "Alternative URL for the OSS Index. If not set the public Sonatype OSS Index will be used.")) -405 .addOption(newOptionWithArg(ARGUMENT.OSSINDEX_USERNAME, "username", -406 "The username to authenticate to Sonatype's OSS Index. If not set the Sonatype OSS Index " -407 + "Analyzer will use an unauthenticated connection.")) -408 .addOption(newOptionWithArg(ARGUMENT.OSSINDEX_PASSWORD, "password", "" -409 + "The password to authenticate to Sonatype's OSS Index. If not set the Sonatype OSS " -410 + "Index Analyzer will use an unauthenticated connection.")) -411 .addOption(newOptionWithArg(ARGUMENT.OSSINDEX_WARN_ONLY_ON_REMOTE_ERRORS, "true/false", "" -412 + "Whether a Sonatype OSS Index remote error should result in a warning only or a failure.")) -413 .addOption(newOption(ARGUMENT.RETIRE_JS_FORCEUPDATE, "Force the RetireJS Analyzer to update " -414 + "even if autoupdate is disabled")) -415 .addOption(newOptionWithArg(ARGUMENT.RETIREJS_URL, "url", -416 "The Retire JS Repository URL")) -417 .addOption(newOptionWithArg(ARGUMENT.RETIREJS_URL_USER, "username", -418 "The password to authenticate to Retire JS Repository URL")) -419 .addOption(newOptionWithArg(ARGUMENT.RETIREJS_URL_PASSWORD, "password", +362 .addOption(newOptionWithArg(ARGUMENT.NVD_API_DATAFEED_PASSWORD, "password", +363 "Credentials for basic authentication to the NVD API Datafeed.")) +364 .addOption(newOptionWithArg(ARGUMENT.NVD_API_MAX_RETRY_COUNT,"count", +365 "The maximum number of retry requests for a single call to the NVD API.")) +366 .addOption(newOptionWithArg(ARGUMENT.NVD_API_VALID_FOR_HOURS, "hours", +367 "The number of hours to wait before checking for new updates from the NVD.")) +368 .addOption(newOptionWithArg(ARGUMENT.PROXY_PORT, "port", +369 "The proxy port to use when downloading resources.")) +370 .addOption(newOptionWithArg(ARGUMENT.PROXY_SERVER, "server", +371 "The proxy server to use when downloading resources.")) +372 .addOption(newOptionWithArg(ARGUMENT.PROXY_USERNAME, "user", +373 "The proxy username to use when downloading resources.")) +374 .addOption(newOptionWithArg(ARGUMENT.PROXY_PASSWORD, "pass", +375 "The proxy password to use when downloading resources.")) +376 .addOption(newOptionWithArg(ARGUMENT.NON_PROXY_HOSTS, "list", +377 "The proxy exclusion list: hostnames (or patterns) for which proxy should not be used. " +378 + "Use pipe, comma or colon as list separator.")) +379 .addOption(newOptionWithArg(ARGUMENT.CONNECTION_TIMEOUT_SHORT, ARGUMENT.CONNECTION_TIMEOUT, "timeout", +380 "The connection timeout (in milliseconds) to use when downloading resources.")) +381 .addOption(newOptionWithArg(ARGUMENT.CONNECTION_READ_TIMEOUT, "timeout", +382 "The read timeout (in milliseconds) to use when downloading resources.")) +383 .addOption(newOptionWithArg(ARGUMENT.CONNECTION_STRING, "connStr", +384 "The connection string to the database.")) +385 .addOption(newOptionWithArg(ARGUMENT.DB_NAME, "user", +386 "The username used to connect to the database.")) +387 .addOption(newOptionWithArg(ARGUMENT.DATA_DIRECTORY_SHORT, ARGUMENT.DATA_DIRECTORY, "path", +388 "The location of the H2 Database file. This option should generally not be set.")) +389 .addOption(newOptionWithArg(ARGUMENT.DB_PASSWORD, "password", +390 "The password for connecting to the database.")) +391 .addOption(newOptionWithArg(ARGUMENT.DB_DRIVER, "driver", +392 "The database driver name.")) +393 .addOption(newOptionWithArg(ARGUMENT.DB_DRIVER_PATH, "path", +394 "The path to the database driver; note, this does not need to be set unless the JAR is " +395 + "outside of the classpath.")) +396 .addOption(newOptionWithArg(ARGUMENT.SYM_LINK_DEPTH, "depth", +397 "Sets how deep nested symbolic links will be followed; 0 indicates symbolic links will not be followed.")) +398 .addOption(newOptionWithArg(ARGUMENT.PATH_TO_BUNDLE_AUDIT, "path", +399 "The path to bundle-audit for Gem bundle analysis.")) +400 .addOption(newOptionWithArg(ARGUMENT.PATH_TO_BUNDLE_AUDIT_WORKING_DIRECTORY, "path", +401 "The path to working directory that the bundle-audit command should be executed from when " +402 + "doing Gem bundle analysis.")) +403 .addOption(newOptionWithArg(ARGUMENT.CENTRAL_URL, "url", +404 "Alternative URL for Maven Central Search. If not set the public Sonatype Maven Central will be used.")) +405 .addOption(newOptionWithArg(ARGUMENT.OSSINDEX_URL, "url", +406 "Alternative URL for the OSS Index. If not set the public Sonatype OSS Index will be used.")) +407 .addOption(newOptionWithArg(ARGUMENT.OSSINDEX_USERNAME, "username", +408 "The username to authenticate to Sonatype's OSS Index. If not set the Sonatype OSS Index " +409 + "Analyzer will use an unauthenticated connection.")) +410 .addOption(newOptionWithArg(ARGUMENT.OSSINDEX_PASSWORD, "password", "" +411 + "The password to authenticate to Sonatype's OSS Index. If not set the Sonatype OSS " +412 + "Index Analyzer will use an unauthenticated connection.")) +413 .addOption(newOptionWithArg(ARGUMENT.OSSINDEX_WARN_ONLY_ON_REMOTE_ERRORS, "true/false", "" +414 + "Whether a Sonatype OSS Index remote error should result in a warning only or a failure.")) +415 .addOption(newOption(ARGUMENT.RETIRE_JS_FORCEUPDATE, "Force the RetireJS Analyzer to update " +416 + "even if autoupdate is disabled")) +417 .addOption(newOptionWithArg(ARGUMENT.RETIREJS_URL, "url", +418 "The Retire JS Repository URL")) +419 .addOption(newOptionWithArg(ARGUMENT.RETIREJS_URL_USER, "username", 420 "The password to authenticate to Retire JS Repository URL")) -421 .addOption(newOption(ARGUMENT.RETIREJS_FILTER_NON_VULNERABLE, "Specifies that the Retire JS " -422 + "Analyzer should filter out non-vulnerable JS files from the report.")) -423 .addOption(newOptionWithArg(ARGUMENT.ARTIFACTORY_PARALLEL_ANALYSIS, "true/false", -424 "Whether the Artifactory Analyzer should use parallel analysis.")) -425 .addOption(newOptionWithArg(ARGUMENT.ARTIFACTORY_USES_PROXY, "true/false", -426 "Whether the Artifactory Analyzer should use the proxy.")) -427 .addOption(newOptionWithArg(ARGUMENT.ARTIFACTORY_USERNAME, "username", -428 "The Artifactory username for authentication.")) -429 .addOption(newOptionWithArg(ARGUMENT.ARTIFACTORY_API_TOKEN, "token", -430 "The Artifactory API token.")) -431 .addOption(newOptionWithArg(ARGUMENT.ARTIFACTORY_BEARER_TOKEN, "token", -432 "The Artifactory bearer token.")) -433 .addOption(newOptionWithArg(ARGUMENT.ARTIFACTORY_URL, "url", -434 "The Artifactory URL.")) -435 .addOption(newOptionWithArg(ARGUMENT.PATH_TO_GO, "path", -436 "The path to the `go` executable.")) -437 .addOption(newOptionWithArg(ARGUMENT.PATH_TO_YARN, "path", -438 "The path to the `yarn` executable.")) -439 .addOption(newOptionWithArg(ARGUMENT.PATH_TO_PNPM, "path", -440 "The path to the `pnpm` executable.")) -441 .addOption(newOptionWithArg(ARGUMENT.RETIREJS_FILTERS, "pattern", -442 "Specify Retire JS content filter used to exclude files from analysis based on their content; " -443 + "most commonly used to exclude based on your applications own copyright line. This " -444 + "option can be specified multiple times.")) -445 .addOption(newOptionWithArg(ARGUMENT.NEXUS_URL, "url", -446 "The url to the Nexus Server's REST API Endpoint (http://domain/nexus/service/local). If not " -447 + "set the Nexus Analyzer will be disabled.")) -448 .addOption(newOptionWithArg(ARGUMENT.NEXUS_USERNAME, "username", -449 "The username to authenticate to the Nexus Server's REST API Endpoint. If not set the Nexus " -450 + "Analyzer will use an unauthenticated connection.")) -451 .addOption(newOptionWithArg(ARGUMENT.NEXUS_PASSWORD, "password", -452 "The password to authenticate to the Nexus Server's REST API Endpoint. If not set the Nexus " -453 + "Analyzer will use an unauthenticated connection.")) -454 //TODO remove as this should be covered by non-proxy hosts -455 .addOption(newOptionWithArg(ARGUMENT.NEXUS_USES_PROXY, "true/false", -456 "Whether or not the configured proxy should be used when connecting to Nexus.")) -457 .addOption(newOptionWithArg(ARGUMENT.ADDITIONAL_ZIP_EXTENSIONS, "extensions", -458 "A comma separated list of additional extensions to be scanned as ZIP files (ZIP, EAR, WAR " -459 + "are already treated as zip files)")) -460 .addOption(newOptionWithArg(ARGUMENT.PROP_SHORT, ARGUMENT.PROP, "file", "A property file to load.")) -461 .addOption(newOptionWithArg(ARGUMENT.PATH_TO_CORE, "path", "The path to dotnet core.")) -462 .addOption(newOptionWithArg(ARGUMENT.HINTS_FILE, "file", "The file path to the hints XML file.")) -463 .addOption(newOption(ARGUMENT.RETIRED, "Enables the retired analyzers.")) -464 .addOption(newOption(ARGUMENT.DISABLE_MSBUILD, "Disable the MS Build Analyzer.")) -465 .addOption(newOption(ARGUMENT.DISABLE_JAR, "Disable the Jar Analyzer.")) -466 .addOption(newOption(ARGUMENT.DISABLE_ARCHIVE, "Disable the Archive Analyzer.")) -467 .addOption(newOption(ARGUMENT.DISABLE_KEV, "Disable the Known Exploited Vulnerability Analyzer.")) -468 .addOption(newOptionWithArg(ARGUMENT.KEV_URL, "url", "The url to the CISA Known Exploited Vulnerabilities JSON data feed")) -469 .addOption(newOption(ARGUMENT.DISABLE_ASSEMBLY, "Disable the .NET Assembly Analyzer.")) -470 .addOption(newOption(ARGUMENT.DISABLE_PY_DIST, "Disable the Python Distribution Analyzer.")) -471 .addOption(newOption(ARGUMENT.DISABLE_CMAKE, "Disable the Cmake Analyzer.")) -472 .addOption(newOption(ARGUMENT.DISABLE_PY_PKG, "Disable the Python Package Analyzer.")) -473 .addOption(newOption(ARGUMENT.DISABLE_MIX_AUDIT, "Disable the Elixir mix_audit Analyzer.")) -474 .addOption(newOption(ARGUMENT.DISABLE_RUBYGEMS, "Disable the Ruby Gemspec Analyzer.")) -475 .addOption(newOption(ARGUMENT.DISABLE_BUNDLE_AUDIT, "Disable the Ruby Bundler-Audit Analyzer.")) -476 .addOption(newOption(ARGUMENT.DISABLE_FILENAME, "Disable the File Name Analyzer.")) -477 .addOption(newOption(ARGUMENT.DISABLE_AUTOCONF, "Disable the Autoconf Analyzer.")) -478 .addOption(newOption(ARGUMENT.DISABLE_MAVEN_INSTALL, "Disable the Maven install Analyzer.")) -479 .addOption(newOption(ARGUMENT.DISABLE_PIP, "Disable the pip Analyzer.")) -480 .addOption(newOption(ARGUMENT.DISABLE_PIPFILE, "Disable the Pipfile Analyzer.")) -481 .addOption(newOption(ARGUMENT.DISABLE_COMPOSER, "Disable the PHP Composer Analyzer.")) -482 .addOption(newOption(ARGUMENT.DISABLE_CPAN, "Disable the Perl CPAN file Analyzer.")) -483 .addOption(newOption(ARGUMENT.DISABLE_POETRY, "Disable the Poetry Analyzer.")) -484 .addOption(newOption(ARGUMENT.DISABLE_GOLANG_MOD, "Disable the Golang Mod Analyzer.")) -485 .addOption(newOption(ARGUMENT.DISABLE_DART, "Disable the Dart Analyzer.")) -486 .addOption(newOption(ARGUMENT.DISABLE_OPENSSL, "Disable the OpenSSL Analyzer.")) -487 .addOption(newOption(ARGUMENT.DISABLE_NUSPEC, "Disable the Nuspec Analyzer.")) -488 .addOption(newOption(ARGUMENT.DISABLE_NUGETCONF, "Disable the Nuget packages.config Analyzer.")) -489 .addOption(newOption(ARGUMENT.DISABLE_CENTRAL, "Disable the Central Analyzer. If this analyzer " -490 + "is disabled it is likely you also want to disable the Nexus Analyzer.")) -491 .addOption(newOption(ARGUMENT.DISABLE_CENTRAL_CACHE, "Disallow the Central Analyzer from caching results")) -492 .addOption(newOption(ARGUMENT.DISABLE_OSSINDEX, "Disable the Sonatype OSS Index Analyzer.")) -493 .addOption(newOption(ARGUMENT.DISABLE_OSSINDEX_CACHE, "Disallow the OSS Index Analyzer from caching results")) -494 .addOption(newOption(ARGUMENT.DISABLE_COCOAPODS, "Disable the CocoaPods Analyzer.")) -495 .addOption(newOption(ARGUMENT.DISABLE_SWIFT, "Disable the swift package Analyzer.")) -496 .addOption(newOption(ARGUMENT.DISABLE_SWIFT_RESOLVED, "Disable the swift package resolved Analyzer.")) -497 .addOption(newOption(ARGUMENT.DISABLE_GO_DEP, "Disable the Golang Package Analyzer.")) -498 .addOption(newOption(ARGUMENT.DISABLE_NODE_JS, "Disable the Node.js Package Analyzer.")) -499 .addOption(newOption(ARGUMENT.NODE_PACKAGE_SKIP_DEV_DEPENDENCIES, "Configures the Node Package Analyzer to skip devDependencies")) -500 .addOption(newOption(ARGUMENT.DISABLE_NODE_AUDIT, "Disable the Node Audit Analyzer.")) -501 .addOption(newOption(ARGUMENT.DISABLE_PNPM_AUDIT, "Disable the Pnpm Audit Analyzer.")) -502 .addOption(newOption(ARGUMENT.DISABLE_YARN_AUDIT, "Disable the Yarn Audit Analyzer.")) -503 .addOption(newOption(ARGUMENT.DISABLE_NODE_AUDIT_CACHE, "Disallow the Node Audit Analyzer from caching results")) -504 .addOption(newOption(ARGUMENT.DISABLE_NODE_AUDIT_SKIPDEV, "Configures the Node Audit Analyzer to skip devDependencies")) -505 .addOption(newOption(ARGUMENT.DISABLE_RETIRE_JS, "Disable the RetireJS Analyzer.")) -506 .addOption(newOption(ARGUMENT.ENABLE_NEXUS, "Enable the Nexus Analyzer.")) -507 .addOption(newOption(ARGUMENT.ARTIFACTORY_ENABLED, "Whether the Artifactory Analyzer should be enabled.")) -508 .addOption(newOption(ARGUMENT.PURGE_NVD, "Purges the local NVD data cache")) -509 .addOption(newOption(ARGUMENT.DISABLE_HOSTED_SUPPRESSIONS, "Disable the usage of the hosted suppressions file")) -510 .addOption(newOption(ARGUMENT.HOSTED_SUPPRESSIONS_FORCEUPDATE, "Force the hosted suppressions file to update even" -511 + " if autoupdate is disabled")) -512 .addOption(newOptionWithArg(ARGUMENT.HOSTED_SUPPRESSIONS_VALID_FOR_HOURS, "hours", -513 "The number of hours to wait before checking for new updates of the the hosted suppressions file.")) -514 .addOption(newOptionWithArg(ARGUMENT.HOSTED_SUPPRESSIONS_URL, "url", -515 "The URL for a mirrored hosted suppressions file")); -516 -517 } +421 .addOption(newOptionWithArg(ARGUMENT.RETIREJS_URL_PASSWORD, "password", +422 "The password to authenticate to Retire JS Repository URL")) +423 .addOption(newOption(ARGUMENT.RETIREJS_FILTER_NON_VULNERABLE, "Specifies that the Retire JS " +424 + "Analyzer should filter out non-vulnerable JS files from the report.")) +425 .addOption(newOptionWithArg(ARGUMENT.ARTIFACTORY_PARALLEL_ANALYSIS, "true/false", +426 "Whether the Artifactory Analyzer should use parallel analysis.")) +427 .addOption(newOptionWithArg(ARGUMENT.ARTIFACTORY_USES_PROXY, "true/false", +428 "Whether the Artifactory Analyzer should use the proxy.")) +429 .addOption(newOptionWithArg(ARGUMENT.ARTIFACTORY_USERNAME, "username", +430 "The Artifactory username for authentication.")) +431 .addOption(newOptionWithArg(ARGUMENT.ARTIFACTORY_API_TOKEN, "token", +432 "The Artifactory API token.")) +433 .addOption(newOptionWithArg(ARGUMENT.ARTIFACTORY_BEARER_TOKEN, "token", +434 "The Artifactory bearer token.")) +435 .addOption(newOptionWithArg(ARGUMENT.ARTIFACTORY_URL, "url", +436 "The Artifactory URL.")) +437 .addOption(newOptionWithArg(ARGUMENT.PATH_TO_GO, "path", +438 "The path to the `go` executable.")) +439 .addOption(newOptionWithArg(ARGUMENT.PATH_TO_YARN, "path", +440 "The path to the `yarn` executable.")) +441 .addOption(newOptionWithArg(ARGUMENT.PATH_TO_PNPM, "path", +442 "The path to the `pnpm` executable.")) +443 .addOption(newOptionWithArg(ARGUMENT.RETIREJS_FILTERS, "pattern", +444 "Specify Retire JS content filter used to exclude files from analysis based on their content; " +445 + "most commonly used to exclude based on your applications own copyright line. This " +446 + "option can be specified multiple times.")) +447 .addOption(newOptionWithArg(ARGUMENT.NEXUS_URL, "url", +448 "The url to the Nexus Server's REST API Endpoint (http://domain/nexus/service/local). If not " +449 + "set the Nexus Analyzer will be disabled.")) +450 .addOption(newOptionWithArg(ARGUMENT.NEXUS_USERNAME, "username", +451 "The username to authenticate to the Nexus Server's REST API Endpoint. If not set the Nexus " +452 + "Analyzer will use an unauthenticated connection.")) +453 .addOption(newOptionWithArg(ARGUMENT.NEXUS_PASSWORD, "password", +454 "The password to authenticate to the Nexus Server's REST API Endpoint. If not set the Nexus " +455 + "Analyzer will use an unauthenticated connection.")) +456 //TODO remove as this should be covered by non-proxy hosts +457 .addOption(newOptionWithArg(ARGUMENT.NEXUS_USES_PROXY, "true/false", +458 "Whether or not the configured proxy should be used when connecting to Nexus.")) +459 .addOption(newOptionWithArg(ARGUMENT.ADDITIONAL_ZIP_EXTENSIONS, "extensions", +460 "A comma separated list of additional extensions to be scanned as ZIP files (ZIP, EAR, WAR " +461 + "are already treated as zip files)")) +462 .addOption(newOptionWithArg(ARGUMENT.PROP_SHORT, ARGUMENT.PROP, "file", "A property file to load.")) +463 .addOption(newOptionWithArg(ARGUMENT.PATH_TO_CORE, "path", "The path to dotnet core.")) +464 .addOption(newOptionWithArg(ARGUMENT.HINTS_FILE, "file", "The file path to the hints XML file.")) +465 .addOption(newOption(ARGUMENT.RETIRED, "Enables the retired analyzers.")) +466 .addOption(newOption(ARGUMENT.DISABLE_MSBUILD, "Disable the MS Build Analyzer.")) +467 .addOption(newOption(ARGUMENT.DISABLE_JAR, "Disable the Jar Analyzer.")) +468 .addOption(newOption(ARGUMENT.DISABLE_ARCHIVE, "Disable the Archive Analyzer.")) +469 .addOption(newOption(ARGUMENT.DISABLE_KEV, "Disable the Known Exploited Vulnerability Analyzer.")) +470 .addOption(newOptionWithArg(ARGUMENT.KEV_URL, "url", "The url to the CISA Known Exploited Vulnerabilities JSON data feed")) +471 .addOption(newOption(ARGUMENT.DISABLE_ASSEMBLY, "Disable the .NET Assembly Analyzer.")) +472 .addOption(newOption(ARGUMENT.DISABLE_PY_DIST, "Disable the Python Distribution Analyzer.")) +473 .addOption(newOption(ARGUMENT.DISABLE_CMAKE, "Disable the Cmake Analyzer.")) +474 .addOption(newOption(ARGUMENT.DISABLE_PY_PKG, "Disable the Python Package Analyzer.")) +475 .addOption(newOption(ARGUMENT.DISABLE_MIX_AUDIT, "Disable the Elixir mix_audit Analyzer.")) +476 .addOption(newOption(ARGUMENT.DISABLE_RUBYGEMS, "Disable the Ruby Gemspec Analyzer.")) +477 .addOption(newOption(ARGUMENT.DISABLE_BUNDLE_AUDIT, "Disable the Ruby Bundler-Audit Analyzer.")) +478 .addOption(newOption(ARGUMENT.DISABLE_FILENAME, "Disable the File Name Analyzer.")) +479 .addOption(newOption(ARGUMENT.DISABLE_AUTOCONF, "Disable the Autoconf Analyzer.")) +480 .addOption(newOption(ARGUMENT.DISABLE_MAVEN_INSTALL, "Disable the Maven install Analyzer.")) +481 .addOption(newOption(ARGUMENT.DISABLE_PIP, "Disable the pip Analyzer.")) +482 .addOption(newOption(ARGUMENT.DISABLE_PIPFILE, "Disable the Pipfile Analyzer.")) +483 .addOption(newOption(ARGUMENT.DISABLE_COMPOSER, "Disable the PHP Composer Analyzer.")) +484 .addOption(newOption(ARGUMENT.DISABLE_CPAN, "Disable the Perl CPAN file Analyzer.")) +485 .addOption(newOption(ARGUMENT.DISABLE_POETRY, "Disable the Poetry Analyzer.")) +486 .addOption(newOption(ARGUMENT.DISABLE_GOLANG_MOD, "Disable the Golang Mod Analyzer.")) +487 .addOption(newOption(ARGUMENT.DISABLE_DART, "Disable the Dart Analyzer.")) +488 .addOption(newOption(ARGUMENT.DISABLE_OPENSSL, "Disable the OpenSSL Analyzer.")) +489 .addOption(newOption(ARGUMENT.DISABLE_NUSPEC, "Disable the Nuspec Analyzer.")) +490 .addOption(newOption(ARGUMENT.DISABLE_NUGETCONF, "Disable the Nuget packages.config Analyzer.")) +491 .addOption(newOption(ARGUMENT.DISABLE_CENTRAL, "Disable the Central Analyzer. If this analyzer " +492 + "is disabled it is likely you also want to disable the Nexus Analyzer.")) +493 .addOption(newOption(ARGUMENT.DISABLE_CENTRAL_CACHE, "Disallow the Central Analyzer from caching results")) +494 .addOption(newOption(ARGUMENT.DISABLE_OSSINDEX, "Disable the Sonatype OSS Index Analyzer.")) +495 .addOption(newOption(ARGUMENT.DISABLE_OSSINDEX_CACHE, "Disallow the OSS Index Analyzer from caching results")) +496 .addOption(newOption(ARGUMENT.DISABLE_COCOAPODS, "Disable the CocoaPods Analyzer.")) +497 .addOption(newOption(ARGUMENT.DISABLE_SWIFT, "Disable the swift package Analyzer.")) +498 .addOption(newOption(ARGUMENT.DISABLE_SWIFT_RESOLVED, "Disable the swift package resolved Analyzer.")) +499 .addOption(newOption(ARGUMENT.DISABLE_GO_DEP, "Disable the Golang Package Analyzer.")) +500 .addOption(newOption(ARGUMENT.DISABLE_NODE_JS, "Disable the Node.js Package Analyzer.")) +501 .addOption(newOption(ARGUMENT.NODE_PACKAGE_SKIP_DEV_DEPENDENCIES, "Configures the Node Package Analyzer to skip devDependencies")) +502 .addOption(newOption(ARGUMENT.DISABLE_NODE_AUDIT, "Disable the Node Audit Analyzer.")) +503 .addOption(newOption(ARGUMENT.DISABLE_PNPM_AUDIT, "Disable the Pnpm Audit Analyzer.")) +504 .addOption(newOption(ARGUMENT.DISABLE_YARN_AUDIT, "Disable the Yarn Audit Analyzer.")) +505 .addOption(newOption(ARGUMENT.DISABLE_NODE_AUDIT_CACHE, "Disallow the Node Audit Analyzer from caching results")) +506 .addOption(newOption(ARGUMENT.DISABLE_NODE_AUDIT_SKIPDEV, "Configures the Node Audit Analyzer to skip devDependencies")) +507 .addOption(newOption(ARGUMENT.DISABLE_RETIRE_JS, "Disable the RetireJS Analyzer.")) +508 .addOption(newOption(ARGUMENT.ENABLE_NEXUS, "Enable the Nexus Analyzer.")) +509 .addOption(newOption(ARGUMENT.ARTIFACTORY_ENABLED, "Whether the Artifactory Analyzer should be enabled.")) +510 .addOption(newOption(ARGUMENT.PURGE_NVD, "Purges the local NVD data cache")) +511 .addOption(newOption(ARGUMENT.DISABLE_HOSTED_SUPPRESSIONS, "Disable the usage of the hosted suppressions file")) +512 .addOption(newOption(ARGUMENT.HOSTED_SUPPRESSIONS_FORCEUPDATE, "Force the hosted suppressions file to update even" +513 + " if autoupdate is disabled")) +514 .addOption(newOptionWithArg(ARGUMENT.HOSTED_SUPPRESSIONS_VALID_FOR_HOURS, "hours", +515 "The number of hours to wait before checking for new updates of the the hosted suppressions file.")) +516 .addOption(newOptionWithArg(ARGUMENT.HOSTED_SUPPRESSIONS_URL, "url", +517 "The URL for a mirrored hosted suppressions file")); 518 -519 /** -520 * Adds the deprecated command line options to the given options collection. -521 * These are split out for purposes of not including them in the help -522 * message. We need to add the deprecated options so as not to break -523 * existing scripts. -524 * -525 * @param options a collection of command line arguments -526 */ -527 @SuppressWarnings({"static-access", "deprecation"}) -528 private void addDeprecatedOptions(final Options options) { -529 //not a real option - but enables java debugging via the shell script -530 options.addOption(newOption("debug", -531 "Used to enable java debugging of the cli via dependency-check.sh.")); -532 } -533 -534 /** -535 * Determines if the 'version' command line argument was passed in. -536 * -537 * @return whether or not the 'version' command line argument was passed in -538 */ -539 public boolean isGetVersion() { -540 return (line != null) && line.hasOption(ARGUMENT.VERSION); -541 } -542 -543 /** -544 * Determines if the 'help' command line argument was passed in. -545 * -546 * @return whether or not the 'help' command line argument was passed in -547 */ -548 public boolean isGetHelp() { -549 return (line != null) && line.hasOption(ARGUMENT.HELP); -550 } -551 -552 /** -553 * Determines if the 'scan' command line argument was passed in. -554 * -555 * @return whether or not the 'scan' command line argument was passed in -556 */ -557 public boolean isRunScan() { -558 return (line != null) && isValid && line.hasOption(ARGUMENT.SCAN); -559 } -560 -561 /** -562 * Returns the symbolic link depth (how deeply symbolic links will be -563 * followed). -564 * -565 * @return the symbolic link depth -566 */ -567 public int getSymLinkDepth() { -568 int value = 0; -569 try { -570 value = Integer.parseInt(line.getOptionValue(ARGUMENT.SYM_LINK_DEPTH, "0")); -571 if (value < 0) { -572 value = 0; -573 } -574 } catch (NumberFormatException ex) { -575 LOGGER.debug("Symbolic link was not a number"); -576 } -577 return value; -578 } -579 -580 /** -581 * Utility method to determine if one of the disable options has been set. -582 * If not set, this method will check the currently configured settings for -583 * the current value to return. -584 * <p> -585 * Example given `--disableArchive` on the command line would cause this -586 * method to return true for the disable archive setting. -587 * -588 * @param disableFlag the command line disable option -589 * @param setting the corresponding settings key -590 * @return true if the disable option was set, if not set the currently -591 * configured value will be returned -592 */ -593 public boolean isDisabled(String disableFlag, String setting) { -594 if (line == null || !line.hasOption(disableFlag)) { -595 try { -596 return !settings.getBoolean(setting); -597 } catch (InvalidSettingException ise) { -598 LOGGER.warn("Invalid property setting '{}' defaulting to false", setting); -599 return false; -600 } -601 } else { -602 return true; -603 } -604 } -605 -606 /** -607 * Returns true if the disableNodeAudit command line argument was specified. -608 * -609 * @return true if the disableNodeAudit command line argument was specified; -610 * otherwise false -611 */ -612 public boolean isNodeAuditDisabled() { -613 return isDisabled(ARGUMENT.DISABLE_NODE_AUDIT, Settings.KEYS.ANALYZER_NODE_AUDIT_ENABLED); -614 } -615 -616 /** -617 * Returns true if the disableYarnAudit command line argument was specified. -618 * -619 * @return true if the disableYarnAudit command line argument was specified; -620 * otherwise false -621 */ -622 public boolean isYarnAuditDisabled() { -623 return isDisabled(ARGUMENT.DISABLE_YARN_AUDIT, Settings.KEYS.ANALYZER_YARN_AUDIT_ENABLED); -624 } -625 -626 /** -627 * Returns true if the disablePnpmAudit command line argument was specified. -628 * -629 * @return true if the disablePnpmAudit command line argument was specified; -630 * otherwise false -631 */ -632 public boolean isPnpmAuditDisabled() { -633 return isDisabled(ARGUMENT.DISABLE_PNPM_AUDIT, Settings.KEYS.ANALYZER_PNPM_AUDIT_ENABLED); -634 } -635 -636 /** -637 * Returns true if the Nexus Analyzer should use the configured proxy to -638 * connect to Nexus; otherwise false is returned. -639 * -640 * @return true if the Nexus Analyzer should use the configured proxy to -641 * connect to Nexus; otherwise false -642 */ -643 public boolean isNexusUsesProxy() { -644 // If they didn't specify whether Nexus needs to use the proxy, we should -645 // still honor the property if it's set. -646 if (line == null || !line.hasOption(ARGUMENT.NEXUS_USES_PROXY)) { -647 try { -648 return settings.getBoolean(Settings.KEYS.ANALYZER_NEXUS_USES_PROXY); -649 } catch (InvalidSettingException ise) { -650 return true; -651 } -652 } else { -653 return Boolean.parseBoolean(line.getOptionValue(ARGUMENT.NEXUS_USES_PROXY)); -654 } -655 } -656 -657 /** -658 * Returns the argument boolean value. -659 * -660 * @param argument the argument -661 * @return the argument boolean value -662 */ -663 @SuppressFBWarnings(justification = "Accepting that this is a bad practice - used a Boolean as we needed three states", -664 value = {"NP_BOOLEAN_RETURN_NULL"}) -665 public Boolean getBooleanArgument(String argument) { -666 if (line != null && line.hasOption(argument)) { -667 final String value = line.getOptionValue(argument); -668 if (value != null) { -669 return Boolean.parseBoolean(value); -670 } -671 } -672 return null; -673 } -674 -675 /** -676 * Returns the argument value for the given option. -677 * -678 * @param option the option -679 * @return the value of the argument -680 */ -681 public String getStringArgument(String option) { -682 return getStringArgument(option, null); -683 } -684 -685 /** -686 * Returns the argument value for the given option. -687 * -688 * @param option the option -689 * @param key the dependency-check settings key for the option. -690 * @return the value of the argument -691 */ -692 public String getStringArgument(String option, String key) { -693 if (line != null && line.hasOption(option)) { -694 if (key != null && (option.toLowerCase().endsWith("password") -695 || option.toLowerCase().endsWith("pass"))) { -696 LOGGER.warn("{} used on the command line, consider moving the password " -697 + "to a properties file using the key `{}` and using the " -698 + "--propertyfile argument instead", option, key); -699 } -700 return line.getOptionValue(option); -701 } -702 return null; -703 } -704 -705 /** -706 * Returns the argument value for the given option. -707 * -708 * @param option the option -709 * @return the value of the argument -710 */ -711 public String[] getStringArguments(String option) { -712 if (line != null && line.hasOption(option)) { -713 return line.getOptionValues(option); -714 } -715 return null; -716 } -717 -718 /** -719 * Returns the argument value for the given option. -720 * -721 * @param option the option -722 * @return the value of the argument -723 */ -724 public File getFileArgument(String option) { -725 final String path = line.getOptionValue(option); -726 if (path != null) { -727 return new File(path); -728 } -729 return null; -730 } -731 -732 /** -733 * Displays the command line help message to the standard output. -734 */ -735 public void printHelp() { -736 final HelpFormatter formatter = new HelpFormatter(); -737 final Options options = new Options(); -738 addStandardOptions(options); -739 if (line != null && line.hasOption(ARGUMENT.ADVANCED_HELP)) { -740 addAdvancedOptions(options); -741 } -742 final String helpMsg = String.format("%n%s" -743 + " can be used to identify if there are any known CVE vulnerabilities in libraries utilized by an application. " -744 + "%s will automatically update required data from the Internet, such as the CVE and CPE data files from nvd.nist.gov.%n%n", -745 settings.getString(Settings.KEYS.APPLICATION_NAME, "DependencyCheck"), -746 settings.getString(Settings.KEYS.APPLICATION_NAME, "DependencyCheck")); -747 -748 formatter.printHelp(settings.getString(Settings.KEYS.APPLICATION_NAME, "DependencyCheck"), -749 helpMsg, -750 options, -751 "", -752 true); -753 } -754 -755 /** -756 * Retrieves the file command line parameter(s) specified for the 'scan' -757 * argument. -758 * -759 * @return the file paths specified on the command line for scan -760 */ -761 public String[] getScanFiles() { -762 return line.getOptionValues(ARGUMENT.SCAN); -763 } -764 -765 /** -766 * Retrieves the list of excluded file patterns specified by the 'exclude' -767 * argument. -768 * -769 * @return the excluded file patterns -770 */ -771 public String[] getExcludeList() { -772 return line.getOptionValues(ARGUMENT.EXCLUDE); -773 } -774 -775 /** -776 * Retrieves the list of retire JS content filters used to exclude JS files -777 * by content. -778 * -779 * @return the retireJS filters -780 */ -781 public String[] getRetireJsFilters() { -782 return line.getOptionValues(ARGUMENT.RETIREJS_FILTERS); -783 } -784 -785 /** -786 * Returns whether or not the retireJS analyzer should exclude -787 * non-vulnerable JS from the report. -788 * -789 * @return <code>true</code> if non-vulnerable JS should be filtered in the -790 * RetireJS Analyzer; otherwise <code>null</code> -791 */ -792 @SuppressFBWarnings(justification = "Accepting that this is a bad practice - but made more sense in this use case", -793 value = {"NP_BOOLEAN_RETURN_NULL"}) -794 public Boolean isRetireJsFilterNonVulnerable() { -795 return (line != null && line.hasOption(ARGUMENT.RETIREJS_FILTER_NON_VULNERABLE)) ? true : null; -796 } -797 -798 /** -799 * Returns the directory to write the reports to specified on the command -800 * line. -801 * -802 * @return the path to the reports directory. -803 */ -804 public String getReportDirectory() { -805 return line.getOptionValue(ARGUMENT.OUT, "."); -806 } -807 -808 /** -809 * Returns the output format specified on the command line. Defaults to HTML -810 * if no format was specified. -811 * -812 * @return the output format name. -813 */ -814 public String[] getReportFormat() { -815 if (line.hasOption(ARGUMENT.OUTPUT_FORMAT)) { -816 return line.getOptionValues(ARGUMENT.OUTPUT_FORMAT); -817 } -818 return new String[]{"HTML"}; -819 } -820 -821 /** -822 * Returns the application name specified on the command line. -823 * -824 * @return the application name. -825 */ -826 public String getProjectName() { -827 String name = line.getOptionValue(ARGUMENT.PROJECT); -828 if (name == null) { -829 name = ""; -830 } -831 return name; -832 } -833 -834 /** -835 * <p> -836 * Prints the manifest information to standard output.</p> -837 * <ul><li>Implementation-Title: ${pom.name}</li> -838 * <li>Implementation-Version: ${pom.version}</li></ul> -839 */ -840 public void printVersionInfo() { -841 final String version = String.format("%s version %s", -842 settings.getString(Settings.KEYS.APPLICATION_NAME, "dependency-check"), -843 settings.getString(Settings.KEYS.APPLICATION_VERSION, "Unknown")); -844 System.out.println(version); -845 } -846 -847 /** -848 * Checks if the update only flag has been set. -849 * -850 * @return <code>true</code> if the update only flag has been set; otherwise -851 * <code>false</code>. -852 */ -853 public boolean isUpdateOnly() { -854 return line != null && line.hasOption(ARGUMENT.UPDATE_ONLY); -855 } -856 -857 /** -858 * Checks if the purge NVD flag has been set. -859 * -860 * @return <code>true</code> if the purge nvd flag has been set; otherwise -861 * <code>false</code>. -862 */ -863 public boolean isPurge() { -864 return line != null && line.hasOption(ARGUMENT.PURGE_NVD); -865 } -866 -867 /** -868 * Returns the database driver name if specified; otherwise null is -869 * returned. -870 * -871 * @return the database driver name if specified; otherwise null is returned -872 */ -873 public String getDatabaseDriverName() { -874 return line.getOptionValue(ARGUMENT.DB_DRIVER); -875 } -876 -877 /** -878 * Returns the argument value. -879 * -880 * @param argument the argument -881 * @return the value of the argument -882 */ -883 public Integer getIntegerValue(String argument) { -884 final String v = line.getOptionValue(argument); -885 if (v != null) { -886 return Integer.parseInt(v); -887 } -888 return null; -889 } -890 -891 /** -892 * Checks if the option is present. If present it will return -893 * <code>true</code>; otherwise <code>false</code>. -894 * -895 * @param option the option to check -896 * @return <code>true</code> if auto-update is allowed; otherwise -897 * <code>null</code> -898 */ -899 @SuppressFBWarnings(justification = "Accepting that this is a bad practice - but made more sense in this use case", -900 value = {"NP_BOOLEAN_RETURN_NULL"}) -901 public Boolean hasOption(String option) { -902 return (line != null && line.hasOption(option)) ? true : null; -903 } -904 -905 /** -906 * Returns the CVSS value to fail on. -907 * -908 * @return 11 if nothing is set. Otherwise it returns the int passed from -909 * the command line arg -910 */ -911 public float getFailOnCVSS() { -912 if (line.hasOption(ARGUMENT.FAIL_ON_CVSS)) { -913 final String value = line.getOptionValue(ARGUMENT.FAIL_ON_CVSS); -914 try { -915 return Float.parseFloat(value); -916 } catch (NumberFormatException nfe) { -917 return 11; -918 } -919 } else { -920 return 11; -921 } -922 } -923 -924 /** -925 * Returns the float argument for the given option. -926 * -927 * @param option the option -928 * @param defaultValue the value if the option is not present -929 * @return the value of the argument if present; otherwise the defaultValue -930 */ -931 public float getFloatArgument(String option, float defaultValue) { -932 if (line.hasOption(option)) { -933 final String value = line.getOptionValue(option); -934 try { -935 return Integer.parseInt(value); -936 } catch (NumberFormatException nfe) { -937 return defaultValue; -938 } -939 } else { -940 return defaultValue; -941 } -942 } -943 -944 /** -945 * Builds a new option. -946 * -947 * @param name the long name -948 * @param description the description -949 * @return a new option -950 */ -951 private Option newOption(String name, String description) { -952 return Option.builder().longOpt(name).desc(description).build(); -953 } -954 -955 /** -956 * Builds a new option. -957 * -958 * @param shortName the short name -959 * @param name the long name -960 * @param description the description -961 * @return a new option -962 */ -963 private Option newOption(String shortName, String name, String description) { -964 return Option.builder(shortName).longOpt(name).desc(description).build(); -965 } -966 -967 /** -968 * Builds a new option. -969 * -970 * @param name the long name -971 * @param arg the argument name -972 * @param description the description -973 * @return a new option -974 */ -975 private Option newOptionWithArg(String name, String arg, String description) { -976 return Option.builder().longOpt(name).argName(arg).hasArg().desc(description).build(); -977 } -978 -979 /** -980 * Builds a new option. -981 * -982 * @param shortName the short name -983 * @param name the long name -984 * @param arg the argument name -985 * @param description the description -986 * @return a new option -987 */ -988 private Option newOptionWithArg(String shortName, String name, String arg, String description) { -989 return Option.builder(shortName).longOpt(name).argName(arg).hasArg().desc(description).build(); -990 } -991 -992 /** -993 * Builds a new option group so that an option can be specified multiple -994 * times on the command line. -995 * -996 * @param option the option to add to the group -997 * @return a new option group -998 */ -999 private OptionGroup newOptionGroup(Option option) { -1000 final OptionGroup group = new OptionGroup(); -1001 group.addOption(option); -1002 return group; -1003 } -1004 -1005 /** -1006 * A collection of static final strings that represent the possible command -1007 * line arguments. -1008 */ -1009 public static class ARGUMENT { -1010 -1011 /** -1012 * The long CLI argument name specifying the directory/file to scan. -1013 */ -1014 public static final String SCAN = "scan"; -1015 /** -1016 * The short CLI argument name specifying the directory/file to scan. -1017 */ -1018 public static final String SCAN_SHORT = "s"; -1019 /** -1020 * The long CLI argument name specifying that the CPE/CVE/etc. data -1021 * should not be automatically updated. -1022 */ -1023 public static final String DISABLE_AUTO_UPDATE = "noupdate"; -1024 /** -1025 * The short CLI argument name specifying that the CPE/CVE/etc. data -1026 * should not be automatically updated. -1027 */ -1028 public static final String DISABLE_AUTO_UPDATE_SHORT = "n"; -1029 /** -1030 * The long CLI argument name specifying that only the update phase -1031 * should be executed; no scan should be run. -1032 */ -1033 public static final String UPDATE_ONLY = "updateonly"; -1034 /** -1035 * The long CLI argument name specifying that only the update phase -1036 * should be executed; no scan should be run. -1037 */ -1038 public static final String PURGE_NVD = "purge"; -1039 /** -1040 * The long CLI argument name specifying the directory to write the -1041 * reports to. -1042 */ -1043 public static final String OUT = "out"; -1044 /** -1045 * The short CLI argument name specifying the directory to write the -1046 * reports to. -1047 */ -1048 public static final String OUT_SHORT = "o"; -1049 /** -1050 * The long CLI argument name specifying the output format to write the -1051 * reports to. -1052 */ -1053 public static final String OUTPUT_FORMAT = "format"; -1054 /** -1055 * The short CLI argument name specifying the output format to write the -1056 * reports to. -1057 */ -1058 public static final String OUTPUT_FORMAT_SHORT = "f"; -1059 /** -1060 * The long CLI argument name specifying the name of the project to be -1061 * scanned. -1062 */ -1063 public static final String PROJECT = "project"; -1064 /** -1065 * The long CLI argument name asking for help. -1066 */ -1067 public static final String HELP = "help"; -1068 /** -1069 * The long CLI argument name asking for advanced help. -1070 */ -1071 public static final String ADVANCED_HELP = "advancedHelp"; -1072 /** -1073 * The short CLI argument name asking for help. -1074 */ -1075 public static final String HELP_SHORT = "h"; -1076 /** -1077 * The long CLI argument name asking for the version. -1078 */ -1079 public static final String VERSION_SHORT = "v"; -1080 /** -1081 * The short CLI argument name asking for the version. -1082 */ -1083 public static final String VERSION = "version"; -1084 /** -1085 * The CLI argument name indicating the proxy port. -1086 */ -1087 public static final String PROXY_PORT = "proxyport"; -1088 /** -1089 * The CLI argument name indicating the proxy server. -1090 */ -1091 public static final String PROXY_SERVER = "proxyserver"; -1092 /** -1093 * The CLI argument name indicating the proxy username. -1094 */ -1095 public static final String PROXY_USERNAME = "proxyuser"; -1096 /** -1097 * The CLI argument name indicating the proxy password. -1098 */ -1099 public static final String PROXY_PASSWORD = "proxypass"; -1100 /** -1101 * The CLI argument name indicating the proxy proxy exclusion list. -1102 */ -1103 public static final String NON_PROXY_HOSTS = "nonProxyHosts"; -1104 /** -1105 * The short CLI argument name indicating the connection timeout. -1106 */ -1107 public static final String CONNECTION_TIMEOUT_SHORT = "c"; -1108 /** -1109 * The CLI argument name indicating the connection timeout. -1110 */ -1111 public static final String CONNECTION_TIMEOUT = "connectiontimeout"; -1112 /** -1113 * The CLI argument name indicating the connection read timeout. -1114 */ -1115 public static final String CONNECTION_READ_TIMEOUT = "readtimeout"; -1116 /** -1117 * The short CLI argument name for setting the location of an additional -1118 * properties file. -1119 */ -1120 public static final String PROP_SHORT = "P"; -1121 /** -1122 * The CLI argument name for setting the location of an additional -1123 * properties file. -1124 */ -1125 public static final String PROP = "propertyfile"; -1126 /** -1127 * The CLI argument name for setting the location of the data directory. -1128 */ -1129 public static final String DATA_DIRECTORY = "data"; -1130 /** -1131 * The CLI argument name for setting the URL for the CVE Data Files. -1132 */ -1133 public static final String NVD_API_KEY = "nvdApiKey"; -1134 /** -1135 * The CLI argument name for setting the maximum number of retry requests for a single call to the NVD API. -1136 */ -1137 public static final String NVD_API_MAX_RETRY_COUNT = "nvdMaxRetryCount"; -1138 /** -1139 * The CLI argument name for setting the number of hours to wait before -1140 * checking for new updates from the NVD. -1141 */ -1142 public static final String NVD_API_VALID_FOR_HOURS = "nvdValidForHours"; -1143 /** -1144 * The CLI argument name for the NVD API Data Feed URL. -1145 */ -1146 public static final String NVD_API_DATAFEED_URL = "nvdDatafeed"; -1147 /** -1148 * The username for basic auth to the CVE data. -1149 */ -1150 public static final String NVD_API_DATAFEED_USER = "nvdUser"; -1151 /** -1152 * The password for basic auth to the CVE data. -1153 */ -1154 public static final String NVD_API_DATAFEED_PASSWORD = "nvdPassword"; -1155 /** -1156 * The time in milliseconds to wait between downloading NVD API data. -1157 */ -1158 public static final String NVD_API_DELAY = "nvdApiDelay"; -1159 /** -1160 * The short CLI argument name for setting the location of the data -1161 * directory. -1162 */ -1163 public static final String DATA_DIRECTORY_SHORT = "d"; -1164 /** -1165 * The CLI argument name for setting the location of the data directory. -1166 */ -1167 public static final String VERBOSE_LOG = "log"; -1168 /** -1169 * The short CLI argument name for setting the location of the data -1170 * directory. -1171 */ -1172 public static final String VERBOSE_LOG_SHORT = "l"; -1173 /** -1174 * The CLI argument name for setting the depth of symbolic links that -1175 * will be followed. -1176 */ -1177 public static final String SYM_LINK_DEPTH = "symLink"; -1178 /** -1179 * The CLI argument name for setting the location of the suppression -1180 * file(s). -1181 */ -1182 public static final String SUPPRESSION_FILES = "suppression"; -1183 /** -1184 * The CLI argument name for setting the location of the hint file. -1185 */ -1186 public static final String HINTS_FILE = "hints"; -1187 /** -1188 * Disables the Jar Analyzer. -1189 */ -1190 public static final String DISABLE_JAR = "disableJar"; -1191 /** -1192 * Disable the MS Build Analyzer. -1193 */ -1194 public static final String DISABLE_MSBUILD = "disableMSBuild"; -1195 /** -1196 * Disables the Archive Analyzer. -1197 */ -1198 public static final String DISABLE_ARCHIVE = "disableArchive"; -1199 /** -1200 * Disables the Known Exploited Analyzer. -1201 */ -1202 public static final String DISABLE_KEV = "disableKnownExploited"; -1203 /** -1204 * The URL to the CISA Known Exploited Vulnerability JSON datafeed. -1205 */ -1206 public static final String KEV_URL = "kevURL"; -1207 /** -1208 * Disables the Python Distribution Analyzer. -1209 */ -1210 public static final String DISABLE_PY_DIST = "disablePyDist"; -1211 /** -1212 * Disables the Python Package Analyzer. -1213 */ -1214 public static final String DISABLE_PY_PKG = "disablePyPkg"; -1215 /** -1216 * Disables the Elixir mix audit Analyzer. -1217 */ -1218 public static final String DISABLE_MIX_AUDIT = "disableMixAudit"; -1219 /** -1220 * Disables the Golang Dependency Analyzer. -1221 */ -1222 public static final String DISABLE_GO_DEP = "disableGolangDep"; -1223 /** -1224 * Disables the PHP Composer Analyzer. -1225 */ -1226 public static final String DISABLE_COMPOSER = "disableComposer"; -1227 /** -1228 * Disables the Perl CPAN File Analyzer. -1229 */ -1230 public static final String DISABLE_CPAN = "disableCpan"; -1231 /** -1232 * Disables the Golang Mod Analyzer. -1233 */ -1234 public static final String DISABLE_GOLANG_MOD = "disableGolangMod"; -1235 /** -1236 * Disables the Dart Analyzer. -1237 */ -1238 public static final String DISABLE_DART = "disableDart"; -1239 /** -1240 * The CLI argument name for setting the path to `go`. -1241 */ -1242 public static final String PATH_TO_GO = "go"; -1243 /** -1244 * The CLI argument name for setting the path to `yarn`. -1245 */ -1246 public static final String PATH_TO_YARN = "yarn"; -1247 /** -1248 * The CLI argument name for setting the path to `pnpm`. -1249 */ -1250 public static final String PATH_TO_PNPM = "pnpm"; -1251 /** -1252 * Disables the Ruby Gemspec Analyzer. -1253 */ -1254 public static final String DISABLE_RUBYGEMS = "disableRubygems"; -1255 /** -1256 * Disables the Autoconf Analyzer. -1257 */ -1258 public static final String DISABLE_AUTOCONF = "disableAutoconf"; -1259 /** -1260 * Disables the Maven install Analyzer. -1261 */ -1262 public static final String DISABLE_MAVEN_INSTALL = "disableMavenInstall"; -1263 /** -1264 * Disables the pip Analyzer. -1265 */ -1266 public static final String DISABLE_PIP = "disablePip"; -1267 /** -1268 * Disables the Pipfile Analyzer. -1269 */ -1270 public static final String DISABLE_PIPFILE = "disablePipfile"; -1271 /** -1272 * Disables the Poetry Analyzer. -1273 */ -1274 public static final String DISABLE_POETRY = "disablePoetry"; -1275 /** -1276 * Disables the Cmake Analyzer. -1277 */ -1278 public static final String DISABLE_CMAKE = "disableCmake"; -1279 /** -1280 * Disables the cocoapods analyzer. -1281 */ -1282 public static final String DISABLE_COCOAPODS = "disableCocoapodsAnalyzer"; -1283 /** -1284 * Disables the swift package manager analyzer. -1285 */ -1286 public static final String DISABLE_SWIFT = "disableSwiftPackageManagerAnalyzer"; -1287 /** -1288 * Disables the swift package resolved analyzer. -1289 */ -1290 public static final String DISABLE_SWIFT_RESOLVED = "disableSwiftPackageResolvedAnalyzer"; -1291 /** -1292 * Disables the Assembly Analyzer. -1293 */ -1294 public static final String DISABLE_ASSEMBLY = "disableAssembly"; -1295 /** -1296 * Disables the Ruby Bundler Audit Analyzer. -1297 */ -1298 public static final String DISABLE_BUNDLE_AUDIT = "disableBundleAudit"; -1299 /** -1300 * Disables the File Name Analyzer. -1301 */ -1302 public static final String DISABLE_FILENAME = "disableFileName"; -1303 /** -1304 * Disables the Nuspec Analyzer. -1305 */ -1306 public static final String DISABLE_NUSPEC = "disableNuspec"; -1307 /** -1308 * Disables the Nuget packages.config Analyzer. -1309 */ -1310 public static final String DISABLE_NUGETCONF = "disableNugetconf"; -1311 /** -1312 * Disables the Central Analyzer. -1313 */ -1314 public static final String DISABLE_CENTRAL = "disableCentral"; -1315 /** -1316 * Disables the Central Analyzer's ability to cache results locally. -1317 */ -1318 public static final String DISABLE_CENTRAL_CACHE = "disableCentralCache"; -1319 /** -1320 * The alternative URL for Maven Central Search. -1321 */ -1322 public static final String CENTRAL_URL = "centralUrl"; -1323 /** -1324 * Disables the Nexus Analyzer. -1325 */ -1326 public static final String ENABLE_NEXUS = "enableNexus"; -1327 /** -1328 * Disables the Sonatype OSS Index Analyzer. -1329 */ -1330 public static final String DISABLE_OSSINDEX = "disableOssIndex"; -1331 /** -1332 * Disables the Sonatype OSS Index Analyzer's ability to cache results -1333 * locally. -1334 */ -1335 public static final String DISABLE_OSSINDEX_CACHE = "disableOssIndexCache"; -1336 /** -1337 * The alternative URL for the Sonatype OSS Index. -1338 */ -1339 public static final String OSSINDEX_URL = "ossIndexUrl"; -1340 /** -1341 * The username for the Sonatype OSS Index. -1342 */ -1343 public static final String OSSINDEX_USERNAME = "ossIndexUsername"; -1344 /** -1345 * The password for the Sonatype OSS Index. -1346 */ -1347 public static final String OSSINDEX_PASSWORD = "ossIndexPassword"; -1348 /** -1349 * The password for the Sonatype OSS Index. -1350 */ -1351 public static final String OSSINDEX_WARN_ONLY_ON_REMOTE_ERRORS = "ossIndexRemoteErrorWarnOnly"; -1352 /** -1353 * Disables the OpenSSL Analyzer. -1354 */ -1355 public static final String DISABLE_OPENSSL = "disableOpenSSL"; -1356 /** -1357 * Disables the Node.js Package Analyzer. -1358 */ -1359 public static final String DISABLE_NODE_JS = "disableNodeJS"; -1360 /** -1361 * Skips dev dependencies in Node Package Analyzer. -1362 */ -1363 public static final String NODE_PACKAGE_SKIP_DEV_DEPENDENCIES = "nodePackageSkipDevDependencies"; -1364 /** -1365 * Disables the Node Audit Analyzer. -1366 */ -1367 public static final String DISABLE_NODE_AUDIT = "disableNodeAudit"; -1368 /** -1369 * Disables the Yarn Audit Analyzer. -1370 */ -1371 public static final String DISABLE_YARN_AUDIT = "disableYarnAudit"; -1372 /** -1373 * Disables the Pnpm Audit Analyzer. -1374 */ -1375 public static final String DISABLE_PNPM_AUDIT = "disablePnpmAudit"; -1376 /** -1377 * Disables the Node Audit Analyzer's ability to cache results locally. -1378 */ -1379 public static final String DISABLE_NODE_AUDIT_CACHE = "disableNodeAuditCache"; -1380 /** -1381 * Configures the Node Audit Analyzer to skip the dev dependencies. -1382 */ -1383 public static final String DISABLE_NODE_AUDIT_SKIPDEV = "nodeAuditSkipDevDependencies"; -1384 /** -1385 * Disables the RetireJS Analyzer. -1386 */ -1387 public static final String DISABLE_RETIRE_JS = "disableRetireJS"; -1388 /** -1389 * Whether the RetireJS Analyzer will update regardless of the -1390 * `autoupdate` setting. -1391 */ -1392 public static final String RETIRE_JS_FORCEUPDATE = "retireJsForceUpdate"; -1393 /** -1394 * The URL to the retire JS repository. -1395 */ -1396 public static final String RETIREJS_URL = "retireJsUrl"; -1397 /** -1398 * The username to the retire JS repository. -1399 */ -1400 public static final String RETIREJS_URL_USER = "retireJsUrlUser"; -1401 /** -1402 * The password to the retire JS repository. -1403 */ -1404 public static final String RETIREJS_URL_PASSWORD = "retireJsUrlPass"; -1405 /** -1406 * The URL of the nexus server. -1407 */ -1408 public static final String NEXUS_URL = "nexus"; -1409 /** -1410 * The username for the nexus server. -1411 */ -1412 public static final String NEXUS_USERNAME = "nexusUser"; -1413 /** -1414 * The password for the nexus server. -1415 */ -1416 public static final String NEXUS_PASSWORD = "nexusPass"; -1417 /** -1418 * Whether or not the defined proxy should be used when connecting to -1419 * Nexus. -1420 */ -1421 public static final String NEXUS_USES_PROXY = "nexusUsesProxy"; -1422 /** -1423 * The CLI argument name for setting the connection string. -1424 */ -1425 public static final String CONNECTION_STRING = "connectionString"; -1426 /** -1427 * The CLI argument name for setting the database user name. -1428 */ -1429 public static final String DB_NAME = "dbUser"; -1430 /** -1431 * The CLI argument name for setting the database password. -1432 */ -1433 public static final String DB_PASSWORD = "dbPassword"; -1434 /** -1435 * The CLI argument name for setting the database driver name. -1436 */ -1437 public static final String DB_DRIVER = "dbDriverName"; -1438 /** -1439 * The CLI argument name for setting the path to the database driver; in -1440 * case it is not on the class path. -1441 */ -1442 public static final String DB_DRIVER_PATH = "dbDriverPath"; -1443 /** -1444 * The CLI argument name for setting the path to dotnet core. -1445 */ -1446 public static final String PATH_TO_CORE = "dotnet"; -1447 /** -1448 * The CLI argument name for setting extra extensions. -1449 */ -1450 public static final String ADDITIONAL_ZIP_EXTENSIONS = "zipExtensions"; -1451 /** -1452 * Exclude path argument. -1453 */ -1454 public static final String EXCLUDE = "exclude"; -1455 /** -1456 * The CLI argument name for setting the path to bundle-audit for Ruby -1457 * bundle analysis. -1458 */ -1459 public static final String PATH_TO_BUNDLE_AUDIT = "bundleAudit"; -1460 /** -1461 * The CLI argument name for setting the path that should be used as the -1462 * working directory that the bundle-audit command used for Ruby bundle -1463 * analysis should be executed from. This will allow for the usage of -1464 * rbenv -1465 */ -1466 public static final String PATH_TO_BUNDLE_AUDIT_WORKING_DIRECTORY = "bundleAuditWorkingDirectory"; -1467 /** -1468 * The CLI argument name for setting the path to mix_audit for Elixir -1469 * analysis. -1470 */ -1471 public static final String PATH_TO_MIX_AUDIT = "mixAudit"; -1472 /** -1473 * The CLI argument to enable the experimental analyzers. -1474 */ -1475 public static final String EXPERIMENTAL = "enableExperimental"; -1476 /** -1477 * The CLI argument to enable the retired analyzers. -1478 */ -1479 public static final String RETIRED = "enableRetired"; -1480 /** -1481 * The CLI argument for the retire js content filters. -1482 */ -1483 public static final String RETIREJS_FILTERS = "retirejsFilter"; -1484 /** -1485 * The CLI argument for the retire js content filters. -1486 */ -1487 public static final String RETIREJS_FILTER_NON_VULNERABLE = "retirejsFilterNonVulnerable"; -1488 /** -1489 * The CLI argument for indicating if the Artifactory analyzer should be -1490 * enabled. -1491 */ -1492 public static final String ARTIFACTORY_ENABLED = "enableArtifactory"; -1493 /** -1494 * The CLI argument for indicating if the Artifactory analyzer should -1495 * use the proxy. -1496 */ -1497 public static final String ARTIFACTORY_URL = "artifactoryUrl"; -1498 /** -1499 * The CLI argument for indicating the Artifactory username. -1500 */ -1501 public static final String ARTIFACTORY_USERNAME = "artifactoryUsername"; -1502 /** -1503 * The CLI argument for indicating the Artifactory API token. -1504 */ -1505 public static final String ARTIFACTORY_API_TOKEN = "artifactoryApiToken"; -1506 /** -1507 * The CLI argument for indicating the Artifactory bearer token. -1508 */ -1509 public static final String ARTIFACTORY_BEARER_TOKEN = "artifactoryBearerToken"; -1510 /** -1511 * The CLI argument for indicating if the Artifactory analyzer should -1512 * use the proxy. -1513 */ -1514 public static final String ARTIFACTORY_USES_PROXY = "artifactoryUseProxy"; -1515 /** -1516 * The CLI argument for indicating if the Artifactory analyzer should -1517 * use the parallel analysis. -1518 */ -1519 public static final String ARTIFACTORY_PARALLEL_ANALYSIS = "artifactoryParallelAnalysis"; -1520 /** -1521 * The CLI argument to configure when the execution should be considered -1522 * a failure. -1523 */ -1524 public static final String FAIL_ON_CVSS = "failOnCVSS"; -1525 /** -1526 * The CLI argument to configure if the XML and JSON reports should be -1527 * pretty printed. -1528 */ -1529 public static final String PRETTY_PRINT = "prettyPrint"; -1530 /** -1531 * The CLI argument to set the threshold that is considered a failure -1532 * when generating the JUNIT report format. -1533 */ -1534 public static final String FAIL_JUNIT_ON_CVSS = "junitFailOnCVSS"; -1535 /** -1536 * The CLI argument to set the number of hours to wait before -1537 * re-checking hosted suppressions file for updates. -1538 */ -1539 public static final String DISABLE_HOSTED_SUPPRESSIONS = "disableHostedSuppressions"; -1540 /** -1541 * The CLI argument to set the number of hours to wait before -1542 * re-checking hosted suppressions file for updates. -1543 */ -1544 public static final String HOSTED_SUPPRESSIONS_VALID_FOR_HOURS = "hostedSuppressionsValidForHours"; -1545 /** -1546 * The CLI argument to set Whether the hosted suppressions file will -1547 * update regardless of the `noupdate` argument. -1548 */ -1549 public static final String HOSTED_SUPPRESSIONS_FORCEUPDATE = "hostedSuppressionsForceUpdate"; -1550 /** -1551 * The CLI argument to set the location of a mirrored hosted -1552 * suppressions file . -1553 */ -1554 public static final String HOSTED_SUPPRESSIONS_URL = "hostedSuppressionsUrl"; -1555 } -1556 } +519 } +520 +521 /** +522 * Adds the deprecated command line options to the given options collection. +523 * These are split out for purposes of not including them in the help +524 * message. We need to add the deprecated options so as not to break +525 * existing scripts. +526 * +527 * @param options a collection of command line arguments +528 */ +529 @SuppressWarnings({"static-access", "deprecation"}) +530 private void addDeprecatedOptions(final Options options) { +531 //not a real option - but enables java debugging via the shell script +532 options.addOption(newOption("debug", +533 "Used to enable java debugging of the cli via dependency-check.sh.")); +534 } +535 +536 /** +537 * Determines if the 'version' command line argument was passed in. +538 * +539 * @return whether or not the 'version' command line argument was passed in +540 */ +541 public boolean isGetVersion() { +542 return (line != null) && line.hasOption(ARGUMENT.VERSION); +543 } +544 +545 /** +546 * Determines if the 'help' command line argument was passed in. +547 * +548 * @return whether or not the 'help' command line argument was passed in +549 */ +550 public boolean isGetHelp() { +551 return (line != null) && line.hasOption(ARGUMENT.HELP); +552 } +553 +554 /** +555 * Determines if the 'scan' command line argument was passed in. +556 * +557 * @return whether or not the 'scan' command line argument was passed in +558 */ +559 public boolean isRunScan() { +560 return (line != null) && isValid && line.hasOption(ARGUMENT.SCAN); +561 } +562 +563 /** +564 * Returns the symbolic link depth (how deeply symbolic links will be +565 * followed). +566 * +567 * @return the symbolic link depth +568 */ +569 public int getSymLinkDepth() { +570 int value = 0; +571 try { +572 value = Integer.parseInt(line.getOptionValue(ARGUMENT.SYM_LINK_DEPTH, "0")); +573 if (value < 0) { +574 value = 0; +575 } +576 } catch (NumberFormatException ex) { +577 LOGGER.debug("Symbolic link was not a number"); +578 } +579 return value; +580 } +581 +582 /** +583 * Utility method to determine if one of the disable options has been set. +584 * If not set, this method will check the currently configured settings for +585 * the current value to return. +586 * <p> +587 * Example given `--disableArchive` on the command line would cause this +588 * method to return true for the disable archive setting. +589 * +590 * @param disableFlag the command line disable option +591 * @param setting the corresponding settings key +592 * @return true if the disable option was set, if not set the currently +593 * configured value will be returned +594 */ +595 public boolean isDisabled(String disableFlag, String setting) { +596 if (line == null || !line.hasOption(disableFlag)) { +597 try { +598 return !settings.getBoolean(setting); +599 } catch (InvalidSettingException ise) { +600 LOGGER.warn("Invalid property setting '{}' defaulting to false", setting); +601 return false; +602 } +603 } else { +604 return true; +605 } +606 } +607 +608 /** +609 * Returns true if the disableNodeAudit command line argument was specified. +610 * +611 * @return true if the disableNodeAudit command line argument was specified; +612 * otherwise false +613 */ +614 public boolean isNodeAuditDisabled() { +615 return isDisabled(ARGUMENT.DISABLE_NODE_AUDIT, Settings.KEYS.ANALYZER_NODE_AUDIT_ENABLED); +616 } +617 +618 /** +619 * Returns true if the disableYarnAudit command line argument was specified. +620 * +621 * @return true if the disableYarnAudit command line argument was specified; +622 * otherwise false +623 */ +624 public boolean isYarnAuditDisabled() { +625 return isDisabled(ARGUMENT.DISABLE_YARN_AUDIT, Settings.KEYS.ANALYZER_YARN_AUDIT_ENABLED); +626 } +627 +628 /** +629 * Returns true if the disablePnpmAudit command line argument was specified. +630 * +631 * @return true if the disablePnpmAudit command line argument was specified; +632 * otherwise false +633 */ +634 public boolean isPnpmAuditDisabled() { +635 return isDisabled(ARGUMENT.DISABLE_PNPM_AUDIT, Settings.KEYS.ANALYZER_PNPM_AUDIT_ENABLED); +636 } +637 +638 /** +639 * Returns true if the Nexus Analyzer should use the configured proxy to +640 * connect to Nexus; otherwise false is returned. +641 * +642 * @return true if the Nexus Analyzer should use the configured proxy to +643 * connect to Nexus; otherwise false +644 */ +645 public boolean isNexusUsesProxy() { +646 // If they didn't specify whether Nexus needs to use the proxy, we should +647 // still honor the property if it's set. +648 if (line == null || !line.hasOption(ARGUMENT.NEXUS_USES_PROXY)) { +649 try { +650 return settings.getBoolean(Settings.KEYS.ANALYZER_NEXUS_USES_PROXY); +651 } catch (InvalidSettingException ise) { +652 return true; +653 } +654 } else { +655 return Boolean.parseBoolean(line.getOptionValue(ARGUMENT.NEXUS_USES_PROXY)); +656 } +657 } +658 +659 /** +660 * Returns the argument boolean value. +661 * +662 * @param argument the argument +663 * @return the argument boolean value +664 */ +665 @SuppressFBWarnings(justification = "Accepting that this is a bad practice - used a Boolean as we needed three states", +666 value = {"NP_BOOLEAN_RETURN_NULL"}) +667 public Boolean getBooleanArgument(String argument) { +668 if (line != null && line.hasOption(argument)) { +669 final String value = line.getOptionValue(argument); +670 if (value != null) { +671 return Boolean.parseBoolean(value); +672 } +673 } +674 return null; +675 } +676 +677 /** +678 * Returns the argument value for the given option. +679 * +680 * @param option the option +681 * @return the value of the argument +682 */ +683 public String getStringArgument(String option) { +684 return getStringArgument(option, null); +685 } +686 +687 /** +688 * Returns the argument value for the given option. +689 * +690 * @param option the option +691 * @param key the dependency-check settings key for the option. +692 * @return the value of the argument +693 */ +694 public String getStringArgument(String option, String key) { +695 if (line != null && line.hasOption(option)) { +696 if (key != null && (option.toLowerCase().endsWith("password") +697 || option.toLowerCase().endsWith("pass"))) { +698 LOGGER.warn("{} used on the command line, consider moving the password " +699 + "to a properties file using the key `{}` and using the " +700 + "--propertyfile argument instead", option, key); +701 } +702 return line.getOptionValue(option); +703 } +704 return null; +705 } +706 +707 /** +708 * Returns the argument value for the given option. +709 * +710 * @param option the option +711 * @return the value of the argument +712 */ +713 public String[] getStringArguments(String option) { +714 if (line != null && line.hasOption(option)) { +715 return line.getOptionValues(option); +716 } +717 return null; +718 } +719 +720 /** +721 * Returns the argument value for the given option. +722 * +723 * @param option the option +724 * @return the value of the argument +725 */ +726 public File getFileArgument(String option) { +727 final String path = line.getOptionValue(option); +728 if (path != null) { +729 return new File(path); +730 } +731 return null; +732 } +733 +734 /** +735 * Displays the command line help message to the standard output. +736 */ +737 public void printHelp() { +738 final HelpFormatter formatter = new HelpFormatter(); +739 final Options options = new Options(); +740 addStandardOptions(options); +741 if (line != null && line.hasOption(ARGUMENT.ADVANCED_HELP)) { +742 addAdvancedOptions(options); +743 } +744 final String helpMsg = String.format("%n%s" +745 + " can be used to identify if there are any known CVE vulnerabilities in libraries utilized by an application. " +746 + "%s will automatically update required data from the Internet, such as the CVE and CPE data files from nvd.nist.gov.%n%n", +747 settings.getString(Settings.KEYS.APPLICATION_NAME, "DependencyCheck"), +748 settings.getString(Settings.KEYS.APPLICATION_NAME, "DependencyCheck")); +749 +750 formatter.printHelp(settings.getString(Settings.KEYS.APPLICATION_NAME, "DependencyCheck"), +751 helpMsg, +752 options, +753 "", +754 true); +755 } +756 +757 /** +758 * Retrieves the file command line parameter(s) specified for the 'scan' +759 * argument. +760 * +761 * @return the file paths specified on the command line for scan +762 */ +763 public String[] getScanFiles() { +764 return line.getOptionValues(ARGUMENT.SCAN); +765 } +766 +767 /** +768 * Retrieves the list of excluded file patterns specified by the 'exclude' +769 * argument. +770 * +771 * @return the excluded file patterns +772 */ +773 public String[] getExcludeList() { +774 return line.getOptionValues(ARGUMENT.EXCLUDE); +775 } +776 +777 /** +778 * Retrieves the list of retire JS content filters used to exclude JS files +779 * by content. +780 * +781 * @return the retireJS filters +782 */ +783 public String[] getRetireJsFilters() { +784 return line.getOptionValues(ARGUMENT.RETIREJS_FILTERS); +785 } +786 +787 /** +788 * Returns whether or not the retireJS analyzer should exclude +789 * non-vulnerable JS from the report. +790 * +791 * @return <code>true</code> if non-vulnerable JS should be filtered in the +792 * RetireJS Analyzer; otherwise <code>null</code> +793 */ +794 @SuppressFBWarnings(justification = "Accepting that this is a bad practice - but made more sense in this use case", +795 value = {"NP_BOOLEAN_RETURN_NULL"}) +796 public Boolean isRetireJsFilterNonVulnerable() { +797 return (line != null && line.hasOption(ARGUMENT.RETIREJS_FILTER_NON_VULNERABLE)) ? true : null; +798 } +799 +800 /** +801 * Returns the directory to write the reports to specified on the command +802 * line. +803 * +804 * @return the path to the reports directory. +805 */ +806 public String getReportDirectory() { +807 return line.getOptionValue(ARGUMENT.OUT, "."); +808 } +809 +810 /** +811 * Returns the output format specified on the command line. Defaults to HTML +812 * if no format was specified. +813 * +814 * @return the output format name. +815 */ +816 public String[] getReportFormat() { +817 if (line.hasOption(ARGUMENT.OUTPUT_FORMAT)) { +818 return line.getOptionValues(ARGUMENT.OUTPUT_FORMAT); +819 } +820 return new String[]{"HTML"}; +821 } +822 +823 /** +824 * Returns the application name specified on the command line. +825 * +826 * @return the application name. +827 */ +828 public String getProjectName() { +829 String name = line.getOptionValue(ARGUMENT.PROJECT); +830 if (name == null) { +831 name = ""; +832 } +833 return name; +834 } +835 +836 /** +837 * <p> +838 * Prints the manifest information to standard output.</p> +839 * <ul><li>Implementation-Title: ${pom.name}</li> +840 * <li>Implementation-Version: ${pom.version}</li></ul> +841 */ +842 public void printVersionInfo() { +843 final String version = String.format("%s version %s", +844 settings.getString(Settings.KEYS.APPLICATION_NAME, "dependency-check"), +845 settings.getString(Settings.KEYS.APPLICATION_VERSION, "Unknown")); +846 System.out.println(version); +847 } +848 +849 /** +850 * Checks if the update only flag has been set. +851 * +852 * @return <code>true</code> if the update only flag has been set; otherwise +853 * <code>false</code>. +854 */ +855 public boolean isUpdateOnly() { +856 return line != null && line.hasOption(ARGUMENT.UPDATE_ONLY); +857 } +858 +859 /** +860 * Checks if the purge NVD flag has been set. +861 * +862 * @return <code>true</code> if the purge nvd flag has been set; otherwise +863 * <code>false</code>. +864 */ +865 public boolean isPurge() { +866 return line != null && line.hasOption(ARGUMENT.PURGE_NVD); +867 } +868 +869 /** +870 * Returns the database driver name if specified; otherwise null is +871 * returned. +872 * +873 * @return the database driver name if specified; otherwise null is returned +874 */ +875 public String getDatabaseDriverName() { +876 return line.getOptionValue(ARGUMENT.DB_DRIVER); +877 } +878 +879 /** +880 * Returns the argument value. +881 * +882 * @param argument the argument +883 * @return the value of the argument +884 */ +885 public Integer getIntegerValue(String argument) { +886 final String v = line.getOptionValue(argument); +887 if (v != null) { +888 return Integer.parseInt(v); +889 } +890 return null; +891 } +892 +893 /** +894 * Checks if the option is present. If present it will return +895 * <code>true</code>; otherwise <code>false</code>. +896 * +897 * @param option the option to check +898 * @return <code>true</code> if auto-update is allowed; otherwise +899 * <code>null</code> +900 */ +901 @SuppressFBWarnings(justification = "Accepting that this is a bad practice - but made more sense in this use case", +902 value = {"NP_BOOLEAN_RETURN_NULL"}) +903 public Boolean hasOption(String option) { +904 return (line != null && line.hasOption(option)) ? true : null; +905 } +906 +907 /** +908 * Returns the CVSS value to fail on. +909 * +910 * @return 11 if nothing is set. Otherwise it returns the int passed from +911 * the command line arg +912 */ +913 public float getFailOnCVSS() { +914 if (line.hasOption(ARGUMENT.FAIL_ON_CVSS)) { +915 final String value = line.getOptionValue(ARGUMENT.FAIL_ON_CVSS); +916 try { +917 return Float.parseFloat(value); +918 } catch (NumberFormatException nfe) { +919 return 11; +920 } +921 } else { +922 return 11; +923 } +924 } +925 +926 /** +927 * Returns the float argument for the given option. +928 * +929 * @param option the option +930 * @param defaultValue the value if the option is not present +931 * @return the value of the argument if present; otherwise the defaultValue +932 */ +933 public float getFloatArgument(String option, float defaultValue) { +934 if (line.hasOption(option)) { +935 final String value = line.getOptionValue(option); +936 try { +937 return Integer.parseInt(value); +938 } catch (NumberFormatException nfe) { +939 return defaultValue; +940 } +941 } else { +942 return defaultValue; +943 } +944 } +945 +946 /** +947 * Builds a new option. +948 * +949 * @param name the long name +950 * @param description the description +951 * @return a new option +952 */ +953 private Option newOption(String name, String description) { +954 return Option.builder().longOpt(name).desc(description).build(); +955 } +956 +957 /** +958 * Builds a new option. +959 * +960 * @param shortName the short name +961 * @param name the long name +962 * @param description the description +963 * @return a new option +964 */ +965 private Option newOption(String shortName, String name, String description) { +966 return Option.builder(shortName).longOpt(name).desc(description).build(); +967 } +968 +969 /** +970 * Builds a new option. +971 * +972 * @param name the long name +973 * @param arg the argument name +974 * @param description the description +975 * @return a new option +976 */ +977 private Option newOptionWithArg(String name, String arg, String description) { +978 return Option.builder().longOpt(name).argName(arg).hasArg().desc(description).build(); +979 } +980 +981 /** +982 * Builds a new option. +983 * +984 * @param shortName the short name +985 * @param name the long name +986 * @param arg the argument name +987 * @param description the description +988 * @return a new option +989 */ +990 private Option newOptionWithArg(String shortName, String name, String arg, String description) { +991 return Option.builder(shortName).longOpt(name).argName(arg).hasArg().desc(description).build(); +992 } +993 +994 /** +995 * Builds a new option group so that an option can be specified multiple +996 * times on the command line. +997 * +998 * @param option the option to add to the group +999 * @return a new option group +1000 */ +1001 private OptionGroup newOptionGroup(Option option) { +1002 final OptionGroup group = new OptionGroup(); +1003 group.addOption(option); +1004 return group; +1005 } +1006 +1007 /** +1008 * A collection of static final strings that represent the possible command +1009 * line arguments. +1010 */ +1011 public static class ARGUMENT { +1012 +1013 /** +1014 * The long CLI argument name specifying the directory/file to scan. +1015 */ +1016 public static final String SCAN = "scan"; +1017 /** +1018 * The short CLI argument name specifying the directory/file to scan. +1019 */ +1020 public static final String SCAN_SHORT = "s"; +1021 /** +1022 * The long CLI argument name specifying that the CPE/CVE/etc. data +1023 * should not be automatically updated. +1024 */ +1025 public static final String DISABLE_AUTO_UPDATE = "noupdate"; +1026 /** +1027 * The short CLI argument name specifying that the CPE/CVE/etc. data +1028 * should not be automatically updated. +1029 */ +1030 public static final String DISABLE_AUTO_UPDATE_SHORT = "n"; +1031 /** +1032 * The long CLI argument name specifying that only the update phase +1033 * should be executed; no scan should be run. +1034 */ +1035 public static final String UPDATE_ONLY = "updateonly"; +1036 /** +1037 * The long CLI argument name specifying that only the update phase +1038 * should be executed; no scan should be run. +1039 */ +1040 public static final String PURGE_NVD = "purge"; +1041 /** +1042 * The long CLI argument name specifying the directory to write the +1043 * reports to. +1044 */ +1045 public static final String OUT = "out"; +1046 /** +1047 * The short CLI argument name specifying the directory to write the +1048 * reports to. +1049 */ +1050 public static final String OUT_SHORT = "o"; +1051 /** +1052 * The long CLI argument name specifying the output format to write the +1053 * reports to. +1054 */ +1055 public static final String OUTPUT_FORMAT = "format"; +1056 /** +1057 * The short CLI argument name specifying the output format to write the +1058 * reports to. +1059 */ +1060 public static final String OUTPUT_FORMAT_SHORT = "f"; +1061 /** +1062 * The long CLI argument name specifying the name of the project to be +1063 * scanned. +1064 */ +1065 public static final String PROJECT = "project"; +1066 /** +1067 * The long CLI argument name asking for help. +1068 */ +1069 public static final String HELP = "help"; +1070 /** +1071 * The long CLI argument name asking for advanced help. +1072 */ +1073 public static final String ADVANCED_HELP = "advancedHelp"; +1074 /** +1075 * The short CLI argument name asking for help. +1076 */ +1077 public static final String HELP_SHORT = "h"; +1078 /** +1079 * The long CLI argument name asking for the version. +1080 */ +1081 public static final String VERSION_SHORT = "v"; +1082 /** +1083 * The short CLI argument name asking for the version. +1084 */ +1085 public static final String VERSION = "version"; +1086 /** +1087 * The CLI argument name indicating the proxy port. +1088 */ +1089 public static final String PROXY_PORT = "proxyport"; +1090 /** +1091 * The CLI argument name indicating the proxy server. +1092 */ +1093 public static final String PROXY_SERVER = "proxyserver"; +1094 /** +1095 * The CLI argument name indicating the proxy username. +1096 */ +1097 public static final String PROXY_USERNAME = "proxyuser"; +1098 /** +1099 * The CLI argument name indicating the proxy password. +1100 */ +1101 public static final String PROXY_PASSWORD = "proxypass"; +1102 /** +1103 * The CLI argument name indicating the proxy proxy exclusion list. +1104 */ +1105 public static final String NON_PROXY_HOSTS = "nonProxyHosts"; +1106 /** +1107 * The short CLI argument name indicating the connection timeout. +1108 */ +1109 public static final String CONNECTION_TIMEOUT_SHORT = "c"; +1110 /** +1111 * The CLI argument name indicating the connection timeout. +1112 */ +1113 public static final String CONNECTION_TIMEOUT = "connectiontimeout"; +1114 /** +1115 * The CLI argument name indicating the connection read timeout. +1116 */ +1117 public static final String CONNECTION_READ_TIMEOUT = "readtimeout"; +1118 /** +1119 * The short CLI argument name for setting the location of an additional +1120 * properties file. +1121 */ +1122 public static final String PROP_SHORT = "P"; +1123 /** +1124 * The CLI argument name for setting the location of an additional +1125 * properties file. +1126 */ +1127 public static final String PROP = "propertyfile"; +1128 /** +1129 * The CLI argument name for setting the location of the data directory. +1130 */ +1131 public static final String DATA_DIRECTORY = "data"; +1132 /** +1133 * The CLI argument name for setting the URL for the NVD API Endpoint +1134 */ +1135 public static final String NVD_API_ENDPOINT = "nvdApiEndpoint"; +1136 /** +1137 * The CLI argument name for setting the URL for the NVD API Key. +1138 */ +1139 public static final String NVD_API_KEY = "nvdApiKey"; +1140 /** +1141 * The CLI argument name for setting the maximum number of retry requests for a single call to the NVD API. +1142 */ +1143 public static final String NVD_API_MAX_RETRY_COUNT = "nvdMaxRetryCount"; +1144 /** +1145 * The CLI argument name for setting the number of hours to wait before +1146 * checking for new updates from the NVD. +1147 */ +1148 public static final String NVD_API_VALID_FOR_HOURS = "nvdValidForHours"; +1149 /** +1150 * The CLI argument name for the NVD API Data Feed URL. +1151 */ +1152 public static final String NVD_API_DATAFEED_URL = "nvdDatafeed"; +1153 /** +1154 * The username for basic auth to the CVE data. +1155 */ +1156 public static final String NVD_API_DATAFEED_USER = "nvdUser"; +1157 /** +1158 * The password for basic auth to the CVE data. +1159 */ +1160 public static final String NVD_API_DATAFEED_PASSWORD = "nvdPassword"; +1161 /** +1162 * The time in milliseconds to wait between downloading NVD API data. +1163 */ +1164 public static final String NVD_API_DELAY = "nvdApiDelay"; +1165 /** +1166 * The short CLI argument name for setting the location of the data +1167 * directory. +1168 */ +1169 public static final String DATA_DIRECTORY_SHORT = "d"; +1170 /** +1171 * The CLI argument name for setting the location of the data directory. +1172 */ +1173 public static final String VERBOSE_LOG = "log"; +1174 /** +1175 * The short CLI argument name for setting the location of the data +1176 * directory. +1177 */ +1178 public static final String VERBOSE_LOG_SHORT = "l"; +1179 /** +1180 * The CLI argument name for setting the depth of symbolic links that +1181 * will be followed. +1182 */ +1183 public static final String SYM_LINK_DEPTH = "symLink"; +1184 /** +1185 * The CLI argument name for setting the location of the suppression +1186 * file(s). +1187 */ +1188 public static final String SUPPRESSION_FILES = "suppression"; +1189 /** +1190 * The CLI argument name for setting the location of the hint file. +1191 */ +1192 public static final String HINTS_FILE = "hints"; +1193 /** +1194 * Disables the Jar Analyzer. +1195 */ +1196 public static final String DISABLE_JAR = "disableJar"; +1197 /** +1198 * Disable the MS Build Analyzer. +1199 */ +1200 public static final String DISABLE_MSBUILD = "disableMSBuild"; +1201 /** +1202 * Disables the Archive Analyzer. +1203 */ +1204 public static final String DISABLE_ARCHIVE = "disableArchive"; +1205 /** +1206 * Disables the Known Exploited Analyzer. +1207 */ +1208 public static final String DISABLE_KEV = "disableKnownExploited"; +1209 /** +1210 * The URL to the CISA Known Exploited Vulnerability JSON datafeed. +1211 */ +1212 public static final String KEV_URL = "kevURL"; +1213 /** +1214 * Disables the Python Distribution Analyzer. +1215 */ +1216 public static final String DISABLE_PY_DIST = "disablePyDist"; +1217 /** +1218 * Disables the Python Package Analyzer. +1219 */ +1220 public static final String DISABLE_PY_PKG = "disablePyPkg"; +1221 /** +1222 * Disables the Elixir mix audit Analyzer. +1223 */ +1224 public static final String DISABLE_MIX_AUDIT = "disableMixAudit"; +1225 /** +1226 * Disables the Golang Dependency Analyzer. +1227 */ +1228 public static final String DISABLE_GO_DEP = "disableGolangDep"; +1229 /** +1230 * Disables the PHP Composer Analyzer. +1231 */ +1232 public static final String DISABLE_COMPOSER = "disableComposer"; +1233 /** +1234 * Disables the Perl CPAN File Analyzer. +1235 */ +1236 public static final String DISABLE_CPAN = "disableCpan"; +1237 /** +1238 * Disables the Golang Mod Analyzer. +1239 */ +1240 public static final String DISABLE_GOLANG_MOD = "disableGolangMod"; +1241 /** +1242 * Disables the Dart Analyzer. +1243 */ +1244 public static final String DISABLE_DART = "disableDart"; +1245 /** +1246 * The CLI argument name for setting the path to `go`. +1247 */ +1248 public static final String PATH_TO_GO = "go"; +1249 /** +1250 * The CLI argument name for setting the path to `yarn`. +1251 */ +1252 public static final String PATH_TO_YARN = "yarn"; +1253 /** +1254 * The CLI argument name for setting the path to `pnpm`. +1255 */ +1256 public static final String PATH_TO_PNPM = "pnpm"; +1257 /** +1258 * Disables the Ruby Gemspec Analyzer. +1259 */ +1260 public static final String DISABLE_RUBYGEMS = "disableRubygems"; +1261 /** +1262 * Disables the Autoconf Analyzer. +1263 */ +1264 public static final String DISABLE_AUTOCONF = "disableAutoconf"; +1265 /** +1266 * Disables the Maven install Analyzer. +1267 */ +1268 public static final String DISABLE_MAVEN_INSTALL = "disableMavenInstall"; +1269 /** +1270 * Disables the pip Analyzer. +1271 */ +1272 public static final String DISABLE_PIP = "disablePip"; +1273 /** +1274 * Disables the Pipfile Analyzer. +1275 */ +1276 public static final String DISABLE_PIPFILE = "disablePipfile"; +1277 /** +1278 * Disables the Poetry Analyzer. +1279 */ +1280 public static final String DISABLE_POETRY = "disablePoetry"; +1281 /** +1282 * Disables the Cmake Analyzer. +1283 */ +1284 public static final String DISABLE_CMAKE = "disableCmake"; +1285 /** +1286 * Disables the cocoapods analyzer. +1287 */ +1288 public static final String DISABLE_COCOAPODS = "disableCocoapodsAnalyzer"; +1289 /** +1290 * Disables the swift package manager analyzer. +1291 */ +1292 public static final String DISABLE_SWIFT = "disableSwiftPackageManagerAnalyzer"; +1293 /** +1294 * Disables the swift package resolved analyzer. +1295 */ +1296 public static final String DISABLE_SWIFT_RESOLVED = "disableSwiftPackageResolvedAnalyzer"; +1297 /** +1298 * Disables the Assembly Analyzer. +1299 */ +1300 public static final String DISABLE_ASSEMBLY = "disableAssembly"; +1301 /** +1302 * Disables the Ruby Bundler Audit Analyzer. +1303 */ +1304 public static final String DISABLE_BUNDLE_AUDIT = "disableBundleAudit"; +1305 /** +1306 * Disables the File Name Analyzer. +1307 */ +1308 public static final String DISABLE_FILENAME = "disableFileName"; +1309 /** +1310 * Disables the Nuspec Analyzer. +1311 */ +1312 public static final String DISABLE_NUSPEC = "disableNuspec"; +1313 /** +1314 * Disables the Nuget packages.config Analyzer. +1315 */ +1316 public static final String DISABLE_NUGETCONF = "disableNugetconf"; +1317 /** +1318 * Disables the Central Analyzer. +1319 */ +1320 public static final String DISABLE_CENTRAL = "disableCentral"; +1321 /** +1322 * Disables the Central Analyzer's ability to cache results locally. +1323 */ +1324 public static final String DISABLE_CENTRAL_CACHE = "disableCentralCache"; +1325 /** +1326 * The alternative URL for Maven Central Search. +1327 */ +1328 public static final String CENTRAL_URL = "centralUrl"; +1329 /** +1330 * Disables the Nexus Analyzer. +1331 */ +1332 public static final String ENABLE_NEXUS = "enableNexus"; +1333 /** +1334 * Disables the Sonatype OSS Index Analyzer. +1335 */ +1336 public static final String DISABLE_OSSINDEX = "disableOssIndex"; +1337 /** +1338 * Disables the Sonatype OSS Index Analyzer's ability to cache results +1339 * locally. +1340 */ +1341 public static final String DISABLE_OSSINDEX_CACHE = "disableOssIndexCache"; +1342 /** +1343 * The alternative URL for the Sonatype OSS Index. +1344 */ +1345 public static final String OSSINDEX_URL = "ossIndexUrl"; +1346 /** +1347 * The username for the Sonatype OSS Index. +1348 */ +1349 public static final String OSSINDEX_USERNAME = "ossIndexUsername"; +1350 /** +1351 * The password for the Sonatype OSS Index. +1352 */ +1353 public static final String OSSINDEX_PASSWORD = "ossIndexPassword"; +1354 /** +1355 * The password for the Sonatype OSS Index. +1356 */ +1357 public static final String OSSINDEX_WARN_ONLY_ON_REMOTE_ERRORS = "ossIndexRemoteErrorWarnOnly"; +1358 /** +1359 * Disables the OpenSSL Analyzer. +1360 */ +1361 public static final String DISABLE_OPENSSL = "disableOpenSSL"; +1362 /** +1363 * Disables the Node.js Package Analyzer. +1364 */ +1365 public static final String DISABLE_NODE_JS = "disableNodeJS"; +1366 /** +1367 * Skips dev dependencies in Node Package Analyzer. +1368 */ +1369 public static final String NODE_PACKAGE_SKIP_DEV_DEPENDENCIES = "nodePackageSkipDevDependencies"; +1370 /** +1371 * Disables the Node Audit Analyzer. +1372 */ +1373 public static final String DISABLE_NODE_AUDIT = "disableNodeAudit"; +1374 /** +1375 * Disables the Yarn Audit Analyzer. +1376 */ +1377 public static final String DISABLE_YARN_AUDIT = "disableYarnAudit"; +1378 /** +1379 * Disables the Pnpm Audit Analyzer. +1380 */ +1381 public static final String DISABLE_PNPM_AUDIT = "disablePnpmAudit"; +1382 /** +1383 * Disables the Node Audit Analyzer's ability to cache results locally. +1384 */ +1385 public static final String DISABLE_NODE_AUDIT_CACHE = "disableNodeAuditCache"; +1386 /** +1387 * Configures the Node Audit Analyzer to skip the dev dependencies. +1388 */ +1389 public static final String DISABLE_NODE_AUDIT_SKIPDEV = "nodeAuditSkipDevDependencies"; +1390 /** +1391 * Disables the RetireJS Analyzer. +1392 */ +1393 public static final String DISABLE_RETIRE_JS = "disableRetireJS"; +1394 /** +1395 * Whether the RetireJS Analyzer will update regardless of the +1396 * `autoupdate` setting. +1397 */ +1398 public static final String RETIRE_JS_FORCEUPDATE = "retireJsForceUpdate"; +1399 /** +1400 * The URL to the retire JS repository. +1401 */ +1402 public static final String RETIREJS_URL = "retireJsUrl"; +1403 /** +1404 * The username to the retire JS repository. +1405 */ +1406 public static final String RETIREJS_URL_USER = "retireJsUrlUser"; +1407 /** +1408 * The password to the retire JS repository. +1409 */ +1410 public static final String RETIREJS_URL_PASSWORD = "retireJsUrlPass"; +1411 /** +1412 * The URL of the nexus server. +1413 */ +1414 public static final String NEXUS_URL = "nexus"; +1415 /** +1416 * The username for the nexus server. +1417 */ +1418 public static final String NEXUS_USERNAME = "nexusUser"; +1419 /** +1420 * The password for the nexus server. +1421 */ +1422 public static final String NEXUS_PASSWORD = "nexusPass"; +1423 /** +1424 * Whether or not the defined proxy should be used when connecting to +1425 * Nexus. +1426 */ +1427 public static final String NEXUS_USES_PROXY = "nexusUsesProxy"; +1428 /** +1429 * The CLI argument name for setting the connection string. +1430 */ +1431 public static final String CONNECTION_STRING = "connectionString"; +1432 /** +1433 * The CLI argument name for setting the database user name. +1434 */ +1435 public static final String DB_NAME = "dbUser"; +1436 /** +1437 * The CLI argument name for setting the database password. +1438 */ +1439 public static final String DB_PASSWORD = "dbPassword"; +1440 /** +1441 * The CLI argument name for setting the database driver name. +1442 */ +1443 public static final String DB_DRIVER = "dbDriverName"; +1444 /** +1445 * The CLI argument name for setting the path to the database driver; in +1446 * case it is not on the class path. +1447 */ +1448 public static final String DB_DRIVER_PATH = "dbDriverPath"; +1449 /** +1450 * The CLI argument name for setting the path to dotnet core. +1451 */ +1452 public static final String PATH_TO_CORE = "dotnet"; +1453 /** +1454 * The CLI argument name for setting extra extensions. +1455 */ +1456 public static final String ADDITIONAL_ZIP_EXTENSIONS = "zipExtensions"; +1457 /** +1458 * Exclude path argument. +1459 */ +1460 public static final String EXCLUDE = "exclude"; +1461 /** +1462 * The CLI argument name for setting the path to bundle-audit for Ruby +1463 * bundle analysis. +1464 */ +1465 public static final String PATH_TO_BUNDLE_AUDIT = "bundleAudit"; +1466 /** +1467 * The CLI argument name for setting the path that should be used as the +1468 * working directory that the bundle-audit command used for Ruby bundle +1469 * analysis should be executed from. This will allow for the usage of +1470 * rbenv +1471 */ +1472 public static final String PATH_TO_BUNDLE_AUDIT_WORKING_DIRECTORY = "bundleAuditWorkingDirectory"; +1473 /** +1474 * The CLI argument name for setting the path to mix_audit for Elixir +1475 * analysis. +1476 */ +1477 public static final String PATH_TO_MIX_AUDIT = "mixAudit"; +1478 /** +1479 * The CLI argument to enable the experimental analyzers. +1480 */ +1481 public static final String EXPERIMENTAL = "enableExperimental"; +1482 /** +1483 * The CLI argument to enable the retired analyzers. +1484 */ +1485 public static final String RETIRED = "enableRetired"; +1486 /** +1487 * The CLI argument for the retire js content filters. +1488 */ +1489 public static final String RETIREJS_FILTERS = "retirejsFilter"; +1490 /** +1491 * The CLI argument for the retire js content filters. +1492 */ +1493 public static final String RETIREJS_FILTER_NON_VULNERABLE = "retirejsFilterNonVulnerable"; +1494 /** +1495 * The CLI argument for indicating if the Artifactory analyzer should be +1496 * enabled. +1497 */ +1498 public static final String ARTIFACTORY_ENABLED = "enableArtifactory"; +1499 /** +1500 * The CLI argument for indicating if the Artifactory analyzer should +1501 * use the proxy. +1502 */ +1503 public static final String ARTIFACTORY_URL = "artifactoryUrl"; +1504 /** +1505 * The CLI argument for indicating the Artifactory username. +1506 */ +1507 public static final String ARTIFACTORY_USERNAME = "artifactoryUsername"; +1508 /** +1509 * The CLI argument for indicating the Artifactory API token. +1510 */ +1511 public static final String ARTIFACTORY_API_TOKEN = "artifactoryApiToken"; +1512 /** +1513 * The CLI argument for indicating the Artifactory bearer token. +1514 */ +1515 public static final String ARTIFACTORY_BEARER_TOKEN = "artifactoryBearerToken"; +1516 /** +1517 * The CLI argument for indicating if the Artifactory analyzer should +1518 * use the proxy. +1519 */ +1520 public static final String ARTIFACTORY_USES_PROXY = "artifactoryUseProxy"; +1521 /** +1522 * The CLI argument for indicating if the Artifactory analyzer should +1523 * use the parallel analysis. +1524 */ +1525 public static final String ARTIFACTORY_PARALLEL_ANALYSIS = "artifactoryParallelAnalysis"; +1526 /** +1527 * The CLI argument to configure when the execution should be considered +1528 * a failure. +1529 */ +1530 public static final String FAIL_ON_CVSS = "failOnCVSS"; +1531 /** +1532 * The CLI argument to configure if the XML and JSON reports should be +1533 * pretty printed. +1534 */ +1535 public static final String PRETTY_PRINT = "prettyPrint"; +1536 /** +1537 * The CLI argument to set the threshold that is considered a failure +1538 * when generating the JUNIT report format. +1539 */ +1540 public static final String FAIL_JUNIT_ON_CVSS = "junitFailOnCVSS"; +1541 /** +1542 * The CLI argument to set the number of hours to wait before +1543 * re-checking hosted suppressions file for updates. +1544 */ +1545 public static final String DISABLE_HOSTED_SUPPRESSIONS = "disableHostedSuppressions"; +1546 /** +1547 * The CLI argument to set the number of hours to wait before +1548 * re-checking hosted suppressions file for updates. +1549 */ +1550 public static final String HOSTED_SUPPRESSIONS_VALID_FOR_HOURS = "hostedSuppressionsValidForHours"; +1551 /** +1552 * The CLI argument to set Whether the hosted suppressions file will +1553 * update regardless of the `noupdate` argument. +1554 */ +1555 public static final String HOSTED_SUPPRESSIONS_FORCEUPDATE = "hostedSuppressionsForceUpdate"; +1556 /** +1557 * The CLI argument to set the location of a mirrored hosted +1558 * suppressions file . +1559 */ +1560 public static final String HOSTED_SUPPRESSIONS_URL = "hostedSuppressionsUrl"; +1561 } +1562 }
    diff --git a/xref/org/owasp/dependencycheck/agent/package-frame.html b/xref/org/owasp/dependencycheck/agent/package-frame.html index 0dd7f7e85e7..72e73ce40fa 100644 --- a/xref/org/owasp/dependencycheck/agent/package-frame.html +++ b/xref/org/owasp/dependencycheck/agent/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.agent + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.agent diff --git a/xref/org/owasp/dependencycheck/agent/package-summary.html b/xref/org/owasp/dependencycheck/agent/package-summary.html index 21a53e73941..1fb48720003 100644 --- a/xref/org/owasp/dependencycheck/agent/package-summary.html +++ b/xref/org/owasp/dependencycheck/agent/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.agent + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.agent diff --git a/xref/org/owasp/dependencycheck/analyzer/exception/package-frame.html b/xref/org/owasp/dependencycheck/analyzer/exception/package-frame.html index a8deef98d5d..1289adea11c 100644 --- a/xref/org/owasp/dependencycheck/analyzer/exception/package-frame.html +++ b/xref/org/owasp/dependencycheck/analyzer/exception/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.analyzer.exception + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.analyzer.exception diff --git a/xref/org/owasp/dependencycheck/analyzer/exception/package-summary.html b/xref/org/owasp/dependencycheck/analyzer/exception/package-summary.html index dffe275c248..82a7de9c761 100644 --- a/xref/org/owasp/dependencycheck/analyzer/exception/package-summary.html +++ b/xref/org/owasp/dependencycheck/analyzer/exception/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.analyzer.exception + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.analyzer.exception diff --git a/xref/org/owasp/dependencycheck/analyzer/package-frame.html b/xref/org/owasp/dependencycheck/analyzer/package-frame.html index 45112f75580..c4d8e4b8aa8 100644 --- a/xref/org/owasp/dependencycheck/analyzer/package-frame.html +++ b/xref/org/owasp/dependencycheck/analyzer/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.analyzer + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.analyzer diff --git a/xref/org/owasp/dependencycheck/analyzer/package-summary.html b/xref/org/owasp/dependencycheck/analyzer/package-summary.html index f3ecb520c1d..8ee1285138b 100644 --- a/xref/org/owasp/dependencycheck/analyzer/package-summary.html +++ b/xref/org/owasp/dependencycheck/analyzer/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.analyzer + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.analyzer diff --git a/xref/org/owasp/dependencycheck/ant/logging/package-frame.html b/xref/org/owasp/dependencycheck/ant/logging/package-frame.html index a30ad400924..f486f6c76c9 100644 --- a/xref/org/owasp/dependencycheck/ant/logging/package-frame.html +++ b/xref/org/owasp/dependencycheck/ant/logging/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.ant.logging + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.ant.logging diff --git a/xref/org/owasp/dependencycheck/ant/logging/package-summary.html b/xref/org/owasp/dependencycheck/ant/logging/package-summary.html index 134ebfd07b9..791b8b0f882 100644 --- a/xref/org/owasp/dependencycheck/ant/logging/package-summary.html +++ b/xref/org/owasp/dependencycheck/ant/logging/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.ant.logging + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.ant.logging diff --git a/xref/org/owasp/dependencycheck/data/artifactory/package-frame.html b/xref/org/owasp/dependencycheck/data/artifactory/package-frame.html index 79980fa3f32..8fe26969365 100644 --- a/xref/org/owasp/dependencycheck/data/artifactory/package-frame.html +++ b/xref/org/owasp/dependencycheck/data/artifactory/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.data.artifactory + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.data.artifactory diff --git a/xref/org/owasp/dependencycheck/data/artifactory/package-summary.html b/xref/org/owasp/dependencycheck/data/artifactory/package-summary.html index 6e0ec65638a..ccf1eb2b7eb 100644 --- a/xref/org/owasp/dependencycheck/data/artifactory/package-summary.html +++ b/xref/org/owasp/dependencycheck/data/artifactory/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.data.artifactory + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.data.artifactory diff --git a/xref/org/owasp/dependencycheck/data/cache/package-frame.html b/xref/org/owasp/dependencycheck/data/cache/package-frame.html index fda30d01d29..b3d9afdd58d 100644 --- a/xref/org/owasp/dependencycheck/data/cache/package-frame.html +++ b/xref/org/owasp/dependencycheck/data/cache/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.data.cache + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.data.cache diff --git a/xref/org/owasp/dependencycheck/data/cache/package-summary.html b/xref/org/owasp/dependencycheck/data/cache/package-summary.html index cac332da268..1b103c115ed 100644 --- a/xref/org/owasp/dependencycheck/data/cache/package-summary.html +++ b/xref/org/owasp/dependencycheck/data/cache/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.data.cache + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.data.cache diff --git a/xref/org/owasp/dependencycheck/data/central/package-frame.html b/xref/org/owasp/dependencycheck/data/central/package-frame.html index b738ec124f2..27c149cfcf5 100644 --- a/xref/org/owasp/dependencycheck/data/central/package-frame.html +++ b/xref/org/owasp/dependencycheck/data/central/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.data.central + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.data.central diff --git a/xref/org/owasp/dependencycheck/data/central/package-summary.html b/xref/org/owasp/dependencycheck/data/central/package-summary.html index 6fcfb3427f0..d29438cb0e8 100644 --- a/xref/org/owasp/dependencycheck/data/central/package-summary.html +++ b/xref/org/owasp/dependencycheck/data/central/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.data.central + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.data.central diff --git a/xref/org/owasp/dependencycheck/data/composer/package-frame.html b/xref/org/owasp/dependencycheck/data/composer/package-frame.html index 13de53a1fa7..645a3f494eb 100644 --- a/xref/org/owasp/dependencycheck/data/composer/package-frame.html +++ b/xref/org/owasp/dependencycheck/data/composer/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.data.composer + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.data.composer diff --git a/xref/org/owasp/dependencycheck/data/composer/package-summary.html b/xref/org/owasp/dependencycheck/data/composer/package-summary.html index 7a7b5aa8544..378bdde62b4 100644 --- a/xref/org/owasp/dependencycheck/data/composer/package-summary.html +++ b/xref/org/owasp/dependencycheck/data/composer/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.data.composer + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.data.composer diff --git a/xref/org/owasp/dependencycheck/data/cpe/package-frame.html b/xref/org/owasp/dependencycheck/data/cpe/package-frame.html index 548dd5b04f8..3c46a34969f 100644 --- a/xref/org/owasp/dependencycheck/data/cpe/package-frame.html +++ b/xref/org/owasp/dependencycheck/data/cpe/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.data.cpe + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.data.cpe diff --git a/xref/org/owasp/dependencycheck/data/cpe/package-summary.html b/xref/org/owasp/dependencycheck/data/cpe/package-summary.html index 638c5ba93b4..65171110ffd 100644 --- a/xref/org/owasp/dependencycheck/data/cpe/package-summary.html +++ b/xref/org/owasp/dependencycheck/data/cpe/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.data.cpe + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.data.cpe diff --git a/xref/org/owasp/dependencycheck/data/cwe/package-frame.html b/xref/org/owasp/dependencycheck/data/cwe/package-frame.html index 94bb8bbacab..3674488ce00 100644 --- a/xref/org/owasp/dependencycheck/data/cwe/package-frame.html +++ b/xref/org/owasp/dependencycheck/data/cwe/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.data.cwe + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.data.cwe diff --git a/xref/org/owasp/dependencycheck/data/cwe/package-summary.html b/xref/org/owasp/dependencycheck/data/cwe/package-summary.html index c7a5322f6db..61f17cf23f4 100644 --- a/xref/org/owasp/dependencycheck/data/cwe/package-summary.html +++ b/xref/org/owasp/dependencycheck/data/cwe/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.data.cwe + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.data.cwe diff --git a/xref/org/owasp/dependencycheck/data/elixir/package-frame.html b/xref/org/owasp/dependencycheck/data/elixir/package-frame.html index 3e9576f8537..2cf67d32264 100644 --- a/xref/org/owasp/dependencycheck/data/elixir/package-frame.html +++ b/xref/org/owasp/dependencycheck/data/elixir/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.data.elixir + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.data.elixir diff --git a/xref/org/owasp/dependencycheck/data/elixir/package-summary.html b/xref/org/owasp/dependencycheck/data/elixir/package-summary.html index cae92d1bc6e..6bd4b0eaedd 100644 --- a/xref/org/owasp/dependencycheck/data/elixir/package-summary.html +++ b/xref/org/owasp/dependencycheck/data/elixir/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.data.elixir + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.data.elixir diff --git a/xref/org/owasp/dependencycheck/data/golang/package-frame.html b/xref/org/owasp/dependencycheck/data/golang/package-frame.html index e76ea8e302e..282a6bf059b 100644 --- a/xref/org/owasp/dependencycheck/data/golang/package-frame.html +++ b/xref/org/owasp/dependencycheck/data/golang/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.data.golang + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.data.golang diff --git a/xref/org/owasp/dependencycheck/data/golang/package-summary.html b/xref/org/owasp/dependencycheck/data/golang/package-summary.html index 7b5134a7485..91c08f9b7b4 100644 --- a/xref/org/owasp/dependencycheck/data/golang/package-summary.html +++ b/xref/org/owasp/dependencycheck/data/golang/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.data.golang + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.data.golang diff --git a/xref/org/owasp/dependencycheck/data/lucene/package-frame.html b/xref/org/owasp/dependencycheck/data/lucene/package-frame.html index 08123066e46..eb8692b9b0a 100644 --- a/xref/org/owasp/dependencycheck/data/lucene/package-frame.html +++ b/xref/org/owasp/dependencycheck/data/lucene/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.data.lucene + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.data.lucene diff --git a/xref/org/owasp/dependencycheck/data/lucene/package-summary.html b/xref/org/owasp/dependencycheck/data/lucene/package-summary.html index 288fc8ddd0e..1d44e46cc5d 100644 --- a/xref/org/owasp/dependencycheck/data/lucene/package-summary.html +++ b/xref/org/owasp/dependencycheck/data/lucene/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.data.lucene + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.data.lucene diff --git a/xref/org/owasp/dependencycheck/data/nexus/package-frame.html b/xref/org/owasp/dependencycheck/data/nexus/package-frame.html index d6e0caefb08..a7abef82eff 100644 --- a/xref/org/owasp/dependencycheck/data/nexus/package-frame.html +++ b/xref/org/owasp/dependencycheck/data/nexus/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.data.nexus + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.data.nexus diff --git a/xref/org/owasp/dependencycheck/data/nexus/package-summary.html b/xref/org/owasp/dependencycheck/data/nexus/package-summary.html index fb3a77a7126..de8de7739cc 100644 --- a/xref/org/owasp/dependencycheck/data/nexus/package-summary.html +++ b/xref/org/owasp/dependencycheck/data/nexus/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.data.nexus + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.data.nexus diff --git a/xref/org/owasp/dependencycheck/data/nodeaudit/package-frame.html b/xref/org/owasp/dependencycheck/data/nodeaudit/package-frame.html index f031febc966..81e4c46607d 100644 --- a/xref/org/owasp/dependencycheck/data/nodeaudit/package-frame.html +++ b/xref/org/owasp/dependencycheck/data/nodeaudit/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.data.nodeaudit + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.data.nodeaudit diff --git a/xref/org/owasp/dependencycheck/data/nodeaudit/package-summary.html b/xref/org/owasp/dependencycheck/data/nodeaudit/package-summary.html index 33149930476..9403ea98cb6 100644 --- a/xref/org/owasp/dependencycheck/data/nodeaudit/package-summary.html +++ b/xref/org/owasp/dependencycheck/data/nodeaudit/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.data.nodeaudit + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.data.nodeaudit diff --git a/xref/org/owasp/dependencycheck/data/nuget/package-frame.html b/xref/org/owasp/dependencycheck/data/nuget/package-frame.html index 6496f477b67..e63dd98bd5e 100644 --- a/xref/org/owasp/dependencycheck/data/nuget/package-frame.html +++ b/xref/org/owasp/dependencycheck/data/nuget/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.data.nuget + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.data.nuget diff --git a/xref/org/owasp/dependencycheck/data/nuget/package-summary.html b/xref/org/owasp/dependencycheck/data/nuget/package-summary.html index 3e6706329e1..e8334db2010 100644 --- a/xref/org/owasp/dependencycheck/data/nuget/package-summary.html +++ b/xref/org/owasp/dependencycheck/data/nuget/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.data.nuget + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.data.nuget diff --git a/xref/org/owasp/dependencycheck/data/nvd/ecosystem/package-frame.html b/xref/org/owasp/dependencycheck/data/nvd/ecosystem/package-frame.html index e32d24f42f0..91981e67f09 100644 --- a/xref/org/owasp/dependencycheck/data/nvd/ecosystem/package-frame.html +++ b/xref/org/owasp/dependencycheck/data/nvd/ecosystem/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.data.nvd.ecosystem + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.data.nvd.ecosystem diff --git a/xref/org/owasp/dependencycheck/data/nvd/ecosystem/package-summary.html b/xref/org/owasp/dependencycheck/data/nvd/ecosystem/package-summary.html index f9040b2aadd..bbc89d77dcb 100644 --- a/xref/org/owasp/dependencycheck/data/nvd/ecosystem/package-summary.html +++ b/xref/org/owasp/dependencycheck/data/nvd/ecosystem/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.data.nvd.ecosystem + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.data.nvd.ecosystem diff --git a/xref/org/owasp/dependencycheck/data/nvdcve/CveDB.html b/xref/org/owasp/dependencycheck/data/nvdcve/CveDB.html index c8dc4a22560..ef8ae514dc7 100644 --- a/xref/org/owasp/dependencycheck/data/nvdcve/CveDB.html +++ b/xref/org/owasp/dependencycheck/data/nvdcve/CveDB.html @@ -986,835 +986,850 @@ 978 callUpdate.setNull(4, java.sql.Types.DOUBLE); 979 callUpdate.setNull(5, java.sql.Types.DOUBLE); 980 callUpdate.setNull(6, java.sql.Types.VARCHAR); -981 callUpdate.setNull(7, java.sql.Types.BOOLEAN); -982 callUpdate.setNull(8, java.sql.Types.BOOLEAN); -983 callUpdate.setNull(9, java.sql.Types.BOOLEAN); -984 callUpdate.setNull(10, java.sql.Types.BOOLEAN); -985 callUpdate.setNull(11, java.sql.Types.DOUBLE); -986 callUpdate.setNull(12, java.sql.Types.VARCHAR); -987 callUpdate.setNull(13, java.sql.Types.VARCHAR); -988 callUpdate.setNull(14, java.sql.Types.VARCHAR); -989 callUpdate.setNull(15, java.sql.Types.VARCHAR); -990 callUpdate.setNull(16, java.sql.Types.VARCHAR); -991 callUpdate.setNull(17, java.sql.Types.VARCHAR); -992 callUpdate.setNull(18, java.sql.Types.VARCHAR); -993 } -994 Optional<CvssV3> optCvssv30 = Optional.empty(); -995 if (cve.getCve().getMetrics() != null && cve.getCve().getMetrics().getCvssMetricV30() != null) { -996 optCvssv30 = cve.getCve().getMetrics().getCvssMetricV30().stream().sorted(Comparator.comparing(CvssV3::getType)).findFirst(); -997 } -998 Optional<CvssV3> optCvssv31 = Optional.empty(); -999 if (cve.getCve().getMetrics() != null && cve.getCve().getMetrics().getCvssMetricV31() != null) { -1000 optCvssv31 = cve.getCve().getMetrics().getCvssMetricV31().stream().sorted(Comparator.comparing(CvssV3::getType)).findFirst(); -1001 } -1002 -1003 CvssV3 cvssv3 = null; -1004 if (optCvssv31.isPresent()) { -1005 cvssv3 = optCvssv31.get(); -1006 } else if (optCvssv30.isPresent()) { -1007 cvssv3 = optCvssv30.get(); -1008 } -1009 if (cvssv3 != null) { -1010 setUpdateColumn(callUpdate, 19, cvssv3.getExploitabilityScore()); -1011 setUpdateColumn(callUpdate, 20, cvssv3.getImpactScore()); -1012 setUpdateColumn(callUpdate, 21, cvssv3.getCvssData().getAttackVector()); -1013 setUpdateColumn(callUpdate, 22, cvssv3.getCvssData().getAttackComplexity()); -1014 setUpdateColumn(callUpdate, 23, cvssv3.getCvssData().getPrivilegesRequired()); -1015 setUpdateColumn(callUpdate, 24, cvssv3.getCvssData().getUserInteraction()); -1016 setUpdateColumn(callUpdate, 25, cvssv3.getCvssData().getScope()); -1017 setUpdateColumn(callUpdate, 26, cvssv3.getCvssData().getConfidentialityImpact()); -1018 setUpdateColumn(callUpdate, 27, cvssv3.getCvssData().getIntegrityImpact()); -1019 setUpdateColumn(callUpdate, 28, cvssv3.getCvssData().getAvailabilityImpact()); -1020 setUpdateColumn(callUpdate, 29, cvssv3.getCvssData().getBaseScore()); -1021 setUpdateColumn(callUpdate, 30, cvssv3.getCvssData().getBaseSeverity()); -1022 setUpdateColumn(callUpdate, 31, cvssv3.getCvssData().getVersion()); -1023 } else { -1024 callUpdate.setNull(19, java.sql.Types.DOUBLE); -1025 callUpdate.setNull(20, java.sql.Types.DOUBLE); -1026 callUpdate.setNull(21, java.sql.Types.VARCHAR); -1027 callUpdate.setNull(22, java.sql.Types.VARCHAR); -1028 callUpdate.setNull(23, java.sql.Types.VARCHAR); -1029 callUpdate.setNull(24, java.sql.Types.VARCHAR); -1030 callUpdate.setNull(25, java.sql.Types.VARCHAR); -1031 callUpdate.setNull(26, java.sql.Types.VARCHAR); -1032 callUpdate.setNull(27, java.sql.Types.VARCHAR); -1033 callUpdate.setNull(28, java.sql.Types.VARCHAR); -1034 callUpdate.setNull(29, java.sql.Types.DOUBLE); -1035 callUpdate.setNull(30, java.sql.Types.VARCHAR); -1036 callUpdate.setNull(31, java.sql.Types.VARCHAR); -1037 } -1038 if (isOracle) { -1039 try { -1040 final CallableStatement cs = (CallableStatement) callUpdate; -1041 cs.registerOutParameter(32, JDBCType.INTEGER); -1042 cs.executeUpdate(); -1043 vulnerabilityId = cs.getInt(32); -1044 } catch (SQLException ex) { -1045 final String msg = String.format("Unable to retrieve id for new vulnerability for '%s'", cve.getCve().getId()); -1046 throw new DatabaseException(msg, ex); -1047 } -1048 } else { -1049 try (ResultSet rs = callUpdate.executeQuery()) { -1050 rs.next(); -1051 vulnerabilityId = rs.getInt(1); -1052 } catch (SQLException ex) { -1053 final String msg = String.format("Unable to retrieve id for new vulnerability for '%s'", cve.getCve().getId()); -1054 throw new DatabaseException(msg, ex); -1055 } -1056 } -1057 } catch (SQLException ex) { -1058 throw new UnexpectedAnalysisException(ex); -1059 } -1060 return vulnerabilityId; -1061 } -1062 -1063 /** -1064 * Used when updating a vulnerability - this method inserts the CWE entries. -1065 * -1066 * @param vulnerabilityId the vulnerability ID -1067 * @param cve the CVE entry that contains the CWE entries to insert -1068 * @throws SQLException thrown if there is an error inserting the data -1069 */ -1070 private void updateVulnerabilityInsertCwe(int vulnerabilityId, DefCveItem cve) throws SQLException { -1071 if (cve.getCve() != null && cve.getCve().getWeaknesses() != null) { -1072 try (Connection conn = databaseManager.getConnection(); -1073 PreparedStatement insertCWE = getPreparedStatement(conn, INSERT_CWE, vulnerabilityId)) { -1074 for (Weakness weakness : cve.getCve().getWeaknesses()) { -1075 for (LangString desc : weakness.getDescription()) { -1076 if ("en".equals(desc.getLang())) { -1077 insertCWE.setString(2, desc.getValue()); -1078 if (isBatchInsertEnabled()) { -1079 insertCWE.addBatch(); -1080 } else { -1081 insertCWE.execute(); -1082 } -1083 } -1084 } -1085 } -1086 if (isBatchInsertEnabled()) { -1087 insertCWE.executeBatch(); -1088 } -1089 } -1090 } -1091 } -1092 -1093 /** -1094 * Used when updating a vulnerability - in some cases a CVE needs to be -1095 * removed. -1096 * -1097 * @param cve the vulnerability CVE -1098 * @throws SQLException thrown if there is an error deleting the -1099 * vulnerability -1100 */ -1101 private void deleteVulnerability(String cve) throws SQLException { -1102 try (Connection conn = databaseManager.getConnection(); -1103 PreparedStatement deleteVulnerability = getPreparedStatement(conn, DELETE_VULNERABILITY, cve)) { -1104 deleteVulnerability.executeUpdate(); -1105 } -1106 } -1107 -1108 /** -1109 * Merges the list of known exploited vulnerabilities into the database. -1110 * -1111 * @param vulnerabilities the list of known exploited vulnerabilities -1112 * @throws DatabaseException thrown if there is an exception... duh.. -1113 * @throws SQLException thrown if there is an exception... duh.. -1114 */ -1115 public void updateKnownExploitedVulnerabilities( -1116 List<org.owasp.dependencycheck.data.knownexploited.json.Vulnerability> vulnerabilities) -1117 throws DatabaseException, SQLException { -1118 try (Connection conn = databaseManager.getConnection(); -1119 PreparedStatement mergeKnownVulnerability = getPreparedStatement(conn, MERGE_KNOWN_EXPLOITED)) { -1120 int ctr = 0; -1121 for (org.owasp.dependencycheck.data.knownexploited.json.Vulnerability v : vulnerabilities) { -1122 mergeKnownVulnerability.setString(1, v.getCveID()); -1123 addNullableStringParameter(mergeKnownVulnerability, 2, v.getVendorProject()); -1124 addNullableStringParameter(mergeKnownVulnerability, 3, v.getProduct()); -1125 addNullableStringParameter(mergeKnownVulnerability, 4, v.getVulnerabilityName()); -1126 addNullableStringParameter(mergeKnownVulnerability, 5, v.getDateAdded()); -1127 addNullableStringParameter(mergeKnownVulnerability, 6, v.getShortDescription()); -1128 addNullableStringParameter(mergeKnownVulnerability, 7, v.getRequiredAction()); -1129 addNullableStringParameter(mergeKnownVulnerability, 8, v.getDueDate()); -1130 addNullableStringParameter(mergeKnownVulnerability, 9, v.getNotes()); -1131 if (isBatchInsertEnabled()) { -1132 mergeKnownVulnerability.addBatch(); -1133 ctr++; -1134 if (ctr >= getBatchSize()) { -1135 mergeKnownVulnerability.executeBatch(); -1136 ctr = 0; -1137 } -1138 } else { -1139 try { -1140 mergeKnownVulnerability.execute(); -1141 } catch (SQLException ex) { -1142 if (ex.getMessage().contains("Duplicate entry")) { -1143 final String msg = String.format("Duplicate known exploited vulnerability key identified in '%s'", v.getCveID()); -1144 LOGGER.info(msg, ex); -1145 } else { -1146 throw ex; -1147 } -1148 } -1149 } -1150 } -1151 if (isBatchInsertEnabled()) { -1152 mergeKnownVulnerability.executeBatch(); -1153 } -1154 } -1155 } -1156 -1157 /** -1158 * Used when updating a vulnerability - this method inserts the list of -1159 * vulnerable software. -1160 * -1161 * @param vulnerabilityId the vulnerability id -1162 * @param cveId the CVE ID - used for reporting -1163 * @param software the list of vulnerable software -1164 * @param baseEcosystem the ecosystem based off of the vulnerability -1165 * description -1166 * @throws DatabaseException thrown if there is an error inserting the data -1167 * @throws SQLException thrown if there is an error inserting the data -1168 */ -1169 private void updateVulnerabilityInsertSoftware(int vulnerabilityId, String cveId, -1170 List<VulnerableSoftware> software, String baseEcosystem) -1171 throws DatabaseException, SQLException { -1172 try (Connection conn = databaseManager.getConnection(); PreparedStatement insertSoftware = getPreparedStatement(conn, INSERT_SOFTWARE)) { -1173 for (VulnerableSoftware parsedCpe : software) { -1174 insertSoftware.setInt(1, vulnerabilityId); -1175 insertSoftware.setString(2, parsedCpe.getPart().getAbbreviation()); -1176 insertSoftware.setString(3, parsedCpe.getVendor()); -1177 insertSoftware.setString(4, parsedCpe.getProduct()); -1178 insertSoftware.setString(5, parsedCpe.getVersion()); -1179 insertSoftware.setString(6, parsedCpe.getUpdate()); -1180 insertSoftware.setString(7, parsedCpe.getEdition()); -1181 insertSoftware.setString(8, parsedCpe.getLanguage()); -1182 insertSoftware.setString(9, parsedCpe.getSwEdition()); -1183 insertSoftware.setString(10, parsedCpe.getTargetSw()); -1184 insertSoftware.setString(11, parsedCpe.getTargetHw()); -1185 insertSoftware.setString(12, parsedCpe.getOther()); -1186 final String ecosystem = CpeEcosystemCache.getEcosystem(parsedCpe.getVendor(), parsedCpe.getProduct(), -1187 cveItemConverter.extractEcosystem(baseEcosystem, parsedCpe)); -1188 -1189 addNullableStringParameter(insertSoftware, 13, ecosystem); -1190 addNullableStringParameter(insertSoftware, 14, parsedCpe.getVersionEndExcluding()); -1191 addNullableStringParameter(insertSoftware, 15, parsedCpe.getVersionEndIncluding()); -1192 addNullableStringParameter(insertSoftware, 16, parsedCpe.getVersionStartExcluding()); -1193 addNullableStringParameter(insertSoftware, 17, parsedCpe.getVersionStartIncluding()); -1194 insertSoftware.setBoolean(18, parsedCpe.isVulnerable()); -1195 -1196 if (isBatchInsertEnabled()) { -1197 insertSoftware.addBatch(); -1198 } else { -1199 try { -1200 insertSoftware.execute(); -1201 } catch (SQLException ex) { -1202 if (ex.getMessage().contains("Duplicate entry")) { -1203 final String msg = String.format("Duplicate software key identified in '%s'", cveId); -1204 LOGGER.info(msg, ex); -1205 } else { -1206 throw ex; -1207 } -1208 } -1209 } -1210 } -1211 if (isBatchInsertEnabled()) { -1212 executeBatch(cveId, insertSoftware); -1213 } -1214 } -1215 } -1216 -1217 /** -1218 * Used when updating a vulnerability - this method inserts the list of -1219 * references. -1220 * -1221 * @param vulnerabilityId the vulnerability id -1222 * @param cve the CVE entry that contains the list of references -1223 * @throws SQLException thrown if there is an error inserting the data -1224 */ -1225 private void updateVulnerabilityInsertReferences(int vulnerabilityId, DefCveItem cve) throws SQLException { -1226 try (Connection conn = databaseManager.getConnection(); PreparedStatement insertReference = getPreparedStatement(conn, INSERT_REFERENCE)) { -1227 if (cve.getCve().getReferences() != null) { -1228 for (Reference r : cve.getCve().getReferences()) { -1229 insertReference.setInt(1, vulnerabilityId); -1230 Optional<String> name = Optional.empty(); -1231 if (r.getTags() != null) { -1232 name = r.getTags().stream().sorted().findFirst(); -1233 } -1234 if (name.isPresent()) { -1235 insertReference.setString(2, name.get()); -1236 } else { -1237 insertReference.setNull(2, java.sql.Types.VARCHAR); -1238 } -1239 if (r.getUrl() != null && !r.getUrl().isEmpty()) { -1240 insertReference.setString(3, r.getUrl()); -1241 } else { -1242 insertReference.setNull(3, java.sql.Types.VARCHAR); -1243 } -1244 if (r.getSource() != null && !r.getSource().isEmpty()) { -1245 insertReference.setString(4, r.getSource()); -1246 } else { -1247 insertReference.setNull(4, java.sql.Types.VARCHAR); -1248 } -1249 if (isBatchInsertEnabled()) { -1250 insertReference.addBatch(); -1251 } else { -1252 insertReference.execute(); -1253 } -1254 } -1255 } -1256 if (isBatchInsertEnabled()) { -1257 insertReference.executeBatch(); -1258 } -1259 } -1260 } -1261 -1262 /** -1263 * Parses the configuration entries from the CVE entry into a list of -1264 * VulnerableSoftware objects. -1265 * -1266 * @param cve the CVE to parse the vulnerable software entries from -1267 * @return the list of vulnerable software -1268 * @throws CpeValidationException if an invalid CPE is present -1269 */ -1270 private List<VulnerableSoftware> parseCpes(DefCveItem cve) throws CpeValidationException { -1271 final List<VulnerableSoftware> software = new ArrayList<>(); -1272 -1273 final List<CpeMatch> cpeEntries = cve.getCve().getConfigurations().stream() -1274 .map(Config::getNodes) -1275 .flatMap(List::stream) -1276 .map(Node::getCpeMatch) -1277 .flatMap(List::stream) -1278 .filter(predicate -> predicate.getCriteria() != null) -1279 .filter(predicate -> predicate.getCriteria().startsWith(cpeStartsWithFilter)) -1280 //this single CPE entry causes nearly 100% FP - so filtering it at the source. -1281 .filter(entry -> !("CVE-2009-0754".equals(cve.getCve().getId()) -1282 && "cpe:2.3:a:apache:apache:*:*:*:*:*:*:*:*".equals(entry.getCriteria()))) -1283 .collect(Collectors.toList()); -1284 final VulnerableSoftwareBuilder builder = new VulnerableSoftwareBuilder(); -1285 -1286 try { -1287 cpeEntries.forEach(entry -> { -1288 builder.cpe(parseCpe(entry, cve.getCve().getId())) -1289 .versionEndExcluding(entry.getVersionEndExcluding()) -1290 .versionStartExcluding(entry.getVersionStartExcluding()) -1291 .versionEndIncluding(entry.getVersionEndIncluding()) -1292 .versionStartIncluding(entry.getVersionStartIncluding()) -1293 .vulnerable(entry.getVulnerable()); -1294 try { -1295 software.add(builder.build()); -1296 } catch (CpeValidationException ex) { -1297 throw new LambdaExceptionWrapper(ex); -1298 } -1299 }); -1300 } catch (LambdaExceptionWrapper ex) { -1301 throw (CpeValidationException) ex.getCause(); -1302 } -1303 return software; -1304 } -1305 -1306 /** -1307 * Helper method to convert a CpeMatch (generated code used in parsing the -1308 * NVD JSON) into a CPE object. -1309 * -1310 * @param cpe the CPE Match -1311 * @param cveId the CVE associated with the CPEMatch - used for error -1312 * reporting -1313 * @return the resulting CPE object -1314 * @throws DatabaseException thrown if there is an error converting the -1315 * CpeMatch into a CPE object -1316 */ -1317 private Cpe parseCpe(CpeMatch cpe, String cveId) throws DatabaseException { -1318 final Cpe parsedCpe; -1319 try { -1320 //the replace is a hack as the NVD does not properly escape backslashes in their JSON -1321 parsedCpe = CpeParser.parse(cpe.getCriteria(), true); -1322 } catch (CpeParsingException ex) { -1323 LOGGER.debug("NVD (" + cveId + ") contain an invalid 2.3 CPE: " + cpe.getCriteria()); -1324 throw new DatabaseException("Unable to parse CPE: " + cpe.getCriteria(), ex); -1325 } -1326 return parsedCpe; -1327 } -1328 -1329 /** -1330 * Returns the size of the batch. -1331 * -1332 * @return the size of the batch -1333 */ -1334 private int getBatchSize() { -1335 int max; -1336 try { -1337 max = settings.getInt(Settings.KEYS.MAX_BATCH_SIZE); -1338 } catch (InvalidSettingException pE) { -1339 max = 1000; -1340 } -1341 return max; -1342 } -1343 -1344 /** -1345 * Determines whether or not batch insert is enabled. -1346 * -1347 * @return <code>true</code> if batch insert is enabled; otherwise -1348 * <code>false</code> -1349 */ -1350 private boolean isBatchInsertEnabled() { -1351 boolean batch; -1352 try { -1353 batch = settings.getBoolean(Settings.KEYS.ENABLE_BATCH_UPDATES); -1354 } catch (InvalidSettingException pE) { -1355 //If there's no configuration, default is to not perform batch inserts -1356 batch = false; -1357 } -1358 return batch; -1359 } -1360 -1361 /** -1362 * Executes batch inserts of vulnerabilities when property -1363 * database.batchinsert.maxsize is reached. -1364 * -1365 * @param vulnId the vulnerability ID -1366 * @param statement the prepared statement to batch execute -1367 * @throws SQLException thrown when the batch cannot be executed -1368 */ -1369 private void executeBatch(String vulnId, PreparedStatement statement) -1370 throws SQLException { -1371 try { -1372 statement.executeBatch(); -1373 } catch (SQLException ex) { -1374 if (ex.getMessage().contains("Duplicate entry")) { -1375 final String msg = String.format("Duplicate software key identified in '%s'", -1376 vulnId); -1377 LOGGER.info(msg, ex); -1378 } else { -1379 throw ex; -1380 } -1381 } -1382 } -1383 -1384 /** -1385 * Checks to see if data exists so that analysis can be performed. -1386 * -1387 * @return <code>true</code> if data exists; otherwise <code>false</code> -1388 */ -1389 public boolean dataExists() { -1390 try (Connection conn = databaseManager.getConnection(); -1391 PreparedStatement cs = getPreparedStatement(conn, COUNT_CPE); -1392 ResultSet rs = cs.executeQuery()) { -1393 if (rs.next() && rs.getInt(1) > 0) { -1394 return true; -1395 } -1396 } catch (Exception ex) { -1397 String dd; -1398 try { -1399 dd = settings.getDataDirectory().getAbsolutePath(); -1400 } catch (IOException ex1) { -1401 dd = settings.getString(Settings.KEYS.DATA_DIRECTORY); -1402 } -1403 LOGGER.error("Unable to access the local database.\n\nEnsure that '{}' is a writable directory. " -1404 + "If the problem persist try deleting the files in '{}' and running {} again. If the problem continues, please " -1405 + "create a log file (see documentation at https://jeremylong.github.io/DependencyCheck/) and open a ticket at " -1406 + "https://github.com/jeremylong/DependencyCheck/issues and include the log file.\n\n", -1407 dd, dd, settings.getString(Settings.KEYS.APPLICATION_NAME)); -1408 LOGGER.debug("", ex); -1409 } -1410 return false; -1411 } -1412 -1413 /** -1414 * It is possible that orphaned rows may be generated during database -1415 * updates. This should be called after all updates have been completed to -1416 * ensure orphan entries are removed. -1417 */ -1418 public void cleanupDatabase() { -1419 LOGGER.info("Begin database maintenance"); -1420 final long start = System.currentTimeMillis(); -1421 try (Connection conn = databaseManager.getConnection(); -1422 PreparedStatement psOrphans = getPreparedStatement(conn, CLEANUP_ORPHANS); -1423 PreparedStatement psEcosystem = getPreparedStatement(conn, UPDATE_ECOSYSTEM); -1424 PreparedStatement psEcosystem2 = getPreparedStatement(conn, UPDATE_ECOSYSTEM2)) { -1425 if (psEcosystem != null) { -1426 final int count = psEcosystem.executeUpdate(); -1427 if (count > 0) { -1428 LOGGER.info("Updated the CPE ecosystem on {} NVD records", count); -1429 } -1430 } -1431 if (psEcosystem2 != null) { -1432 final int count = psEcosystem2.executeUpdate(); -1433 if (count > 0) { -1434 LOGGER.info("Removed the CPE ecosystem on {} NVD records", count); -1435 } -1436 } -1437 if (psOrphans != null) { -1438 final int count = psOrphans.executeUpdate(); -1439 if (count > 0) { -1440 LOGGER.info("Cleaned up {} orphaned NVD records", count); -1441 } -1442 } -1443 final long millis = System.currentTimeMillis() - start; -1444 //final long seconds = TimeUnit.MILLISECONDS.toSeconds(millis); -1445 LOGGER.info("End database maintenance ({} ms)", millis); -1446 } catch (SQLException ex) { -1447 LOGGER.error("An unexpected SQL Exception occurred; please see the verbose log for more details."); -1448 LOGGER.debug("", ex); -1449 throw new DatabaseException("Unexpected SQL Exception", ex); -1450 } -1451 } -1452 -1453 /** -1454 * Persist the EcosystemCache into the database. -1455 */ -1456 public void persistEcosystemCache() { -1457 saveCpeEcosystemCache(); -1458 clearCache(); -1459 } -1460 -1461 /** -1462 * If the database is using an H2 file based database calling -1463 * <code>defrag()</code> will de-fragment the database. +981 //TODO this is may also be an issue for MS SQL, if an issue is created we'll just need +982 // to create an isMsSQL flag. See todo below in setUpdateColum +983 if (isOracle) { +984 callUpdate.setNull(7, java.sql.Types.BIT); +985 callUpdate.setNull(8, java.sql.Types.BIT); +986 callUpdate.setNull(9, java.sql.Types.BIT); +987 callUpdate.setNull(10, java.sql.Types.BIT); +988 } else { +989 callUpdate.setNull(7, java.sql.Types.BOOLEAN); +990 callUpdate.setNull(8, java.sql.Types.BOOLEAN); +991 callUpdate.setNull(9, java.sql.Types.BOOLEAN); +992 callUpdate.setNull(10, java.sql.Types.BOOLEAN); +993 } +994 callUpdate.setNull(11, java.sql.Types.DOUBLE); +995 callUpdate.setNull(12, java.sql.Types.VARCHAR); +996 callUpdate.setNull(13, java.sql.Types.VARCHAR); +997 callUpdate.setNull(14, java.sql.Types.VARCHAR); +998 callUpdate.setNull(15, java.sql.Types.VARCHAR); +999 callUpdate.setNull(16, java.sql.Types.VARCHAR); +1000 callUpdate.setNull(17, java.sql.Types.VARCHAR); +1001 callUpdate.setNull(18, java.sql.Types.VARCHAR); +1002 } +1003 Optional<CvssV3> optCvssv30 = Optional.empty(); +1004 if (cve.getCve().getMetrics() != null && cve.getCve().getMetrics().getCvssMetricV30() != null) { +1005 optCvssv30 = cve.getCve().getMetrics().getCvssMetricV30().stream().sorted(Comparator.comparing(CvssV3::getType)).findFirst(); +1006 } +1007 Optional<CvssV3> optCvssv31 = Optional.empty(); +1008 if (cve.getCve().getMetrics() != null && cve.getCve().getMetrics().getCvssMetricV31() != null) { +1009 optCvssv31 = cve.getCve().getMetrics().getCvssMetricV31().stream().sorted(Comparator.comparing(CvssV3::getType)).findFirst(); +1010 } +1011 +1012 CvssV3 cvssv3 = null; +1013 if (optCvssv31.isPresent()) { +1014 cvssv3 = optCvssv31.get(); +1015 } else if (optCvssv30.isPresent()) { +1016 cvssv3 = optCvssv30.get(); +1017 } +1018 if (cvssv3 != null) { +1019 setUpdateColumn(callUpdate, 19, cvssv3.getExploitabilityScore()); +1020 setUpdateColumn(callUpdate, 20, cvssv3.getImpactScore()); +1021 setUpdateColumn(callUpdate, 21, cvssv3.getCvssData().getAttackVector()); +1022 setUpdateColumn(callUpdate, 22, cvssv3.getCvssData().getAttackComplexity()); +1023 setUpdateColumn(callUpdate, 23, cvssv3.getCvssData().getPrivilegesRequired()); +1024 setUpdateColumn(callUpdate, 24, cvssv3.getCvssData().getUserInteraction()); +1025 setUpdateColumn(callUpdate, 25, cvssv3.getCvssData().getScope()); +1026 setUpdateColumn(callUpdate, 26, cvssv3.getCvssData().getConfidentialityImpact()); +1027 setUpdateColumn(callUpdate, 27, cvssv3.getCvssData().getIntegrityImpact()); +1028 setUpdateColumn(callUpdate, 28, cvssv3.getCvssData().getAvailabilityImpact()); +1029 setUpdateColumn(callUpdate, 29, cvssv3.getCvssData().getBaseScore()); +1030 setUpdateColumn(callUpdate, 30, cvssv3.getCvssData().getBaseSeverity()); +1031 setUpdateColumn(callUpdate, 31, cvssv3.getCvssData().getVersion()); +1032 } else { +1033 callUpdate.setNull(19, java.sql.Types.DOUBLE); +1034 callUpdate.setNull(20, java.sql.Types.DOUBLE); +1035 callUpdate.setNull(21, java.sql.Types.VARCHAR); +1036 callUpdate.setNull(22, java.sql.Types.VARCHAR); +1037 callUpdate.setNull(23, java.sql.Types.VARCHAR); +1038 callUpdate.setNull(24, java.sql.Types.VARCHAR); +1039 callUpdate.setNull(25, java.sql.Types.VARCHAR); +1040 callUpdate.setNull(26, java.sql.Types.VARCHAR); +1041 callUpdate.setNull(27, java.sql.Types.VARCHAR); +1042 callUpdate.setNull(28, java.sql.Types.VARCHAR); +1043 callUpdate.setNull(29, java.sql.Types.DOUBLE); +1044 callUpdate.setNull(30, java.sql.Types.VARCHAR); +1045 callUpdate.setNull(31, java.sql.Types.VARCHAR); +1046 } +1047 if (isOracle) { +1048 try { +1049 final CallableStatement cs = (CallableStatement) callUpdate; +1050 cs.registerOutParameter(32, JDBCType.INTEGER); +1051 cs.executeUpdate(); +1052 vulnerabilityId = cs.getInt(32); +1053 } catch (SQLException ex) { +1054 final String msg = String.format("Unable to retrieve id for new vulnerability for '%s'", cve.getCve().getId()); +1055 throw new DatabaseException(msg, ex); +1056 } +1057 } else { +1058 try (ResultSet rs = callUpdate.executeQuery()) { +1059 rs.next(); +1060 vulnerabilityId = rs.getInt(1); +1061 } catch (SQLException ex) { +1062 final String msg = String.format("Unable to retrieve id for new vulnerability for '%s'", cve.getCve().getId()); +1063 throw new DatabaseException(msg, ex); +1064 } +1065 } +1066 } catch (SQLException ex) { +1067 throw new UnexpectedAnalysisException(ex); +1068 } +1069 return vulnerabilityId; +1070 } +1071 +1072 /** +1073 * Used when updating a vulnerability - this method inserts the CWE entries. +1074 * +1075 * @param vulnerabilityId the vulnerability ID +1076 * @param cve the CVE entry that contains the CWE entries to insert +1077 * @throws SQLException thrown if there is an error inserting the data +1078 */ +1079 private void updateVulnerabilityInsertCwe(int vulnerabilityId, DefCveItem cve) throws SQLException { +1080 if (cve.getCve() != null && cve.getCve().getWeaknesses() != null) { +1081 try (Connection conn = databaseManager.getConnection(); +1082 PreparedStatement insertCWE = getPreparedStatement(conn, INSERT_CWE, vulnerabilityId)) { +1083 for (Weakness weakness : cve.getCve().getWeaknesses()) { +1084 for (LangString desc : weakness.getDescription()) { +1085 if ("en".equals(desc.getLang())) { +1086 insertCWE.setString(2, desc.getValue()); +1087 if (isBatchInsertEnabled()) { +1088 insertCWE.addBatch(); +1089 } else { +1090 insertCWE.execute(); +1091 } +1092 } +1093 } +1094 } +1095 if (isBatchInsertEnabled()) { +1096 insertCWE.executeBatch(); +1097 } +1098 } +1099 } +1100 } +1101 +1102 /** +1103 * Used when updating a vulnerability - in some cases a CVE needs to be +1104 * removed. +1105 * +1106 * @param cve the vulnerability CVE +1107 * @throws SQLException thrown if there is an error deleting the +1108 * vulnerability +1109 */ +1110 private void deleteVulnerability(String cve) throws SQLException { +1111 try (Connection conn = databaseManager.getConnection(); +1112 PreparedStatement deleteVulnerability = getPreparedStatement(conn, DELETE_VULNERABILITY, cve)) { +1113 deleteVulnerability.executeUpdate(); +1114 } +1115 } +1116 +1117 /** +1118 * Merges the list of known exploited vulnerabilities into the database. +1119 * +1120 * @param vulnerabilities the list of known exploited vulnerabilities +1121 * @throws DatabaseException thrown if there is an exception... duh.. +1122 * @throws SQLException thrown if there is an exception... duh.. +1123 */ +1124 public void updateKnownExploitedVulnerabilities( +1125 List<org.owasp.dependencycheck.data.knownexploited.json.Vulnerability> vulnerabilities) +1126 throws DatabaseException, SQLException { +1127 try (Connection conn = databaseManager.getConnection(); +1128 PreparedStatement mergeKnownVulnerability = getPreparedStatement(conn, MERGE_KNOWN_EXPLOITED)) { +1129 int ctr = 0; +1130 for (org.owasp.dependencycheck.data.knownexploited.json.Vulnerability v : vulnerabilities) { +1131 mergeKnownVulnerability.setString(1, v.getCveID()); +1132 addNullableStringParameter(mergeKnownVulnerability, 2, v.getVendorProject()); +1133 addNullableStringParameter(mergeKnownVulnerability, 3, v.getProduct()); +1134 addNullableStringParameter(mergeKnownVulnerability, 4, v.getVulnerabilityName()); +1135 addNullableStringParameter(mergeKnownVulnerability, 5, v.getDateAdded()); +1136 addNullableStringParameter(mergeKnownVulnerability, 6, v.getShortDescription()); +1137 addNullableStringParameter(mergeKnownVulnerability, 7, v.getRequiredAction()); +1138 addNullableStringParameter(mergeKnownVulnerability, 8, v.getDueDate()); +1139 addNullableStringParameter(mergeKnownVulnerability, 9, v.getNotes()); +1140 if (isBatchInsertEnabled()) { +1141 mergeKnownVulnerability.addBatch(); +1142 ctr++; +1143 if (ctr >= getBatchSize()) { +1144 mergeKnownVulnerability.executeBatch(); +1145 ctr = 0; +1146 } +1147 } else { +1148 try { +1149 mergeKnownVulnerability.execute(); +1150 } catch (SQLException ex) { +1151 if (ex.getMessage().contains("Duplicate entry")) { +1152 final String msg = String.format("Duplicate known exploited vulnerability key identified in '%s'", v.getCveID()); +1153 LOGGER.info(msg, ex); +1154 } else { +1155 throw ex; +1156 } +1157 } +1158 } +1159 } +1160 if (isBatchInsertEnabled()) { +1161 mergeKnownVulnerability.executeBatch(); +1162 } +1163 } +1164 } +1165 +1166 /** +1167 * Used when updating a vulnerability - this method inserts the list of +1168 * vulnerable software. +1169 * +1170 * @param vulnerabilityId the vulnerability id +1171 * @param cveId the CVE ID - used for reporting +1172 * @param software the list of vulnerable software +1173 * @param baseEcosystem the ecosystem based off of the vulnerability +1174 * description +1175 * @throws DatabaseException thrown if there is an error inserting the data +1176 * @throws SQLException thrown if there is an error inserting the data +1177 */ +1178 private void updateVulnerabilityInsertSoftware(int vulnerabilityId, String cveId, +1179 List<VulnerableSoftware> software, String baseEcosystem) +1180 throws DatabaseException, SQLException { +1181 try (Connection conn = databaseManager.getConnection(); PreparedStatement insertSoftware = getPreparedStatement(conn, INSERT_SOFTWARE)) { +1182 for (VulnerableSoftware parsedCpe : software) { +1183 insertSoftware.setInt(1, vulnerabilityId); +1184 insertSoftware.setString(2, parsedCpe.getPart().getAbbreviation()); +1185 insertSoftware.setString(3, parsedCpe.getVendor()); +1186 insertSoftware.setString(4, parsedCpe.getProduct()); +1187 insertSoftware.setString(5, parsedCpe.getVersion()); +1188 insertSoftware.setString(6, parsedCpe.getUpdate()); +1189 insertSoftware.setString(7, parsedCpe.getEdition()); +1190 insertSoftware.setString(8, parsedCpe.getLanguage()); +1191 insertSoftware.setString(9, parsedCpe.getSwEdition()); +1192 insertSoftware.setString(10, parsedCpe.getTargetSw()); +1193 insertSoftware.setString(11, parsedCpe.getTargetHw()); +1194 insertSoftware.setString(12, parsedCpe.getOther()); +1195 final String ecosystem = CpeEcosystemCache.getEcosystem(parsedCpe.getVendor(), parsedCpe.getProduct(), +1196 cveItemConverter.extractEcosystem(baseEcosystem, parsedCpe)); +1197 +1198 addNullableStringParameter(insertSoftware, 13, ecosystem); +1199 addNullableStringParameter(insertSoftware, 14, parsedCpe.getVersionEndExcluding()); +1200 addNullableStringParameter(insertSoftware, 15, parsedCpe.getVersionEndIncluding()); +1201 addNullableStringParameter(insertSoftware, 16, parsedCpe.getVersionStartExcluding()); +1202 addNullableStringParameter(insertSoftware, 17, parsedCpe.getVersionStartIncluding()); +1203 insertSoftware.setBoolean(18, parsedCpe.isVulnerable()); +1204 +1205 if (isBatchInsertEnabled()) { +1206 insertSoftware.addBatch(); +1207 } else { +1208 try { +1209 insertSoftware.execute(); +1210 } catch (SQLException ex) { +1211 if (ex.getMessage().contains("Duplicate entry")) { +1212 final String msg = String.format("Duplicate software key identified in '%s'", cveId); +1213 LOGGER.info(msg, ex); +1214 } else { +1215 throw ex; +1216 } +1217 } +1218 } +1219 } +1220 if (isBatchInsertEnabled()) { +1221 executeBatch(cveId, insertSoftware); +1222 } +1223 } +1224 } +1225 +1226 /** +1227 * Used when updating a vulnerability - this method inserts the list of +1228 * references. +1229 * +1230 * @param vulnerabilityId the vulnerability id +1231 * @param cve the CVE entry that contains the list of references +1232 * @throws SQLException thrown if there is an error inserting the data +1233 */ +1234 private void updateVulnerabilityInsertReferences(int vulnerabilityId, DefCveItem cve) throws SQLException { +1235 try (Connection conn = databaseManager.getConnection(); PreparedStatement insertReference = getPreparedStatement(conn, INSERT_REFERENCE)) { +1236 if (cve.getCve().getReferences() != null) { +1237 for (Reference r : cve.getCve().getReferences()) { +1238 insertReference.setInt(1, vulnerabilityId); +1239 String name = null; +1240 if (r.getTags() != null) { +1241 name = r.getTags().stream().sorted().collect(Collectors.joining(",")).toUpperCase().replaceAll("\\s", "_"); +1242 } +1243 if (name != null) { +1244 insertReference.setString(2, name); +1245 } else { +1246 insertReference.setNull(2, java.sql.Types.VARCHAR); +1247 } +1248 if (r.getUrl() != null && !r.getUrl().isEmpty()) { +1249 insertReference.setString(3, r.getUrl()); +1250 } else { +1251 insertReference.setNull(3, java.sql.Types.VARCHAR); +1252 } +1253 if (r.getSource() != null && !r.getSource().isEmpty()) { +1254 insertReference.setString(4, r.getSource()); +1255 } else { +1256 insertReference.setNull(4, java.sql.Types.VARCHAR); +1257 } +1258 if (isBatchInsertEnabled()) { +1259 insertReference.addBatch(); +1260 } else { +1261 insertReference.execute(); +1262 } +1263 } +1264 } +1265 if (isBatchInsertEnabled()) { +1266 insertReference.executeBatch(); +1267 } +1268 } +1269 } +1270 +1271 /** +1272 * Parses the configuration entries from the CVE entry into a list of +1273 * VulnerableSoftware objects. +1274 * +1275 * @param cve the CVE to parse the vulnerable software entries from +1276 * @return the list of vulnerable software +1277 * @throws CpeValidationException if an invalid CPE is present +1278 */ +1279 private List<VulnerableSoftware> parseCpes(DefCveItem cve) throws CpeValidationException { +1280 final List<VulnerableSoftware> software = new ArrayList<>(); +1281 +1282 final List<CpeMatch> cpeEntries = cve.getCve().getConfigurations().stream() +1283 .map(Config::getNodes) +1284 .flatMap(List::stream) +1285 .map(Node::getCpeMatch) +1286 .flatMap(List::stream) +1287 .filter(predicate -> predicate.getCriteria() != null) +1288 .filter(predicate -> predicate.getCriteria().startsWith(cpeStartsWithFilter)) +1289 //this single CPE entry causes nearly 100% FP - so filtering it at the source. +1290 .filter(entry -> !("CVE-2009-0754".equals(cve.getCve().getId()) +1291 && "cpe:2.3:a:apache:apache:*:*:*:*:*:*:*:*".equals(entry.getCriteria()))) +1292 .collect(Collectors.toList()); +1293 final VulnerableSoftwareBuilder builder = new VulnerableSoftwareBuilder(); +1294 +1295 try { +1296 cpeEntries.forEach(entry -> { +1297 builder.cpe(parseCpe(entry, cve.getCve().getId())) +1298 .versionEndExcluding(entry.getVersionEndExcluding()) +1299 .versionStartExcluding(entry.getVersionStartExcluding()) +1300 .versionEndIncluding(entry.getVersionEndIncluding()) +1301 .versionStartIncluding(entry.getVersionStartIncluding()) +1302 .vulnerable(entry.getVulnerable()); +1303 try { +1304 software.add(builder.build()); +1305 } catch (CpeValidationException ex) { +1306 throw new LambdaExceptionWrapper(ex); +1307 } +1308 }); +1309 } catch (LambdaExceptionWrapper ex) { +1310 throw (CpeValidationException) ex.getCause(); +1311 } +1312 return software; +1313 } +1314 +1315 /** +1316 * Helper method to convert a CpeMatch (generated code used in parsing the +1317 * NVD JSON) into a CPE object. +1318 * +1319 * @param cpe the CPE Match +1320 * @param cveId the CVE associated with the CPEMatch - used for error +1321 * reporting +1322 * @return the resulting CPE object +1323 * @throws DatabaseException thrown if there is an error converting the +1324 * CpeMatch into a CPE object +1325 */ +1326 private Cpe parseCpe(CpeMatch cpe, String cveId) throws DatabaseException { +1327 final Cpe parsedCpe; +1328 try { +1329 //the replace is a hack as the NVD does not properly escape backslashes in their JSON +1330 parsedCpe = CpeParser.parse(cpe.getCriteria(), true); +1331 } catch (CpeParsingException ex) { +1332 LOGGER.debug("NVD (" + cveId + ") contain an invalid 2.3 CPE: " + cpe.getCriteria()); +1333 throw new DatabaseException("Unable to parse CPE: " + cpe.getCriteria(), ex); +1334 } +1335 return parsedCpe; +1336 } +1337 +1338 /** +1339 * Returns the size of the batch. +1340 * +1341 * @return the size of the batch +1342 */ +1343 private int getBatchSize() { +1344 int max; +1345 try { +1346 max = settings.getInt(Settings.KEYS.MAX_BATCH_SIZE); +1347 } catch (InvalidSettingException pE) { +1348 max = 1000; +1349 } +1350 return max; +1351 } +1352 +1353 /** +1354 * Determines whether or not batch insert is enabled. +1355 * +1356 * @return <code>true</code> if batch insert is enabled; otherwise +1357 * <code>false</code> +1358 */ +1359 private boolean isBatchInsertEnabled() { +1360 boolean batch; +1361 try { +1362 batch = settings.getBoolean(Settings.KEYS.ENABLE_BATCH_UPDATES); +1363 } catch (InvalidSettingException pE) { +1364 //If there's no configuration, default is to not perform batch inserts +1365 batch = false; +1366 } +1367 return batch; +1368 } +1369 +1370 /** +1371 * Executes batch inserts of vulnerabilities when property +1372 * database.batchinsert.maxsize is reached. +1373 * +1374 * @param vulnId the vulnerability ID +1375 * @param statement the prepared statement to batch execute +1376 * @throws SQLException thrown when the batch cannot be executed +1377 */ +1378 private void executeBatch(String vulnId, PreparedStatement statement) +1379 throws SQLException { +1380 try { +1381 statement.executeBatch(); +1382 } catch (SQLException ex) { +1383 if (ex.getMessage().contains("Duplicate entry")) { +1384 final String msg = String.format("Duplicate software key identified in '%s'", +1385 vulnId); +1386 LOGGER.info(msg, ex); +1387 } else { +1388 throw ex; +1389 } +1390 } +1391 } +1392 +1393 /** +1394 * Checks to see if data exists so that analysis can be performed. +1395 * +1396 * @return <code>true</code> if data exists; otherwise <code>false</code> +1397 */ +1398 public boolean dataExists() { +1399 try (Connection conn = databaseManager.getConnection(); +1400 PreparedStatement cs = getPreparedStatement(conn, COUNT_CPE); +1401 ResultSet rs = cs.executeQuery()) { +1402 if (rs.next() && rs.getInt(1) > 0) { +1403 return true; +1404 } +1405 } catch (Exception ex) { +1406 String dd; +1407 try { +1408 dd = settings.getDataDirectory().getAbsolutePath(); +1409 } catch (IOException ex1) { +1410 dd = settings.getString(Settings.KEYS.DATA_DIRECTORY); +1411 } +1412 LOGGER.error("Unable to access the local database.\n\nEnsure that '{}' is a writable directory. " +1413 + "If the problem persist try deleting the files in '{}' and running {} again. If the problem continues, please " +1414 + "create a log file (see documentation at https://jeremylong.github.io/DependencyCheck/) and open a ticket at " +1415 + "https://github.com/jeremylong/DependencyCheck/issues and include the log file.\n\n", +1416 dd, dd, settings.getString(Settings.KEYS.APPLICATION_NAME)); +1417 LOGGER.debug("", ex); +1418 } +1419 return false; +1420 } +1421 +1422 /** +1423 * It is possible that orphaned rows may be generated during database +1424 * updates. This should be called after all updates have been completed to +1425 * ensure orphan entries are removed. +1426 */ +1427 public void cleanupDatabase() { +1428 LOGGER.info("Begin database maintenance"); +1429 final long start = System.currentTimeMillis(); +1430 try (Connection conn = databaseManager.getConnection(); +1431 PreparedStatement psOrphans = getPreparedStatement(conn, CLEANUP_ORPHANS); +1432 PreparedStatement psEcosystem = getPreparedStatement(conn, UPDATE_ECOSYSTEM); +1433 PreparedStatement psEcosystem2 = getPreparedStatement(conn, UPDATE_ECOSYSTEM2)) { +1434 if (psEcosystem != null) { +1435 final int count = psEcosystem.executeUpdate(); +1436 if (count > 0) { +1437 LOGGER.info("Updated the CPE ecosystem on {} NVD records", count); +1438 } +1439 } +1440 if (psEcosystem2 != null) { +1441 final int count = psEcosystem2.executeUpdate(); +1442 if (count > 0) { +1443 LOGGER.info("Removed the CPE ecosystem on {} NVD records", count); +1444 } +1445 } +1446 if (psOrphans != null) { +1447 final int count = psOrphans.executeUpdate(); +1448 if (count > 0) { +1449 LOGGER.info("Cleaned up {} orphaned NVD records", count); +1450 } +1451 } +1452 final long millis = System.currentTimeMillis() - start; +1453 //final long seconds = TimeUnit.MILLISECONDS.toSeconds(millis); +1454 LOGGER.info("End database maintenance ({} ms)", millis); +1455 } catch (SQLException ex) { +1456 LOGGER.error("An unexpected SQL Exception occurred; please see the verbose log for more details."); +1457 LOGGER.debug("", ex); +1458 throw new DatabaseException("Unexpected SQL Exception", ex); +1459 } +1460 } +1461 +1462 /** +1463 * Persist the EcosystemCache into the database. 1464 */ -1465 public void defrag() { -1466 if (isH2) { -1467 final long start = System.currentTimeMillis(); -1468 try (Connection conn = databaseManager.getConnection(); CallableStatement psCompaxt = conn.prepareCall("SHUTDOWN DEFRAG")) { -1469 LOGGER.info("Begin database defrag"); -1470 psCompaxt.execute(); -1471 final long millis = System.currentTimeMillis() - start; -1472 //final long seconds = TimeUnit.MILLISECONDS.toSeconds(millis); -1473 LOGGER.info("End database defrag ({} ms)", millis); -1474 } catch (SQLException ex) { -1475 LOGGER.error("An unexpected SQL Exception occurred compacting the database; please see the verbose log for more details."); -1476 LOGGER.debug("", ex); -1477 } -1478 } -1479 } -1480 -1481 /** -1482 * Determines if the given identifiedVersion is affected by the given cpeId -1483 * and previous version flag. A non-null, non-empty string passed to the -1484 * previous version argument indicates that all previous versions are -1485 * affected. -1486 * -1487 * @param cpe the CPE for the given dependency -1488 * @param vulnerableSoftware a set of the vulnerable software -1489 * @return true if the identified version is affected, otherwise false -1490 */ -1491 VulnerableSoftware getMatchingSoftware(Cpe cpe, Set<VulnerableSoftware> vulnerableSoftware) { -1492 VulnerableSoftware matched = null; -1493 for (VulnerableSoftware vs : vulnerableSoftware) { -1494 if (vs.matches(cpe)) { -1495 if (matched == null) { -1496 matched = vs; -1497 } else { -1498 if ("*".equals(vs.getWellFormedUpdate()) && !"*".equals(matched.getWellFormedUpdate())) { -1499 matched = vs; -1500 } -1501 } -1502 } -1503 } -1504 return matched; -1505 } -1506 -1507 /** -1508 * This method is only referenced in unused code. -1509 * <p> -1510 * Deletes unused dictionary entries from the database. -1511 * </p> -1512 */ -1513 public void deleteUnusedCpe() { -1514 clearCache(); -1515 try (Connection conn = databaseManager.getConnection(); PreparedStatement ps = getPreparedStatement(conn, DELETE_UNUSED_DICT_CPE)) { -1516 ps.executeUpdate(); -1517 } catch (SQLException ex) { -1518 LOGGER.error("Unable to delete CPE dictionary entries", ex); -1519 } -1520 } -1521 -1522 /** -1523 * This method is only referenced in unused code and will likely break on -1524 * MySQL if ever used due to the MERGE statement. -1525 * <p> -1526 * Merges CPE entries into the database. -1527 * </p> -1528 * -1529 * @param cpe the CPE identifier -1530 * @param vendor the CPE vendor -1531 * @param product the CPE product -1532 */ -1533 public void addCpe(String cpe, String vendor, String product) { -1534 clearCache(); -1535 try (Connection conn = databaseManager.getConnection(); PreparedStatement ps = getPreparedStatement(conn, ADD_DICT_CPE)) { -1536 ps.setString(1, cpe); -1537 ps.setString(2, vendor); -1538 ps.setString(3, product); -1539 ps.executeUpdate(); -1540 } catch (SQLException ex) { -1541 LOGGER.error("Unable to add CPE dictionary entry", ex); -1542 } -1543 } -1544 -1545 /** -1546 * Returns a map of known exploited vulnerabilities. -1547 * -1548 * @return a map of known exploited vulnerabilities -1549 */ -1550 public Map<String, org.owasp.dependencycheck.data.knownexploited.json.Vulnerability> getknownExploitedVulnerabilities() { -1551 final Map<String, org.owasp.dependencycheck.data.knownexploited.json.Vulnerability> known = new HashMap<>(); -1552 -1553 try (Connection conn = databaseManager.getConnection(); -1554 PreparedStatement ps = getPreparedStatement(conn, SELECT_KNOWN_EXPLOITED_VULNERABILITIES); -1555 ResultSet rs = ps.executeQuery()) { -1556 -1557 while (rs.next()) { -1558 final org.owasp.dependencycheck.data.knownexploited.json.Vulnerability kev = -1559 new org.owasp.dependencycheck.data.knownexploited.json.Vulnerability(); -1560 kev.setCveID(rs.getString(1)); -1561 kev.setVendorProject(rs.getString(2)); -1562 kev.setProduct(rs.getString(3)); -1563 kev.setVulnerabilityName(rs.getString(4)); -1564 kev.setDateAdded(rs.getString(5)); -1565 kev.setShortDescription(rs.getString(6)); -1566 kev.setRequiredAction(rs.getString(7)); -1567 kev.setDueDate(rs.getString(8)); -1568 kev.setNotes(rs.getString(9)); -1569 known.put(kev.getCveID(), kev); -1570 } -1571 -1572 } catch (SQLException ex) { -1573 throw new DatabaseException(ex); -1574 } -1575 return known; -1576 } -1577 -1578 /** -1579 * Helper method to add a nullable string parameter. -1580 * -1581 * @param ps the prepared statement -1582 * @param pos the position of the parameter -1583 * @param value the value of the parameter -1584 * @throws SQLException thrown if there is an error setting the parameter. -1585 */ -1586 private void addNullableStringParameter(PreparedStatement ps, int pos, String value) throws SQLException { -1587 if (value == null || value.isEmpty()) { -1588 ps.setNull(pos, java.sql.Types.VARCHAR); -1589 } else { -1590 ps.setString(pos, value); -1591 } -1592 } -1593 -1594 private void setUpdateColumn(PreparedStatement ps, int i, Double value) throws SQLException { -1595 if (value == null) { -1596 ps.setNull(i, java.sql.Types.DOUBLE); -1597 } else { -1598 ps.setDouble(i, value); -1599 } -1600 } -1601 -1602 private void setUpdateColumn(PreparedStatement ps, int i, CvssV2Data.AuthenticationType value) throws SQLException { -1603 if (value == null) { -1604 ps.setNull(i, java.sql.Types.VARCHAR); -1605 } else { -1606 ps.setString(i, value.value()); -1607 } -1608 } -1609 -1610 private void setUpdateColumn(PreparedStatement ps, int i, CvssV2Data.CiaType value) throws SQLException { -1611 if (value == null) { -1612 ps.setNull(i, java.sql.Types.VARCHAR); -1613 } else { -1614 ps.setString(i, value.value()); -1615 } -1616 } -1617 -1618 private void setUpdateColumn(PreparedStatement ps, int i, CvssV2Data.Version value) throws SQLException { -1619 if (value == null) { -1620 ps.setNull(i, java.sql.Types.VARCHAR); -1621 } else { -1622 ps.setString(i, value.value()); -1623 } -1624 } -1625 -1626 private void setUpdateColumn(PreparedStatement ps, int i, CvssV2Data.AccessComplexityType value) throws SQLException { -1627 if (value == null) { -1628 ps.setNull(i, java.sql.Types.VARCHAR); -1629 } else { -1630 ps.setString(i, value.value()); -1631 } -1632 } -1633 -1634 private void setUpdateColumn(PreparedStatement ps, int i, CvssV2Data.AccessVectorType value) throws SQLException { -1635 if (value == null) { -1636 ps.setNull(i, java.sql.Types.VARCHAR); -1637 } else { -1638 ps.setString(i, value.value()); -1639 } -1640 } -1641 -1642 private void setUpdateColumn(PreparedStatement ps, int i, String value) throws SQLException { -1643 if (value == null) { -1644 ps.setNull(i, java.sql.Types.VARCHAR); -1645 } else { -1646 ps.setString(i, value); -1647 } -1648 } -1649 -1650 private void setUpdateColumn(PreparedStatement ps, int i, Boolean value) throws SQLException { -1651 if (value == null) { -1652 ps.setNull(i, java.sql.Types.BOOLEAN); -1653 } else { -1654 ps.setBoolean(i, value); -1655 } -1656 } -1657 -1658 private void setUpdateColumn(PreparedStatement ps, int i, CvssV3Data.AttackVectorType value) throws SQLException { -1659 if (value == null) { -1660 ps.setNull(i, java.sql.Types.VARCHAR); -1661 } else { -1662 ps.setString(i, value.value()); -1663 } -1664 } -1665 -1666 private void setUpdateColumn(PreparedStatement ps, int i, CvssV3Data.AttackComplexityType value) throws SQLException { -1667 if (value == null) { -1668 ps.setNull(i, java.sql.Types.VARCHAR); -1669 } else { -1670 ps.setString(i, value.value()); -1671 } -1672 } -1673 -1674 private void setUpdateColumn(PreparedStatement ps, int i, CvssV3Data.PrivilegesRequiredType value) throws SQLException { -1675 if (value == null) { -1676 ps.setNull(i, java.sql.Types.VARCHAR); -1677 } else { -1678 ps.setString(i, value.value()); -1679 } -1680 } -1681 -1682 private void setUpdateColumn(PreparedStatement ps, int i, CvssV3Data.UserInteractionType value) throws SQLException { -1683 if (value == null) { -1684 ps.setNull(i, java.sql.Types.VARCHAR); -1685 } else { -1686 ps.setString(i, value.value()); -1687 } -1688 } -1689 -1690 private void setUpdateColumn(PreparedStatement ps, int i, CvssV3Data.ScopeType value) throws SQLException { -1691 if (value == null) { -1692 ps.setNull(i, java.sql.Types.VARCHAR); -1693 } else { -1694 ps.setString(i, value.value()); -1695 } -1696 } -1697 -1698 private void setUpdateColumn(PreparedStatement ps, int i, CvssV3Data.SeverityType value) throws SQLException { -1699 if (value == null) { -1700 ps.setNull(i, java.sql.Types.VARCHAR); -1701 } else { -1702 ps.setString(i, value.value()); -1703 } -1704 } -1705 -1706 private void setUpdateColumn(PreparedStatement ps, int i, CvssV3Data.CiaType value) throws SQLException { -1707 if (value == null) { -1708 ps.setNull(i, java.sql.Types.VARCHAR); -1709 } else { -1710 ps.setString(i, value.value()); -1711 } -1712 } -1713 -1714 private void setUpdateColumn(PreparedStatement ps, int i, CvssV3Data.Version value) throws SQLException { -1715 if (value == null) { -1716 ps.setNull(i, java.sql.Types.VARCHAR); -1717 } else { -1718 ps.setString(i, value.value()); -1719 } -1720 } -1721 -1722 /** -1723 * Sets the float parameter on a prepared statement from a properties map. -1724 * -1725 * @param ps a prepared statement -1726 * @param i the index of the property -1727 * @param props the property collection -1728 * @param key the property key -1729 * @throws SQLException thrown if there is an error adding the property -1730 */ -1731 private void setFloatValue(PreparedStatement ps, int i, Map<String, Object> props, String key) throws SQLException { -1732 if (props != null && props.containsKey(key)) { -1733 try { -1734 ps.setFloat(i, Float.parseFloat(props.get(key).toString())); -1735 } catch (NumberFormatException nfe) { -1736 ps.setNull(i, java.sql.Types.FLOAT); -1737 } -1738 } else { -1739 ps.setNull(i, java.sql.Types.FLOAT); -1740 } -1741 } -1742 -1743 /** -1744 * Sets the string parameter on a prepared statement from a properties map. -1745 * -1746 * @param ps a prepared statement -1747 * @param i the index of the property -1748 * @param props the property collection -1749 * @param key the property key -1750 * @throws SQLException thrown if there is an error adding the property -1751 */ -1752 private void setStringValue(PreparedStatement ps, int i, Map<String, Object> props, String key) throws SQLException { -1753 if (props != null && props.containsKey(key)) { -1754 ps.setString(i, props.get(key).toString()); -1755 } else { -1756 ps.setNull(i, java.sql.Types.VARCHAR); -1757 } -1758 } -1759 -1760 /** -1761 * Sets the boolean parameter on a prepared statement from a properties map. -1762 * -1763 * @param ps a prepared statement -1764 * @param i the index of the property -1765 * @param props the property collection -1766 * @param key the property key -1767 * @throws SQLException thrown if there is an error adding the property -1768 */ -1769 private void setBooleanValue(PreparedStatement ps, int i, Map<String, Object> props, String key) throws SQLException { -1770 if (props != null && props.containsKey(key)) { -1771 ps.setBoolean(i, Boolean.parseBoolean(props.get(key).toString())); -1772 } else { -1773 ps.setNull(i, java.sql.Types.BOOLEAN); -1774 } -1775 } -1776 -1777 /** -1778 * Returns the Boolean value for the given index; if the value is null then -1779 * null is returned. -1780 * -1781 * @param rs the record set -1782 * @param index the parameter index -1783 * @return the Boolean value; or null -1784 * @throws SQLException thrown if there is an error obtaining the value -1785 */ -1786 @SuppressFBWarnings("NP_BOOLEAN_RETURN_NULL") -1787 private Boolean getBooleanValue(ResultSet rs, int index) throws SQLException { -1788 if (rs.getObject(index) == null) { -1789 return null; -1790 } -1791 return rs.getBoolean(index); -1792 } -1793 -1794 /** -1795 * Returns the Float value for the given index; if the value is null then -1796 * null is returned. -1797 * -1798 * @param rs the record set -1799 * @param index the parameter index -1800 * @return the Float value; or null -1801 * @throws SQLException thrown if there is an error obtaining the value -1802 */ -1803 private Float getFloatValue(ResultSet rs, int index) throws SQLException { -1804 if (rs.getObject(index) == null) { -1805 return null; -1806 } -1807 return rs.getFloat(index); -1808 } -1809 } +1465 public void persistEcosystemCache() { +1466 saveCpeEcosystemCache(); +1467 clearCache(); +1468 } +1469 +1470 /** +1471 * If the database is using an H2 file based database calling +1472 * <code>defrag()</code> will de-fragment the database. +1473 */ +1474 public void defrag() { +1475 if (isH2) { +1476 final long start = System.currentTimeMillis(); +1477 try (Connection conn = databaseManager.getConnection(); CallableStatement psCompaxt = conn.prepareCall("SHUTDOWN DEFRAG")) { +1478 LOGGER.info("Begin database defrag"); +1479 psCompaxt.execute(); +1480 final long millis = System.currentTimeMillis() - start; +1481 //final long seconds = TimeUnit.MILLISECONDS.toSeconds(millis); +1482 LOGGER.info("End database defrag ({} ms)", millis); +1483 } catch (SQLException ex) { +1484 LOGGER.error("An unexpected SQL Exception occurred compacting the database; please see the verbose log for more details."); +1485 LOGGER.debug("", ex); +1486 } +1487 } +1488 } +1489 +1490 /** +1491 * Determines if the given identifiedVersion is affected by the given cpeId +1492 * and previous version flag. A non-null, non-empty string passed to the +1493 * previous version argument indicates that all previous versions are +1494 * affected. +1495 * +1496 * @param cpe the CPE for the given dependency +1497 * @param vulnerableSoftware a set of the vulnerable software +1498 * @return true if the identified version is affected, otherwise false +1499 */ +1500 VulnerableSoftware getMatchingSoftware(Cpe cpe, Set<VulnerableSoftware> vulnerableSoftware) { +1501 VulnerableSoftware matched = null; +1502 for (VulnerableSoftware vs : vulnerableSoftware) { +1503 if (vs.matches(cpe)) { +1504 if (matched == null) { +1505 matched = vs; +1506 } else { +1507 if ("*".equals(vs.getWellFormedUpdate()) && !"*".equals(matched.getWellFormedUpdate())) { +1508 matched = vs; +1509 } +1510 } +1511 } +1512 } +1513 return matched; +1514 } +1515 +1516 /** +1517 * This method is only referenced in unused code. +1518 * <p> +1519 * Deletes unused dictionary entries from the database. +1520 * </p> +1521 */ +1522 public void deleteUnusedCpe() { +1523 clearCache(); +1524 try (Connection conn = databaseManager.getConnection(); PreparedStatement ps = getPreparedStatement(conn, DELETE_UNUSED_DICT_CPE)) { +1525 ps.executeUpdate(); +1526 } catch (SQLException ex) { +1527 LOGGER.error("Unable to delete CPE dictionary entries", ex); +1528 } +1529 } +1530 +1531 /** +1532 * This method is only referenced in unused code and will likely break on +1533 * MySQL if ever used due to the MERGE statement. +1534 * <p> +1535 * Merges CPE entries into the database. +1536 * </p> +1537 * +1538 * @param cpe the CPE identifier +1539 * @param vendor the CPE vendor +1540 * @param product the CPE product +1541 */ +1542 public void addCpe(String cpe, String vendor, String product) { +1543 clearCache(); +1544 try (Connection conn = databaseManager.getConnection(); PreparedStatement ps = getPreparedStatement(conn, ADD_DICT_CPE)) { +1545 ps.setString(1, cpe); +1546 ps.setString(2, vendor); +1547 ps.setString(3, product); +1548 ps.executeUpdate(); +1549 } catch (SQLException ex) { +1550 LOGGER.error("Unable to add CPE dictionary entry", ex); +1551 } +1552 } +1553 +1554 /** +1555 * Returns a map of known exploited vulnerabilities. +1556 * +1557 * @return a map of known exploited vulnerabilities +1558 */ +1559 public Map<String, org.owasp.dependencycheck.data.knownexploited.json.Vulnerability> getknownExploitedVulnerabilities() { +1560 final Map<String, org.owasp.dependencycheck.data.knownexploited.json.Vulnerability> known = new HashMap<>(); +1561 +1562 try (Connection conn = databaseManager.getConnection(); +1563 PreparedStatement ps = getPreparedStatement(conn, SELECT_KNOWN_EXPLOITED_VULNERABILITIES); +1564 ResultSet rs = ps.executeQuery()) { +1565 +1566 while (rs.next()) { +1567 final org.owasp.dependencycheck.data.knownexploited.json.Vulnerability kev = +1568 new org.owasp.dependencycheck.data.knownexploited.json.Vulnerability(); +1569 kev.setCveID(rs.getString(1)); +1570 kev.setVendorProject(rs.getString(2)); +1571 kev.setProduct(rs.getString(3)); +1572 kev.setVulnerabilityName(rs.getString(4)); +1573 kev.setDateAdded(rs.getString(5)); +1574 kev.setShortDescription(rs.getString(6)); +1575 kev.setRequiredAction(rs.getString(7)); +1576 kev.setDueDate(rs.getString(8)); +1577 kev.setNotes(rs.getString(9)); +1578 known.put(kev.getCveID(), kev); +1579 } +1580 +1581 } catch (SQLException ex) { +1582 throw new DatabaseException(ex); +1583 } +1584 return known; +1585 } +1586 +1587 /** +1588 * Helper method to add a nullable string parameter. +1589 * +1590 * @param ps the prepared statement +1591 * @param pos the position of the parameter +1592 * @param value the value of the parameter +1593 * @throws SQLException thrown if there is an error setting the parameter. +1594 */ +1595 private void addNullableStringParameter(PreparedStatement ps, int pos, String value) throws SQLException { +1596 if (value == null || value.isEmpty()) { +1597 ps.setNull(pos, java.sql.Types.VARCHAR); +1598 } else { +1599 ps.setString(pos, value); +1600 } +1601 } +1602 +1603 private void setUpdateColumn(PreparedStatement ps, int i, Double value) throws SQLException { +1604 if (value == null) { +1605 ps.setNull(i, java.sql.Types.DOUBLE); +1606 } else { +1607 ps.setDouble(i, value); +1608 } +1609 } +1610 +1611 private void setUpdateColumn(PreparedStatement ps, int i, CvssV2Data.AuthenticationType value) throws SQLException { +1612 if (value == null) { +1613 ps.setNull(i, java.sql.Types.VARCHAR); +1614 } else { +1615 ps.setString(i, value.value()); +1616 } +1617 } +1618 +1619 private void setUpdateColumn(PreparedStatement ps, int i, CvssV2Data.CiaType value) throws SQLException { +1620 if (value == null) { +1621 ps.setNull(i, java.sql.Types.VARCHAR); +1622 } else { +1623 ps.setString(i, value.value()); +1624 } +1625 } +1626 +1627 private void setUpdateColumn(PreparedStatement ps, int i, CvssV2Data.Version value) throws SQLException { +1628 if (value == null) { +1629 ps.setNull(i, java.sql.Types.VARCHAR); +1630 } else { +1631 ps.setString(i, value.value()); +1632 } +1633 } +1634 +1635 private void setUpdateColumn(PreparedStatement ps, int i, CvssV2Data.AccessComplexityType value) throws SQLException { +1636 if (value == null) { +1637 ps.setNull(i, java.sql.Types.VARCHAR); +1638 } else { +1639 ps.setString(i, value.value()); +1640 } +1641 } +1642 +1643 private void setUpdateColumn(PreparedStatement ps, int i, CvssV2Data.AccessVectorType value) throws SQLException { +1644 if (value == null) { +1645 ps.setNull(i, java.sql.Types.VARCHAR); +1646 } else { +1647 ps.setString(i, value.value()); +1648 } +1649 } +1650 +1651 private void setUpdateColumn(PreparedStatement ps, int i, String value) throws SQLException { +1652 if (value == null) { +1653 ps.setNull(i, java.sql.Types.VARCHAR); +1654 } else { +1655 ps.setString(i, value); +1656 } +1657 } +1658 +1659 private void setUpdateColumn(PreparedStatement ps, int i, Boolean value) throws SQLException { +1660 if (value == null) { +1661 //TODO this is may also be an issue for MS SQL, if an issue is created we'll just need +1662 // to create an isMsSQL flag. See todo above in updateOrInsertVulnerability. +1663 if (isOracle) { +1664 ps.setNull(i, java.sql.Types.BIT); +1665 } else { +1666 ps.setNull(i, java.sql.Types.BOOLEAN); +1667 } +1668 } else { +1669 ps.setBoolean(i, value); +1670 } +1671 } +1672 +1673 private void setUpdateColumn(PreparedStatement ps, int i, CvssV3Data.AttackVectorType value) throws SQLException { +1674 if (value == null) { +1675 ps.setNull(i, java.sql.Types.VARCHAR); +1676 } else { +1677 ps.setString(i, value.value()); +1678 } +1679 } +1680 +1681 private void setUpdateColumn(PreparedStatement ps, int i, CvssV3Data.AttackComplexityType value) throws SQLException { +1682 if (value == null) { +1683 ps.setNull(i, java.sql.Types.VARCHAR); +1684 } else { +1685 ps.setString(i, value.value()); +1686 } +1687 } +1688 +1689 private void setUpdateColumn(PreparedStatement ps, int i, CvssV3Data.PrivilegesRequiredType value) throws SQLException { +1690 if (value == null) { +1691 ps.setNull(i, java.sql.Types.VARCHAR); +1692 } else { +1693 ps.setString(i, value.value()); +1694 } +1695 } +1696 +1697 private void setUpdateColumn(PreparedStatement ps, int i, CvssV3Data.UserInteractionType value) throws SQLException { +1698 if (value == null) { +1699 ps.setNull(i, java.sql.Types.VARCHAR); +1700 } else { +1701 ps.setString(i, value.value()); +1702 } +1703 } +1704 +1705 private void setUpdateColumn(PreparedStatement ps, int i, CvssV3Data.ScopeType value) throws SQLException { +1706 if (value == null) { +1707 ps.setNull(i, java.sql.Types.VARCHAR); +1708 } else { +1709 ps.setString(i, value.value()); +1710 } +1711 } +1712 +1713 private void setUpdateColumn(PreparedStatement ps, int i, CvssV3Data.SeverityType value) throws SQLException { +1714 if (value == null) { +1715 ps.setNull(i, java.sql.Types.VARCHAR); +1716 } else { +1717 ps.setString(i, value.value()); +1718 } +1719 } +1720 +1721 private void setUpdateColumn(PreparedStatement ps, int i, CvssV3Data.CiaType value) throws SQLException { +1722 if (value == null) { +1723 ps.setNull(i, java.sql.Types.VARCHAR); +1724 } else { +1725 ps.setString(i, value.value()); +1726 } +1727 } +1728 +1729 private void setUpdateColumn(PreparedStatement ps, int i, CvssV3Data.Version value) throws SQLException { +1730 if (value == null) { +1731 ps.setNull(i, java.sql.Types.VARCHAR); +1732 } else { +1733 ps.setString(i, value.value()); +1734 } +1735 } +1736 +1737 /** +1738 * Sets the float parameter on a prepared statement from a properties map. +1739 * +1740 * @param ps a prepared statement +1741 * @param i the index of the property +1742 * @param props the property collection +1743 * @param key the property key +1744 * @throws SQLException thrown if there is an error adding the property +1745 */ +1746 private void setFloatValue(PreparedStatement ps, int i, Map<String, Object> props, String key) throws SQLException { +1747 if (props != null && props.containsKey(key)) { +1748 try { +1749 ps.setFloat(i, Float.parseFloat(props.get(key).toString())); +1750 } catch (NumberFormatException nfe) { +1751 ps.setNull(i, java.sql.Types.FLOAT); +1752 } +1753 } else { +1754 ps.setNull(i, java.sql.Types.FLOAT); +1755 } +1756 } +1757 +1758 /** +1759 * Sets the string parameter on a prepared statement from a properties map. +1760 * +1761 * @param ps a prepared statement +1762 * @param i the index of the property +1763 * @param props the property collection +1764 * @param key the property key +1765 * @throws SQLException thrown if there is an error adding the property +1766 */ +1767 private void setStringValue(PreparedStatement ps, int i, Map<String, Object> props, String key) throws SQLException { +1768 if (props != null && props.containsKey(key)) { +1769 ps.setString(i, props.get(key).toString()); +1770 } else { +1771 ps.setNull(i, java.sql.Types.VARCHAR); +1772 } +1773 } +1774 +1775 /** +1776 * Sets the boolean parameter on a prepared statement from a properties map. +1777 * +1778 * @param ps a prepared statement +1779 * @param i the index of the property +1780 * @param props the property collection +1781 * @param key the property key +1782 * @throws SQLException thrown if there is an error adding the property +1783 */ +1784 private void setBooleanValue(PreparedStatement ps, int i, Map<String, Object> props, String key) throws SQLException { +1785 if (props != null && props.containsKey(key)) { +1786 ps.setBoolean(i, Boolean.parseBoolean(props.get(key).toString())); +1787 } else { +1788 ps.setNull(i, java.sql.Types.BOOLEAN); +1789 } +1790 } +1791 +1792 /** +1793 * Returns the Boolean value for the given index; if the value is null then +1794 * null is returned. +1795 * +1796 * @param rs the record set +1797 * @param index the parameter index +1798 * @return the Boolean value; or null +1799 * @throws SQLException thrown if there is an error obtaining the value +1800 */ +1801 @SuppressFBWarnings("NP_BOOLEAN_RETURN_NULL") +1802 private Boolean getBooleanValue(ResultSet rs, int index) throws SQLException { +1803 if (rs.getObject(index) == null) { +1804 return null; +1805 } +1806 return rs.getBoolean(index); +1807 } +1808 +1809 /** +1810 * Returns the Float value for the given index; if the value is null then +1811 * null is returned. +1812 * +1813 * @param rs the record set +1814 * @param index the parameter index +1815 * @return the Float value; or null +1816 * @throws SQLException thrown if there is an error obtaining the value +1817 */ +1818 private Float getFloatValue(ResultSet rs, int index) throws SQLException { +1819 if (rs.getObject(index) == null) { +1820 return null; +1821 } +1822 return rs.getFloat(index); +1823 } +1824 }
    diff --git a/xref/org/owasp/dependencycheck/data/nvdcve/DatabaseProperties.html b/xref/org/owasp/dependencycheck/data/nvdcve/DatabaseProperties.html index 39822fb783b..4d798097d4d 100644 --- a/xref/org/owasp/dependencycheck/data/nvdcve/DatabaseProperties.html +++ b/xref/org/owasp/dependencycheck/data/nvdcve/DatabaseProperties.html @@ -36,194 +36,244 @@ 28 import javax.annotation.concurrent.ThreadSafe; 29 30 import org.owasp.dependencycheck.data.update.exception.UpdateException; -31 import org.slf4j.Logger; -32 import org.slf4j.LoggerFactory; -33 -34 /** -35 * This is a wrapper around a set of properties that are stored in the database. -36 * This class is safe to be accessed from multiple threads in parallel. -37 * -38 * @author Jeremy Long -39 */ -40 @ThreadSafe -41 public class DatabaseProperties { -42 -43 /** -44 * The Logger. -45 */ -46 private static final Logger LOGGER = LoggerFactory.getLogger(DatabaseProperties.class); -47 /** -48 * The last modified request data for the NVD API. -49 */ -50 public static final String NVD_API_LAST_MODIFIED = "nvd.api.last.modified"; -51 /** -52 * The date the NVD API was last checked for an update. -53 */ -54 public static final String NVD_API_LAST_CHECKED = "nvd.api.last.checked"; -55 /** -56 * The date the NVD cache was last checked for an update. -57 */ -58 public static final String NVD_CACHE_LAST_CHECKED = "nvd.cache.last.checked"; -59 /** -60 * The date the NVD cache data was last modified/updated. -61 */ -62 public static final String NVD_CACHE_LAST_MODIFIED = "nvd.cache.last.modified"; -63 /** -64 * The key for the last time the CPE data was updated. -65 */ -66 public static final String LAST_CPE_UPDATE = "LAST_CPE_UPDATE"; -67 /** -68 * The key for the database schema version. -69 */ -70 public static final String VERSION = "version"; -71 /** -72 * The key for the last check time for the Known Exploited Vulnerabilities. -73 */ -74 public static final String KEV_LAST_CHECKED = "kev.checked"; -75 /** -76 * The key for the version the Known Exploited Vulnerabilities. -77 */ -78 public static final String KEV_VERSION = "kev.version"; -79 /** -80 * A collection of properties about the data. -81 */ -82 private final Properties properties; -83 /** -84 * A reference to the database. -85 */ -86 private final CveDB cveDB; -87 +31 import org.owasp.dependencycheck.utils.DateUtil; +32 import org.slf4j.Logger; +33 import org.slf4j.LoggerFactory; +34 +35 /** +36 * This is a wrapper around a set of properties that are stored in the database. +37 * This class is safe to be accessed from multiple threads in parallel. +38 * +39 * @author Jeremy Long +40 */ +41 @ThreadSafe +42 public class DatabaseProperties { +43 +44 /** +45 * The Logger. +46 */ +47 private static final Logger LOGGER = LoggerFactory.getLogger(DatabaseProperties.class); +48 /** +49 * The last modified request data for the NVD API. +50 */ +51 public static final String NVD_API_LAST_MODIFIED = "nvd.api.last.modified"; +52 /** +53 * The date the NVD API was last checked for an update. +54 */ +55 public static final String NVD_API_LAST_CHECKED = "nvd.api.last.checked"; +56 /** +57 * The date the NVD cache was last checked for an update. +58 */ +59 public static final String NVD_CACHE_LAST_CHECKED = "nvd.cache.last.checked"; +60 /** +61 * The date the NVD cache data was last modified/updated. +62 */ +63 public static final String NVD_CACHE_LAST_MODIFIED = "nvd.cache.last.modified"; +64 /** +65 * The key for the last time the CPE data was updated. +66 */ +67 public static final String LAST_CPE_UPDATE = "LAST_CPE_UPDATE"; +68 /** +69 * The key for the database schema version. +70 */ +71 public static final String VERSION = "version"; +72 /** +73 * The key for the last check time for the Known Exploited Vulnerabilities. +74 */ +75 public static final String KEV_LAST_CHECKED = "kev.checked"; +76 /** +77 * The key for the last check time for the Retire JS repository. +78 */ +79 public static final String RETIRE_LAST_CHECKED = "retirejs.checked"; +80 /** +81 * The key for the last check time for the hosted suppression file. +82 */ +83 public static final String HOSTED_SUPPRESSION_LAST_CHECKED = "hosted.suppression.checked"; +84 /** +85 * The key for the version the Known Exploited Vulnerabilities. +86 */ +87 public static final String KEV_VERSION = "kev.version"; 88 /** -89 * Constructs a new data properties object. -90 * -91 * @param cveDB the database object holding the properties -92 */ -93 DatabaseProperties(CveDB cveDB) { -94 this.cveDB = cveDB; -95 this.properties = cveDB.getProperties(); -96 } -97 -98 /** -99 * Returns whether or not any properties are set. -100 * -101 * @return whether or not any properties are set -102 */ -103 public synchronized boolean isEmpty() { -104 return properties == null || properties.isEmpty(); +89 * A collection of properties about the data. +90 */ +91 private final Properties properties; +92 /** +93 * A reference to the database. +94 */ +95 private final CveDB cveDB; +96 +97 /** +98 * Constructs a new data properties object. +99 * +100 * @param cveDB the database object holding the properties +101 */ +102 DatabaseProperties(CveDB cveDB) { +103 this.cveDB = cveDB; +104 this.properties = cveDB.getProperties(); 105 } 106 107 /** -108 * Saves the key value pair to the properties store. +108 * Returns whether or not any properties are set. 109 * -110 * @param key the property key -111 * @param value the property value -112 * @throws UpdateException is thrown if there is an update exception -113 */ -114 public synchronized void save(String key, String value) throws UpdateException { -115 properties.put(key, value); -116 cveDB.saveProperty(key, value); -117 } -118 -119 /** -120 * Returns the property value for the given key. If the key is not contained -121 * in the underlying properties null is returned. -122 * -123 * @param key the property key -124 * @return the value of the property -125 */ -126 public synchronized String getProperty(String key) { -127 return properties.getProperty(key); -128 } -129 -130 /** -131 * Returns the property value for the given key. If the key is not contained -132 * in the underlying properties the default value is returned. -133 * -134 * @param key the property key -135 * @param defaultValue the default value -136 * @return the value of the property -137 */ -138 public synchronized String getProperty(String key, String defaultValue) { -139 return properties.getProperty(key, defaultValue); -140 } -141 -142 /** -143 * Returns the collection of Database Properties as a properties collection. -144 * -145 * @return the collection of Database Properties +110 * @return whether or not any properties are set +111 */ +112 public synchronized boolean isEmpty() { +113 return properties == null || properties.isEmpty(); +114 } +115 +116 /** +117 * Saves the key value pair to the properties store. +118 * +119 * @param key the property key +120 * @param value the property value +121 * @throws UpdateException is thrown if there is an update exception +122 */ +123 public synchronized void save(String key, String value) throws UpdateException { +124 properties.put(key, value); +125 cveDB.saveProperty(key, value); +126 } +127 +128 /** +129 * Returns the property value for the given key. If the key is not contained +130 * in the underlying properties null is returned. +131 * +132 * @param key the property key +133 * @return the value of the property +134 */ +135 public synchronized String getProperty(String key) { +136 return properties.getProperty(key); +137 } +138 +139 /** +140 * Returns the property value for the given key. If the key is not contained +141 * in the underlying properties the default value is returned. +142 * +143 * @param key the property key +144 * @param defaultValue the default value +145 * @return the value of the property 146 */ -147 public synchronized Properties getProperties() { -148 return properties; +147 public synchronized String getProperty(String key, String defaultValue) { +148 return properties.getProperty(key, defaultValue); 149 } 150 151 /** -152 * Returns a map of the meta data from the database properties. This -153 * primarily contains timestamps of when the NVD CVE information was last -154 * updated. -155 * -156 * @return a map of the database meta data -157 */ -158 public synchronized Map<String, String> getMetaData() { -159 final Map<String, String> map = new TreeMap<>(); -160 for (Entry<Object, Object> entry : properties.entrySet()) { -161 final String key = (String) entry.getKey(); -162 if (!"version".equals(key)) { -163 if (DatabaseProperties.NVD_API_LAST_CHECKED.equals(key)) { -164 map.put("NVD API Last Checked", entry.getValue().toString()); -165 -166 } else if (DatabaseProperties.NVD_API_LAST_MODIFIED.equals(key)) { -167 map.put("NVD API Last Modified", entry.getValue().toString()); -168 -169 } else if (DatabaseProperties.NVD_CACHE_LAST_CHECKED.equals(key)) { -170 map.put("NVD Cache Last Checked", entry.getValue().toString()); -171 -172 } else if (DatabaseProperties.NVD_CACHE_LAST_MODIFIED.equals(key)) { -173 map.put("NVD Cache Last Modified", entry.getValue().toString()); -174 } -175 } -176 } -177 return map; -178 } -179 -180 /** -181 * Retrieves a zoned date time. -182 * -183 * @param key the property key -184 * @return the zoned date time -185 */ -186 public ZonedDateTime getTimestamp(String key) { -187 return DatabaseProperties.getTimestamp(properties, key); -188 } -189 -190 /** -191 * Stores a timestamp. -192 * -193 * @param key the property key -194 * @param timestamp the zoned date time -195 */ -196 public void save(String key, ZonedDateTime timestamp) throws UpdateException { -197 final DateTimeFormatter dtf = DateTimeFormatter.ofPattern("uuuu-MM-dd'T'HH:mm:ssX"); -198 save(key, dtf.format(timestamp)); -199 } -200 -201 /** -202 * Retrieves a zoned date time. -203 * -204 * @param properties the properties file containing the date time -205 * @param key the property key -206 * @return the zoned date time -207 */ -208 public static ZonedDateTime getTimestamp(Properties properties, String key) { -209 final DateTimeFormatter dtf = DateTimeFormatter.ofPattern("uuuu-MM-dd'T'HH:mm:ssX"); -210 final String val = properties.getProperty(key); -211 if (val != null) { -212 final String value = properties.getProperty(key); -213 return ZonedDateTime.parse(value, dtf); -214 } -215 return null; -216 } -217 -218 } +152 * Returns the collection of Database Properties as a properties collection. +153 * +154 * @return the collection of Database Properties +155 */ +156 public synchronized Properties getProperties() { +157 return properties; +158 } +159 +160 /** +161 * Returns a map of the meta data from the database properties. This +162 * primarily contains timestamps of when the NVD CVE information was last +163 * updated. +164 * +165 * @return a map of the database meta data +166 */ +167 public synchronized Map<String, String> getMetaData() { +168 final Map<String, String> map = new TreeMap<>(); +169 for (Entry<Object, Object> entry : properties.entrySet()) { +170 final String key = (String) entry.getKey(); +171 if (!"version".equals(key)) { +172 if (DatabaseProperties.NVD_API_LAST_CHECKED.equals(key)) { +173 map.put("NVD API Last Checked", entry.getValue().toString()); +174 +175 } else if (DatabaseProperties.NVD_API_LAST_MODIFIED.equals(key)) { +176 map.put("NVD API Last Modified", entry.getValue().toString()); +177 +178 } else if (DatabaseProperties.NVD_CACHE_LAST_CHECKED.equals(key)) { +179 map.put("NVD Cache Last Checked", entry.getValue().toString()); +180 +181 } else if (DatabaseProperties.NVD_CACHE_LAST_MODIFIED.equals(key)) { +182 map.put("NVD Cache Last Modified", entry.getValue().toString()); +183 } +184 } +185 } +186 return map; +187 } +188 +189 /** +190 * Retrieves a zoned date time. +191 * +192 * @param key the property key +193 * @return the zoned date time +194 */ +195 public ZonedDateTime getTimestamp(String key) { +196 return DatabaseProperties.getTimestamp(properties, key); +197 } +198 +199 /** +200 * Stores a timestamp. +201 * +202 * @param key the property key +203 * @param timestamp the zoned date time +204 */ +205 public void save(String key, ZonedDateTime timestamp) throws UpdateException { +206 final DateTimeFormatter dtf = DateTimeFormatter.ofPattern("uuuu-MM-dd'T'HH:mm:ssX"); +207 save(key, dtf.format(timestamp)); +208 } +209 +210 /** +211 * Stores a timestamp in the properties file. +212 * +213 * @param properties the properties to store the timestamp +214 * @param key the property key +215 * @param timestamp the zoned date time +216 */ +217 public static void setTimestamp(Properties properties, String key, ZonedDateTime timestamp) throws UpdateException { +218 final DateTimeFormatter dtf = DateTimeFormatter.ofPattern("uuuu-MM-dd'T'HH:mm:ssX"); +219 properties.put(key, dtf.format(timestamp)); +220 } +221 +222 /** +223 * Retrieves a zoned date time. +224 * +225 * @param properties the properties file containing the date time +226 * @param key the property key +227 * @return the zoned date time +228 */ +229 public static ZonedDateTime getTimestamp(Properties properties, String key) { +230 final DateTimeFormatter dtf = DateTimeFormatter.ofPattern("uuuu-MM-dd'T'HH:mm:ssX"); +231 final String val = properties.getProperty(key); +232 if (val != null) { +233 final String value = properties.getProperty(key); +234 return ZonedDateTime.parse(value, dtf); +235 } +236 return null; +237 } +238 +239 /** +240 * Retrieves a zoned date time. +241 * +242 * @param properties the properties file containing the date time +243 * @param key the property key +244 * @return the zoned date time +245 */ +246 public static ZonedDateTime getIsoTimestamp(Properties properties, String key) { +247 //final DateTimeFormatter dtf = DateTimeFormatter.ofPattern("uuuu-MM-dd'T'HH:mm:ssX"); +248 final DateTimeFormatter dtf = DateTimeFormatter.ISO_DATE_TIME; +249 final String val = properties.getProperty(key); +250 if (val != null) { +251 final String value = properties.getProperty(key); +252 return ZonedDateTime.parse(value, dtf); +253 } +254 return null; +255 } +256 +257 /** +258 * Returns the database property value in seconds. +259 * +260 * @param key the key to the property +261 * @return the property value in seconds +262 */ +263 public long getPropertyInSeconds(String key) { +264 final String value = getProperty(key, "0"); +265 return DateUtil.getEpochValueInSeconds(value); +266 } +267 +268 }
    diff --git a/xref/org/owasp/dependencycheck/data/nvdcve/package-frame.html b/xref/org/owasp/dependencycheck/data/nvdcve/package-frame.html index 739bf1afbcb..40110e92bea 100644 --- a/xref/org/owasp/dependencycheck/data/nvdcve/package-frame.html +++ b/xref/org/owasp/dependencycheck/data/nvdcve/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.data.nvdcve + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.data.nvdcve diff --git a/xref/org/owasp/dependencycheck/data/nvdcve/package-summary.html b/xref/org/owasp/dependencycheck/data/nvdcve/package-summary.html index 234319834ff..745029fad61 100644 --- a/xref/org/owasp/dependencycheck/data/nvdcve/package-summary.html +++ b/xref/org/owasp/dependencycheck/data/nvdcve/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.data.nvdcve + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.data.nvdcve diff --git a/xref/org/owasp/dependencycheck/data/ossindex/package-frame.html b/xref/org/owasp/dependencycheck/data/ossindex/package-frame.html index c92ada2aa80..5d52fc442a6 100644 --- a/xref/org/owasp/dependencycheck/data/ossindex/package-frame.html +++ b/xref/org/owasp/dependencycheck/data/ossindex/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.data.ossindex + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.data.ossindex diff --git a/xref/org/owasp/dependencycheck/data/ossindex/package-summary.html b/xref/org/owasp/dependencycheck/data/ossindex/package-summary.html index 81e798a79bb..af4c200de31 100644 --- a/xref/org/owasp/dependencycheck/data/ossindex/package-summary.html +++ b/xref/org/owasp/dependencycheck/data/ossindex/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.data.ossindex + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.data.ossindex diff --git a/xref/org/owasp/dependencycheck/data/update/HostedSuppressionsDataSource.html b/xref/org/owasp/dependencycheck/data/update/HostedSuppressionsDataSource.html index 01dfa6eba01..c11a19b7813 100644 --- a/xref/org/owasp/dependencycheck/data/update/HostedSuppressionsDataSource.html +++ b/xref/org/owasp/dependencycheck/data/update/HostedSuppressionsDataSource.html @@ -41,144 +41,164 @@ 33 import java.net.MalformedURLException; 34 import java.net.URL; 35 import java.nio.file.Files; -36 -37 public class HostedSuppressionsDataSource implements CachedWebDataSource { -38 -39 /** -40 * Static logger. -41 */ -42 private static final Logger LOGGER = LoggerFactory.getLogger(HostedSuppressionsDataSource.class); -43 -44 /** -45 * The configured settings. -46 */ -47 private Settings settings; -48 +36 import org.owasp.dependencycheck.data.nvdcve.DatabaseProperties; +37 +38 public class HostedSuppressionsDataSource implements CachedWebDataSource { +39 +40 /** +41 * Static logger. +42 */ +43 private static final Logger LOGGER = LoggerFactory.getLogger(HostedSuppressionsDataSource.class); +44 +45 /** +46 * The configured settings. +47 */ +48 private Settings settings; 49 /** -50 * The default URL to the Hosted Suppressions file. +50 * The properties obtained from the database. 51 */ -52 public static final String DEFAULT_SUPPRESSIONS_URL = "https://jeremylong.github.io/DependencyCheck/suppressions/publishedSuppressions.xml"; -53 -54 /** -55 * Downloads the current Hosted suppressions file. -56 * -57 * @param engine a reference to the ODC Engine -58 * @return returns false as no updates are made to the database, just web resources cached locally -59 * @throws UpdateException thrown if the update encountered fatal errors -60 */ -61 @Override -62 public boolean update(Engine engine) throws UpdateException { -63 this.settings = engine.getSettings(); -64 final String configuredUrl = settings.getString(Settings.KEYS.HOSTED_SUPPRESSIONS_URL, DEFAULT_SUPPRESSIONS_URL); -65 final boolean autoupdate = settings.getBoolean(Settings.KEYS.AUTO_UPDATE, true); -66 final boolean forceupdate = settings.getBoolean(Settings.KEYS.HOSTED_SUPPRESSIONS_FORCEUPDATE, false); -67 final boolean cpeSuppressionEnabled = settings.getBoolean(Settings.KEYS.ANALYZER_CPE_SUPPRESSION_ENABLED, true); -68 final boolean vulnSuppressionEnabled = settings.getBoolean(Settings.KEYS.ANALYZER_VULNERABILITY_SUPPRESSION_ENABLED, true); -69 boolean enabled = settings.getBoolean(Settings.KEYS.HOSTED_SUPPRESSIONS_ENABLED, true); -70 enabled = enabled && (cpeSuppressionEnabled || vulnSuppressionEnabled); -71 try { -72 final URL url = new URL(configuredUrl); -73 final File filepath = new File(url.getPath()); -74 final File repoFile = new File(settings.getDataDirectory(), filepath.getName()); -75 final boolean proceed = enabled && (forceupdate || (autoupdate && shouldUpdate(repoFile))); -76 if (proceed) { -77 LOGGER.debug("Begin Hosted Suppressions file update"); -78 fetchHostedSuppressions(settings, url, repoFile); -79 } -80 } catch (UpdateException ex) { -81 // only emit a warning, DependencyCheck will continue without taking the latest hosted suppressions into account. -82 LOGGER.warn("Failed to update hosted suppressions file, results may contain false positives already resolved by the " -83 + "DependencyCheck project", ex); -84 } catch (MalformedURLException ex) { -85 throw new UpdateException(String.format("Invalid URL for Hosted Suppressions file (%s)", configuredUrl), ex); -86 } catch (IOException ex) { -87 throw new UpdateException("Unable to get the data directory", ex); -88 } -89 return false; -90 } -91 -92 /** -93 * Determines if the we should update the Hosted Suppressions file. -94 * -95 * @param repo the Hosted Suppressions file. -96 * @return <code>true</code> if an update to the Hosted Suppressions file should -97 * be performed; otherwise <code>false</code> -98 * @throws NumberFormatException thrown if an invalid value is contained in -99 * the database properties -100 */ -101 protected boolean shouldUpdate(File repo) throws NumberFormatException { -102 boolean proceed = true; -103 if (repo != null && repo.isFile()) { -104 final int validForHours = settings.getInt(Settings.KEYS.HOSTED_SUPPRESSIONS_VALID_FOR_HOURS, 2); -105 final long lastUpdatedOn = repo.lastModified(); -106 final long now = System.currentTimeMillis(); -107 LOGGER.debug("Last updated: {}", lastUpdatedOn); -108 LOGGER.debug("Now: {}", now); -109 final long msValid = validForHours * 60L * 60L * 1000L; -110 proceed = (now - lastUpdatedOn) > msValid; -111 if (!proceed) { -112 LOGGER.info("Skipping Hosted Suppressions file update since last update was within {} hours.", validForHours); -113 } -114 } -115 return proceed; -116 } -117 -118 /** -119 * Fetches the hosted suppressions file -120 * -121 * @param settings a reference to the dependency-check settings -122 * @param repoUrl the URL to the hosted suppressions file to use -123 * @param repoFile the local file where the hosted suppressions file is to be placed -124 * @throws UpdateException thrown if there is an exception during -125 * initialization -126 */ -127 @SuppressWarnings("try") -128 private void fetchHostedSuppressions(Settings settings, URL repoUrl, File repoFile) throws UpdateException { -129 try (WriteLock ignored = new WriteLock(settings, true, repoFile.getName() + ".lock")) { -130 if (LOGGER.isDebugEnabled()) { -131 LOGGER.debug("Hosted Suppressions URL: {}", repoUrl.toExternalForm()); +52 private DatabaseProperties dbProperties = null; +53 /** +54 * The default URL to the Hosted Suppressions file. +55 */ +56 public static final String DEFAULT_SUPPRESSIONS_URL = "https://jeremylong.github.io/DependencyCheck/suppressions/publishedSuppressions.xml"; +57 +58 /** +59 * Downloads the current Hosted suppressions file. +60 * +61 * @param engine a reference to the ODC Engine +62 * @return returns false as no updates are made to the database, just web +63 * resources cached locally +64 * @throws UpdateException thrown if the update encountered fatal errors +65 */ +66 @Override +67 public boolean update(Engine engine) throws UpdateException { +68 this.settings = engine.getSettings(); +69 if (engine.getMode() != Engine.Mode.EVIDENCE_COLLECTION) { +70 //note this conditional is only to support test cases. +71 this.dbProperties = engine.getDatabase().getDatabaseProperties(); +72 } +73 final String configuredUrl = settings.getString(Settings.KEYS.HOSTED_SUPPRESSIONS_URL, DEFAULT_SUPPRESSIONS_URL); +74 final boolean autoupdate = settings.getBoolean(Settings.KEYS.AUTO_UPDATE, true); +75 final boolean forceupdate = settings.getBoolean(Settings.KEYS.HOSTED_SUPPRESSIONS_FORCEUPDATE, false); +76 final boolean cpeSuppressionEnabled = settings.getBoolean(Settings.KEYS.ANALYZER_CPE_SUPPRESSION_ENABLED, true); +77 final boolean vulnSuppressionEnabled = settings.getBoolean(Settings.KEYS.ANALYZER_VULNERABILITY_SUPPRESSION_ENABLED, true); +78 boolean enabled = settings.getBoolean(Settings.KEYS.HOSTED_SUPPRESSIONS_ENABLED, true); +79 enabled = enabled && (cpeSuppressionEnabled || vulnSuppressionEnabled); +80 try { +81 final URL url = new URL(configuredUrl); +82 final File filepath = new File(url.getPath()); +83 final File repoFile = new File(settings.getDataDirectory(), filepath.getName()); +84 final boolean proceed = enabled && (forceupdate || (autoupdate && shouldUpdate(repoFile))); +85 if (proceed) { +86 LOGGER.debug("Begin Hosted Suppressions file update"); +87 fetchHostedSuppressions(settings, url, repoFile); +88 if (dbProperties != null) { +89 dbProperties.save(DatabaseProperties.HOSTED_SUPPRESSION_LAST_CHECKED, Long.toString(System.currentTimeMillis() / 1000)); +90 } +91 } +92 } catch (UpdateException ex) { +93 // only emit a warning, DependencyCheck will continue without taking the latest hosted suppressions into account. +94 LOGGER.warn("Failed to update hosted suppressions file, results may contain false positives already resolved by the " +95 + "DependencyCheck project", ex); +96 } catch (MalformedURLException ex) { +97 throw new UpdateException(String.format("Invalid URL for Hosted Suppressions file (%s)", configuredUrl), ex); +98 } catch (IOException ex) { +99 throw new UpdateException("Unable to get the data directory", ex); +100 } +101 return false; +102 } +103 +104 /** +105 * Determines if the we should update the Hosted Suppressions file. +106 * +107 * @param repo the Hosted Suppressions file. +108 * @return <code>true</code> if an update to the Hosted Suppressions file +109 * should be performed; otherwise <code>false</code> +110 * @throws NumberFormatException thrown if an invalid value is contained in +111 * the database properties +112 */ +113 protected boolean shouldUpdate(File repo) throws NumberFormatException { +114 boolean proceed = true; +115 if (repo != null && repo.isFile()) { +116 final int validForHours = settings.getInt(Settings.KEYS.HOSTED_SUPPRESSIONS_VALID_FOR_HOURS, 2); +117 long lastUpdatedOn = 0; +118 if (dbProperties != null) { +119 lastUpdatedOn = dbProperties.getPropertyInSeconds(DatabaseProperties.HOSTED_SUPPRESSION_LAST_CHECKED); +120 } +121 if (lastUpdatedOn <= 0) { +122 //fall back on conversion from file last modified to storing in the db. +123 lastUpdatedOn = repo.lastModified(); +124 } +125 final long now = System.currentTimeMillis(); +126 LOGGER.debug("Last updated: {}", lastUpdatedOn); +127 LOGGER.debug("Now: {}", now); +128 final long msValid = validForHours * 60L * 60L * 1000L; +129 proceed = (now - lastUpdatedOn) > msValid; +130 if (!proceed) { +131 LOGGER.info("Skipping Hosted Suppressions file update since last update was within {} hours.", validForHours); 132 } -133 final Downloader downloader = new Downloader(settings); -134 downloader.fetchFile(repoUrl, repoFile); -135 } catch (IOException | TooManyRequestsException | ResourceNotFoundException | WriteLockException ex) { -136 throw new UpdateException("Failed to update the hosted suppressions file", ex); -137 } -138 } -139 -140 @Override -141 @SuppressWarnings("try") -142 public boolean purge(Engine engine) { -143 this.settings = engine.getSettings(); -144 boolean result = true; -145 try { -146 final URL repoUrl = new URL(settings.getString(Settings.KEYS.HOSTED_SUPPRESSIONS_URL, -147 DEFAULT_SUPPRESSIONS_URL)); -148 final String filename = new File(repoUrl.getPath()).getName(); -149 final File repo = new File(settings.getDataDirectory(), filename); -150 if (repo.exists()) { -151 try (WriteLock ignored = new WriteLock(settings, true, filename + ".lock")) { -152 result = deleteCachedFile(repo); -153 } -154 } -155 } catch (WriteLockException | IOException ex) { -156 LOGGER.error("Unable to delete the Hosted suppression file - invalid configuration"); -157 result = false; -158 } -159 return result; -160 } -161 -162 private boolean deleteCachedFile(final File repo) { -163 boolean deleted = true; -164 try { -165 Files.delete(repo.toPath()); -166 LOGGER.info("Hosted suppression file removed successfully"); -167 } catch (IOException ex) { -168 LOGGER.error("Unable to delete '{}'; please delete the file manually", repo.getAbsolutePath(), ex); -169 deleted = false; -170 } -171 return deleted; -172 } -173 } +133 } +134 return proceed; +135 } +136 +137 /** +138 * Fetches the hosted suppressions file +139 * +140 * @param settings a reference to the dependency-check settings +141 * @param repoUrl the URL to the hosted suppressions file to use +142 * @param repoFile the local file where the hosted suppressions file is to +143 * be placed +144 * @throws UpdateException thrown if there is an exception during +145 * initialization +146 */ +147 @SuppressWarnings("try") +148 private void fetchHostedSuppressions(Settings settings, URL repoUrl, File repoFile) throws UpdateException { +149 try (WriteLock ignored = new WriteLock(settings, true, repoFile.getName() + ".lock")) { +150 if (LOGGER.isDebugEnabled()) { +151 LOGGER.debug("Hosted Suppressions URL: {}", repoUrl.toExternalForm()); +152 } +153 final Downloader downloader = new Downloader(settings); +154 downloader.fetchFile(repoUrl, repoFile); +155 } catch (IOException | TooManyRequestsException | ResourceNotFoundException | WriteLockException ex) { +156 throw new UpdateException("Failed to update the hosted suppressions file", ex); +157 } +158 } +159 +160 @Override +161 @SuppressWarnings("try") +162 public boolean purge(Engine engine) { +163 this.settings = engine.getSettings(); +164 boolean result = true; +165 try { +166 final URL repoUrl = new URL(settings.getString(Settings.KEYS.HOSTED_SUPPRESSIONS_URL, +167 DEFAULT_SUPPRESSIONS_URL)); +168 final String filename = new File(repoUrl.getPath()).getName(); +169 final File repo = new File(settings.getDataDirectory(), filename); +170 if (repo.exists()) { +171 try (WriteLock ignored = new WriteLock(settings, true, filename + ".lock")) { +172 result = deleteCachedFile(repo); +173 } +174 } +175 } catch (WriteLockException | IOException ex) { +176 LOGGER.error("Unable to delete the Hosted suppression file - invalid configuration"); +177 result = false; +178 } +179 return result; +180 } +181 +182 private boolean deleteCachedFile(final File repo) { +183 boolean deleted = true; +184 try { +185 Files.delete(repo.toPath()); +186 LOGGER.info("Hosted suppression file removed successfully"); +187 } catch (IOException ex) { +188 LOGGER.error("Unable to delete '{}'; please delete the file manually", repo.getAbsolutePath(), ex); +189 deleted = false; +190 } +191 return deleted; +192 } +193 }
    diff --git a/xref/org/owasp/dependencycheck/data/update/KnownExploitedDataSource.html b/xref/org/owasp/dependencycheck/data/update/KnownExploitedDataSource.html index 4cf3e5e7b36..7f232cf2323 100644 --- a/xref/org/owasp/dependencycheck/data/update/KnownExploitedDataSource.html +++ b/xref/org/owasp/dependencycheck/data/update/KnownExploitedDataSource.html @@ -128,7 +128,7 @@ 120 if (cveDB.dataExists() && 0 < validForHours) { 121 // ms Valid = valid (hours) x 60 min/hour x 60 sec/min x 1000 ms/sec 122 final long validForSeconds = validForHours * 60L * 60L; -123 final long lastChecked = getPropertyInSeconds(DatabaseProperties.KEV_LAST_CHECKED); +123 final long lastChecked = dbProperties.getPropertyInSeconds(DatabaseProperties.KEV_LAST_CHECKED); 124 final long now = System.currentTimeMillis() / 1000; 125 proceed = (now - lastChecked) > validForSeconds; 126 if (!proceed) { @@ -138,18 +138,7 @@ 130 return proceed; 131 } 132 -133 /** -134 * Returns the database property value in seconds. -135 * -136 * @param key the key to the property -137 * @return the property value in seconds -138 */ -139 private long getPropertyInSeconds(String key) { -140 final String value = dbProperties.getProperty(key, "0"); -141 return DateUtil.getEpochValueInSeconds(value); -142 } -143 -144 } +133 }
    diff --git a/xref/org/owasp/dependencycheck/data/update/NvdApiDataSource.html b/xref/org/owasp/dependencycheck/data/update/NvdApiDataSource.html index d8e14f689cf..ae28967fc74 100644 --- a/xref/org/owasp/dependencycheck/data/update/NvdApiDataSource.html +++ b/xref/org/owasp/dependencycheck/data/update/NvdApiDataSource.html @@ -25,550 +25,639 @@ 17 */ 18 package org.owasp.dependencycheck.data.update; 19 -20 import io.github.jeremylong.openvulnerability.client.nvd.DefCveItem; -21 import io.github.jeremylong.openvulnerability.client.nvd.NvdCveClient; -22 import io.github.jeremylong.openvulnerability.client.nvd.NvdCveClientBuilder; -23 import java.io.File; -24 import java.io.IOException; -25 import java.io.StringReader; -26 import java.net.MalformedURLException; -27 import java.net.URL; -28 import java.text.MessageFormat; -29 import java.time.Duration; -30 import java.time.ZoneId; -31 import java.time.ZonedDateTime; -32 import java.util.ArrayList; -33 import java.util.Collection; -34 import java.util.HashMap; -35 import java.util.HashSet; -36 import java.util.List; -37 import java.util.Map; -38 import java.util.Properties; -39 import java.util.Set; -40 import java.util.concurrent.ExecutionException; -41 import java.util.concurrent.ExecutorService; -42 import java.util.concurrent.Executors; -43 import java.util.concurrent.Future; -44 import org.owasp.dependencycheck.Engine; -45 import org.owasp.dependencycheck.data.nvdcve.CveDB; -46 import org.owasp.dependencycheck.data.nvdcve.DatabaseException; -47 import org.owasp.dependencycheck.data.nvdcve.DatabaseProperties; -48 import org.owasp.dependencycheck.data.update.exception.UpdateException; -49 import org.owasp.dependencycheck.data.update.nvd.api.DownloadTask; -50 import org.owasp.dependencycheck.data.update.nvd.api.NvdApiProcessor; -51 import org.owasp.dependencycheck.utils.DateUtil; -52 import org.owasp.dependencycheck.utils.DownloadFailedException; -53 import org.owasp.dependencycheck.utils.Downloader; -54 import org.owasp.dependencycheck.utils.InvalidSettingException; -55 import org.owasp.dependencycheck.utils.ResourceNotFoundException; -56 import org.owasp.dependencycheck.utils.Settings; -57 import org.owasp.dependencycheck.utils.TooManyRequestsException; -58 import org.slf4j.Logger; -59 import org.slf4j.LoggerFactory; -60 -61 /** -62 * -63 * @author Jeremy Long -64 */ -65 public class NvdApiDataSource implements CachedWebDataSource { -66 -67 /** -68 * The logger. -69 */ -70 private static final Logger LOGGER = LoggerFactory.getLogger(NvdApiDataSource.class); -71 /** -72 * The thread pool size to use for CPU-intense tasks. -73 */ -74 private static final int PROCESSING_THREAD_POOL_SIZE = Runtime.getRuntime().availableProcessors(); -75 /** -76 * The configured settings. -77 */ -78 private Settings settings; -79 /** -80 * Reference to the DAO. -81 */ -82 private CveDB cveDb = null; -83 /** -84 * The properties obtained from the database. -85 */ -86 private DatabaseProperties dbProperties = null; -87 /** -88 * The key for the NVD API cache properties file's last modified date. -89 */ -90 private static final String NVD_API_CACHE_MODIFIED_DATE = "lastModifiedDate"; -91 /** -92 * The number of results per page from the NVD API. The default is 2000; we -93 * are setting the value to be explicit. +20 import com.fasterxml.jackson.databind.ObjectMapper; +21 import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; +22 import io.github.jeremylong.openvulnerability.client.nvd.DefCveItem; +23 import io.github.jeremylong.openvulnerability.client.nvd.NvdCveClient; +24 import io.github.jeremylong.openvulnerability.client.nvd.NvdCveClientBuilder; +25 import java.io.File; +26 import java.io.FileOutputStream; +27 import java.io.IOException; +28 import java.io.StringReader; +29 import java.net.URI; +30 import java.net.URISyntaxException; +31 import java.net.URL; +32 import java.text.MessageFormat; +33 import java.time.Duration; +34 import java.time.ZoneId; +35 import java.time.ZonedDateTime; +36 import java.util.ArrayList; +37 import java.util.Collection; +38 import java.util.HashMap; +39 import java.util.HashSet; +40 import java.util.List; +41 import java.util.Map; +42 import java.util.Properties; +43 import java.util.Set; +44 import java.util.concurrent.ExecutionException; +45 import java.util.concurrent.ExecutorService; +46 import java.util.concurrent.Executors; +47 import java.util.concurrent.Future; +48 import java.util.zip.GZIPOutputStream; +49 import org.owasp.dependencycheck.Engine; +50 import org.owasp.dependencycheck.data.nvdcve.CveDB; +51 import org.owasp.dependencycheck.data.nvdcve.DatabaseException; +52 import org.owasp.dependencycheck.data.nvdcve.DatabaseProperties; +53 import org.owasp.dependencycheck.data.update.exception.UpdateException; +54 import org.owasp.dependencycheck.data.update.nvd.api.DownloadTask; +55 import org.owasp.dependencycheck.data.update.nvd.api.NvdApiProcessor; +56 import org.owasp.dependencycheck.utils.DateUtil; +57 import org.owasp.dependencycheck.utils.DownloadFailedException; +58 import org.owasp.dependencycheck.utils.Downloader; +59 import org.owasp.dependencycheck.utils.InvalidSettingException; +60 import org.owasp.dependencycheck.utils.ResourceNotFoundException; +61 import org.owasp.dependencycheck.utils.Settings; +62 import org.owasp.dependencycheck.utils.TooManyRequestsException; +63 import org.slf4j.Logger; +64 import org.slf4j.LoggerFactory; +65 +66 /** +67 * +68 * @author Jeremy Long +69 */ +70 public class NvdApiDataSource implements CachedWebDataSource { +71 +72 /** +73 * The logger. +74 */ +75 private static final Logger LOGGER = LoggerFactory.getLogger(NvdApiDataSource.class); +76 /** +77 * The thread pool size to use for CPU-intense tasks. +78 */ +79 private static final int PROCESSING_THREAD_POOL_SIZE = Runtime.getRuntime().availableProcessors(); +80 /** +81 * The configured settings. +82 */ +83 private Settings settings; +84 /** +85 * Reference to the DAO. +86 */ +87 private CveDB cveDb = null; +88 /** +89 * The properties obtained from the database. +90 */ +91 private DatabaseProperties dbProperties = null; +92 /** +93 * The key for the NVD API cache properties file's last modified date. 94 */ -95 private static final int RESULTS_PER_PAGE = 2000; -96 -97 @Override -98 public boolean update(Engine engine) throws UpdateException { -99 this.settings = engine.getSettings(); -100 this.cveDb = engine.getDatabase(); -101 if (isUpdateConfiguredFalse()) { -102 return false; -103 } -104 dbProperties = cveDb.getDatabaseProperties(); -105 -106 final String nvdDataFeedUrl = settings.getString(Settings.KEYS.NVD_API_DATAFEED_URL); -107 if (nvdDataFeedUrl != null) { -108 return processDatafeed(nvdDataFeedUrl); -109 } -110 return processApi(); -111 } -112 -113 private boolean processDatafeed(String nvdDataFeedUrl) throws UpdateException { -114 boolean updatesMade = false; -115 try { -116 dbProperties = cveDb.getDatabaseProperties(); -117 if (checkUpdate()) { -118 String url; -119 String pattern = null; -120 if (nvdDataFeedUrl.endsWith(".json.gz")) { -121 final int lio = nvdDataFeedUrl.lastIndexOf("/"); -122 pattern = nvdDataFeedUrl.substring(lio + 1); -123 url = nvdDataFeedUrl.substring(0, lio); -124 } else { -125 url = nvdDataFeedUrl; -126 } -127 if (!url.endsWith("/")) { -128 url += "/"; -129 } -130 final Properties cacheProperties = getRemoteCacheProperties(url); -131 if (pattern == null) { -132 final String prefix = cacheProperties.getProperty("prefix", "nvdcve-"); -133 pattern = prefix + "{0}.json.gz"; -134 } -135 -136 final ZonedDateTime now = ZonedDateTime.now(ZoneId.of("UTC")); -137 final Map<String, String> updateable = getUpdatesNeeded(url, pattern, cacheProperties, now); -138 if (!updateable.isEmpty()) { -139 final int downloadPoolSize; -140 final int max = settings.getInt(Settings.KEYS.MAX_DOWNLOAD_THREAD_POOL_SIZE, 1); -141 downloadPoolSize = Math.min(Runtime.getRuntime().availableProcessors(), max); -142 -143 ExecutorService processingExecutorService = null; -144 ExecutorService downloadExecutorService = null; -145 try { -146 downloadExecutorService = Executors.newFixedThreadPool(downloadPoolSize); -147 processingExecutorService = Executors.newFixedThreadPool(PROCESSING_THREAD_POOL_SIZE); -148 -149 DownloadTask runLast = null; -150 final Set<Future<Future<NvdApiProcessor>>> downloadFutures = new HashSet<>(updateable.size()); -151 runLast = startDownloads(updateable, processingExecutorService, runLast, downloadFutures, downloadExecutorService); -152 -153 //complete downloads -154 final Set<Future<NvdApiProcessor>> processFutures = new HashSet<>(updateable.size()); -155 for (Future<Future<NvdApiProcessor>> future : downloadFutures) { -156 processDownload(future, processFutures); -157 } -158 //process the data -159 processFuture(processFutures); -160 processFutures.clear(); -161 -162 //download and process the modified as the last entry -163 if (runLast != null) { -164 final Future<Future<NvdApiProcessor>> modified = downloadExecutorService.submit(runLast); -165 processDownload(modified, processFutures); -166 processFuture(processFutures); -167 } -168 -169 } finally { -170 if (processingExecutorService != null) { -171 processingExecutorService.shutdownNow(); -172 } -173 if (downloadExecutorService != null) { -174 downloadExecutorService.shutdownNow(); -175 } -176 } -177 updatesMade = true; -178 } -179 storeLastModifiedDates(now, cacheProperties, updateable); -180 if (updatesMade) { -181 cveDb.persistEcosystemCache(); -182 } -183 final int updateCount = cveDb.updateEcosystemCache(); -184 LOGGER.debug("Corrected the ecosystem for {} ecoSystemCache entries", updateCount); -185 if (updatesMade || updateCount > 0) { -186 cveDb.cleanupDatabase(); -187 } -188 } -189 } catch (UpdateException ex) { -190 if (ex.getCause() != null && ex.getCause() instanceof DownloadFailedException) { -191 final String jre = System.getProperty("java.version"); -192 if (jre == null || jre.startsWith("1.4") || jre.startsWith("1.5") || jre.startsWith("1.6") || jre.startsWith("1.7")) { -193 LOGGER.error("An old JRE is being used ({} {}), and likely does not have the correct root certificates or algorithms " -194 + "to connect to the NVD - consider upgrading your JRE.", System.getProperty("java.vendor"), jre); -195 } -196 } -197 throw ex; -198 } catch (DatabaseException ex) { -199 throw new UpdateException("Database Exception, unable to update the data to use the most current data.", ex); -200 } -201 return updatesMade; -202 } -203 -204 private void storeLastModifiedDates(final ZonedDateTime now, final Properties cacheProperties, -205 final Map<String, String> updateable) throws UpdateException { -206 dbProperties.save(DatabaseProperties.NVD_CACHE_LAST_CHECKED, now); -207 dbProperties.save(DatabaseProperties.NVD_CACHE_LAST_MODIFIED, DatabaseProperties.getTimestamp(cacheProperties, -208 NVD_API_CACHE_MODIFIED_DATE + ".modified")); -209 for (String entry : updateable.keySet()) { -210 final ZonedDateTime date = DatabaseProperties.getTimestamp(cacheProperties, NVD_API_CACHE_MODIFIED_DATE + "." + entry); -211 dbProperties.save(DatabaseProperties.NVD_CACHE_LAST_MODIFIED + "." + entry, date); +95 private static final String NVD_API_CACHE_MODIFIED_DATE = "lastModifiedDate"; +96 /** +97 * The number of results per page from the NVD API. The default is 2000; we +98 * are setting the value to be explicit. +99 */ +100 private static final int RESULTS_PER_PAGE = 2000; +101 +102 @Override +103 public boolean update(Engine engine) throws UpdateException { +104 this.settings = engine.getSettings(); +105 this.cveDb = engine.getDatabase(); +106 if (isUpdateConfiguredFalse()) { +107 return false; +108 } +109 dbProperties = cveDb.getDatabaseProperties(); +110 +111 final String nvdDataFeedUrl = settings.getString(Settings.KEYS.NVD_API_DATAFEED_URL); +112 if (nvdDataFeedUrl != null) { +113 return processDatafeed(nvdDataFeedUrl); +114 } +115 return processApi(); +116 } +117 +118 protected UrlData extractUrlData(String nvdDataFeedUrl) { +119 String url; +120 String pattern = null; +121 if (nvdDataFeedUrl.endsWith(".json.gz")) { +122 final int lio = nvdDataFeedUrl.lastIndexOf("/"); +123 pattern = nvdDataFeedUrl.substring(lio + 1); +124 url = nvdDataFeedUrl.substring(0, lio); +125 } else { +126 url = nvdDataFeedUrl; +127 } +128 if (!url.endsWith("/")) { +129 url += "/"; +130 } +131 return new UrlData(url, pattern); +132 } +133 +134 private boolean processDatafeed(String nvdDataFeedUrl) throws UpdateException { +135 boolean updatesMade = false; +136 try { +137 dbProperties = cveDb.getDatabaseProperties(); +138 if (checkUpdate()) { +139 final UrlData data = extractUrlData(nvdDataFeedUrl); +140 String url = data.getUrl(); +141 String pattern = data.getPattern(); +142 final Properties cacheProperties = getRemoteCacheProperties(url, pattern); +143 if (pattern == null) { +144 final String prefix = cacheProperties.getProperty("prefix", "nvdcve-"); +145 pattern = prefix + "{0}.json.gz"; +146 } +147 +148 final ZonedDateTime now = ZonedDateTime.now(ZoneId.of("UTC")); +149 final Map<String, String> updateable = getUpdatesNeeded(url, pattern, cacheProperties, now); +150 if (!updateable.isEmpty()) { +151 final int downloadPoolSize; +152 final int max = settings.getInt(Settings.KEYS.MAX_DOWNLOAD_THREAD_POOL_SIZE, 1); +153 downloadPoolSize = Math.min(Runtime.getRuntime().availableProcessors(), max); +154 +155 ExecutorService processingExecutorService = null; +156 ExecutorService downloadExecutorService = null; +157 try { +158 downloadExecutorService = Executors.newFixedThreadPool(downloadPoolSize); +159 processingExecutorService = Executors.newFixedThreadPool(PROCESSING_THREAD_POOL_SIZE); +160 +161 DownloadTask runLast = null; +162 final Set<Future<Future<NvdApiProcessor>>> downloadFutures = new HashSet<>(updateable.size()); +163 runLast = startDownloads(updateable, processingExecutorService, runLast, downloadFutures, downloadExecutorService); +164 +165 //complete downloads +166 final Set<Future<NvdApiProcessor>> processFutures = new HashSet<>(updateable.size()); +167 for (Future<Future<NvdApiProcessor>> future : downloadFutures) { +168 processDownload(future, processFutures); +169 } +170 //process the data +171 processFuture(processFutures); +172 processFutures.clear(); +173 +174 //download and process the modified as the last entry +175 if (runLast != null) { +176 final Future<Future<NvdApiProcessor>> modified = downloadExecutorService.submit(runLast); +177 processDownload(modified, processFutures); +178 processFuture(processFutures); +179 } +180 +181 } finally { +182 if (processingExecutorService != null) { +183 processingExecutorService.shutdownNow(); +184 } +185 if (downloadExecutorService != null) { +186 downloadExecutorService.shutdownNow(); +187 } +188 } +189 updatesMade = true; +190 } +191 storeLastModifiedDates(now, cacheProperties, updateable); +192 if (updatesMade) { +193 cveDb.persistEcosystemCache(); +194 } +195 final int updateCount = cveDb.updateEcosystemCache(); +196 LOGGER.debug("Corrected the ecosystem for {} ecoSystemCache entries", updateCount); +197 if (updatesMade || updateCount > 0) { +198 cveDb.cleanupDatabase(); +199 } +200 } +201 } catch (UpdateException ex) { +202 if (ex.getCause() != null && ex.getCause() instanceof DownloadFailedException) { +203 final String jre = System.getProperty("java.version"); +204 if (jre == null || jre.startsWith("1.4") || jre.startsWith("1.5") || jre.startsWith("1.6") || jre.startsWith("1.7")) { +205 LOGGER.error("An old JRE is being used ({} {}), and likely does not have the correct root certificates or algorithms " +206 + "to connect to the NVD - consider upgrading your JRE.", System.getProperty("java.vendor"), jre); +207 } +208 } +209 throw ex; +210 } catch (DatabaseException ex) { +211 throw new UpdateException("Database Exception, unable to update the data to use the most current data.", ex); 212 } -213 } -214 -215 private DownloadTask startDownloads(final Map<String, String> updateable, ExecutorService processingExecutorService, DownloadTask runLast, -216 final Set<Future<Future<NvdApiProcessor>>> downloadFutures, ExecutorService downloadExecutorService) throws UpdateException { -217 DownloadTask lastCall = runLast; -218 for (Map.Entry<String, String> cve : updateable.entrySet()) { -219 final DownloadTask call = new DownloadTask(cve.getValue(), processingExecutorService, cveDb, settings); -220 if (call.isModified()) { -221 lastCall = call; -222 } else { -223 final boolean added = downloadFutures.add(downloadExecutorService.submit(call)); -224 if (!added) { -225 throw new UpdateException("Unable to add the download task for " + cve); -226 } -227 } -228 } -229 return lastCall; -230 } -231 -232 private void processFuture(final Set<Future<NvdApiProcessor>> processFutures) throws UpdateException { -233 //complete processing -234 for (Future<NvdApiProcessor> future : processFutures) { -235 try { -236 final NvdApiProcessor task = future.get(); -237 } catch (InterruptedException ex) { -238 LOGGER.debug("Thread was interrupted during processing", ex); -239 Thread.currentThread().interrupt(); -240 throw new UpdateException(ex); -241 } catch (ExecutionException ex) { -242 LOGGER.debug("Execution Exception during process", ex); -243 throw new UpdateException(ex); -244 } -245 } -246 } -247 -248 private void processDownload(Future<Future<NvdApiProcessor>> future, final Set<Future<NvdApiProcessor>> processFutures) throws UpdateException { -249 final Future<NvdApiProcessor> task; -250 try { -251 task = future.get(); -252 if (task != null) { -253 processFutures.add(task); -254 } -255 } catch (InterruptedException ex) { -256 LOGGER.debug("Thread was interrupted during download", ex); -257 Thread.currentThread().interrupt(); -258 throw new UpdateException("The download was interrupted", ex); -259 } catch (ExecutionException ex) { -260 LOGGER.debug("Thread was interrupted during download execution", ex); -261 throw new UpdateException("The execution of the download was interrupted", ex); -262 } -263 } -264 -265 private boolean processApi() throws UpdateException { -266 final ZonedDateTime lastChecked = dbProperties.getTimestamp(DatabaseProperties.NVD_API_LAST_CHECKED); -267 final int validForHours = settings.getInt(Settings.KEYS.NVD_API_VALID_FOR_HOURS, 0); -268 if (cveDb.dataExists() && lastChecked != null && validForHours>0) { -269 // ms Valid = valid (hours) x 60 min/hour x 60 sec/min x 1000 ms/sec -270 final long validForSeconds = validForHours * 60L * 60L; -271 final ZonedDateTime now = ZonedDateTime.now(ZoneId.of("UTC")); -272 final Duration duration = Duration.between(lastChecked, now); -273 final long difference = duration.getSeconds(); -274 if (difference < validForSeconds) { -275 LOGGER.info("Skipping the NVD API Update as it was completed within the last {} minutes", validForSeconds/60); -276 return false; -277 } -278 } -279 -280 ZonedDateTime lastModifiedRequest = dbProperties.getTimestamp(DatabaseProperties.NVD_API_LAST_MODIFIED); -281 final NvdCveClientBuilder builder = NvdCveClientBuilder.aNvdCveApi(); -282 if (lastModifiedRequest != null) { -283 final ZonedDateTime end = lastModifiedRequest.minusDays(-120); -284 builder.withLastModifiedFilter(lastModifiedRequest, end); -285 } -286 final String key = settings.getString(Settings.KEYS.NVD_API_KEY); -287 if (key != null) { -288 //using a higher delay as the system may not be able to process these faster. -289 builder.withApiKey(key) -290 .withDelay(2000) -291 .withThreadCount(4); -292 } else { -293 LOGGER.warn("An NVD API Key was not provided - it is highly recommended to use " -294 + "an NVD API key as the update can take a VERY long time without an API Key"); -295 builder.withDelay(8000); +213 return updatesMade; +214 } +215 +216 private void storeLastModifiedDates(final ZonedDateTime now, final Properties cacheProperties, +217 final Map<String, String> updateable) throws UpdateException { +218 +219 ZonedDateTime lastModifiedRequest = DatabaseProperties.getTimestamp(cacheProperties, +220 NVD_API_CACHE_MODIFIED_DATE + ".modified"); +221 dbProperties.save(DatabaseProperties.NVD_CACHE_LAST_CHECKED, now); +222 dbProperties.save(DatabaseProperties.NVD_CACHE_LAST_MODIFIED, lastModifiedRequest); +223 //allow users to initially load from a cache but then use the API - this may happen with the GH Action +224 dbProperties.save(DatabaseProperties.NVD_API_LAST_CHECKED, now); +225 dbProperties.save(DatabaseProperties.NVD_API_LAST_MODIFIED, lastModifiedRequest); +226 +227 for (String entry : updateable.keySet()) { +228 final ZonedDateTime date = DatabaseProperties.getTimestamp(cacheProperties, NVD_API_CACHE_MODIFIED_DATE + "." + entry); +229 dbProperties.save(DatabaseProperties.NVD_CACHE_LAST_MODIFIED + "." + entry, date); +230 } +231 } +232 +233 private DownloadTask startDownloads(final Map<String, String> updateable, ExecutorService processingExecutorService, DownloadTask runLast, +234 final Set<Future<Future<NvdApiProcessor>>> downloadFutures, ExecutorService downloadExecutorService) throws UpdateException { +235 DownloadTask lastCall = runLast; +236 for (Map.Entry<String, String> cve : updateable.entrySet()) { +237 final DownloadTask call = new DownloadTask(cve.getValue(), processingExecutorService, cveDb, settings); +238 if (call.isModified()) { +239 lastCall = call; +240 } else { +241 final boolean added = downloadFutures.add(downloadExecutorService.submit(call)); +242 if (!added) { +243 throw new UpdateException("Unable to add the download task for " + cve); +244 } +245 } +246 } +247 return lastCall; +248 } +249 +250 private void processFuture(final Set<Future<NvdApiProcessor>> processFutures) throws UpdateException { +251 //complete processing +252 for (Future<NvdApiProcessor> future : processFutures) { +253 try { +254 final NvdApiProcessor task = future.get(); +255 } catch (InterruptedException ex) { +256 LOGGER.debug("Thread was interrupted during processing", ex); +257 Thread.currentThread().interrupt(); +258 throw new UpdateException(ex); +259 } catch (ExecutionException ex) { +260 LOGGER.debug("Execution Exception during process", ex); +261 throw new UpdateException(ex); +262 } +263 } +264 } +265 +266 private void processDownload(Future<Future<NvdApiProcessor>> future, final Set<Future<NvdApiProcessor>> processFutures) throws UpdateException { +267 final Future<NvdApiProcessor> task; +268 try { +269 task = future.get(); +270 if (task != null) { +271 processFutures.add(task); +272 } +273 } catch (InterruptedException ex) { +274 LOGGER.debug("Thread was interrupted during download", ex); +275 Thread.currentThread().interrupt(); +276 throw new UpdateException("The download was interrupted", ex); +277 } catch (ExecutionException ex) { +278 LOGGER.debug("Thread was interrupted during download execution", ex); +279 throw new UpdateException("The execution of the download was interrupted", ex); +280 } +281 } +282 +283 private boolean processApi() throws UpdateException { +284 final ZonedDateTime lastChecked = dbProperties.getTimestamp(DatabaseProperties.NVD_API_LAST_CHECKED); +285 final int validForHours = settings.getInt(Settings.KEYS.NVD_API_VALID_FOR_HOURS, 0); +286 if (cveDb.dataExists() && lastChecked != null && validForHours > 0) { +287 // ms Valid = valid (hours) x 60 min/hour x 60 sec/min x 1000 ms/sec +288 final long validForSeconds = validForHours * 60L * 60L; +289 final ZonedDateTime now = ZonedDateTime.now(ZoneId.of("UTC")); +290 final Duration duration = Duration.between(lastChecked, now); +291 final long difference = duration.getSeconds(); +292 if (difference < validForSeconds) { +293 LOGGER.info("Skipping the NVD API Update as it was completed within the last {} minutes", validForSeconds / 60); +294 return false; +295 } 296 } -297 builder.withResultsPerPage(RESULTS_PER_PAGE); -298 //removed due to the virtualMatch filter causing overhead with the NVD API -299 //final String virtualMatch = settings.getString(Settings.KEYS.CVE_CPE_STARTS_WITH_FILTER); -300 //if (virtualMatch != null) { -301 // builder.withVirtualMatchString(virtualMatch); -302 //} -303 -304 final int retryCount = settings.getInt(Settings.KEYS.NVD_API_MAX_RETRY_COUNT, 10); -305 builder.withMaxRetryCount(retryCount); -306 long delay = 0; -307 try { -308 delay = settings.getLong(Settings.KEYS.NVD_API_DELAY); -309 } catch (InvalidSettingException ex) { -310 LOGGER.warn("Invalid setting `NVD_API_DELAY`? ({}), using default delay", settings.getString(Settings.KEYS.NVD_API_DELAY)); -311 } -312 if (delay > 0) { -313 builder.withDelay(delay); -314 } -315 -316 ExecutorService processingExecutorService = null; -317 try { -318 processingExecutorService = Executors.newFixedThreadPool(PROCESSING_THREAD_POOL_SIZE); -319 final List<Future<NvdApiProcessor>> submitted = new ArrayList<>(); -320 int max = -1; -321 int ctr = 0; -322 try (NvdCveClient api = builder.build()) { -323 while (api.hasNext()) { -324 final Collection<DefCveItem> items = api.next(); -325 max = api.getTotalAvailable(); -326 if (ctr == 0) { -327 LOGGER.info(String.format("NVD API has %,d records in this update", max)); -328 } -329 if (items != null && !items.isEmpty()) { -330 final Future<NvdApiProcessor> f = processingExecutorService.submit(new NvdApiProcessor(cveDb, items)); -331 submitted.add(f); -332 ctr += 1; -333 if ((ctr % 5) == 0) { -334 final double percent = (double) (ctr * RESULTS_PER_PAGE) / max * 100; -335 LOGGER.info(String.format("Downloaded %,d/%,d (%.0f%%)", ctr * RESULTS_PER_PAGE, max, percent)); -336 } -337 } -338 final ZonedDateTime last = api.getLastUpdated(); -339 if (last != null && (lastModifiedRequest == null || lastModifiedRequest.compareTo(last) < 0)) { -340 lastModifiedRequest = last; -341 } -342 } -343 -344 } catch (Exception e) { -345 throw new UpdateException("Error updating the NVD Data", e); -346 } -347 LOGGER.info(String.format("Downloaded %,d/%,d (%.0f%%)", max, max, 100f)); -348 max = submitted.size(); -349 final boolean updated = max > 0; -350 ctr = 0; -351 for (Future<NvdApiProcessor> f : submitted) { -352 try { -353 final NvdApiProcessor proc = f.get(); -354 ctr += 1; -355 final double percent = (double) ctr / max * 100; -356 LOGGER.info(String.format("Completed processing batch %d/%d (%.0f%%) in %,dms", ctr, max, percent, proc.getDurationMillis())); -357 } catch (InterruptedException ex) { -358 Thread.currentThread().interrupt(); -359 throw new RuntimeException(ex); -360 } catch (ExecutionException ex) { -361 LOGGER.error("Exception processing NVD API Results", ex); -362 throw new RuntimeException(ex); -363 } -364 } -365 if (lastModifiedRequest != null) { -366 dbProperties.save(DatabaseProperties.NVD_API_LAST_CHECKED, ZonedDateTime.now()); -367 dbProperties.save(DatabaseProperties.NVD_API_LAST_MODIFIED, lastModifiedRequest); -368 } -369 return updated; -370 } finally { -371 if (processingExecutorService != null) { -372 processingExecutorService.shutdownNow(); -373 } -374 } -375 } -376 -377 /** -378 * Checks if the system is configured NOT to update. -379 * -380 * @return false if the system is configured to perform an update; otherwise -381 * true -382 */ -383 private boolean isUpdateConfiguredFalse() { -384 if (!settings.getBoolean(Settings.KEYS.UPDATE_NVDCVE_ENABLED, true)) { -385 return true; -386 } -387 boolean autoUpdate = true; -388 try { -389 autoUpdate = settings.getBoolean(Settings.KEYS.AUTO_UPDATE); -390 } catch (InvalidSettingException ex) { -391 LOGGER.debug("Invalid setting for auto-update; using true."); -392 } -393 return !autoUpdate; -394 } -395 -396 @Override -397 public boolean purge(Engine engine) { -398 boolean result = true; -399 try { -400 final File dataDir = engine.getSettings().getDataDirectory(); -401 final File db = new File(dataDir, engine.getSettings().getString(Settings.KEYS.DB_FILE_NAME, "odc.mv.db")); -402 if (db.exists()) { -403 if (db.delete()) { -404 LOGGER.info("Database file purged; local copy of the NVD has been removed"); -405 } else { -406 LOGGER.error("Unable to delete '{}'; please delete the file manually", db.getAbsolutePath()); -407 result = false; -408 } -409 } else { -410 LOGGER.info("Unable to purge database; the database file does not exist: {}", db.getAbsolutePath()); -411 result = false; -412 } -413 final File traceFile = new File(dataDir, "odc.trace.db"); -414 if (traceFile.exists() && !traceFile.delete()) { -415 LOGGER.error("Unable to delete '{}'; please delete the file manually", traceFile.getAbsolutePath()); -416 result = false; -417 } -418 final File lockFile = new File(dataDir, "odc.update.lock"); -419 if (lockFile.exists() && !lockFile.delete()) { -420 LOGGER.error("Unable to delete '{}'; please delete the file manually", lockFile.getAbsolutePath()); -421 result = false; -422 } -423 } catch (IOException ex) { -424 final String msg = "Unable to delete the database"; -425 LOGGER.error(msg, ex); -426 result = false; -427 } -428 return result; -429 } -430 -431 /** -432 * Checks if the NVD API Cache JSON files were last checked recently. As an -433 * optimization, we can avoid repetitive checks against the NVD cache. -434 * -435 * @return true to proceed with the check, or false to skip -436 * @throws UpdateException thrown when there is an issue checking for -437 * updates -438 */ -439 private boolean checkUpdate() throws UpdateException { -440 boolean proceed = true; -441 // If the valid setting has not been specified, then we proceed to check... -442 final int validForHours = settings.getInt(Settings.KEYS.NVD_API_VALID_FOR_HOURS, 0); -443 if (dataExists() && 0 < validForHours) { -444 // ms Valid = valid (hours) x 60 min/hour x 60 sec/min x 1000 ms/sec -445 final long validForSeconds = validForHours * 60L * 60L; -446 final ZonedDateTime lastChecked = dbProperties.getTimestamp(DatabaseProperties.NVD_CACHE_LAST_CHECKED); -447 if (lastChecked != null) { -448 final ZonedDateTime now = ZonedDateTime.now(ZoneId.of("UTC")); -449 final Duration duration = Duration.between(lastChecked, now); -450 final long difference = duration.getSeconds(); -451 proceed = difference > validForSeconds; -452 if (!proceed) { -453 LOGGER.info("Skipping NVD API Cache check since last check was within {} hours.", validForHours); -454 LOGGER.debug("Last NVD API was at {}, and now {} is within {} s.", lastChecked, now, validForSeconds); -455 } -456 } else { -457 LOGGER.warn("NVD cache last checked not present; updating the entire database. This could occur if you are " -458 + "switching back and forth from using the API vs a datafeed or if you are using a database created prior to ODC 9.x"); -459 } -460 } -461 return proceed; -462 } -463 -464 /** -465 * Checks the CVE Index to ensure data exists and analysis can continue. -466 * -467 * @return true if the database contains data -468 */ -469 private boolean dataExists() { -470 return cveDb.dataExists(); -471 } -472 -473 /** -474 * Determines if the index needs to be updated. This is done by fetching the -475 * NVD CVE meta data and checking the last update date. If the data needs to -476 * be refreshed this method will return the NvdCveUrl for the files that -477 * need to be updated. -478 * -479 * @param url the URL of the NVD API cache -480 * @param filePattern the string format pattern for the cached files (e.g. -481 * "nvdcve-{0}.json.gz") -482 * @param cacheProperties the properties from the remote NVD API cache -483 * @param now the start time of the update process -484 * @return the map of key to URLs - where the key is the year or `modified` -485 * @throws UpdateException Is thrown if there is an issue with the last -486 * updated properties file -487 */ -488 protected final Map<String, String> getUpdatesNeeded(String url, String filePattern, -489 Properties cacheProperties, ZonedDateTime now) throws UpdateException { -490 LOGGER.debug("starting getUpdatesNeeded() ..."); -491 final Map<String, String> updates = new HashMap<>(); -492 if (dbProperties != null && !dbProperties.isEmpty()) { -493 final int startYear = settings.getInt(Settings.KEYS.NVD_API_DATAFEED_START_YEAR, 2002); -494 // for establishing the current year use the timezone where the new year starts first -495 // as from that moment on CNAs might start assigning CVEs with the new year depending -496 // on the CNA's timezone -497 final int endYear = now.withZoneSameInstant(ZoneId.of("UTC+14:00")).getYear(); -498 boolean needsFullUpdate = false; -499 for (int y = startYear; y <= endYear; y++) { -500 final ZonedDateTime val = dbProperties.getTimestamp(DatabaseProperties.NVD_CACHE_LAST_MODIFIED + "." + y); -501 if (val == null) { -502 needsFullUpdate = true; -503 break; -504 } -505 } -506 final ZonedDateTime lastUpdated = dbProperties.getTimestamp(DatabaseProperties.NVD_CACHE_LAST_MODIFIED); -507 final int days = settings.getInt(Settings.KEYS.NVD_API_DATAFEED_VALID_FOR_DAYS, 7); -508 -509 if (!needsFullUpdate && lastUpdated.equals(DatabaseProperties.getTimestamp(cacheProperties, NVD_API_CACHE_MODIFIED_DATE))) { -510 return updates; -511 } else { -512 updates.put("modified", url + MessageFormat.format(filePattern, "modified")); -513 if (needsFullUpdate) { -514 for (int i = startYear; i <= endYear; i++) { -515 if (cacheProperties.containsKey(NVD_API_CACHE_MODIFIED_DATE + "." + i)) { -516 updates.put(String.valueOf(i), url + MessageFormat.format(filePattern, String.valueOf(i))); -517 } -518 } -519 } else if (!DateUtil.withinDateRange(lastUpdated, now, days)) { -520 for (int i = startYear; i <= endYear; i++) { -521 if (cacheProperties.containsKey(NVD_API_CACHE_MODIFIED_DATE + "." + i)) { -522 final ZonedDateTime lastModifiedCache = DatabaseProperties.getTimestamp(cacheProperties, -523 NVD_API_CACHE_MODIFIED_DATE + "." + i); -524 final ZonedDateTime lastModifiedDB = dbProperties.getTimestamp(DatabaseProperties.NVD_CACHE_LAST_MODIFIED + "." + i); -525 if (lastModifiedDB == null || lastModifiedCache.compareTo(lastModifiedDB) > 0) { -526 updates.put(String.valueOf(i), url + MessageFormat.format(filePattern, String.valueOf(i))); -527 } -528 } -529 } -530 } -531 } -532 } -533 if (updates.size() > 3) { -534 LOGGER.info("NVD API Cache requires several updates; this could take a couple of minutes."); -535 } -536 return updates; -537 } -538 -539 /** -540 * Downloads the metadata properties of the NVD API cache. -541 * -542 * @param url the URL to the NVD API cache -543 * @return the cache properties -544 * @throws UpdateException thrown if the properties file could not be -545 * downloaded -546 */ -547 protected final Properties getRemoteCacheProperties(String url) throws UpdateException { -548 try { -549 final URL u = new URL(url + "cache.properties"); -550 final Downloader d = new Downloader(settings); -551 final String content = d.fetchContent(u, true, Settings.KEYS.NVD_API_DATAFEED_USER, Settings.KEYS.NVD_API_DATAFEED_PASSWORD); -552 final Properties properties = new Properties(); -553 properties.load(new StringReader(content)); -554 return properties; -555 } catch (MalformedURLException ex) { -556 throw new UpdateException("Invalid NVD Cache URL", ex); -557 } catch (DownloadFailedException | TooManyRequestsException | ResourceNotFoundException ex) { -558 throw new UpdateException("Unable to download the NVD API cache.properties", ex); -559 } catch (IOException ex) { -560 throw new UpdateException("Invalid NVD Cache Properties file contents", ex); -561 } -562 } -563 } +297 +298 ZonedDateTime lastModifiedRequest = dbProperties.getTimestamp(DatabaseProperties.NVD_API_LAST_MODIFIED); +299 final NvdCveClientBuilder builder = NvdCveClientBuilder.aNvdCveApi(); +300 final String endpoint = settings.getString(Settings.KEYS.NVD_API_ENDPOINT); +301 if (endpoint != null) { +302 builder.withEndpoint(endpoint); +303 } +304 if (lastModifiedRequest != null) { +305 final ZonedDateTime end = lastModifiedRequest.minusDays(-120); +306 builder.withLastModifiedFilter(lastModifiedRequest, end); +307 } +308 final String key = settings.getString(Settings.KEYS.NVD_API_KEY); +309 if (key != null) { +310 //using a higher delay as the system may not be able to process these faster. +311 builder.withApiKey(key) +312 .withDelay(2000) +313 .withThreadCount(4); +314 } else { +315 LOGGER.warn("An NVD API Key was not provided - it is highly recommended to use " +316 + "an NVD API key as the update can take a VERY long time without an API Key"); +317 builder.withDelay(8000); +318 } +319 builder.withResultsPerPage(RESULTS_PER_PAGE); +320 //removed due to the virtualMatch filter causing overhead with the NVD API +321 //final String virtualMatch = settings.getString(Settings.KEYS.CVE_CPE_STARTS_WITH_FILTER); +322 //if (virtualMatch != null) { +323 // builder.withVirtualMatchString(virtualMatch); +324 //} +325 +326 final int retryCount = settings.getInt(Settings.KEYS.NVD_API_MAX_RETRY_COUNT, 10); +327 builder.withMaxRetryCount(retryCount); +328 long delay = 0; +329 try { +330 delay = settings.getLong(Settings.KEYS.NVD_API_DELAY); +331 } catch (InvalidSettingException ex) { +332 LOGGER.warn("Invalid setting `NVD_API_DELAY`? ({}), using default delay", settings.getString(Settings.KEYS.NVD_API_DELAY)); +333 } +334 if (delay > 0) { +335 builder.withDelay(delay); +336 } +337 +338 ExecutorService processingExecutorService = null; +339 try { +340 processingExecutorService = Executors.newFixedThreadPool(PROCESSING_THREAD_POOL_SIZE); +341 final List<Future<NvdApiProcessor>> submitted = new ArrayList<>(); +342 int max = -1; +343 int ctr = 0; +344 try (NvdCveClient api = builder.build()) { +345 while (api.hasNext()) { +346 Collection<DefCveItem> items = api.next(); +347 max = api.getTotalAvailable(); +348 if (ctr == 0) { +349 LOGGER.info(String.format("NVD API has %,d records in this update", max)); +350 } +351 if (items != null && !items.isEmpty()) { +352 final ObjectMapper objectMapper = new ObjectMapper(); +353 objectMapper.registerModule(new JavaTimeModule()); +354 final File outputFile = settings.getTempFile("nvd-data-", ".jsonarray.gz"); +355 try (FileOutputStream fos = new FileOutputStream(outputFile); GZIPOutputStream out = new GZIPOutputStream(fos);) { +356 objectMapper.writeValue(out, items); +357 final Future<NvdApiProcessor> f = processingExecutorService.submit(new NvdApiProcessor(cveDb, outputFile)); +358 submitted.add(f); +359 } +360 ctr += 1; +361 if ((ctr % 5) == 0) { +362 final double percent = (double) (ctr * RESULTS_PER_PAGE) / max * 100; +363 LOGGER.info(String.format("Downloaded %,d/%,d (%.0f%%)", ctr * RESULTS_PER_PAGE, max, percent)); +364 } +365 } +366 final ZonedDateTime last = api.getLastUpdated(); +367 if (last != null && (lastModifiedRequest == null || lastModifiedRequest.compareTo(last) < 0)) { +368 lastModifiedRequest = last; +369 } +370 } +371 +372 } catch (Exception e) { +373 throw new UpdateException("Error updating the NVD Data", e); +374 } +375 LOGGER.info(String.format("Downloaded %,d/%,d (%.0f%%)", max, max, 100f)); +376 max = submitted.size(); +377 final boolean updated = max > 0; +378 ctr = 0; +379 for (Future<NvdApiProcessor> f : submitted) { +380 try { +381 final NvdApiProcessor proc = f.get(); +382 ctr += 1; +383 final double percent = (double) ctr / max * 100; +384 LOGGER.info(String.format("Completed processing batch %d/%d (%.0f%%) in %,dms", ctr, max, percent, proc.getDurationMillis())); +385 } catch (InterruptedException ex) { +386 Thread.currentThread().interrupt(); +387 throw new RuntimeException(ex); +388 } catch (ExecutionException ex) { +389 LOGGER.error("Exception processing NVD API Results", ex); +390 throw new RuntimeException(ex); +391 } +392 } +393 if (lastModifiedRequest != null) { +394 dbProperties.save(DatabaseProperties.NVD_API_LAST_CHECKED, ZonedDateTime.now()); +395 dbProperties.save(DatabaseProperties.NVD_API_LAST_MODIFIED, lastModifiedRequest); +396 } +397 return updated; +398 } finally { +399 if (processingExecutorService != null) { +400 processingExecutorService.shutdownNow(); +401 } +402 } +403 } +404 +405 /** +406 * Checks if the system is configured NOT to update. +407 * +408 * @return false if the system is configured to perform an update; otherwise +409 * true +410 */ +411 private boolean isUpdateConfiguredFalse() { +412 if (!settings.getBoolean(Settings.KEYS.UPDATE_NVDCVE_ENABLED, true)) { +413 return true; +414 } +415 boolean autoUpdate = true; +416 try { +417 autoUpdate = settings.getBoolean(Settings.KEYS.AUTO_UPDATE); +418 } catch (InvalidSettingException ex) { +419 LOGGER.debug("Invalid setting for auto-update; using true."); +420 } +421 return !autoUpdate; +422 } +423 +424 @Override +425 public boolean purge(Engine engine) { +426 boolean result = true; +427 try { +428 final File dataDir = engine.getSettings().getDataDirectory(); +429 final File db = new File(dataDir, engine.getSettings().getString(Settings.KEYS.DB_FILE_NAME, "odc.mv.db")); +430 if (db.exists()) { +431 if (db.delete()) { +432 LOGGER.info("Database file purged; local copy of the NVD has been removed"); +433 } else { +434 LOGGER.error("Unable to delete '{}'; please delete the file manually", db.getAbsolutePath()); +435 result = false; +436 } +437 } else { +438 LOGGER.info("Unable to purge database; the database file does not exist: {}", db.getAbsolutePath()); +439 result = false; +440 } +441 final File traceFile = new File(dataDir, "odc.trace.db"); +442 if (traceFile.exists() && !traceFile.delete()) { +443 LOGGER.error("Unable to delete '{}'; please delete the file manually", traceFile.getAbsolutePath()); +444 result = false; +445 } +446 final File lockFile = new File(dataDir, "odc.update.lock"); +447 if (lockFile.exists() && !lockFile.delete()) { +448 LOGGER.error("Unable to delete '{}'; please delete the file manually", lockFile.getAbsolutePath()); +449 result = false; +450 } +451 } catch (IOException ex) { +452 final String msg = "Unable to delete the database"; +453 LOGGER.error(msg, ex); +454 result = false; +455 } +456 return result; +457 } +458 +459 /** +460 * Checks if the NVD API Cache JSON files were last checked recently. As an +461 * optimization, we can avoid repetitive checks against the NVD cache. +462 * +463 * @return true to proceed with the check, or false to skip +464 * @throws UpdateException thrown when there is an issue checking for +465 * updates +466 */ +467 private boolean checkUpdate() throws UpdateException { +468 boolean proceed = true; +469 // If the valid setting has not been specified, then we proceed to check... +470 final int validForHours = settings.getInt(Settings.KEYS.NVD_API_VALID_FOR_HOURS, 0); +471 if (dataExists() && 0 < validForHours) { +472 // ms Valid = valid (hours) x 60 min/hour x 60 sec/min x 1000 ms/sec +473 final long validForSeconds = validForHours * 60L * 60L; +474 final ZonedDateTime lastChecked = dbProperties.getTimestamp(DatabaseProperties.NVD_CACHE_LAST_CHECKED); +475 if (lastChecked != null) { +476 final ZonedDateTime now = ZonedDateTime.now(ZoneId.of("UTC")); +477 final Duration duration = Duration.between(lastChecked, now); +478 final long difference = duration.getSeconds(); +479 proceed = difference > validForSeconds; +480 if (!proceed) { +481 LOGGER.info("Skipping NVD API Cache check since last check was within {} hours.", validForHours); +482 LOGGER.debug("Last NVD API was at {}, and now {} is within {} s.", lastChecked, now, validForSeconds); +483 } +484 } else { +485 LOGGER.warn("NVD cache last checked not present; updating the entire database. This could occur if you are " +486 + "switching back and forth from using the API vs a datafeed or if you are using a database created prior to ODC 9.x"); +487 } +488 } +489 return proceed; +490 } +491 +492 /** +493 * Checks the CVE Index to ensure data exists and analysis can continue. +494 * +495 * @return true if the database contains data +496 */ +497 private boolean dataExists() { +498 return cveDb.dataExists(); +499 } +500 +501 /** +502 * Determines if the index needs to be updated. This is done by fetching the +503 * NVD CVE meta data and checking the last update date. If the data needs to +504 * be refreshed this method will return the NvdCveUrl for the files that +505 * need to be updated. +506 * +507 * @param url the URL of the NVD API cache +508 * @param filePattern the string format pattern for the cached files (e.g. +509 * "nvdcve-{0}.json.gz") +510 * @param cacheProperties the properties from the remote NVD API cache +511 * @param now the start time of the update process +512 * @return the map of key to URLs - where the key is the year or `modified` +513 * @throws UpdateException Is thrown if there is an issue with the last +514 * updated properties file +515 */ +516 protected final Map<String, String> getUpdatesNeeded(String url, String filePattern, +517 Properties cacheProperties, ZonedDateTime now) throws UpdateException { +518 LOGGER.debug("starting getUpdatesNeeded() ..."); +519 final Map<String, String> updates = new HashMap<>(); +520 if (dbProperties != null && !dbProperties.isEmpty()) { +521 final int startYear = settings.getInt(Settings.KEYS.NVD_API_DATAFEED_START_YEAR, 2002); +522 // for establishing the current year use the timezone where the new year starts first +523 // as from that moment on CNAs might start assigning CVEs with the new year depending +524 // on the CNA's timezone +525 final int endYear = now.withZoneSameInstant(ZoneId.of("UTC+14:00")).getYear(); +526 boolean needsFullUpdate = false; +527 for (int y = startYear; y <= endYear; y++) { +528 final ZonedDateTime val = dbProperties.getTimestamp(DatabaseProperties.NVD_CACHE_LAST_MODIFIED + "." + y); +529 if (val == null) { +530 needsFullUpdate = true; +531 break; +532 } +533 } +534 final ZonedDateTime lastUpdated = dbProperties.getTimestamp(DatabaseProperties.NVD_CACHE_LAST_MODIFIED); +535 final int days = settings.getInt(Settings.KEYS.NVD_API_DATAFEED_VALID_FOR_DAYS, 7); +536 +537 if (!needsFullUpdate && lastUpdated.equals(DatabaseProperties.getTimestamp(cacheProperties, NVD_API_CACHE_MODIFIED_DATE))) { +538 return updates; +539 } else { +540 updates.put("modified", url + MessageFormat.format(filePattern, "modified")); +541 if (needsFullUpdate) { +542 for (int i = startYear; i <= endYear; i++) { +543 if (cacheProperties.containsKey(NVD_API_CACHE_MODIFIED_DATE + "." + i)) { +544 updates.put(String.valueOf(i), url + MessageFormat.format(filePattern, String.valueOf(i))); +545 } +546 } +547 } else if (!DateUtil.withinDateRange(lastUpdated, now, days)) { +548 for (int i = startYear; i <= endYear; i++) { +549 if (cacheProperties.containsKey(NVD_API_CACHE_MODIFIED_DATE + "." + i)) { +550 final ZonedDateTime lastModifiedCache = DatabaseProperties.getTimestamp(cacheProperties, +551 NVD_API_CACHE_MODIFIED_DATE + "." + i); +552 final ZonedDateTime lastModifiedDB = dbProperties.getTimestamp(DatabaseProperties.NVD_CACHE_LAST_MODIFIED + "." + i); +553 if (lastModifiedDB == null || lastModifiedCache.compareTo(lastModifiedDB) > 0) { +554 updates.put(String.valueOf(i), url + MessageFormat.format(filePattern, String.valueOf(i))); +555 } +556 } +557 } +558 } +559 } +560 } +561 if (updates.size() > 3) { +562 LOGGER.info("NVD API Cache requires several updates; this could take a couple of minutes."); +563 } +564 return updates; +565 } +566 +567 /** +568 * Downloads the metadata properties of the NVD API cache. +569 * +570 * @param url the URL to the NVD API cache +571 * @return the cache properties +572 * @throws UpdateException thrown if the properties file could not be +573 * downloaded +574 */ +575 protected final Properties getRemoteCacheProperties(String url, String pattern) throws UpdateException { +576 final Downloader d = new Downloader(settings); +577 final Properties properties = new Properties(); +578 try { +579 final URL u = new URI(url + "cache.properties").toURL(); +580 final String content = d.fetchContent(u, true, Settings.KEYS.NVD_API_DATAFEED_USER, Settings.KEYS.NVD_API_DATAFEED_PASSWORD); +581 properties.load(new StringReader(content)); +582 +583 } catch (URISyntaxException ex) { +584 throw new UpdateException("Invalid NVD Cache URL", ex); +585 } catch (DownloadFailedException | ResourceNotFoundException ex) { +586 String metaPattern; +587 if (pattern == null) { +588 metaPattern = "nvdcve-{0}.meta"; +589 } else { +590 metaPattern = pattern.replace(".json.gz", ".meta"); +591 } +592 try { +593 URL metaUrl = new URI(url + MessageFormat.format(metaPattern, "modified")).toURL(); +594 String content = d.fetchContent(metaUrl, true, Settings.KEYS.NVD_API_DATAFEED_USER, Settings.KEYS.NVD_API_DATAFEED_PASSWORD); +595 Properties props = new Properties(); +596 props.load(new StringReader(content)); +597 ZonedDateTime lmd = DatabaseProperties.getIsoTimestamp(props, "lastModifiedDate"); +598 DatabaseProperties.setTimestamp(properties,"lastModifiedDate.modified", lmd); +599 DatabaseProperties.setTimestamp(properties,"lastModifiedDate", lmd); +600 final int startYear = settings.getInt(Settings.KEYS.NVD_API_DATAFEED_START_YEAR, 2002); +601 final ZonedDateTime now = ZonedDateTime.now(ZoneId.of("UTC")); +602 final int endYear = now.withZoneSameInstant(ZoneId.of("UTC+14:00")).getYear(); +603 for (int y = startYear; y <= endYear; y++) { +604 metaUrl = new URI(url + MessageFormat.format(metaPattern, String.valueOf(y))).toURL(); +605 content = d.fetchContent(metaUrl, true, Settings.KEYS.NVD_API_DATAFEED_USER, Settings.KEYS.NVD_API_DATAFEED_PASSWORD); +606 props.clear(); +607 props.load(new StringReader(content)); +608 lmd = DatabaseProperties.getIsoTimestamp(props, "lastModifiedDate"); +609 DatabaseProperties.setTimestamp(properties, "lastModifiedDate." + String.valueOf(y), lmd); +610 } +611 } catch (URISyntaxException | TooManyRequestsException | ResourceNotFoundException | IOException ex1) { +612 throw new UpdateException("Unable to download the data feed META files", ex); +613 } +614 } catch ( TooManyRequestsException ex) { +615 throw new UpdateException("Unable to download the NVD API cache.properties", ex); +616 } catch (IOException ex) { +617 throw new UpdateException("Invalid NVD Cache Properties file contents", ex); +618 } +619 return properties; +620 } +621 +622 protected static class UrlData { +623 +624 private final String url; +625 +626 private final String pattern; +627 +628 public UrlData(String url, String pattern) { +629 this.url = url; +630 this.pattern = pattern; +631 } +632 +633 /** +634 * Get the value of pattern +635 * +636 * @return the value of pattern +637 */ +638 public String getPattern() { +639 return pattern; +640 } +641 +642 /** +643 * Get the value of url +644 * +645 * @return the value of url +646 */ +647 public String getUrl() { +648 return url; +649 } +650 +651 } +652 }
    diff --git a/xref/org/owasp/dependencycheck/data/update/RetireJSDataSource.html b/xref/org/owasp/dependencycheck/data/update/RetireJSDataSource.html index 0409d1c5afd..477257ce2fa 100644 --- a/xref/org/owasp/dependencycheck/data/update/RetireJSDataSource.html +++ b/xref/org/owasp/dependencycheck/data/update/RetireJSDataSource.html @@ -32,151 +32,162 @@ 24 import javax.annotation.concurrent.ThreadSafe; 25 26 import org.owasp.dependencycheck.Engine; -27 import org.owasp.dependencycheck.data.update.exception.UpdateException; -28 import org.owasp.dependencycheck.exception.WriteLockException; -29 import org.owasp.dependencycheck.utils.Downloader; -30 import org.owasp.dependencycheck.utils.ResourceNotFoundException; -31 import org.owasp.dependencycheck.utils.Settings; -32 import org.owasp.dependencycheck.utils.TooManyRequestsException; -33 import org.owasp.dependencycheck.utils.WriteLock; -34 import org.slf4j.Logger; -35 import org.slf4j.LoggerFactory; -36 -37 /** -38 * Downloads a local copy of the RetireJS repository. -39 * -40 * @author Jeremy Long -41 */ -42 @ThreadSafe -43 public class RetireJSDataSource implements CachedWebDataSource { -44 -45 /** -46 * Static logger. -47 */ -48 private static final Logger LOGGER = LoggerFactory.getLogger(RetireJSDataSource.class); -49 /** -50 * The property key indicating when the last update occurred. -51 */ -52 public static final String RETIREJS_UPDATED_ON = "RetireJSUpdatedOn"; -53 /** -54 * The configured settings. -55 */ -56 private Settings settings; -57 /** -58 * The default URL to the RetireJS JavaScript repository. -59 */ -60 public static final String DEFAULT_JS_URL = "https://raw.githubusercontent.com/Retirejs/retire.js/master/repository/jsrepository.json"; -61 +27 import org.owasp.dependencycheck.data.nvdcve.DatabaseProperties; +28 import org.owasp.dependencycheck.data.update.exception.UpdateException; +29 import org.owasp.dependencycheck.exception.WriteLockException; +30 import org.owasp.dependencycheck.utils.Downloader; +31 import org.owasp.dependencycheck.utils.ResourceNotFoundException; +32 import org.owasp.dependencycheck.utils.Settings; +33 import org.owasp.dependencycheck.utils.TooManyRequestsException; +34 import org.owasp.dependencycheck.utils.WriteLock; +35 import org.slf4j.Logger; +36 import org.slf4j.LoggerFactory; +37 +38 /** +39 * Downloads a local copy of the RetireJS repository. +40 * +41 * @author Jeremy Long +42 */ +43 @ThreadSafe +44 public class RetireJSDataSource implements CachedWebDataSource { +45 +46 /** +47 * Static logger. +48 */ +49 private static final Logger LOGGER = LoggerFactory.getLogger(RetireJSDataSource.class); +50 /** +51 * The property key indicating when the last update occurred. +52 */ +53 public static final String RETIREJS_UPDATED_ON = "RetireJSUpdatedOn"; +54 /** +55 * The configured settings. +56 */ +57 private Settings settings; +58 /** +59 * The properties obtained from the database. +60 */ +61 private DatabaseProperties dbProperties = null; 62 /** -63 * Constructs a new engine version check utility. +63 * The default URL to the RetireJS JavaScript repository. 64 */ -65 public RetireJSDataSource() { -66 } -67 -68 /** -69 * Downloads the current RetireJS data source. -70 * -71 * @param engine a reference to the ODC Engine -72 * @return returns false as no updates are made to the database -73 * @throws UpdateException thrown if the update failed -74 */ -75 @Override -76 public boolean update(Engine engine) throws UpdateException { -77 this.settings = engine.getSettings(); -78 final String configuredUrl = settings.getString(Settings.KEYS.ANALYZER_RETIREJS_REPO_JS_URL, DEFAULT_JS_URL); -79 final boolean autoupdate = settings.getBoolean(Settings.KEYS.AUTO_UPDATE, true); -80 final boolean forceupdate = settings.getBoolean(Settings.KEYS.ANALYZER_RETIREJS_FORCEUPDATE, false); -81 final boolean enabled = settings.getBoolean(Settings.KEYS.ANALYZER_RETIREJS_ENABLED, true); -82 try { -83 final URL url = new URL(configuredUrl); -84 final File filepath = new File(url.getPath()); -85 final File repoFile = new File(settings.getDataDirectory(), filepath.getName()); -86 final boolean proceed = enabled && (forceupdate || (autoupdate && shouldUpdate(repoFile))); -87 if (proceed) { -88 LOGGER.debug("Begin RetireJS Update"); -89 initializeRetireJsRepo(settings, url, repoFile); -90 } -91 } catch (MalformedURLException ex) { -92 throw new UpdateException(String.format("Invalid URL for RetireJS repository (%s)", configuredUrl), ex); -93 } catch (IOException ex) { -94 throw new UpdateException("Unable to get the data directory", ex); -95 } -96 return false; -97 } -98 -99 /** -100 * Determines if the we should update the RetireJS database. -101 * -102 * @param repo the retire JS repository. -103 * @return <code>true</code> if an updated to the RetireJS database should -104 * be performed; otherwise <code>false</code> -105 * @throws NumberFormatException thrown if an invalid value is contained in -106 * the database properties -107 */ -108 protected boolean shouldUpdate(File repo) throws NumberFormatException { -109 boolean proceed = true; -110 if (repo != null && repo.isFile()) { -111 final int validForHours = settings.getInt(Settings.KEYS.ANALYZER_RETIREJS_REPO_VALID_FOR_HOURS, 0); -112 final long lastUpdatedOn = repo.lastModified(); -113 final long now = System.currentTimeMillis(); -114 LOGGER.debug("Last updated: {}", lastUpdatedOn); -115 LOGGER.debug("Now: {}", now); -116 final long msValid = validForHours * 60L * 60L * 1000L; -117 proceed = (now - lastUpdatedOn) > msValid; -118 if (!proceed) { -119 LOGGER.info("Skipping RetireJS update since last update was within {} hours.", validForHours); -120 } -121 } -122 return proceed; -123 } -124 -125 /** -126 * Initializes the local RetireJS repository -127 * -128 * @param settings a reference to the dependency-check settings -129 * @param repoUrl the URL to the RetireJS repository to use -130 * @param repoFile the filename to use for the RetireJS repository -131 * @throws UpdateException thrown if there is an exception during -132 * initialization -133 */ -134 @SuppressWarnings("try") -135 private void initializeRetireJsRepo(Settings settings, URL repoUrl, File repoFile) throws UpdateException { -136 try (WriteLock lock = new WriteLock(settings, true, repoFile.getName() + ".lock")) { -137 LOGGER.debug("RetireJS Repo URL: {}", repoUrl.toExternalForm()); -138 final Downloader downloader = new Downloader(settings); -139 downloader.fetchFile(repoUrl, repoFile, Settings.KEYS.ANALYZER_RETIREJS_REPO_JS_USER, Settings.KEYS.ANALYZER_RETIREJS_REPO_JS_PASSWORD); -140 } catch (IOException | TooManyRequestsException | ResourceNotFoundException | WriteLockException ex) { -141 throw new UpdateException("Failed to initialize the RetireJS repo", ex); -142 } -143 } -144 -145 @Override -146 @SuppressWarnings("try") -147 public boolean purge(Engine engine) { -148 this.settings = engine.getSettings(); -149 boolean result = true; -150 try { -151 final File dataDir = engine.getSettings().getDataDirectory(); -152 final URL repoUrl = new URL(engine.getSettings().getString(Settings.KEYS.ANALYZER_RETIREJS_REPO_JS_URL, DEFAULT_JS_URL)); -153 final String filename = repoUrl.getFile().substring(repoUrl.getFile().lastIndexOf("/") + 1); -154 final File repo = new File(dataDir, filename); -155 if (repo.exists()) { -156 try (WriteLock lock = new WriteLock(settings, true, filename + ".lock")) { -157 if (repo.delete()) { -158 LOGGER.info("RetireJS repo removed successfully"); -159 } else { -160 LOGGER.error("Unable to delete '{}'; please delete the file manually", repo.getAbsolutePath()); -161 result = false; -162 } -163 } -164 } -165 } catch (WriteLockException | IOException ex) { -166 LOGGER.error("Unable to delete the RetireJS repo - invalid configuration"); -167 result = false; -168 } -169 return result; -170 } -171 } +65 public static final String DEFAULT_JS_URL = "https://raw.githubusercontent.com/Retirejs/retire.js/master/repository/jsrepository.json"; +66 +67 /** +68 * Constructs a new engine version check utility. +69 */ +70 public RetireJSDataSource() { +71 } +72 +73 /** +74 * Downloads the current RetireJS data source. +75 * +76 * @param engine a reference to the ODC Engine +77 * @return returns false as no updates are made to the database +78 * @throws UpdateException thrown if the update failed +79 */ +80 @Override +81 public boolean update(Engine engine) throws UpdateException { +82 this.settings = engine.getSettings(); +83 this.dbProperties = engine.getDatabase().getDatabaseProperties(); +84 final String configuredUrl = settings.getString(Settings.KEYS.ANALYZER_RETIREJS_REPO_JS_URL, DEFAULT_JS_URL); +85 final boolean autoupdate = settings.getBoolean(Settings.KEYS.AUTO_UPDATE, true); +86 final boolean forceupdate = settings.getBoolean(Settings.KEYS.ANALYZER_RETIREJS_FORCEUPDATE, false); +87 final boolean enabled = settings.getBoolean(Settings.KEYS.ANALYZER_RETIREJS_ENABLED, true); +88 try { +89 final URL url = new URL(configuredUrl); +90 final File filepath = new File(url.getPath()); +91 final File repoFile = new File(settings.getDataDirectory(), filepath.getName()); +92 final boolean proceed = enabled && (forceupdate || (autoupdate && shouldUpdate(repoFile))); +93 if (proceed) { +94 LOGGER.debug("Begin RetireJS Update"); +95 initializeRetireJsRepo(settings, url, repoFile); +96 dbProperties.save(DatabaseProperties.RETIRE_LAST_CHECKED, Long.toString(System.currentTimeMillis() / 1000)); +97 } +98 } catch (MalformedURLException ex) { +99 throw new UpdateException(String.format("Invalid URL for RetireJS repository (%s)", configuredUrl), ex); +100 } catch (IOException ex) { +101 throw new UpdateException("Unable to get the data directory", ex); +102 } +103 return false; +104 } +105 +106 /** +107 * Determines if the we should update the RetireJS database. +108 * +109 * @param repo the retire JS repository. +110 * @return <code>true</code> if an updated to the RetireJS database should +111 * be performed; otherwise <code>false</code> +112 * @throws NumberFormatException thrown if an invalid value is contained in +113 * the database properties +114 */ +115 protected boolean shouldUpdate(File repo) throws NumberFormatException { +116 boolean proceed = true; +117 if (repo != null && repo.isFile()) { +118 final int validForHours = settings.getInt(Settings.KEYS.ANALYZER_RETIREJS_REPO_VALID_FOR_HOURS, 0); +119 long lastUpdatedOn = dbProperties.getPropertyInSeconds(DatabaseProperties.RETIRE_LAST_CHECKED); +120 if (lastUpdatedOn <= 0) { +121 //fall back on conversion from file last modified to storing in the db. +122 lastUpdatedOn = repo.lastModified(); +123 } +124 final long now = System.currentTimeMillis(); +125 LOGGER.debug("Last updated: {}", lastUpdatedOn); +126 LOGGER.debug("Now: {}", now); +127 final long msValid = validForHours * 60L * 60L * 1000L; +128 proceed = (now - lastUpdatedOn) > msValid; +129 if (!proceed) { +130 LOGGER.info("Skipping RetireJS update since last update was within {} hours.", validForHours); +131 } +132 } +133 return proceed; +134 } +135 +136 /** +137 * Initializes the local RetireJS repository +138 * +139 * @param settings a reference to the dependency-check settings +140 * @param repoUrl the URL to the RetireJS repository to use +141 * @param repoFile the filename to use for the RetireJS repository +142 * @throws UpdateException thrown if there is an exception during +143 * initialization +144 */ +145 @SuppressWarnings("try") +146 private void initializeRetireJsRepo(Settings settings, URL repoUrl, File repoFile) throws UpdateException { +147 try (WriteLock lock = new WriteLock(settings, true, repoFile.getName() + ".lock")) { +148 LOGGER.debug("RetireJS Repo URL: {}", repoUrl.toExternalForm()); +149 final Downloader downloader = new Downloader(settings); +150 downloader.fetchFile(repoUrl, repoFile, Settings.KEYS.ANALYZER_RETIREJS_REPO_JS_USER, Settings.KEYS.ANALYZER_RETIREJS_REPO_JS_PASSWORD); +151 } catch (IOException | TooManyRequestsException | ResourceNotFoundException | WriteLockException ex) { +152 throw new UpdateException("Failed to initialize the RetireJS repo", ex); +153 } +154 } +155 +156 @Override +157 @SuppressWarnings("try") +158 public boolean purge(Engine engine) { +159 this.settings = engine.getSettings(); +160 boolean result = true; +161 try { +162 final File dataDir = engine.getSettings().getDataDirectory(); +163 final URL repoUrl = new URL(engine.getSettings().getString(Settings.KEYS.ANALYZER_RETIREJS_REPO_JS_URL, DEFAULT_JS_URL)); +164 final String filename = repoUrl.getFile().substring(repoUrl.getFile().lastIndexOf("/") + 1); +165 final File repo = new File(dataDir, filename); +166 if (repo.exists()) { +167 try (WriteLock lock = new WriteLock(settings, true, filename + ".lock")) { +168 if (repo.delete()) { +169 LOGGER.info("RetireJS repo removed successfully"); +170 } else { +171 LOGGER.error("Unable to delete '{}'; please delete the file manually", repo.getAbsolutePath()); +172 result = false; +173 } +174 } +175 } +176 } catch (WriteLockException | IOException ex) { +177 LOGGER.error("Unable to delete the RetireJS repo - invalid configuration"); +178 result = false; +179 } +180 return result; +181 } +182 }
    diff --git a/xref/org/owasp/dependencycheck/data/update/cisa/package-frame.html b/xref/org/owasp/dependencycheck/data/update/cisa/package-frame.html index aff84913118..445fdc4ee78 100644 --- a/xref/org/owasp/dependencycheck/data/update/cisa/package-frame.html +++ b/xref/org/owasp/dependencycheck/data/update/cisa/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.data.update.cisa + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.data.update.cisa diff --git a/xref/org/owasp/dependencycheck/data/update/cisa/package-summary.html b/xref/org/owasp/dependencycheck/data/update/cisa/package-summary.html index 9646a3ef330..9f758a98cac 100644 --- a/xref/org/owasp/dependencycheck/data/update/cisa/package-summary.html +++ b/xref/org/owasp/dependencycheck/data/update/cisa/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.data.update.cisa + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.data.update.cisa diff --git a/xref/org/owasp/dependencycheck/data/update/cpe/package-frame.html b/xref/org/owasp/dependencycheck/data/update/cpe/package-frame.html index 36efb28e326..8e8b61bd7b8 100644 --- a/xref/org/owasp/dependencycheck/data/update/cpe/package-frame.html +++ b/xref/org/owasp/dependencycheck/data/update/cpe/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.data.update.cpe + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.data.update.cpe diff --git a/xref/org/owasp/dependencycheck/data/update/cpe/package-summary.html b/xref/org/owasp/dependencycheck/data/update/cpe/package-summary.html index 944562bf785..9fd89582989 100644 --- a/xref/org/owasp/dependencycheck/data/update/cpe/package-summary.html +++ b/xref/org/owasp/dependencycheck/data/update/cpe/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.data.update.cpe + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.data.update.cpe diff --git a/xref/org/owasp/dependencycheck/data/update/exception/package-frame.html b/xref/org/owasp/dependencycheck/data/update/exception/package-frame.html index b9953a55a2d..42eede2e936 100644 --- a/xref/org/owasp/dependencycheck/data/update/exception/package-frame.html +++ b/xref/org/owasp/dependencycheck/data/update/exception/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.data.update.exception + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.data.update.exception diff --git a/xref/org/owasp/dependencycheck/data/update/exception/package-summary.html b/xref/org/owasp/dependencycheck/data/update/exception/package-summary.html index 68e42680343..508297ac3f3 100644 --- a/xref/org/owasp/dependencycheck/data/update/exception/package-summary.html +++ b/xref/org/owasp/dependencycheck/data/update/exception/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.data.update.exception + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.data.update.exception diff --git a/xref/org/owasp/dependencycheck/data/update/nvd/api/DownloadTask.html b/xref/org/owasp/dependencycheck/data/update/nvd/api/DownloadTask.html index 779d22256f2..47466c78e18 100644 --- a/xref/org/owasp/dependencycheck/data/update/nvd/api/DownloadTask.html +++ b/xref/org/owasp/dependencycheck/data/update/nvd/api/DownloadTask.html @@ -25,108 +25,101 @@ 17 */ 18 package org.owasp.dependencycheck.data.update.nvd.api; 19 -20 import com.fasterxml.jackson.databind.ObjectMapper; -21 import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; -22 import io.github.jeremylong.openvulnerability.client.nvd.CveApiJson20; -23 import java.net.URL; -24 import java.util.concurrent.Callable; -25 import java.util.concurrent.ExecutorService; -26 import java.util.concurrent.Future; -27 import javax.annotation.concurrent.ThreadSafe; -28 import org.apache.commons.lang3.StringUtils; -29 import org.owasp.dependencycheck.data.nvdcve.CveDB; -30 import org.owasp.dependencycheck.data.update.exception.UpdateException; -31 import org.owasp.dependencycheck.utils.Downloader; -32 import org.owasp.dependencycheck.utils.Settings; -33 import org.slf4j.Logger; -34 import org.slf4j.LoggerFactory; -35 -36 /** -37 * A callable object to download the NVD API cache files and start the -38 * NvdApiProcessor. -39 * -40 * @author Jeremy Long -41 */ -42 @ThreadSafe -43 public class DownloadTask implements Callable<Future<NvdApiProcessor>> { -44 -45 /** -46 * The Logger. -47 */ -48 private static final Logger LOGGER = LoggerFactory.getLogger(DownloadTask.class); -49 /** -50 * The CVE DB to use when processing the files. -51 */ -52 private final CveDB cveDB; -53 /** -54 * The processor service to pass the results of the download to. -55 */ -56 private final ExecutorService processorService; -57 /** -58 * The NVD API Cache file URL. -59 */ -60 private final String url; -61 /** -62 * A reference to the global settings object. -63 */ -64 private final Settings settings; -65 -66 /** -67 * Simple constructor for the callable download task. -68 * -69 * @param url the file to download -70 * @param processor the processor service to submit the downloaded files to -71 * @param cveDB the CVE DB to use to store the vulnerability data -72 * @param settings a reference to the global settings object; this is -73 * necessary so that when the thread is started the dependencies have a -74 * correct reference to the global settings. -75 * @throws UpdateException thrown if temporary files could not be created -76 */ -77 public DownloadTask(String url, ExecutorService processor, CveDB cveDB, Settings settings) { -78 this.url = url; -79 this.processorService = processor; -80 this.cveDB = cveDB; -81 this.settings = settings; -82 } -83 -84 @SuppressWarnings("BusyWait") -85 @Override -86 public Future<NvdApiProcessor> call() throws Exception { -87 try { -88 final URL u = new URL(url); -89 LOGGER.info("Download Started for NVD Cache - {}", url); -90 final long startDownload = System.currentTimeMillis(); -91 final Downloader d = new Downloader(settings); -92 final String content = d.fetchGzContent(u, true, Settings.KEYS.NVD_API_DATAFEED_USER, Settings.KEYS.NVD_API_DATAFEED_PASSWORD); -93 final ObjectMapper objectMapper = new ObjectMapper(); -94 objectMapper.registerModule(new JavaTimeModule()); -95 final CveApiJson20 data = objectMapper.readValue(content, CveApiJson20.class); -96 -97 if (this.processorService == null) { -98 return null; -99 } -100 final NvdApiProcessor task = new NvdApiProcessor(cveDB, data.getVulnerabilities(), startDownload); -101 final Future<NvdApiProcessor> val = this.processorService.submit(task); -102 return val; -103 } catch (Throwable ex) { -104 LOGGER.error("Error downloading NVD CVE - {} Reason: {}", url, ex.getMessage()); -105 throw ex; -106 } finally { -107 settings.cleanup(false); -108 } -109 } -110 -111 /** -112 * Returns true if the process task is for the modified json file from the -113 * NVD API Cache. -114 * -115 * @return <code>true</code> if the process task is for the modified data; -116 * otherwise <code>false</code> -117 */ -118 public boolean isModified() { -119 return StringUtils.containsIgnoreCase(url, "modified"); -120 } -121 } +20 import java.io.File; +21 import java.net.URL; +22 import java.util.concurrent.Callable; +23 import java.util.concurrent.ExecutorService; +24 import java.util.concurrent.Future; +25 import javax.annotation.concurrent.ThreadSafe; +26 import org.apache.commons.lang3.StringUtils; +27 import org.owasp.dependencycheck.data.nvdcve.CveDB; +28 import org.owasp.dependencycheck.utils.Downloader; +29 import org.owasp.dependencycheck.utils.Settings; +30 import org.slf4j.Logger; +31 import org.slf4j.LoggerFactory; +32 +33 /** +34 * A callable object to download the NVD API cache files and start the +35 * NvdApiProcessor. +36 * +37 * @author Jeremy Long +38 */ +39 @ThreadSafe +40 public class DownloadTask implements Callable<Future<NvdApiProcessor>> { +41 +42 /** +43 * The Logger. +44 */ +45 private static final Logger LOGGER = LoggerFactory.getLogger(DownloadTask.class); +46 /** +47 * The CVE DB to use when processing the files. +48 */ +49 private final CveDB cveDB; +50 /** +51 * The processor service to pass the results of the download to. +52 */ +53 private final ExecutorService processorService; +54 /** +55 * The NVD API Cache file URL. +56 */ +57 private final String url; +58 /** +59 * A reference to the global settings object. +60 */ +61 private final Settings settings; +62 +63 /** +64 * Simple constructor for the callable download task. +65 * +66 * @param url the file to download +67 * @param processor the processor service to submit the downloaded files to +68 * @param cveDB the CVE DB to use to store the vulnerability data +69 * @param settings a reference to the global settings object; this is +70 * necessary so that when the thread is started the dependencies have a +71 * correct reference to the global settings. +72 */ +73 public DownloadTask(String url, ExecutorService processor, CveDB cveDB, Settings settings) { +74 this.url = url; +75 this.processorService = processor; +76 this.cveDB = cveDB; +77 this.settings = settings; +78 } +79 +80 @SuppressWarnings("BusyWait") +81 @Override +82 public Future<NvdApiProcessor> call() throws Exception { +83 try { +84 final URL u = new URL(url); +85 LOGGER.info("Download Started for NVD Cache - {}", url); +86 final long startDownload = System.currentTimeMillis(); +87 final Downloader d = new Downloader(settings); +88 final File outputFile = settings.getTempFile("nvd-datafeed-", "json.gz"); +89 d.fetchFile(u, outputFile, true, Settings.KEYS.NVD_API_DATAFEED_USER, Settings.KEYS.NVD_API_DATAFEED_PASSWORD); +90 if (this.processorService == null) { +91 return null; +92 } +93 final NvdApiProcessor task = new NvdApiProcessor(cveDB, outputFile, startDownload); +94 final Future<NvdApiProcessor> val = this.processorService.submit(task); +95 return val; +96 } catch (Throwable ex) { +97 LOGGER.error("Error downloading NVD CVE - {} Reason: {}", url, ex.getMessage()); +98 throw ex; +99 } finally { +100 settings.cleanup(false); +101 } +102 } +103 +104 /** +105 * Returns true if the process task is for the modified json file from the +106 * NVD API Cache. +107 * +108 * @return <code>true</code> if the process task is for the modified data; +109 * otherwise <code>false</code> +110 */ +111 public boolean isModified() { +112 return StringUtils.containsIgnoreCase(url, "modified"); +113 } +114 }
    diff --git a/xref/org/owasp/dependencycheck/data/update/nvd/api/NvdApiProcessor.html b/xref/org/owasp/dependencycheck/data/update/nvd/api/NvdApiProcessor.html index b5dd157e6dc..81cab50e4c0 100644 --- a/xref/org/owasp/dependencycheck/data/update/nvd/api/NvdApiProcessor.html +++ b/xref/org/owasp/dependencycheck/data/update/nvd/api/NvdApiProcessor.html @@ -25,92 +25,126 @@ 17 */ 18 package org.owasp.dependencycheck.data.update.nvd.api; 19 -20 import io.github.jeremylong.openvulnerability.client.nvd.DefCveItem; -21 import java.util.Collection; -22 import java.util.concurrent.Callable; -23 import org.owasp.dependencycheck.data.nvd.ecosystem.CveEcosystemMapper; -24 import org.owasp.dependencycheck.data.nvdcve.CveDB; -25 import org.slf4j.Logger; -26 import org.slf4j.LoggerFactory; -27 -28 /** -29 * Stores a collection of NVD CVE Data from the NVD API into the database. -30 * -31 * @author Jeremy Long -32 */ -33 public class NvdApiProcessor implements Callable<NvdApiProcessor> { -34 -35 /** -36 * The Logger for use throughout the class. -37 */ -38 private static final Logger LOGGER = LoggerFactory.getLogger(NvdApiProcessor.class); -39 /** -40 * A reference to the database. -41 */ -42 private final CveDB cveDB; -43 /** -44 * The collection of NVD API data to add to the database. -45 */ -46 private Collection<DefCveItem> data; -47 /** -48 * Reference to the CVE Ecosystem Mapper object. -49 */ -50 private final CveEcosystemMapper mapper = new CveEcosystemMapper(); -51 /** -52 * The start time. -53 */ -54 private final long startTime; -55 /** -56 * The end time. -57 */ -58 private long endTime = 0; -59 +20 import com.fasterxml.jackson.core.type.TypeReference; +21 import com.fasterxml.jackson.databind.ObjectMapper; +22 import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; +23 import io.github.jeremylong.openvulnerability.client.nvd.CveApiJson20; +24 import io.github.jeremylong.openvulnerability.client.nvd.DefCveItem; +25 import java.io.File; +26 import java.io.FileInputStream; +27 import java.io.IOException; +28 import java.util.Collection; +29 import java.util.concurrent.Callable; +30 import java.util.zip.GZIPInputStream; +31 import org.owasp.dependencycheck.data.nvd.ecosystem.CveEcosystemMapper; +32 import org.owasp.dependencycheck.data.nvdcve.CveDB; +33 import org.owasp.dependencycheck.data.update.exception.UpdateException; +34 import org.slf4j.Logger; +35 import org.slf4j.LoggerFactory; +36 +37 /** +38 * Stores a collection of NVD CVE Data from the NVD API into the database. +39 * +40 * @author Jeremy Long +41 */ +42 public class NvdApiProcessor implements Callable<NvdApiProcessor> { +43 +44 /** +45 * The Logger for use throughout the class. +46 */ +47 private static final Logger LOGGER = LoggerFactory.getLogger(NvdApiProcessor.class); +48 /** +49 * A reference to the database. +50 */ +51 private final CveDB cveDB; +52 /** +53 * The file containing the data to inject. +54 */ +55 private File jsonFile; +56 /** +57 * Reference to the CVE Ecosystem Mapper object. +58 */ +59 private final CveEcosystemMapper mapper = new CveEcosystemMapper(); 60 /** -61 * Create a new processor to put the NVD data into the database. -62 * -63 * @param cveDB a reference to the database -64 * @param data the data to add to the database -65 * @param startTime the start time of the update process. +61 * The start time. +62 */ +63 private final long startTime; +64 /** +65 * The end time. 66 */ -67 public NvdApiProcessor(final CveDB cveDB, Collection<DefCveItem> data, long startTime) { -68 this.cveDB = cveDB; -69 this.data = data; -70 this.startTime = startTime; -71 } -72 -73 /** -74 * Create a new processor to put the NVD data into the database. -75 * -76 * @param cveDB a reference to the database -77 * @param data the data to add to the database -78 */ -79 public NvdApiProcessor(final CveDB cveDB, Collection<DefCveItem> data) { -80 this(cveDB, data, System.currentTimeMillis()); -81 } -82 -83 @Override -84 public NvdApiProcessor call() throws Exception { -85 for (DefCveItem entry : data) { -86 try { -87 cveDB.updateVulnerability(entry, mapper.getEcosystem(entry)); -88 } catch (Exception ex) { -89 LOGGER.error("Failed to process " + entry.getCve().getId(), ex); -90 } -91 } -92 endTime = System.currentTimeMillis(); -93 data = null; -94 return this; -95 } -96 -97 /** -98 * Calculates how long the update process took. -99 * -100 * @return the number of milliseconds that the update process took -101 */ -102 public long getDurationMillis() { -103 return endTime - startTime; -104 } -105 } +67 private long endTime = 0; +68 +69 /** +70 * Create a new processor to put the NVD data into the database. +71 * +72 * @param cveDB a reference to the database. +73 * @param jsonFile the JSON data file to inject. +74 * @param startTime the start time of the update process. +75 */ +76 public NvdApiProcessor(final CveDB cveDB, File jsonFile, long startTime) { +77 this.cveDB = cveDB; +78 this.jsonFile = jsonFile; +79 this.startTime = startTime; +80 } +81 +82 /** +83 * Create a new processor to put the NVD data into the database. +84 * +85 * @param cveDB a reference to the database +86 * @param jsonFile the JSON data file to inject. +87 */ +88 public NvdApiProcessor(final CveDB cveDB, File jsonFile) { +89 this(cveDB, jsonFile, System.currentTimeMillis()); +90 } +91 +92 @Override +93 public NvdApiProcessor call() throws Exception { +94 final ObjectMapper objectMapper = new ObjectMapper(); +95 objectMapper.registerModule(new JavaTimeModule()); +96 Collection<DefCveItem> data = null; +97 +98 if (jsonFile.getName().endsWith(".jsonarray.gz")) { +99 try (FileInputStream fileInputStream = new FileInputStream(jsonFile); +100 GZIPInputStream gzipInputStream = new GZIPInputStream(fileInputStream);) { +101 data = objectMapper.readValue(gzipInputStream, new TypeReference<Collection<DefCveItem>>(){}); +102 } catch (IOException exception) { +103 throw new UpdateException("Unable to read downloaded json data: " + jsonFile, exception); +104 } +105 } else if (jsonFile.getName().endsWith(".gz")) { +106 try (FileInputStream fileInputStream = new FileInputStream(jsonFile); +107 GZIPInputStream gzipInputStream = new GZIPInputStream(fileInputStream);) { +108 CveApiJson20 cveData = objectMapper.readValue(gzipInputStream, CveApiJson20.class); +109 if (cveData != null) { +110 data = cveData.getVulnerabilities(); +111 } +112 } catch (IOException exception) { +113 throw new UpdateException("Unable to read downloaded json data: " + jsonFile, exception); +114 } +115 } else { +116 data = objectMapper.readValue(jsonFile, new TypeReference<Collection<DefCveItem>>(){}); +117 } +118 if (data != null ) { +119 for (DefCveItem entry : data) { +120 try { +121 cveDB.updateVulnerability(entry, mapper.getEcosystem(entry)); +122 } catch (Exception ex) { +123 LOGGER.error("Failed to process " + entry.getCve().getId(), ex); +124 } +125 } +126 } +127 endTime = System.currentTimeMillis(); +128 return this; +129 } +130 +131 /** +132 * Calculates how long the update process took. +133 * +134 * @return the number of milliseconds that the update process took +135 */ +136 public long getDurationMillis() { +137 return endTime - startTime; +138 } +139 }
    diff --git a/xref/org/owasp/dependencycheck/data/update/nvd/api/package-frame.html b/xref/org/owasp/dependencycheck/data/update/nvd/api/package-frame.html index 6643b7e92c9..ad6e602b099 100644 --- a/xref/org/owasp/dependencycheck/data/update/nvd/api/package-frame.html +++ b/xref/org/owasp/dependencycheck/data/update/nvd/api/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.data.update.nvd.api + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.data.update.nvd.api diff --git a/xref/org/owasp/dependencycheck/data/update/nvd/api/package-summary.html b/xref/org/owasp/dependencycheck/data/update/nvd/api/package-summary.html index 10e66922522..154d68b76f3 100644 --- a/xref/org/owasp/dependencycheck/data/update/nvd/api/package-summary.html +++ b/xref/org/owasp/dependencycheck/data/update/nvd/api/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.data.update.nvd.api + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.data.update.nvd.api diff --git a/xref/org/owasp/dependencycheck/data/update/package-frame.html b/xref/org/owasp/dependencycheck/data/update/package-frame.html index b47e2c39fa8..fc92094c389 100644 --- a/xref/org/owasp/dependencycheck/data/update/package-frame.html +++ b/xref/org/owasp/dependencycheck/data/update/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.data.update + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.data.update @@ -35,6 +35,9 @@

    Classes

  • UpdateService +
  • +
  • + UrlData
  • diff --git a/xref/org/owasp/dependencycheck/data/update/package-summary.html b/xref/org/owasp/dependencycheck/data/update/package-summary.html index 05365c07d6d..d609ca308d2 100644 --- a/xref/org/owasp/dependencycheck/data/update/package-summary.html +++ b/xref/org/owasp/dependencycheck/data/update/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.data.update + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.data.update @@ -69,6 +69,11 @@

    Package org.owasp.dependencycheck.data.update

    + + +
    UpdateService
    + UrlData +
    diff --git a/xref/org/owasp/dependencycheck/dependency/naming/package-frame.html b/xref/org/owasp/dependencycheck/dependency/naming/package-frame.html index b02f9f0f19f..c62dd0e60e9 100644 --- a/xref/org/owasp/dependencycheck/dependency/naming/package-frame.html +++ b/xref/org/owasp/dependencycheck/dependency/naming/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.dependency.naming + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.dependency.naming diff --git a/xref/org/owasp/dependencycheck/dependency/naming/package-summary.html b/xref/org/owasp/dependencycheck/dependency/naming/package-summary.html index da36d98ea2e..dced05b7d2e 100644 --- a/xref/org/owasp/dependencycheck/dependency/naming/package-summary.html +++ b/xref/org/owasp/dependencycheck/dependency/naming/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.dependency.naming + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.dependency.naming diff --git a/xref/org/owasp/dependencycheck/dependency/package-frame.html b/xref/org/owasp/dependencycheck/dependency/package-frame.html index ca542146e34..cacfef54a7c 100644 --- a/xref/org/owasp/dependencycheck/dependency/package-frame.html +++ b/xref/org/owasp/dependencycheck/dependency/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.dependency + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.dependency diff --git a/xref/org/owasp/dependencycheck/dependency/package-summary.html b/xref/org/owasp/dependencycheck/dependency/package-summary.html index 82035133b63..fe0eeccfccc 100644 --- a/xref/org/owasp/dependencycheck/dependency/package-summary.html +++ b/xref/org/owasp/dependencycheck/dependency/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.dependency + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.dependency diff --git a/xref/org/owasp/dependencycheck/exception/package-frame.html b/xref/org/owasp/dependencycheck/exception/package-frame.html index 634c633e210..ec138d17b9a 100644 --- a/xref/org/owasp/dependencycheck/exception/package-frame.html +++ b/xref/org/owasp/dependencycheck/exception/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.exception + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.exception diff --git a/xref/org/owasp/dependencycheck/exception/package-summary.html b/xref/org/owasp/dependencycheck/exception/package-summary.html index d94ebbbc058..7c37910024b 100644 --- a/xref/org/owasp/dependencycheck/exception/package-summary.html +++ b/xref/org/owasp/dependencycheck/exception/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.exception + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.exception diff --git a/xref/org/owasp/dependencycheck/maven/BaseDependencyCheckMojo.html b/xref/org/owasp/dependencycheck/maven/BaseDependencyCheckMojo.html index 66a6509d8b3..3e5dce77d82 100644 --- a/xref/org/owasp/dependencycheck/maven/BaseDependencyCheckMojo.html +++ b/xref/org/owasp/dependencycheck/maven/BaseDependencyCheckMojo.html @@ -85,2880 +85,2889 @@ 77 import java.io.FileNotFoundException; 78 import java.io.IOException; 79 import java.io.InputStream; -80 import java.lang.reflect.Field; -81 import java.util.ArrayList; -82 import java.util.Arrays; -83 import java.util.Collections; -84 import java.util.HashSet; -85 import java.util.List; -86 import java.util.Locale; -87 import java.util.Map; -88 import java.util.Objects; -89 import java.util.Optional; -90 import java.util.Set; -91 import org.apache.maven.artifact.repository.ArtifactRepository; -92 -93 import org.apache.maven.artifact.resolver.filter.ExcludesArtifactFilter; -94 import org.apache.maven.artifact.versioning.InvalidVersionSpecificationException; -95 import org.apache.maven.artifact.versioning.Restriction; -96 import org.apache.maven.artifact.versioning.VersionRange; -97 -98 import org.owasp.dependencycheck.agent.DependencyCheckScanAgent; -99 import org.owasp.dependencycheck.dependency.naming.GenericIdentifier; -100 import org.owasp.dependencycheck.dependency.naming.Identifier; -101 import org.owasp.dependencycheck.dependency.naming.PurlIdentifier; -102 import org.apache.maven.shared.dependency.graph.traversal.DependencyNodeVisitor; -103 import org.apache.maven.shared.dependency.graph.traversal.FilteringDependencyNodeVisitor; -104 import org.apache.maven.shared.transfer.dependencies.DefaultDependableCoordinate; -105 import org.apache.maven.shared.transfer.dependencies.DependableCoordinate; -106 import org.owasp.dependencycheck.analyzer.exception.AnalysisException; -107 import org.owasp.dependencycheck.reporting.ReportGenerator; -108 import org.owasp.dependencycheck.utils.SeverityUtil; -109 import org.owasp.dependencycheck.xml.pom.Model; -110 import org.owasp.dependencycheck.xml.pom.PomUtils; -111 import org.slf4j.Logger; -112 import org.slf4j.LoggerFactory; -113 import org.slf4j.spi.LocationAwareLogger; -114 -115 //CSOFF: FileLength -116 /** -117 * @author Jeremy Long -118 */ -119 public abstract class BaseDependencyCheckMojo extends AbstractMojo implements MavenReport { -120 -121 //<editor-fold defaultstate="collapsed" desc="Private fields"> +80 import java.util.ArrayList; +81 import java.util.Arrays; +82 import java.util.Collections; +83 import java.util.HashSet; +84 import java.util.List; +85 import java.util.Locale; +86 import java.util.Map; +87 import java.util.Objects; +88 import java.util.Optional; +89 import java.util.Set; +90 import org.apache.maven.artifact.repository.ArtifactRepository; +91 +92 import org.apache.maven.artifact.resolver.filter.ExcludesArtifactFilter; +93 import org.apache.maven.artifact.versioning.InvalidVersionSpecificationException; +94 import org.apache.maven.artifact.versioning.Restriction; +95 import org.apache.maven.artifact.versioning.VersionRange; +96 +97 import org.owasp.dependencycheck.agent.DependencyCheckScanAgent; +98 import org.owasp.dependencycheck.dependency.naming.GenericIdentifier; +99 import org.owasp.dependencycheck.dependency.naming.Identifier; +100 import org.owasp.dependencycheck.dependency.naming.PurlIdentifier; +101 import org.apache.maven.shared.dependency.graph.traversal.DependencyNodeVisitor; +102 import org.apache.maven.shared.dependency.graph.traversal.FilteringDependencyNodeVisitor; +103 import org.apache.maven.shared.transfer.dependencies.DefaultDependableCoordinate; +104 import org.apache.maven.shared.transfer.dependencies.DependableCoordinate; +105 import org.owasp.dependencycheck.analyzer.exception.AnalysisException; +106 import org.owasp.dependencycheck.reporting.ReportGenerator; +107 import org.owasp.dependencycheck.utils.SeverityUtil; +108 import org.owasp.dependencycheck.xml.pom.Model; +109 import org.owasp.dependencycheck.xml.pom.PomUtils; +110 +111 //CSOFF: FileLength +112 /** +113 * @author Jeremy Long +114 */ +115 public abstract class BaseDependencyCheckMojo extends AbstractMojo implements MavenReport { +116 +117 //<editor-fold defaultstate="collapsed" desc="Private fields"> +118 /** +119 * The properties file location. +120 */ +121 private static final String PROPERTIES_FILE = "mojo.properties"; 122 /** -123 * The properties file location. +123 * System specific new line character. 124 */ -125 private static final String PROPERTIES_FILE = "mojo.properties"; +125 private static final String NEW_LINE = System.getProperty("line.separator", "\n").intern(); 126 /** -127 * System specific new line character. +127 * Pattern to include all files in a FileSet. 128 */ -129 private static final String NEW_LINE = System.getProperty("line.separator", "\n").intern(); +129 private static final String INCLUDE_ALL = "**/*"; 130 /** -131 * Pattern to include all files in a FileSet. +131 * A flag indicating whether or not the Maven site is being generated. 132 */ -133 private static final String INCLUDE_ALL = "**/*"; +133 private boolean generatingSite = false; 134 /** -135 * A flag indicating whether or not the Maven site is being generated. +135 * The configured settings. 136 */ -137 private boolean generatingSite = false; +137 private Settings settings = null; 138 /** -139 * The configured settings. +139 * The list of files that have been scanned. 140 */ -141 private Settings settings = null; -142 /** -143 * The list of files that have been scanned. -144 */ -145 private final List<File> scannedFiles = new ArrayList<>(); -146 //</editor-fold> -147 // <editor-fold defaultstate="collapsed" desc="Maven bound parameters and components"> -148 /** -149 * Sets whether or not the mojo should fail if an error occurs. -150 */ -151 @SuppressWarnings("CanBeFinal") -152 @Parameter(property = "failOnError", defaultValue = "true", required = true) -153 private boolean failOnError; -154 -155 /** -156 * The Maven Project Object. -157 */ -158 @SuppressWarnings("CanBeFinal") -159 @Parameter(property = "project", required = true, readonly = true) -160 private MavenProject project; -161 /** -162 * List of Maven project of the current build -163 */ -164 @SuppressWarnings("CanBeFinal") -165 @Parameter(readonly = true, required = true, property = "reactorProjects") -166 private List<MavenProject> reactorProjects; -167 /** -168 * The entry point towards a Maven version independent way of resolving -169 * artifacts (handles both Maven 3.0 Sonatype and Maven 3.1+ eclipse Aether -170 * implementations). -171 */ -172 @SuppressWarnings("CanBeFinal") -173 @Component -174 private ArtifactResolver artifactResolver; -175 /** -176 * The entry point towards a Maven version independent way of resolving -177 * dependencies (handles both Maven 3.0 Sonatype and Maven 3.1+ eclipse -178 * Aether implementations). Contrary to the ArtifactResolver this resolver -179 * also takes into account the additional repositories defined in the -180 * dependency-path towards transitive dependencies. -181 */ -182 @SuppressWarnings("CanBeFinal") -183 @Component -184 private DependencyResolver dependencyResolver; -185 -186 /** -187 * The Maven Session. -188 */ -189 @SuppressWarnings("CanBeFinal") -190 @Parameter(defaultValue = "${session}", readonly = true, required = true) -191 private MavenSession session; -192 -193 /** -194 * Component within Maven to build the dependency graph. -195 */ -196 @Component -197 private DependencyGraphBuilder dependencyGraphBuilder; -198 -199 /** -200 * The output directory. This generally maps to "target". -201 */ -202 @SuppressWarnings("CanBeFinal") -203 @Parameter(defaultValue = "${project.build.directory}", required = true, property = "odc.outputDirectory") -204 private File outputDirectory; -205 /** -206 * This is a reference to the &gt;reporting&lt; sections -207 * <code>outputDirectory</code>. This cannot be configured in the -208 * dependency-check mojo directly. This generally maps to "target/site". -209 */ -210 @Parameter(property = "project.reporting.outputDirectory", readonly = true) -211 private File reportOutputDirectory; -212 /** -213 * Specifies if the build should be failed if a CVSS score above a specified -214 * level is identified. The default is 11 which means since the CVSS scores -215 * are 0-10, by default the build will never fail. -216 */ -217 @SuppressWarnings("CanBeFinal") -218 @Parameter(property = "failBuildOnCVSS", defaultValue = "11", required = true) -219 private float failBuildOnCVSS = 11f; -220 /** -221 * Specifies the CVSS score that is considered a "test" failure when -222 * generating a jUnit style report. The default value is 0 - all -223 * vulnerabilities are considered a failure. -224 */ -225 @SuppressWarnings("CanBeFinal") -226 @Parameter(property = "junitFailOnCVSS", defaultValue = "0", required = true) -227 private float junitFailOnCVSS = 0; -228 /** -229 * Fail the build if any dependency has a vulnerability listed. -230 * -231 * @deprecated use {@link BaseDependencyCheckMojo#failBuildOnCVSS} with a -232 * value of 0 instead -233 */ -234 @SuppressWarnings("CanBeFinal") -235 @Parameter(property = "failBuildOnAnyVulnerability", defaultValue = "false", required = true) -236 @Deprecated -237 private boolean failBuildOnAnyVulnerability = false; -238 /** -239 * Sets whether auto-updating of the NVD CVE data is enabled. It is not -240 * recommended that this be turned to false. Default is true. -241 */ -242 @SuppressWarnings("CanBeFinal") -243 @Parameter(property = "autoUpdate") -244 private Boolean autoUpdate; -245 /** -246 * Sets whether Experimental analyzers are enabled. Default is false. -247 */ -248 @SuppressWarnings("CanBeFinal") -249 @Parameter(property = "enableExperimental") -250 private Boolean enableExperimental; -251 /** -252 * Sets whether retired analyzers are enabled. Default is false. -253 */ -254 @SuppressWarnings("CanBeFinal") -255 @Parameter(property = "enableRetired") -256 private Boolean enableRetired; -257 /** -258 * Sets whether the Golang Dependency analyzer is enabled. Default is true. -259 */ -260 @SuppressWarnings("CanBeFinal") -261 @Parameter(property = "golangDepEnabled") -262 private Boolean golangDepEnabled; -263 /** -264 * Sets whether Golang Module Analyzer is enabled; this requires `go` to be -265 * installed. Default is true. -266 */ -267 @SuppressWarnings("CanBeFinal") -268 @Parameter(property = "golangModEnabled") -269 private Boolean golangModEnabled; -270 /** -271 * Sets the path to `go`. -272 */ -273 @SuppressWarnings("CanBeFinal") -274 @Parameter(property = "pathToGo") -275 private String pathToGo; -276 -277 /** -278 * Sets the path to `yarn`. -279 */ -280 @SuppressWarnings("CanBeFinal") -281 @Parameter(property = "pathToYarn") -282 private String pathToYarn; -283 /** -284 * Sets the path to `pnpm`. -285 */ -286 @SuppressWarnings("CanBeFinal") -287 @Parameter(property = "pathToPnpm") -288 private String pathToPnpm; -289 /** -290 * Use pom dependency information for snapshot dependencies that are part of -291 * the Maven reactor while aggregate scanning a multi-module project. -292 */ -293 @Parameter(property = "dependency-check.virtualSnapshotsFromReactor", defaultValue = "true") -294 private Boolean virtualSnapshotsFromReactor; -295 /** -296 * The report format to be generated (HTML, XML, CSV, JSON, JUNIT, SARIF, -297 * JENKINS, GITLAB, ALL). Multiple formats can be selected using a comma -298 * delineated list. -299 */ -300 @SuppressWarnings("CanBeFinal") -301 @Parameter(property = "format", defaultValue = "HTML", required = true) -302 private String format = "HTML"; -303 -304 /** -305 * Whether or not the XML and JSON report formats should be pretty printed. -306 * The default is false. -307 */ -308 @Parameter(property = "prettyPrint") -309 private Boolean prettyPrint; -310 /** -311 * The report format to be generated (HTML, XML, CSV, JSON, JUNIT, SARIF, -312 * JENKINS, GITLAB, ALL). Multiple formats can be selected using a comma -313 * delineated list. -314 */ -315 @Parameter(property = "formats", required = true) -316 private String[] formats; -317 /** -318 * The Maven settings. -319 */ -320 @SuppressWarnings("CanBeFinal") -321 @Parameter(property = "mavenSettings", defaultValue = "${settings}") -322 private org.apache.maven.settings.Settings mavenSettings; -323 -324 /** -325 * The maven settings proxy id. -326 */ -327 @SuppressWarnings("CanBeFinal") -328 @Parameter(property = "mavenSettingsProxyId") -329 private String mavenSettingsProxyId; -330 -331 /** -332 * The Connection Timeout. -333 */ -334 @SuppressWarnings("CanBeFinal") -335 @Parameter(property = "connectionTimeout") -336 private String connectionTimeout; -337 /** -338 * The Read Timeout. -339 */ -340 @SuppressWarnings("CanBeFinal") -341 @Parameter(property = "readTimeout") -342 private String readTimeout; -343 /** -344 * Sets whether dependency-check should check if there is a new version -345 * available. -346 */ -347 @SuppressWarnings("CanBeFinal") -348 @Parameter(property = "versionCheckEnabled", defaultValue = "true") -349 private boolean versionCheckEnabled; -350 /** -351 * The paths to the suppression files. The parameter value can be a local -352 * file path, a URL to a suppression file, or even a reference to a file on -353 * the class path (see -354 * https://github.com/jeremylong/DependencyCheck/issues/1878#issuecomment-487533799) -355 */ -356 @SuppressWarnings("CanBeFinal") -357 @Parameter(property = "suppressionFiles") -358 private String[] suppressionFiles; -359 /** -360 * The paths to the suppression file. The parameter value can be a local -361 * file path, a URL to a suppression file, or even a reference to a file on -362 * the class path (see -363 * https://github.com/jeremylong/DependencyCheck/issues/1878#issuecomment-487533799) -364 */ -365 @SuppressWarnings("CanBeFinal") -366 @Parameter(property = "suppressionFile") -367 private String suppressionFile; -368 /** -369 * The username used when connecting to the suppressionFiles. -370 */ -371 @Parameter(property = "suppressionFileUser") -372 private String suppressionFileUser; -373 /** -374 * The password used when connecting to the suppressionFiles. -375 */ -376 @Parameter(property = "suppressionFilePassword") -377 private String suppressionFilePassword; -378 /** -379 * The server id in the settings.xml; used to retrieve encrypted passwords -380 * from the settings.xml for suppressionFile(s). -381 */ -382 @SuppressWarnings("CanBeFinal") -383 @Parameter(property = "suppressionFileServerId") -384 private String suppressionFileServerId; -385 /** -386 * The path to the hints file. -387 */ -388 @SuppressWarnings("CanBeFinal") -389 @Parameter(property = "hintsFile") -390 private String hintsFile; -391 -392 /** -393 * Flag indicating whether or not to show a summary in the output. -394 */ -395 @SuppressWarnings("CanBeFinal") -396 @Parameter(property = "showSummary", defaultValue = "true") -397 private boolean showSummary = true; -398 -399 /** -400 * Whether or not the Jar Analyzer is enabled. -401 */ -402 @SuppressWarnings("CanBeFinal") -403 @Parameter(property = "jarAnalyzerEnabled") -404 private Boolean jarAnalyzerEnabled; -405 -406 /** -407 * Sets whether the Dart analyzer is enabled. Default is true. -408 */ -409 @SuppressWarnings("CanBeFinal") -410 @Parameter(property = "dartAnalyzerEnabled") -411 private Boolean dartAnalyzerEnabled; -412 -413 /** -414 * Whether or not the Archive Analyzer is enabled. -415 */ -416 @SuppressWarnings("CanBeFinal") -417 @Parameter(property = "archiveAnalyzerEnabled") -418 private Boolean archiveAnalyzerEnabled; -419 /** -420 * Whether or not the Known Exploited Vulnerability Analyzer is enabled. -421 */ -422 @SuppressWarnings("CanBeFinal") -423 @Parameter(property = "knownExploitedEnabled") -424 private Boolean knownExploitedEnabled; -425 /** -426 * The URL to the CISA Known Exploited Vulnerabilities JSON datafeed. -427 */ -428 @SuppressWarnings("CanBeFinal") -429 @Parameter(property = "knownExploitedUrl") -430 private String knownExploitedUrl; -431 /** -432 * Sets whether the Python Distribution Analyzer will be used. -433 */ -434 @SuppressWarnings("CanBeFinal") -435 @Parameter(property = "pyDistributionAnalyzerEnabled") -436 private Boolean pyDistributionAnalyzerEnabled; -437 /** -438 * Sets whether the Python Package Analyzer will be used. -439 */ -440 @Parameter(property = "pyPackageAnalyzerEnabled") -441 private Boolean pyPackageAnalyzerEnabled; -442 /** -443 * Sets whether the Ruby Gemspec Analyzer will be used. -444 */ -445 @SuppressWarnings("CanBeFinal") -446 @Parameter(property = "rubygemsAnalyzerEnabled") -447 private Boolean rubygemsAnalyzerEnabled; -448 /** -449 * Sets whether or not the openssl Analyzer should be used. -450 */ -451 @SuppressWarnings("CanBeFinal") -452 @Parameter(property = "opensslAnalyzerEnabled") -453 private Boolean opensslAnalyzerEnabled; -454 /** -455 * Sets whether or not the CMake Analyzer should be used. -456 */ -457 @SuppressWarnings("CanBeFinal") -458 @Parameter(property = "cmakeAnalyzerEnabled") -459 private Boolean cmakeAnalyzerEnabled; -460 /** -461 * Sets whether or not the autoconf Analyzer should be used. -462 */ -463 @SuppressWarnings("CanBeFinal") -464 @Parameter(property = "autoconfAnalyzerEnabled") -465 private Boolean autoconfAnalyzerEnabled; -466 /** -467 * Sets whether or not the Maven install Analyzer should be used. -468 */ -469 @SuppressWarnings("CanBeFinal") -470 @Parameter(property = "mavenInstallAnalyzerEnabled") -471 private Boolean mavenInstallAnalyzerEnabled; -472 /** -473 * Sets whether or not the pip Analyzer should be used. -474 */ -475 @SuppressWarnings("CanBeFinal") -476 @Parameter(property = "pipAnalyzerEnabled") -477 private Boolean pipAnalyzerEnabled; -478 /** -479 * Sets whether or not the pipfile Analyzer should be used. -480 */ -481 @SuppressWarnings("CanBeFinal") -482 @Parameter(property = "pipfileAnalyzerEnabled") -483 private Boolean pipfileAnalyzerEnabled; -484 /** -485 * Sets whether or not the poetry Analyzer should be used. -486 */ -487 @SuppressWarnings("CanBeFinal") -488 @Parameter(property = "poetryAnalyzerEnabled") -489 private Boolean poetryAnalyzerEnabled; -490 /** -491 * Sets whether or not the PHP Composer Lock File Analyzer should be used. -492 */ -493 @Parameter(property = "composerAnalyzerEnabled") -494 private Boolean composerAnalyzerEnabled; -495 /** -496 * Whether or not the Perl CPAN File Analyzer is enabled. -497 */ -498 @Parameter(property = "cpanfileAnalyzerEnabled") -499 private Boolean cpanfileAnalyzerEnabled; -500 /** -501 * Sets whether or not the Node.js Analyzer should be used. -502 */ -503 @SuppressWarnings("CanBeFinal") -504 @Parameter(property = "nodeAnalyzerEnabled") -505 private Boolean nodeAnalyzerEnabled; -506 /** -507 * Sets whether or not the Node Audit Analyzer should be used. -508 */ -509 @SuppressWarnings("CanBeFinal") -510 @Parameter(property = "nodeAuditAnalyzerEnabled") -511 private Boolean nodeAuditAnalyzerEnabled; -512 -513 /** -514 * The Node Audit API URL for the Node Audit Analyzer. -515 */ -516 @SuppressWarnings("CanBeFinal") -517 @Parameter(property = "nodeAuditAnalyzerUrl") -518 private String nodeAuditAnalyzerUrl; -519 -520 /** -521 * Sets whether or not the Yarn Audit Analyzer should be used. -522 */ -523 @SuppressWarnings("CanBeFinal") -524 @Parameter(property = "yarnAuditAnalyzerEnabled") -525 private Boolean yarnAuditAnalyzerEnabled; -526 -527 /** -528 * Sets whether or not the Pnpm Audit Analyzer should be used. -529 */ -530 @SuppressWarnings("CanBeFinal") -531 @Parameter(property = "pnpmAuditAnalyzerEnabled") -532 private Boolean pnpmAuditAnalyzerEnabled; -533 -534 /** -535 * Sets whether or not the Node Audit Analyzer should use a local cache. -536 */ -537 @SuppressWarnings("CanBeFinal") -538 @Parameter(property = "nodeAuditAnalyzerUseCache") -539 private Boolean nodeAuditAnalyzerUseCache; -540 /** -541 * Sets whether or not the Node Audit Analyzer should skip devDependencies. -542 */ -543 @SuppressWarnings("CanBeFinal") -544 @Parameter(property = "nodeAuditSkipDevDependencies") -545 private Boolean nodeAuditSkipDevDependencies; -546 /** -547 * Sets whether or not the Node.js Analyzer should skip devDependencies. -548 */ -549 @SuppressWarnings("CanBeFinal") -550 @Parameter(property = "nodePackageSkipDevDependencies") -551 private Boolean nodePackageSkipDevDependencies; -552 /** -553 * Sets whether or not the Retirejs Analyzer should be used. -554 */ -555 @SuppressWarnings("CanBeFinal") -556 @Parameter(property = "retireJsAnalyzerEnabled") -557 private Boolean retireJsAnalyzerEnabled; -558 /** -559 * The Retire JS repository URL. -560 */ -561 @SuppressWarnings("CanBeFinal") -562 @Parameter(property = "retireJsUrl") -563 private String retireJsUrl; -564 /** -565 * The username to use when connecting to the CVE-URL. -566 */ -567 @Parameter(property = "retireJsUser") -568 private String retireJsUser; -569 /** -570 * The password to authenticate to the CVE-URL. -571 */ -572 @Parameter(property = "retireJsPassword") -573 private String retireJsPassword; -574 /** -575 * The server id in the settings.xml; used to retrieve encrypted passwords -576 * from the settings.xml for cve-URLs. -577 */ -578 @SuppressWarnings("CanBeFinal") -579 @Parameter(property = "retireJsUrlServerId") -580 private String retireJsUrlServerId; -581 /** -582 * Whether the Retire JS repository will be updated regardless of the -583 * `autoupdate` settings. -584 */ -585 @SuppressWarnings("CanBeFinal") -586 @Parameter(property = "retireJsForceUpdate") -587 private Boolean retireJsForceUpdate; -588 /** -589 * Whether or not the .NET Assembly Analyzer is enabled. -590 */ -591 @Parameter(property = "assemblyAnalyzerEnabled") -592 private Boolean assemblyAnalyzerEnabled; -593 /** -594 * Whether or not the MS Build Analyzer is enabled. -595 */ -596 @Parameter(property = "msbuildAnalyzerEnabled") -597 private Boolean msbuildAnalyzerEnabled; -598 /** -599 * Whether or not the .NET Nuspec Analyzer is enabled. -600 */ -601 @SuppressWarnings("CanBeFinal") -602 @Parameter(property = "nuspecAnalyzerEnabled") -603 private Boolean nuspecAnalyzerEnabled; -604 -605 /** -606 * Whether or not the .NET packages.config Analyzer is enabled. -607 */ -608 @SuppressWarnings("CanBeFinal") -609 @Parameter(property = "nugetconfAnalyzerEnabled") -610 private Boolean nugetconfAnalyzerEnabled; -611 -612 /** -613 * Whether or not the Libman Analyzer is enabled. -614 */ -615 @SuppressWarnings("CanBeFinal") -616 @Parameter(property = "libmanAnalyzerEnabled") -617 private Boolean libmanAnalyzerEnabled; -618 -619 /** -620 * Whether or not the Central Analyzer is enabled. -621 */ -622 @SuppressWarnings("CanBeFinal") -623 @Parameter(property = "centralAnalyzerEnabled") -624 private Boolean centralAnalyzerEnabled; -625 -626 /** -627 * Whether or not the Central Analyzer should use a local cache. -628 */ -629 @SuppressWarnings("CanBeFinal") -630 @Parameter(property = "centralAnalyzerUseCache") -631 private Boolean centralAnalyzerUseCache; -632 -633 /** -634 * Whether or not the Artifactory Analyzer is enabled. -635 */ -636 @SuppressWarnings("CanBeFinal") -637 @Parameter(property = "artifactoryAnalyzerEnabled") -638 private Boolean artifactoryAnalyzerEnabled; -639 /** -640 * The serverId inside the settings.xml containing the username and token to -641 * access artifactory -642 */ -643 @SuppressWarnings("CanBeFinal") -644 @Parameter(property = "artifactoryAnalyzerServerId") -645 private String artifactoryAnalyzerServerId; -646 /** -647 * The username (only used with API token) to connect to Artifactory -648 * instance -649 */ -650 @SuppressWarnings("CanBeFinal") -651 @Parameter(property = "artifactoryAnalyzerUsername") -652 private String artifactoryAnalyzerUsername; -653 /** -654 * The API token to connect to Artifactory instance -655 */ -656 @SuppressWarnings("CanBeFinal") -657 @Parameter(property = "artifactoryAnalyzerApiToken") -658 private String artifactoryAnalyzerApiToken; -659 /** -660 * The bearer token to connect to Artifactory instance -661 */ -662 @SuppressWarnings("CanBeFinal") -663 @Parameter(property = "artifactoryAnalyzerBearerToken") -664 private String artifactoryAnalyzerBearerToken; -665 /** -666 * The Artifactory URL for the Artifactory analyzer. -667 */ -668 @SuppressWarnings("CanBeFinal") -669 @Parameter(property = "artifactoryAnalyzerUrl") -670 private String artifactoryAnalyzerUrl; -671 /** -672 * Whether Artifactory should be accessed through a proxy or not -673 */ -674 @SuppressWarnings("CanBeFinal") -675 @Parameter(property = "artifactoryAnalyzerUseProxy") -676 private Boolean artifactoryAnalyzerUseProxy; -677 /** -678 * Whether the Artifactory analyzer should be run in parallel or not. -679 */ -680 @SuppressWarnings("CanBeFinal") -681 @Parameter(property = "artifactoryAnalyzerParallelAnalysis", defaultValue = "true") -682 private Boolean artifactoryAnalyzerParallelAnalysis; -683 /** -684 * Whether or not the Nexus Analyzer is enabled. -685 */ -686 @SuppressWarnings("CanBeFinal") -687 @Parameter(property = "nexusAnalyzerEnabled") -688 private Boolean nexusAnalyzerEnabled; -689 -690 /** -691 * Whether or not the Sonatype OSS Index analyzer is enabled. -692 */ -693 @SuppressWarnings("CanBeFinal") -694 @Parameter(property = "ossindexAnalyzerEnabled") -695 private Boolean ossindexAnalyzerEnabled; -696 /** -697 * Whether or not the Sonatype OSS Index analyzer should cache results. -698 */ -699 @SuppressWarnings("CanBeFinal") -700 @Parameter(property = "ossindexAnalyzerUseCache") -701 private Boolean ossindexAnalyzerUseCache; -702 /** -703 * URL of the Sonatype OSS Index service. -704 */ -705 @SuppressWarnings("CanBeFinal") -706 @Parameter(property = "ossindexAnalyzerUrl") -707 private String ossindexAnalyzerUrl; -708 -709 /** -710 * The id of a server defined in the settings.xml that configures the -711 * credentials (username and password) for a OSS Index service. -712 */ -713 @SuppressWarnings("CanBeFinal") -714 @Parameter(property = "ossIndexServerId") -715 private String ossIndexServerId; -716 -717 /** -718 * Whether we should only warn about Sonatype OSS Index remote errors -719 * instead of failing the goal completely. -720 */ -721 @SuppressWarnings("CanBeFinal") -722 @Parameter(property = "ossIndexWarnOnlyOnRemoteErrors") -723 private Boolean ossIndexWarnOnlyOnRemoteErrors; -724 -725 /** -726 * Whether or not the Elixir Mix Audit Analyzer is enabled. -727 */ -728 @Parameter(property = "mixAuditAnalyzerEnabled") -729 private Boolean mixAuditAnalyzerEnabled; -730 -731 /** -732 * Sets the path for the mix_audit binary. -733 */ -734 @SuppressWarnings("CanBeFinal") -735 @Parameter(property = "mixAuditPath") -736 private String mixAuditPath; -737 -738 /** -739 * Whether or not the Ruby Bundle Audit Analyzer is enabled. -740 */ -741 @Parameter(property = "bundleAuditAnalyzerEnabled") -742 private Boolean bundleAuditAnalyzerEnabled; -743 -744 /** -745 * Sets the path for the bundle-audit binary. -746 */ -747 @SuppressWarnings("CanBeFinal") -748 @Parameter(property = "bundleAuditPath") -749 private String bundleAuditPath; -750 -751 /** -752 * Sets the path for the working directory that the bundle-audit binary -753 * should be executed from. -754 */ -755 @SuppressWarnings("CanBeFinal") -756 @Parameter(property = "bundleAuditWorkingDirectory") -757 private String bundleAuditWorkingDirectory; -758 -759 /** -760 * Whether or not the CocoaPods Analyzer is enabled. -761 */ -762 @SuppressWarnings("CanBeFinal") -763 @Parameter(property = "cocoapodsAnalyzerEnabled") -764 private Boolean cocoapodsAnalyzerEnabled; -765 -766 /** -767 * Whether or not the Swift package Analyzer is enabled. -768 */ -769 @SuppressWarnings("CanBeFinal") -770 @Parameter(property = "swiftPackageManagerAnalyzerEnabled") -771 private Boolean swiftPackageManagerAnalyzerEnabled; -772 /** -773 * Whether or not the Swift package resolved Analyzer is enabled. -774 */ -775 @SuppressWarnings("CanBeFinal") -776 @Parameter(property = "swiftPackageResolvedAnalyzerEnabled") -777 private Boolean swiftPackageResolvedAnalyzerEnabled; -778 /** -779 * The URL of a Nexus server's REST API end point -780 * (http://domain/nexus/service/local). -781 */ -782 @SuppressWarnings("CanBeFinal") -783 @Parameter(property = "nexusUrl") -784 private String nexusUrl; -785 /** -786 * The id of a server defined in the settings.xml that configures the -787 * credentials (username and password) for a Nexus server's REST API end -788 * point. When not specified the communication with the Nexus server's REST -789 * API will be unauthenticated. -790 */ -791 @SuppressWarnings("CanBeFinal") -792 @Parameter(property = "nexusServerId") -793 private String nexusServerId; -794 /** -795 * Whether or not the configured proxy is used to connect to Nexus. -796 */ -797 @SuppressWarnings("CanBeFinal") -798 @Parameter(property = "nexusUsesProxy") -799 private Boolean nexusUsesProxy; -800 /** -801 * The database connection string. -802 */ -803 @SuppressWarnings("CanBeFinal") -804 @Parameter(property = "connectionString") -805 private String connectionString; -806 -807 /** -808 * The database driver name. An example would be org.h2.Driver. -809 */ -810 @SuppressWarnings("CanBeFinal") -811 @Parameter(property = "databaseDriverName") -812 private String databaseDriverName; -813 /** -814 * The path to the database driver if it is not on the class path. -815 */ -816 @SuppressWarnings("CanBeFinal") -817 @Parameter(property = "databaseDriverPath") -818 private String databaseDriverPath; -819 /** -820 * A reference to the settings.xml settings. -821 */ -822 @SuppressWarnings("CanBeFinal") -823 @Parameter(defaultValue = "${settings}", readonly = true, required = true) -824 private org.apache.maven.settings.Settings settingsXml; -825 /** -826 * The security dispatcher that can decrypt passwords in the settings.xml. -827 */ -828 @Component(role = SecDispatcher.class, hint = "default") -829 private SecDispatcher securityDispatcher; -830 /** -831 * The database user name. -832 */ -833 @Parameter(property = "databaseUser") -834 private String databaseUser; -835 /** -836 * The password to use when connecting to the database. -837 */ -838 @Parameter(property = "databasePassword") -839 private String databasePassword; -840 /** -841 * A comma-separated list of file extensions to add to analysis next to jar, -842 * zip, .... -843 */ -844 @SuppressWarnings("CanBeFinal") -845 @Parameter(property = "zipExtensions") -846 private String zipExtensions; -847 /** -848 * Skip Dependency Check altogether. -849 */ -850 @SuppressWarnings("CanBeFinal") -851 @Parameter(property = "dependency-check.skip", defaultValue = "false") -852 private boolean skip = false; -853 /** -854 * Skip Analysis for Test Scope Dependencies. -855 */ -856 @SuppressWarnings("CanBeFinal") -857 @Parameter(property = "skipTestScope", defaultValue = "true") -858 private boolean skipTestScope = true; -859 /** -860 * Skip Analysis for Runtime Scope Dependencies. -861 */ -862 @SuppressWarnings("CanBeFinal") -863 @Parameter(property = "skipRuntimeScope", defaultValue = "false") -864 private boolean skipRuntimeScope = false; -865 /** -866 * Skip Analysis for Provided Scope Dependencies. -867 */ -868 @SuppressWarnings("CanBeFinal") -869 @Parameter(property = "skipProvidedScope", defaultValue = "false") -870 private boolean skipProvidedScope = false; -871 -872 /** -873 * Skip Analysis for System Scope Dependencies. -874 */ -875 @SuppressWarnings("CanBeFinal") -876 @Parameter(property = "skipSystemScope", defaultValue = "false") -877 private boolean skipSystemScope = false; -878 -879 /** -880 * Skip Analysis for dependencyManagement section. -881 */ -882 @SuppressWarnings("CanBeFinal") -883 @Parameter(property = "skipDependencyManagement", defaultValue = "true") -884 private boolean skipDependencyManagement = true; -885 -886 /** -887 * Skip analysis for dependencies which type matches this regular -888 * expression. This filters on the `type` of dependency as defined in the -889 * dependency section: jar, pom, test-jar, etc. -890 */ -891 @SuppressWarnings("CanBeFinal") -892 @Parameter(property = "skipArtifactType") -893 private String skipArtifactType; -894 -895 /** -896 * The data directory, hold DC SQL DB. -897 */ -898 @SuppressWarnings("CanBeFinal") -899 @Parameter(property = "dataDirectory") -900 private String dataDirectory; -901 -902 /** -903 * The name of the DC DB. -904 */ -905 @SuppressWarnings("CanBeFinal") -906 @Parameter(property = "dbFilename") -907 private String dbFilename; -908 /** -909 * The server id in the settings.xml; used to retrieve encrypted passwords -910 * from the settings.xml. This is used for the database username and -911 * password. -912 */ -913 @SuppressWarnings("CanBeFinal") -914 @Parameter(property = "serverId") -915 private String serverId; -916 /** -917 * The NVD API Key. -918 */ -919 @SuppressWarnings("CanBeFinal") -920 @Parameter(property = "nvdApiKey") -921 private String nvdApiKey; -922 /** -923 * The maximum number of retry requests for a single call to the NVD API. -924 */ -925 @SuppressWarnings("CanBeFinal") -926 @Parameter(property = "nvdMaxRetryCount") -927 private Integer nvdMaxRetryCount; -928 /** -929 * The server id in the settings.xml; used to retrieve encrypted API Key -930 * from the settings.xml for the NVD API Key. Note that the password is used -931 * as the API Key -932 */ -933 @SuppressWarnings("CanBeFinal") -934 @Parameter(property = "nvdApiServerId") -935 private String nvdApiServerId; -936 -937 /** -938 * The number of hours to wait before checking for new updates from the NVD. -939 */ -940 @SuppressWarnings("CanBeFinal") -941 @Parameter(property = "nvdValidForHours") -942 private Integer nvdValidForHours; -943 -944 /** -945 * The NVD API Data Feed URL. -946 */ -947 @SuppressWarnings("CanBeFinal") -948 @Parameter(property = "nvdDatafeedUrl") -949 private String nvdDatafeedUrl; -950 -951 /** -952 * The server id in the settings.xml; used to retrieve encrypted passwords -953 * from the settings.xml for the NVD Data Feed. -954 */ -955 @SuppressWarnings("CanBeFinal") -956 @Parameter(property = "nvdDatafeedServerId") -957 private String nvdDatafeedServerId; -958 /** -959 * The username for basic auth to the NVD Data Feed. -960 */ -961 @SuppressWarnings("CanBeFinal") -962 @Parameter(property = "nvdUser") -963 private String nvdUser; -964 /** -965 * The password for basic auth to the NVD Data Feed. -966 */ -967 @SuppressWarnings("CanBeFinal") -968 @Parameter(property = "nvdPassword") -969 private String nvdPassword; -970 /** -971 * The time in milliseconds to wait between downloading NVD API data. -972 */ -973 @SuppressWarnings("CanBeFinal") -974 @Parameter(property = "nvdApiDelay") -975 private Integer nvdApiDelay; -976 -977 /** -978 * The path to dotnet core. -979 */ -980 @SuppressWarnings("CanBeFinal") -981 @Parameter(property = "pathToCore") -982 private String pathToCore; -983 /** -984 * The hosted suppressions file URL. -985 */ -986 @SuppressWarnings("CanBeFinal") -987 @Parameter(property = "hostedSuppressionsUrl") -988 private String hostedSuppressionsUrl; -989 /** -990 * Whether the hosted suppressions file will be updated regardless of the -991 * `autoupdate` settings. -992 */ -993 @SuppressWarnings("CanBeFinal") -994 @Parameter(property = "hostedSuppressionsForceUpdate") -995 private Boolean hostedSuppressionsForceUpdate; -996 /** -997 * Whether the hosted suppressions file will be used. -998 */ -999 @SuppressWarnings("CanBeFinal") -1000 @Parameter(property = "hostedSuppressionsEnabled") -1001 private Boolean hostedSuppressionsEnabled; -1002 /** -1003 * Skip excessive hosted suppression file update checks for a designated -1004 * duration in hours (defaults to 2 hours). -1005 */ -1006 @SuppressWarnings("CanBeFinal") -1007 @Parameter(property = "hostedSuppressionsValidForHours") -1008 private Integer hostedSuppressionsValidForHours; -1009 -1010 /** -1011 * The RetireJS Analyzer configuration: -1012 * <pre> -1013 * filters: an array of filter patterns that are used to exclude JS files that contain a match -1014 * filterNonVulnerable: a boolean that when true will remove non-vulnerable JS from the report -1015 * -1016 * Example: -1017 * &lt;retirejs&gt; -1018 * &lt;filters&gt; -1019 * &lt;filter&gt;copyright 2018\(c\) Jeremy Long&lt;/filter&gt; -1020 * &lt;/filters&gt; -1021 * &lt;filterNonVulnerable&gt;true&lt;/filterNonVulnerable&gt; -1022 * &lt;/retirejs&gt; -1023 * </pre> -1024 */ -1025 @SuppressWarnings("CanBeFinal") -1026 @Parameter(property = "retirejs") -1027 private Retirejs retirejs; -1028 -1029 /** -1030 * The list of artifacts (and their transitive dependencies) to exclude from -1031 * the check. -1032 */ -1033 @Parameter(property = "odc.excludes") -1034 private List<String> excludes; -1035 -1036 /** -1037 * The artifact scope filter. -1038 */ -1039 private Filter<String> artifactScopeExcluded; -1040 -1041 /** -1042 * Filter for artifact type. -1043 */ -1044 private Filter<String> artifactTypeExcluded; -1045 -1046 /** -1047 * An collection of <code>fileSet</code>s that specify additional files -1048 * and/or directories (from the basedir) to analyze as part of the scan. If -1049 * not specified, defaults to Maven conventions of: src/main/resources, -1050 * src/main/filters, and src/main/webapp. Note, this cannot be set via the -1051 * command line - use `scanDirectory` instead. -1052 */ -1053 @Parameter -1054 private List<FileSet> scanSet; -1055 /** -1056 * A list of directories to scan. Note, this should only be used via the -1057 * command line - if configuring the directories to scan consider using the -1058 * `scanSet` instead. -1059 */ -1060 @Parameter(property = "scanDirectory") -1061 private List<String> scanDirectory; -1062 -1063 /** -1064 * Whether the project's plugins should also be scanned. -1065 */ -1066 @SuppressWarnings("CanBeFinal") -1067 @Parameter(property = "odc.plugins.scan", defaultValue = "false", required = false) -1068 private boolean scanPlugins = false; -1069 /** -1070 * Whether the project's dependencies should also be scanned. -1071 */ -1072 @SuppressWarnings("CanBeFinal") -1073 @Parameter(property = "odc.dependencies.scan", defaultValue = "true", required = false) -1074 private boolean scanDependencies = true; -1075 /** -1076 * The proxy configuration. -1077 */ -1078 @Parameter -1079 private ProxyConfig proxy; -1080 -1081 // </editor-fold> -1082 //<editor-fold defaultstate="collapsed" desc="Base Maven implementation"> -1083 /** -1084 * Determines if the groupId, artifactId, and version of the Maven -1085 * dependency and artifact match. -1086 * -1087 * @param d the Maven dependency -1088 * @param a the Maven artifact -1089 * @return true if the groupId, artifactId, and version match -1090 */ -1091 private static boolean artifactsMatch(org.apache.maven.model.Dependency d, Artifact a) { -1092 return isEqualOrNull(a.getArtifactId(), d.getArtifactId()) -1093 && isEqualOrNull(a.getGroupId(), d.getGroupId()) -1094 && isEqualOrNull(a.getVersion(), d.getVersion()); -1095 } -1096 -1097 /** -1098 * Compares two strings for equality; if both strings are null they are -1099 * considered equal. -1100 * -1101 * @param left the first string to compare -1102 * @param right the second string to compare -1103 * @return true if the strings are equal or if they are both null; otherwise -1104 * false. -1105 */ -1106 private static boolean isEqualOrNull(String left, String right) { -1107 return (left != null && left.equals(right)) || (left == null && right == null); -1108 } -1109 -1110 /** -1111 * Executes dependency-check. -1112 * -1113 * @throws MojoExecutionException thrown if there is an exception executing -1114 * the mojo -1115 * @throws MojoFailureException thrown if dependency-check failed the build -1116 */ -1117 @Override -1118 public void execute() throws MojoExecutionException, MojoFailureException { -1119 generatingSite = false; -1120 final boolean shouldSkip = Boolean.parseBoolean(System.getProperty("dependency-check.skip", Boolean.toString(skip))); -1121 if (shouldSkip) { -1122 getLog().info("Skipping " + getName(Locale.US)); -1123 } else { -1124 project.setContextValue("dependency-check-output-dir", this.outputDirectory); -1125 runCheck(); -1126 } -1127 } -1128 -1129 /** -1130 * Generates the Dependency-Check Site Report. -1131 * -1132 * @param sink the sink to write the report to -1133 * @param locale the locale to use when generating the report -1134 * @throws MavenReportException if a maven report exception occurs -1135 * @deprecated use -1136 * {@link #generate(org.apache.maven.doxia.sink.Sink, java.util.Locale)} -1137 * instead. -1138 */ -1139 @Deprecated -1140 public final void generate(@SuppressWarnings("deprecation") org.codehaus.doxia.sink.Sink sink, Locale locale) throws MavenReportException { -1141 generate((Sink) sink, locale); -1142 } -1143 -1144 /** -1145 * Returns true if the Maven site is being generated. -1146 * -1147 * @return true if the Maven site is being generated -1148 */ -1149 protected boolean isGeneratingSite() { -1150 return generatingSite; -1151 } -1152 -1153 /** -1154 * Returns the connection string. -1155 * -1156 * @return the connection string -1157 */ -1158 protected String getConnectionString() { -1159 return connectionString; -1160 } -1161 -1162 /** -1163 * Returns if the mojo should fail the build if an exception occurs. -1164 * -1165 * @return whether or not the mojo should fail the build -1166 */ -1167 protected boolean isFailOnError() { -1168 return failOnError; -1169 } -1170 -1171 /** -1172 * Generates the Dependency-Check Site Report. -1173 * -1174 * @param sink the sink to write the report to -1175 * @param locale the locale to use when generating the report -1176 * @throws MavenReportException if a maven report exception occurs -1177 */ -1178 public void generate(Sink sink, Locale locale) throws MavenReportException { -1179 final boolean shouldSkip = Boolean.parseBoolean(System.getProperty("dependency-check.skip", Boolean.toString(skip))); -1180 if (shouldSkip) { -1181 getLog().info("Skipping report generation " + getName(Locale.US)); -1182 return; -1183 } -1184 -1185 generatingSite = true; -1186 project.setContextValue("dependency-check-output-dir", getReportOutputDirectory()); -1187 try { -1188 runCheck(); -1189 } catch (MojoExecutionException ex) { -1190 throw new MavenReportException(ex.getMessage(), ex); -1191 } catch (MojoFailureException ex) { -1192 getLog().warn("Vulnerabilities were identifies that exceed the CVSS threshold for failing the build"); -1193 } -1194 } -1195 -1196 /** -1197 * Returns the correct output directory depending on if a site is being -1198 * executed or not. -1199 * -1200 * @return the directory to write the report(s) -1201 * @throws MojoExecutionException thrown if there is an error loading the -1202 * file path -1203 */ -1204 protected File getCorrectOutputDirectory() throws MojoExecutionException { -1205 return getCorrectOutputDirectory(this.project); -1206 } -1207 -1208 /** -1209 * Returns the correct output directory depending on if a site is being -1210 * executed or not. -1211 * -1212 * @param current the Maven project to get the output directory from -1213 * @return the directory to write the report(s) -1214 */ -1215 protected File getCorrectOutputDirectory(MavenProject current) { -1216 final Object obj = current.getContextValue("dependency-check-output-dir"); -1217 if (obj != null && obj instanceof File) { -1218 return (File) obj; -1219 } -1220 //else we guess -1221 File target = new File(current.getBuild().getDirectory()); -1222 if (target.getParentFile() != null && "target".equals(target.getParentFile().getName())) { -1223 target = target.getParentFile(); -1224 } -1225 return target; -1226 } -1227 -1228 /** -1229 * Scans the project's artifacts and adds them to the engine's dependency -1230 * list. -1231 * -1232 * @param project the project to scan the dependencies of -1233 * @param engine the engine to use to scan the dependencies -1234 * @return a collection of exceptions that may have occurred while resolving -1235 * and scanning the dependencies -1236 */ -1237 protected ExceptionCollection scanArtifacts(MavenProject project, Engine engine) { -1238 return scanArtifacts(project, engine, false); -1239 } -1240 -1241 /** -1242 * Scans the project's artifacts and adds them to the engine's dependency -1243 * list. -1244 * -1245 * @param project the project to scan the dependencies of -1246 * @param engine the engine to use to scan the dependencies -1247 * @param aggregate whether the scan is part of an aggregate build -1248 * @return a collection of exceptions that may have occurred while resolving -1249 * and scanning the dependencies -1250 */ -1251 protected ExceptionCollection scanArtifacts(MavenProject project, Engine engine, boolean aggregate) { -1252 try { -1253 final List<String> filterItems = Collections.singletonList(String.format("%s:%s", project.getGroupId(), project.getArtifactId())); -1254 final ProjectBuildingRequest buildingRequest = newResolveArtifactProjectBuildingRequest(project, project.getRemoteArtifactRepositories()); -1255 //For some reason the filter does not filter out the project being analyzed -1256 //if we pass in the filter below instead of null to the dependencyGraphBuilder -1257 final DependencyNode dn = dependencyGraphBuilder.buildDependencyGraph(buildingRequest, null); -1258 -1259 final CollectingRootDependencyGraphVisitor collectorVisitor = new CollectingRootDependencyGraphVisitor(); -1260 -1261 // exclude artifact by pattern and its dependencies -1262 final DependencyNodeVisitor transitiveFilterVisitor = new FilteringDependencyTransitiveNodeVisitor(collectorVisitor, -1263 new ArtifactDependencyNodeFilter(new PatternExcludesArtifactFilter(getExcludes()))); -1264 // exclude exact artifact but not its dependencies, this filter must be appied on the root for first otherwise -1265 // in case the exclude has the same groupId of the current bundle its direct dependencies are not visited -1266 final DependencyNodeVisitor artifactFilter = new FilteringDependencyNodeVisitor(transitiveFilterVisitor, -1267 new ArtifactDependencyNodeFilter(new ExcludesArtifactFilter(filterItems))); -1268 dn.accept(artifactFilter); -1269 -1270 //collect dependencies with the filter - see comment above. -1271 final Map<DependencyNode, List<DependencyNode>> nodes = collectorVisitor.getNodes(); -1272 -1273 return collectDependencies(engine, project, nodes, buildingRequest, aggregate); -1274 } catch (DependencyGraphBuilderException ex) { -1275 final String msg = String.format("Unable to build dependency graph on project %s", project.getName()); -1276 getLog().debug(msg, ex); -1277 return new ExceptionCollection(ex); -1278 } -1279 } -1280 -1281 /** -1282 * Scans the project's artifacts for plugin-dependencies and adds them to -1283 * the engine's dependency list. -1284 * -1285 * @param project the project to scan the plugin-dependencies of -1286 * @param engine the engine to use to scan the plugin-dependencies -1287 * @param exCollection the collection of exceptions that have previously -1288 * occurred -1289 * @return a collection of exceptions that may have occurred while resolving -1290 * and scanning the plugins and their dependencies -1291 */ -1292 protected ExceptionCollection scanPlugins(MavenProject project, Engine engine, ExceptionCollection exCollection) { -1293 ExceptionCollection exCol = exCollection; -1294 final Set<Artifact> plugins = new HashSet<>(); -1295 final Set<Artifact> buildPlugins = getProject().getPluginArtifacts(); -1296 final Set<Artifact> reportPlugins = getProject().getReportArtifacts(); -1297 final Set<Artifact> extensions = getProject().getExtensionArtifacts(); -1298 -1299 plugins.addAll(buildPlugins); -1300 plugins.addAll(reportPlugins); -1301 plugins.addAll(extensions); -1302 -1303 final ProjectBuildingRequest buildingRequest = newResolveArtifactProjectBuildingRequest(project, project.getPluginArtifactRepositories()); -1304 for (Artifact plugin : plugins) { -1305 try { -1306 final Artifact resolved = artifactResolver.resolveArtifact(buildingRequest, plugin).getArtifact(); -1307 -1308 exCol = addPluginToDependencies(project, engine, resolved, "pom.xml (plugins)", exCol); -1309 -1310 final DefaultDependableCoordinate pluginCoordinate = new DefaultDependableCoordinate(); -1311 pluginCoordinate.setGroupId(resolved.getGroupId()); -1312 pluginCoordinate.setArtifactId(resolved.getArtifactId()); -1313 pluginCoordinate.setVersion(resolved.getVersion()); -1314 -1315 final String parent = buildReference(resolved.getGroupId(), resolved.getArtifactId(), resolved.getVersion()); -1316 for (Artifact artifact : resolveArtifactDependencies(pluginCoordinate, project)) { -1317 exCol = addPluginToDependencies(project, engine, artifact, parent, exCol); -1318 } -1319 } catch (ArtifactResolverException ex) { -1320 throw new RuntimeException(ex); -1321 } catch (IllegalArgumentException ex) { -1322 throw new RuntimeException(ex); -1323 } catch (DependencyResolverException ex) { -1324 throw new RuntimeException(ex); -1325 } -1326 } -1327 -1328 return null; -1329 -1330 } -1331 -1332 private ExceptionCollection addPluginToDependencies(MavenProject project, Engine engine, Artifact artifact, String parent, ExceptionCollection exCollection) { -1333 ExceptionCollection exCol = exCollection; -1334 final String groupId = artifact.getGroupId(); -1335 final String artifactId = artifact.getArtifactId(); -1336 final String version = artifact.getVersion(); -1337 final File artifactFile = artifact.getFile(); -1338 if (artifactFile.isFile()) { -1339 final List<ArtifactVersion> availableVersions = artifact.getAvailableVersions(); -1340 -1341 final List<Dependency> deps = engine.scan(artifactFile.getAbsoluteFile(), -1342 project.getName() + " (plugins)"); -1343 if (deps != null) { -1344 Dependency d = null; -1345 if (deps.size() == 1) { -1346 d = deps.get(0); -1347 } else { -1348 for (Dependency possible : deps) { -1349 if (artifactFile.getAbsoluteFile().equals(possible.getActualFile())) { -1350 d = possible; -1351 break; -1352 } -1353 } -1354 for (Dependency dep : deps) { -1355 if (d != null && d != dep) { -1356 final String includedBy = buildReference(groupId, artifactId, version); -1357 dep.addIncludedBy(includedBy, "plugins"); -1358 } -1359 } -1360 } -1361 if (d != null) { -1362 final MavenArtifact ma = new MavenArtifact(groupId, artifactId, version); -1363 d.addAsEvidence("pom", ma, Confidence.HIGHEST); -1364 if (parent != null) { -1365 d.addIncludedBy(parent, "plugins"); -1366 } else { -1367 final String includedby = buildReference( -1368 project.getGroupId(), -1369 project.getArtifactId(), -1370 project.getVersion()); -1371 d.addIncludedBy(includedby, "plugins"); -1372 } -1373 if (availableVersions != null) { -1374 for (ArtifactVersion av : availableVersions) { -1375 d.addAvailableVersion(av.toString()); -1376 } -1377 } -1378 } -1379 } -1380 } else { -1381 if (exCol == null) { -1382 exCol = new ExceptionCollection(); -1383 } -1384 exCol.addException(new DependencyNotFoundException("Unable to resolve plugin: " -1385 + groupId + ":" + artifactId + ":" + version)); -1386 } -1387 -1388 return exCol; -1389 } -1390 -1391 private String buildReference(final String groupId, final String artifactId, final String version) { -1392 String includedBy; -1393 try { -1394 final PackageURL purl = new PackageURL("maven", groupId, artifactId, version, null, null); -1395 includedBy = purl.toString(); -1396 } catch (MalformedPackageURLException ex) { -1397 getLog().warn("Unable to generate build reference for " + groupId -1398 + ":" + artifactId + ":" + version, ex); -1399 includedBy = groupId + ":" + artifactId + ":" + version; -1400 } -1401 return includedBy; -1402 } -1403 -1404 protected Set<Artifact> resolveArtifactDependencies(final DependableCoordinate artifact, MavenProject project) -1405 throws DependencyResolverException { -1406 final ProjectBuildingRequest buildingRequest = newResolveArtifactProjectBuildingRequest(project, project.getRemoteArtifactRepositories()); -1407 -1408 final Iterable<ArtifactResult> artifactResults = dependencyResolver.resolveDependencies(buildingRequest, artifact, null); -1409 -1410 final Set<Artifact> artifacts = new HashSet<>(); -1411 -1412 for (ArtifactResult artifactResult : artifactResults) { -1413 artifacts.add(artifactResult.getArtifact()); -1414 } -1415 -1416 return artifacts; -1417 -1418 } -1419 -1420 /** -1421 * Converts the dependency to a dependency node object. -1422 * -1423 * @param nodes the list of dependency nodes -1424 * @param buildingRequest the Maven project building request -1425 * @param parent the parent node -1426 * @param dependency the dependency to convert -1427 * @return the resulting dependency node -1428 * @throws ArtifactResolverException thrown if the artifact could not be -1429 * retrieved -1430 */ -1431 private DependencyNode toDependencyNode(List<DependencyNode> nodes, ProjectBuildingRequest buildingRequest, -1432 DependencyNode parent, org.apache.maven.model.Dependency dependency) throws ArtifactResolverException { -1433 -1434 final DefaultArtifactCoordinate coordinate = new DefaultArtifactCoordinate(); -1435 -1436 coordinate.setGroupId(dependency.getGroupId()); -1437 coordinate.setArtifactId(dependency.getArtifactId()); -1438 String version = null; -1439 final VersionRange vr; -1440 try { -1441 vr = VersionRange.createFromVersionSpec(dependency.getVersion()); -1442 } catch (InvalidVersionSpecificationException ex) { -1443 throw new ArtifactResolverException("Invalid version specification: " -1444 + dependency.getGroupId() + ":" -1445 + dependency.getArtifactId() + ":" -1446 + dependency.getVersion(), ex); -1447 } -1448 if (vr.hasRestrictions()) { -1449 version = findVersion(nodes, dependency.getGroupId(), dependency.getArtifactId()); -1450 if (version == null) { -1451 //TODO - this still may fail if the restriction is not a valid version number (i.e. only 2.9 instead of 2.9.1) -1452 //need to get available versions and filter on the restrictions. -1453 if (vr.getRecommendedVersion() != null) { -1454 version = vr.getRecommendedVersion().toString(); -1455 } else if (vr.hasRestrictions()) { -1456 for (Restriction restriction : vr.getRestrictions()) { -1457 if (restriction.getLowerBound() != null) { -1458 version = restriction.getLowerBound().toString(); -1459 } -1460 if (restriction.getUpperBound() != null) { -1461 version = restriction.getUpperBound().toString(); -1462 } -1463 } -1464 } else { -1465 version = vr.toString(); -1466 } -1467 } -1468 } -1469 if (version == null) { -1470 version = dependency.getVersion(); -1471 } -1472 coordinate.setVersion(version); -1473 -1474 final ArtifactType type = session.getRepositorySession().getArtifactTypeRegistry().get(dependency.getType()); -1475 coordinate.setExtension(type.getExtension()); -1476 coordinate.setClassifier((null == dependency.getClassifier() || dependency.getClassifier().isEmpty()) -1477 ? type.getClassifier() : dependency.getClassifier()); -1478 final Artifact artifact = artifactResolver.resolveArtifact(buildingRequest, coordinate).getArtifact(); -1479 artifact.setScope(dependency.getScope()); -1480 return new DefaultDependencyNode(parent, artifact, dependency.getVersion(), dependency.getScope(), null); -1481 } -1482 -1483 /** -1484 * Returns the version from the list of nodes that match the given groupId -1485 * and artifactID. -1486 * -1487 * @param nodes the nodes to search -1488 * @param groupId the group id to find -1489 * @param artifactId the artifact id to find -1490 * @return the version from the list of nodes that match the given groupId -1491 * and artifactID; otherwise <code>null</code> is returned -1492 */ -1493 private String findVersion(List<DependencyNode> nodes, String groupId, String artifactId) { -1494 final Optional<DependencyNode> f = nodes.stream().filter(p -1495 -> groupId.equals(p.getArtifact().getGroupId()) -1496 && artifactId.equals(p.getArtifact().getArtifactId())).findFirst(); -1497 if (f.isPresent()) { -1498 return f.get().getArtifact().getVersion(); -1499 } -1500 return null; -1501 } -1502 -1503 /** -1504 * Collect dependencies from the dependency management section. -1505 * -1506 * @param engine reference to the ODC engine -1507 * @param buildingRequest the Maven project building request -1508 * @param project the project being analyzed -1509 * @param nodes the list of dependency nodes -1510 * @param aggregate whether or not this is an aggregate analysis -1511 * @return a collection of exceptions if any occurred; otherwise -1512 * <code>null</code> -1513 */ -1514 private ExceptionCollection collectDependencyManagementDependencies(Engine engine, ProjectBuildingRequest buildingRequest, -1515 MavenProject project, List<DependencyNode> nodes, boolean aggregate) { -1516 if (skipDependencyManagement || project.getDependencyManagement() == null) { -1517 return null; -1518 } -1519 -1520 ExceptionCollection exCol = null; -1521 for (org.apache.maven.model.Dependency dependency : project.getDependencyManagement().getDependencies()) { -1522 try { -1523 nodes.add(toDependencyNode(nodes, buildingRequest, null, dependency)); -1524 } catch (ArtifactResolverException ex) { -1525 getLog().debug(String.format("Aggregate : %s", aggregate)); -1526 boolean addException = true; -1527 //CSOFF: EmptyBlock -1528 if (!aggregate) { -1529 // do nothing, exception is to be reported -1530 } else if (addReactorDependency(engine, -1531 new DefaultArtifact(dependency.getGroupId(), dependency.getArtifactId(), -1532 dependency.getVersion(), dependency.getScope(), dependency.getType(), dependency.getClassifier(), -1533 new DefaultArtifactHandler()), project)) { -1534 addException = false; -1535 } -1536 //CSON: EmptyBlock -1537 if (addException) { -1538 if (exCol == null) { -1539 exCol = new ExceptionCollection(); -1540 } -1541 exCol.addException(ex); -1542 } -1543 } -1544 } -1545 return exCol; -1546 } -1547 -1548 /** -1549 * Resolves the projects artifacts using Aether and scans the resulting -1550 * dependencies. -1551 * -1552 * @param engine the core dependency-check engine -1553 * @param project the project being scanned -1554 * @param nodeMap the map of dependency nodes, generally obtained via the -1555 * DependencyGraphBuilder using the CollectingRootDependencyGraphVisitor -1556 * @param buildingRequest the Maven project building request -1557 * @param aggregate whether the scan is part of an aggregate build -1558 * @return a collection of exceptions that may have occurred while resolving -1559 * and scanning the dependencies -1560 */ -1561 //CSOFF: OperatorWrap -1562 private ExceptionCollection collectMavenDependencies(Engine engine, MavenProject project, -1563 Map<DependencyNode, List<DependencyNode>> nodeMap, ProjectBuildingRequest buildingRequest, boolean aggregate) { -1564 -1565 final List<ArtifactResult> allResolvedDeps = new ArrayList<>(); -1566 -1567 //dependency management -1568 final List<DependencyNode> dmNodes = new ArrayList<>(); -1569 ExceptionCollection exCol = collectDependencyManagementDependencies(engine, buildingRequest, project, dmNodes, aggregate); -1570 for (DependencyNode dependencyNode : dmNodes) { -1571 exCol = scanDependencyNode(dependencyNode, null, engine, project, allResolvedDeps, buildingRequest, aggregate, exCol); -1572 } -1573 -1574 //dependencies -1575 for (Map.Entry<DependencyNode, List<DependencyNode>> entry : nodeMap.entrySet()) { -1576 exCol = scanDependencyNode(entry.getKey(), null, engine, project, allResolvedDeps, buildingRequest, aggregate, exCol); -1577 for (DependencyNode dependencyNode : entry.getValue()) { -1578 exCol = scanDependencyNode(dependencyNode, entry.getKey(), engine, project, allResolvedDeps, buildingRequest, aggregate, exCol); -1579 } -1580 } -1581 return exCol; -1582 } -1583 //CSON: OperatorWrap -1584 -1585 /** -1586 * Utility method for a work-around to MSHARED-998 -1587 * -1588 * @param allDeps The List of ArtifactResults for all dependencies -1589 * @param unresolvedArtifact The ArtifactCoordinate of the artifact we're -1590 * looking for -1591 * @param project The project in whose context resolution was attempted -1592 * @return the resolved artifact matching with {@code unresolvedArtifact} -1593 * @throws DependencyNotFoundException If {@code unresolvedArtifact} could -1594 * not be found within {@code allDeps} -1595 */ -1596 private Artifact findInAllDeps(final List<ArtifactResult> allDeps, final Artifact unresolvedArtifact, -1597 final MavenProject project) -1598 throws DependencyNotFoundException { -1599 Artifact result = null; -1600 for (final ArtifactResult res : allDeps) { -1601 if (sameArtifact(res, unresolvedArtifact)) { -1602 result = res.getArtifact(); -1603 break; -1604 } -1605 } -1606 if (result == null) { -1607 throw new DependencyNotFoundException(String.format("Expected dependency not found in resolved artifacts for " -1608 + "dependency %s of project-artifact %s", unresolvedArtifact, project.getArtifactId())); -1609 } -1610 return result; -1611 } -1612 -1613 /** -1614 * Utility method for a work-around to MSHARED-998 -1615 * -1616 * @param res A single ArtifactResult obtained from the DependencyResolver -1617 * @param unresolvedArtifact The unresolved Artifact from the -1618 * dependencyGraph that we try to find -1619 * @return {@code true} when unresolvedArtifact is non-null and matches with -1620 * the artifact of res -1621 */ -1622 private boolean sameArtifact(final ArtifactResult res, final Artifact unresolvedArtifact) { -1623 if (res == null || res.getArtifact() == null || unresolvedArtifact == null) { -1624 return false; -1625 } -1626 boolean result = Objects.equals(res.getArtifact().getGroupId(), unresolvedArtifact.getGroupId()); -1627 result &= Objects.equals(res.getArtifact().getArtifactId(), unresolvedArtifact.getArtifactId()); -1628 // accept any version as matching "LATEST" and any non-snapshot version as matching "RELEASE" meta-version -1629 if ("RELEASE".equals(unresolvedArtifact.getBaseVersion())) { -1630 result &= !res.getArtifact().isSnapshot(); -1631 } else if (!"LATEST".equals(unresolvedArtifact.getBaseVersion())) { -1632 result &= Objects.equals(res.getArtifact().getBaseVersion(), unresolvedArtifact.getBaseVersion()); -1633 } -1634 result &= Objects.equals(res.getArtifact().getClassifier(), unresolvedArtifact.getClassifier()); -1635 result &= Objects.equals(res.getArtifact().getType(), unresolvedArtifact.getType()); -1636 return result; -1637 } -1638 -1639 /** -1640 * @param project the {@link MavenProject} -1641 * @param dependencyNode the {@link DependencyNode} -1642 * @return the name to be used when creating a -1643 * {@link Dependency#getProjectReferences() project reference} in a -1644 * {@link Dependency}. The behavior of this method returns {@link MavenProject#getName() project.getName()}<code> + ":" + -1645 * </code> -1646 * {@link DependencyNode#getArtifact() dependencyNode.getArtifact()}{@link Artifact#getScope() .getScope()}. -1647 */ -1648 protected String createProjectReferenceName(MavenProject project, DependencyNode dependencyNode) { -1649 return project.getName() + ":" + dependencyNode.getArtifact().getScope(); -1650 } -1651 -1652 /** -1653 * Scans the projects dependencies including the default (or defined) -1654 * FileSets. -1655 * -1656 * @param engine the core dependency-check engine -1657 * @param project the project being scanned -1658 * @param nodes the list of dependency nodes, generally obtained via the -1659 * DependencyGraphBuilder -1660 * @param buildingRequest the Maven project building request -1661 * @param aggregate whether the scan is part of an aggregate build -1662 * @return a collection of exceptions that may have occurred while resolving -1663 * and scanning the dependencies -1664 */ -1665 private ExceptionCollection collectDependencies(Engine engine, MavenProject project, -1666 Map<DependencyNode, List<DependencyNode>> nodes, ProjectBuildingRequest buildingRequest, boolean aggregate) { -1667 -1668 ExceptionCollection exCol; -1669 exCol = collectMavenDependencies(engine, project, nodes, buildingRequest, aggregate); -1670 -1671 final List<FileSet> projectScan; -1672 -1673 if (scanDirectory != null && !scanDirectory.isEmpty()) { -1674 if (scanSet == null) { -1675 scanSet = new ArrayList<>(); -1676 } -1677 scanDirectory.forEach(d -> { -1678 final FileSet fs = new FileSet(); -1679 fs.setDirectory(d); -1680 fs.addInclude(INCLUDE_ALL); -1681 scanSet.add(fs); -1682 }); -1683 } -1684 -1685 if (scanSet == null || scanSet.isEmpty()) { -1686 // Define the default FileSets -1687 final FileSet resourcesSet = new FileSet(); -1688 final FileSet filtersSet = new FileSet(); -1689 final FileSet webappSet = new FileSet(); -1690 final FileSet mixedLangSet = new FileSet(); -1691 try { -1692 resourcesSet.setDirectory(new File(project.getBasedir(), "src/main/resources").getCanonicalPath()); -1693 resourcesSet.addInclude(INCLUDE_ALL); -1694 filtersSet.setDirectory(new File(project.getBasedir(), "src/main/filters").getCanonicalPath()); -1695 filtersSet.addInclude(INCLUDE_ALL); -1696 webappSet.setDirectory(new File(project.getBasedir(), "src/main/webapp").getCanonicalPath()); -1697 webappSet.addInclude(INCLUDE_ALL); -1698 mixedLangSet.setDirectory(project.getBasedir().getCanonicalPath()); -1699 mixedLangSet.addInclude("package.json"); -1700 mixedLangSet.addInclude("package-lock.json"); -1701 mixedLangSet.addInclude("npm-shrinkwrap.json"); -1702 mixedLangSet.addInclude("Gopkg.lock"); -1703 mixedLangSet.addInclude("go.mod"); -1704 mixedLangSet.addInclude("yarn.lock"); -1705 mixedLangSet.addInclude("pnpm-lock.yaml"); -1706 mixedLangSet.addExclude("/node_modules/"); -1707 } catch (IOException ex) { -1708 if (exCol == null) { -1709 exCol = new ExceptionCollection(); -1710 } -1711 exCol.addException(ex); -1712 } -1713 projectScan = new ArrayList<>(); -1714 projectScan.add(resourcesSet); -1715 projectScan.add(filtersSet); -1716 projectScan.add(webappSet); -1717 projectScan.add(mixedLangSet); -1718 -1719 } else if (aggregate) { -1720 projectScan = new ArrayList<>(); -1721 for (FileSet copyFrom : scanSet) { -1722 //deep copy of the FileSet - modifying the directory if it is not absolute. -1723 final FileSet fsCopy = new FileSet(); -1724 final File f = new File(copyFrom.getDirectory()); -1725 if (f.isAbsolute()) { -1726 fsCopy.setDirectory(copyFrom.getDirectory()); -1727 } else { -1728 try { -1729 fsCopy.setDirectory(new File(project.getBasedir(), copyFrom.getDirectory()).getCanonicalPath()); -1730 } catch (IOException ex) { -1731 if (exCol == null) { -1732 exCol = new ExceptionCollection(); -1733 } -1734 exCol.addException(ex); -1735 fsCopy.setDirectory(copyFrom.getDirectory()); -1736 } -1737 } -1738 fsCopy.setDirectoryMode(copyFrom.getDirectoryMode()); -1739 fsCopy.setExcludes(copyFrom.getExcludes()); -1740 fsCopy.setFileMode(copyFrom.getFileMode()); -1741 fsCopy.setFollowSymlinks(copyFrom.isFollowSymlinks()); -1742 fsCopy.setIncludes(copyFrom.getIncludes()); -1743 fsCopy.setLineEnding(copyFrom.getLineEnding()); -1744 fsCopy.setMapper(copyFrom.getMapper()); -1745 fsCopy.setModelEncoding(copyFrom.getModelEncoding()); -1746 fsCopy.setOutputDirectory(copyFrom.getOutputDirectory()); -1747 fsCopy.setUseDefaultExcludes(copyFrom.isUseDefaultExcludes()); -1748 projectScan.add(fsCopy); -1749 } -1750 } else { -1751 projectScan = scanSet; -1752 } -1753 -1754 // Iterate through FileSets and scan included files -1755 final FileSetManager fileSetManager = new FileSetManager(); -1756 for (FileSet fileSet : projectScan) { -1757 getLog().debug("Scanning fileSet: " + fileSet.getDirectory()); -1758 final String[] includedFiles = fileSetManager.getIncludedFiles(fileSet); -1759 for (String include : includedFiles) { -1760 final File includeFile = new File(fileSet.getDirectory(), include).getAbsoluteFile(); -1761 if (includeFile.exists()) { -1762 engine.scan(includeFile, project.getName()); -1763 } -1764 } -1765 } -1766 return exCol; -1767 } -1768 -1769 /** -1770 * Checks if the current artifact is actually in the reactor projects that -1771 * have not yet been built. If true a virtual dependency is created based on -1772 * the evidence in the project. -1773 * -1774 * @param engine a reference to the engine being used to scan -1775 * @param artifact the artifact being analyzed in the mojo -1776 * @param depender The project that depends on this virtual dependency -1777 * @return <code>true</code> if the artifact is in the reactor; otherwise -1778 * <code>false</code> -1779 */ -1780 private boolean addReactorDependency(Engine engine, Artifact artifact, final MavenProject depender) { -1781 return addVirtualDependencyFromReactor(engine, artifact, depender, "Unable to resolve %s as it has not been built yet " -1782 + "- creating a virtual dependency instead."); -1783 } -1784 -1785 /** -1786 * Checks if the current artifact is actually in the reactor projects. If -1787 * true a virtual dependency is created based on the evidence in the -1788 * project. -1789 * -1790 * @param engine a reference to the engine being used to scan -1791 * @param artifact the artifact being analyzed in the mojo -1792 * @param depender The project that depends on this virtual dependency -1793 * @param infoLogTemplate the template for the infoLog entry written when a -1794 * virtual dependency is added. Needs a single %s placeholder for the -1795 * location of the displayName in the message -1796 * @return <code>true</code> if the artifact is in the reactor; otherwise -1797 * <code>false</code> -1798 */ -1799 private boolean addVirtualDependencyFromReactor(Engine engine, Artifact artifact, -1800 final MavenProject depender, String infoLogTemplate) { -1801 -1802 getLog().debug(String.format("Checking the reactor projects (%d) for %s:%s:%s", -1803 reactorProjects.size(), -1804 artifact.getGroupId(), artifact.getArtifactId(), artifact.getVersion())); -1805 -1806 for (MavenProject prj : reactorProjects) { -1807 -1808 getLog().debug(String.format("Comparing %s:%s:%s to %s:%s:%s", -1809 artifact.getGroupId(), artifact.getArtifactId(), artifact.getBaseVersion(), -1810 prj.getGroupId(), prj.getArtifactId(), prj.getVersion())); -1811 -1812 if (prj.getArtifactId().equals(artifact.getArtifactId()) -1813 && prj.getGroupId().equals(artifact.getGroupId()) -1814 && prj.getVersion().equals(artifact.getBaseVersion())) { -1815 -1816 final String displayName = String.format("%s:%s:%s", -1817 prj.getGroupId(), prj.getArtifactId(), prj.getVersion()); -1818 getLog().info(String.format(infoLogTemplate, -1819 displayName)); -1820 final Dependency d = newDependency(prj); -1821 final String key = String.format("%s:%s:%s", prj.getGroupId(), prj.getArtifactId(), prj.getVersion()); -1822 d.setSha1sum(Checksum.getSHA1Checksum(key)); -1823 d.setSha256sum(Checksum.getSHA256Checksum(key)); -1824 d.setMd5sum(Checksum.getMD5Checksum(key)); -1825 d.setEcosystem(JarAnalyzer.DEPENDENCY_ECOSYSTEM); -1826 d.setDisplayFileName(displayName); -1827 d.addProjectReference(depender.getName()); -1828 final String includedby = buildReference( -1829 depender.getGroupId(), -1830 depender.getArtifactId(), -1831 depender.getVersion()); -1832 d.addIncludedBy(includedby); -1833 d.addEvidence(EvidenceType.PRODUCT, "project", "artifactid", prj.getArtifactId(), Confidence.HIGHEST); -1834 d.addEvidence(EvidenceType.VENDOR, "project", "artifactid", prj.getArtifactId(), Confidence.LOW); -1835 -1836 d.addEvidence(EvidenceType.VENDOR, "project", "groupid", prj.getGroupId(), Confidence.HIGHEST); -1837 d.addEvidence(EvidenceType.PRODUCT, "project", "groupid", prj.getGroupId(), Confidence.LOW); -1838 d.setEcosystem(JarAnalyzer.DEPENDENCY_ECOSYSTEM); -1839 Identifier id; -1840 try { -1841 id = new PurlIdentifier(StandardTypes.MAVEN, artifact.getGroupId(), -1842 artifact.getArtifactId(), artifact.getVersion(), Confidence.HIGHEST); -1843 } catch (MalformedPackageURLException ex) { -1844 getLog().debug("Unable to create PackageURL object:" + key); -1845 id = new GenericIdentifier("maven:" + key, Confidence.HIGHEST); -1846 } -1847 d.addSoftwareIdentifier(id); -1848 //TODO unify the setName/version and package path - they are equivelent ideas submitted by two seperate committers -1849 d.setName(String.format("%s:%s", prj.getGroupId(), prj.getArtifactId())); -1850 d.setVersion(prj.getVersion()); -1851 d.setPackagePath(displayName); -1852 if (prj.getDescription() != null) { -1853 JarAnalyzer.addDescription(d, prj.getDescription(), "project", "description"); -1854 } -1855 for (License l : prj.getLicenses()) { -1856 final StringBuilder license = new StringBuilder(); -1857 if (l.getName() != null) { -1858 license.append(l.getName()); -1859 } -1860 if (l.getUrl() != null) { -1861 license.append(" ").append(l.getUrl()); -1862 } -1863 if (d.getLicense() == null) { -1864 d.setLicense(license.toString()); -1865 } else if (!d.getLicense().contains(license)) { -1866 d.setLicense(String.format("%s%n%s", d.getLicense(), license)); -1867 } -1868 } -1869 engine.addDependency(d); -1870 return true; -1871 } -1872 } -1873 return false; -1874 } -1875 -1876 Dependency newDependency(MavenProject prj) { -1877 final File pom = new File(prj.getBasedir(), "pom.xml"); -1878 -1879 if (pom.isFile()) { -1880 getLog().debug("Adding virtual dependency from pom.xml"); -1881 return new Dependency(pom, true); -1882 } else if (prj.getFile().isFile()) { -1883 getLog().debug("Adding virtual dependency from file"); -1884 return new Dependency(prj.getFile(), true); -1885 } else { -1886 return new Dependency(true); -1887 } -1888 } -1889 -1890 /** -1891 * Checks if the current artifact is actually in the reactor projects. If -1892 * true a virtual dependency is created based on the evidence in the -1893 * project. -1894 * -1895 * @param engine a reference to the engine being used to scan -1896 * @param artifact the artifact being analyzed in the mojo -1897 * @param depender The project that depends on this virtual dependency -1898 * @return <code>true</code> if the artifact is a snapshot artifact in the -1899 * reactor; otherwise <code>false</code> -1900 */ -1901 private boolean addSnapshotReactorDependency(Engine engine, Artifact artifact, final MavenProject depender) { -1902 if (!artifact.isSnapshot()) { -1903 return false; -1904 } -1905 return addVirtualDependencyFromReactor(engine, artifact, depender, "Found snapshot reactor project in aggregate for %s - " -1906 + "creating a virtual dependency as the snapshot found in the repository may contain outdated dependencies."); -1907 } -1908 -1909 /** -1910 * @param project The target project to create a building request for. -1911 * @param repos the artifact repositories to use. -1912 * @return Returns a new ProjectBuildingRequest populated from the current -1913 * session and the target project remote repositories, used to resolve -1914 * artifacts. -1915 */ -1916 public ProjectBuildingRequest newResolveArtifactProjectBuildingRequest(MavenProject project, List<ArtifactRepository> repos) { -1917 final ProjectBuildingRequest buildingRequest = new DefaultProjectBuildingRequest(session.getProjectBuildingRequest()); -1918 buildingRequest.setRemoteRepositories(repos); -1919 buildingRequest.setProject(project); -1920 return buildingRequest; -1921 } -1922 -1923 /** -1924 * Executes the dependency-check scan and generates the necessary report. -1925 * -1926 * @throws MojoExecutionException thrown if there is an exception running -1927 * the scan -1928 * @throws MojoFailureException thrown if dependency-check is configured to -1929 * fail the build -1930 */ -1931 protected void runCheck() throws MojoExecutionException, MojoFailureException { -1932 muteJCS(); -1933 try (Engine engine = initializeEngine()) { -1934 ExceptionCollection exCol = null; -1935 if (scanDependencies) { -1936 exCol = scanDependencies(engine); -1937 } -1938 if (scanPlugins) { -1939 exCol = scanPlugins(engine, exCol); -1940 } -1941 try { -1942 engine.analyzeDependencies(); -1943 } catch (ExceptionCollection ex) { -1944 exCol = handleAnalysisExceptions(exCol, ex); -1945 } -1946 if (exCol == null || !exCol.isFatal()) { -1947 -1948 File outputDir = getCorrectOutputDirectory(this.getProject()); -1949 if (outputDir == null) { -1950 //in some regards we shouldn't be writing this, but we are anyway. -1951 //we shouldn't write this because nothing is configured to generate this report. -1952 outputDir = new File(this.getProject().getBuild().getDirectory()); -1953 } -1954 try { -1955 final MavenProject p = this.getProject(); -1956 for (String f : getFormats()) { -1957 engine.writeReports(p.getName(), p.getGroupId(), p.getArtifactId(), p.getVersion(), outputDir, f, exCol); -1958 } -1959 } catch (ReportException ex) { -1960 if (exCol == null) { -1961 exCol = new ExceptionCollection(ex); -1962 } else { -1963 exCol.addException(ex); -1964 } -1965 if (this.isFailOnError()) { -1966 throw new MojoExecutionException("One or more exceptions occurred during dependency-check analysis", exCol); -1967 } else { -1968 getLog().debug("Error writing the report", ex); -1969 } -1970 } -1971 showSummary(this.getProject(), engine.getDependencies()); -1972 checkForFailure(engine.getDependencies()); -1973 if (exCol != null && this.isFailOnError()) { -1974 throw new MojoExecutionException("One or more exceptions occurred during dependency-check analysis", exCol); -1975 } -1976 } -1977 } catch (DatabaseException ex) { -1978 if (getLog().isDebugEnabled()) { -1979 getLog().debug("Database connection error", ex); -1980 } -1981 final String msg = "An exception occurred connecting to the local database. Please see the log file for more details."; -1982 if (this.isFailOnError()) { -1983 throw new MojoExecutionException(msg, ex); -1984 } -1985 getLog().error(msg, ex); -1986 } finally { -1987 getSettings().cleanup(); -1988 } -1989 } -1990 -1991 /** -1992 * Combines the two exception collections and if either are fatal, throw an -1993 * MojoExecutionException -1994 * -1995 * @param currentEx the primary exception collection -1996 * @param newEx the new exception collection to add -1997 * @return the combined exception collection -1998 * @throws MojoExecutionException thrown if dependency-check is configured -1999 * to fail on errors -2000 */ -2001 private ExceptionCollection handleAnalysisExceptions(ExceptionCollection currentEx, ExceptionCollection newEx) throws MojoExecutionException { -2002 ExceptionCollection returnEx = currentEx; -2003 if (returnEx == null) { -2004 returnEx = newEx; -2005 } else { -2006 returnEx.getExceptions().addAll(newEx.getExceptions()); -2007 if (newEx.isFatal()) { -2008 returnEx.setFatal(true); -2009 } -2010 } -2011 if (returnEx.isFatal()) { -2012 final String msg = String.format("Fatal exception(s) analyzing %s", getProject().getName()); -2013 if (this.isFailOnError()) { -2014 throw new MojoExecutionException(msg, returnEx); -2015 } -2016 getLog().error(msg); -2017 if (getLog().isDebugEnabled()) { -2018 getLog().debug(returnEx); -2019 } -2020 } else { -2021 final String msg = String.format("Exception(s) analyzing %s", getProject().getName()); -2022 if (getLog().isDebugEnabled()) { -2023 getLog().debug(msg, returnEx); -2024 } -2025 } -2026 return returnEx; -2027 } -2028 -2029 /** -2030 * Scans the dependencies of the projects. -2031 * -2032 * @param engine the engine used to perform the scanning -2033 * @return a collection of exceptions -2034 * @throws MojoExecutionException thrown if a fatal exception occurs -2035 */ -2036 protected abstract ExceptionCollection scanDependencies(Engine engine) throws MojoExecutionException; -2037 -2038 /** -2039 * Scans the plugins of the projects. -2040 * -2041 * @param engine the engine used to perform the scanning -2042 * @param exCol the collection of any exceptions that have previously been -2043 * captured. -2044 * @return a collection of exceptions -2045 * @throws MojoExecutionException thrown if a fatal exception occurs -2046 */ -2047 protected abstract ExceptionCollection scanPlugins(Engine engine, ExceptionCollection exCol) throws MojoExecutionException; -2048 -2049 /** -2050 * Returns the report output directory. -2051 * -2052 * @return the report output directory -2053 */ -2054 @Override -2055 public File getReportOutputDirectory() { -2056 return reportOutputDirectory; -2057 } -2058 -2059 /** -2060 * Sets the Reporting output directory. -2061 * -2062 * @param directory the output directory -2063 */ -2064 @Override -2065 public void setReportOutputDirectory(File directory) { -2066 reportOutputDirectory = directory; -2067 } -2068 -2069 /** -2070 * Returns the output directory. -2071 * -2072 * @return the output directory -2073 */ -2074 public File getOutputDirectory() { -2075 return outputDirectory; -2076 } -2077 -2078 /** -2079 * Returns whether this is an external report. This method always returns -2080 * true. -2081 * -2082 * @return <code>true</code> -2083 */ -2084 @Override -2085 public final boolean isExternalReport() { -2086 return true; -2087 } -2088 -2089 /** -2090 * Returns the output name. -2091 * -2092 * @return the output name -2093 */ -2094 @Override -2095 public String getOutputName() { -2096 final Set<String> selectedFormats = getFormats(); -2097 if (selectedFormats.contains("HTML") || selectedFormats.contains("ALL") || selectedFormats.size() > 1) { -2098 return "dependency-check-report"; -2099 } else if (selectedFormats.contains("JENKINS")) { -2100 return "dependency-check-jenkins.html"; -2101 } else if (selectedFormats.contains("XML")) { -2102 return "dependency-check-report.xml"; -2103 } else if (selectedFormats.contains("JUNIT")) { -2104 return "dependency-check-junit.xml"; -2105 } else if (selectedFormats.contains("JSON")) { -2106 return "dependency-check-report.json"; -2107 } else if (selectedFormats.contains("SARIF")) { -2108 return "dependency-check-report.sarif"; -2109 } else if (selectedFormats.contains("CSV")) { -2110 return "dependency-check-report.csv"; -2111 } else { -2112 getLog().warn("Unknown report format used during site generation."); -2113 return "dependency-check-report"; -2114 } -2115 } -2116 -2117 /** -2118 * Returns the category name. -2119 * -2120 * @return the category name -2121 */ -2122 @Override -2123 public String getCategoryName() { -2124 return MavenReport.CATEGORY_PROJECT_REPORTS; -2125 } -2126 //</editor-fold> -2127 -2128 /** -2129 * Initializes a new <code>Engine</code> that can be used for scanning. This -2130 * method should only be called in a try-with-resources to ensure that the -2131 * engine is properly closed. -2132 * -2133 * @return a newly instantiated <code>Engine</code> -2134 * @throws DatabaseException thrown if there is a database exception -2135 */ -2136 protected Engine initializeEngine() throws DatabaseException { -2137 populateSettings(); -2138 return new Engine(settings); -2139 } -2140 -2141 //CSOFF: MethodLength -2142 /** -2143 * Takes the properties supplied and updates the dependency-check settings. -2144 * Additionally, this sets the system properties required to change the -2145 * proxy URL, port, and connection timeout. -2146 */ -2147 protected void populateSettings() { -2148 settings = new Settings(); -2149 InputStream mojoProperties = null; -2150 try { -2151 mojoProperties = this.getClass().getClassLoader().getResourceAsStream(PROPERTIES_FILE); -2152 settings.mergeProperties(mojoProperties); -2153 } catch (IOException ex) { -2154 getLog().warn("Unable to load the dependency-check maven mojo.properties file."); -2155 if (getLog().isDebugEnabled()) { -2156 getLog().debug("", ex); -2157 } -2158 } finally { -2159 if (mojoProperties != null) { -2160 try { -2161 mojoProperties.close(); -2162 } catch (IOException ex) { -2163 if (getLog().isDebugEnabled()) { -2164 getLog().debug("", ex); -2165 } -2166 } -2167 } -2168 } -2169 settings.setStringIfNotEmpty(Settings.KEYS.MAVEN_LOCAL_REPO, mavenSettings.getLocalRepository()); -2170 settings.setBooleanIfNotNull(Settings.KEYS.AUTO_UPDATE, autoUpdate); -2171 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_EXPERIMENTAL_ENABLED, enableExperimental); -2172 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_RETIRED_ENABLED, enableRetired); -2173 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_GOLANG_DEP_ENABLED, golangDepEnabled); -2174 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_GOLANG_MOD_ENABLED, golangModEnabled); -2175 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_DART_ENABLED, dartAnalyzerEnabled); -2176 settings.setStringIfNotNull(Settings.KEYS.ANALYZER_GOLANG_PATH, pathToGo); -2177 settings.setStringIfNotNull(Settings.KEYS.ANALYZER_YARN_PATH, pathToYarn); -2178 settings.setStringIfNotNull(Settings.KEYS.ANALYZER_PNPM_PATH, pathToPnpm); -2179 -2180 // use global maven proxy if provided -2181 final Proxy mavenProxy = getMavenProxy(); -2182 if (mavenProxy != null) { -2183 final String existing = System.getProperty("https.proxyHost"); -2184 if (existing == null && mavenProxy.getHost() != null && !mavenProxy.getHost().isEmpty()) { -2185 System.setProperty("https.proxyHost", mavenProxy.getHost()); -2186 if (mavenProxy.getPort() > 0) { -2187 System.setProperty("https.proxyPort", String.valueOf(mavenProxy.getPort())); -2188 } -2189 if (mavenProxy.getUsername() != null && !mavenProxy.getUsername().isEmpty()) { -2190 System.setProperty("https.proxyUser", mavenProxy.getUsername()); -2191 } -2192 if (mavenProxy.getPassword() != null && !mavenProxy.getPassword().isEmpty()) { -2193 System.setProperty("https.proxyPassword", mavenProxy.getPassword()); -2194 } -2195 if (mavenProxy.getNonProxyHosts() != null && !mavenProxy.getNonProxyHosts().isEmpty()) { -2196 System.setProperty("https.nonProxyHosts", mavenProxy.getNonProxyHosts()); -2197 } -2198 } -2199 -2200 settings.setString(Settings.KEYS.PROXY_SERVER, mavenProxy.getHost()); -2201 settings.setString(Settings.KEYS.PROXY_PORT, Integer.toString(mavenProxy.getPort())); -2202 final String userName = mavenProxy.getUsername(); -2203 String password = mavenProxy.getPassword(); -2204 if (password != null && !password.isEmpty()) { -2205 if (settings.getBoolean(Settings.KEYS.PROXY_DISABLE_SCHEMAS, true)) { -2206 System.setProperty("jdk.http.auth.tunneling.disabledSchemes", ""); -2207 } -2208 try { -2209 password = decryptPasswordFromSettings(password); -2210 } catch (SecDispatcherException ex) { -2211 password = handleSecDispatcherException("proxy", mavenProxy.getId(), password, ex); -2212 } -2213 } -2214 settings.setStringIfNotNull(Settings.KEYS.PROXY_USERNAME, userName); -2215 settings.setStringIfNotNull(Settings.KEYS.PROXY_PASSWORD, password); -2216 settings.setStringIfNotNull(Settings.KEYS.PROXY_NON_PROXY_HOSTS, mavenProxy.getNonProxyHosts()); -2217 } else if (System.getProperty("http.proxyHost") != null) { -2218 //else use standard Java system properties -2219 settings.setString(Settings.KEYS.PROXY_SERVER, System.getProperty("http.proxyHost", "")); -2220 if (System.getProperty("http.proxyPort") != null) { -2221 settings.setString(Settings.KEYS.PROXY_PORT, System.getProperty("http.proxyPort")); -2222 } -2223 if (System.getProperty("http.proxyUser") != null) { -2224 settings.setString(Settings.KEYS.PROXY_USERNAME, System.getProperty("http.proxyUser")); -2225 } -2226 if (System.getProperty("http.proxyPassword") != null) { -2227 settings.setString(Settings.KEYS.PROXY_PASSWORD, System.getProperty("http.proxyPassword")); -2228 } -2229 if (System.getProperty("http.nonProxyHosts") != null) { -2230 settings.setString(Settings.KEYS.PROXY_NON_PROXY_HOSTS, System.getProperty("http.nonProxyHosts")); -2231 } -2232 } else if (this.proxy != null && this.proxy.getHost() != null) { -2233 // or use configured <proxy> -2234 settings.setString(Settings.KEYS.PROXY_SERVER, this.proxy.getHost()); -2235 settings.setString(Settings.KEYS.PROXY_PORT, Integer.toString(this.proxy.getPort())); -2236 // user name and password from <server> entry settings.xml -2237 configureServerCredentials(this.proxy.getServerId(), Settings.KEYS.PROXY_USERNAME, Settings.KEYS.PROXY_PASSWORD); -2238 } -2239 -2240 final String[] suppressions = determineSuppressions(); -2241 settings.setArrayIfNotEmpty(Settings.KEYS.SUPPRESSION_FILE, suppressions); -2242 settings.setBooleanIfNotNull(Settings.KEYS.UPDATE_VERSION_CHECK_ENABLED, versionCheckEnabled); -2243 settings.setStringIfNotEmpty(Settings.KEYS.CONNECTION_TIMEOUT, connectionTimeout); -2244 settings.setStringIfNotEmpty(Settings.KEYS.CONNECTION_READ_TIMEOUT, readTimeout); -2245 settings.setStringIfNotEmpty(Settings.KEYS.HINTS_FILE, hintsFile); -2246 settings.setFloat(Settings.KEYS.JUNIT_FAIL_ON_CVSS, junitFailOnCVSS); -2247 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_JAR_ENABLED, jarAnalyzerEnabled); -2248 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_NUSPEC_ENABLED, nuspecAnalyzerEnabled); -2249 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_NUGETCONF_ENABLED, nugetconfAnalyzerEnabled); -2250 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_LIBMAN_ENABLED, libmanAnalyzerEnabled); -2251 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_CENTRAL_ENABLED, centralAnalyzerEnabled); -2252 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_CENTRAL_USE_CACHE, centralAnalyzerUseCache); -2253 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_ARTIFACTORY_ENABLED, artifactoryAnalyzerEnabled); -2254 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_NEXUS_ENABLED, nexusAnalyzerEnabled); -2255 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_ASSEMBLY_ENABLED, assemblyAnalyzerEnabled); -2256 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_MSBUILD_PROJECT_ENABLED, msbuildAnalyzerEnabled); -2257 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_ARCHIVE_ENABLED, archiveAnalyzerEnabled); -2258 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_KNOWN_EXPLOITED_ENABLED, knownExploitedEnabled); -2259 settings.setStringIfNotEmpty(Settings.KEYS.KEV_URL, knownExploitedUrl); -2260 settings.setStringIfNotEmpty(Settings.KEYS.ADDITIONAL_ZIP_EXTENSIONS, zipExtensions); -2261 settings.setStringIfNotEmpty(Settings.KEYS.ANALYZER_ASSEMBLY_DOTNET_PATH, pathToCore); -2262 settings.setStringIfNotEmpty(Settings.KEYS.ANALYZER_NEXUS_URL, nexusUrl); -2263 configureServerCredentials(nexusServerId, Settings.KEYS.ANALYZER_NEXUS_USER, Settings.KEYS.ANALYZER_NEXUS_PASSWORD); -2264 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_NEXUS_USES_PROXY, nexusUsesProxy); -2265 settings.setStringIfNotNull(Settings.KEYS.ANALYZER_ARTIFACTORY_URL, artifactoryAnalyzerUrl); -2266 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_ARTIFACTORY_USES_PROXY, artifactoryAnalyzerUseProxy); -2267 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_ARTIFACTORY_PARALLEL_ANALYSIS, artifactoryAnalyzerParallelAnalysis); -2268 if (Boolean.TRUE.equals(artifactoryAnalyzerEnabled)) { -2269 if (artifactoryAnalyzerServerId != null) { -2270 configureServerCredentials(artifactoryAnalyzerServerId, Settings.KEYS.ANALYZER_ARTIFACTORY_API_USERNAME, -2271 Settings.KEYS.ANALYZER_ARTIFACTORY_API_TOKEN); -2272 } else { -2273 settings.setStringIfNotNull(Settings.KEYS.ANALYZER_ARTIFACTORY_API_USERNAME, artifactoryAnalyzerUsername); -2274 settings.setStringIfNotNull(Settings.KEYS.ANALYZER_ARTIFACTORY_API_TOKEN, artifactoryAnalyzerApiToken); -2275 } -2276 settings.setStringIfNotNull(Settings.KEYS.ANALYZER_ARTIFACTORY_BEARER_TOKEN, artifactoryAnalyzerBearerToken); -2277 } -2278 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_PYTHON_DISTRIBUTION_ENABLED, pyDistributionAnalyzerEnabled); -2279 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_PYTHON_PACKAGE_ENABLED, pyPackageAnalyzerEnabled); -2280 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_RUBY_GEMSPEC_ENABLED, rubygemsAnalyzerEnabled); -2281 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_OPENSSL_ENABLED, opensslAnalyzerEnabled); -2282 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_CMAKE_ENABLED, cmakeAnalyzerEnabled); -2283 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_AUTOCONF_ENABLED, autoconfAnalyzerEnabled); -2284 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_MAVEN_INSTALL_ENABLED, mavenInstallAnalyzerEnabled); -2285 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_PIP_ENABLED, pipAnalyzerEnabled); -2286 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_PIPFILE_ENABLED, pipfileAnalyzerEnabled); -2287 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_POETRY_ENABLED, poetryAnalyzerEnabled); -2288 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_COMPOSER_LOCK_ENABLED, composerAnalyzerEnabled); -2289 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_CPANFILE_ENABLED, cpanfileAnalyzerEnabled); -2290 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_NODE_PACKAGE_ENABLED, nodeAnalyzerEnabled); -2291 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_NODE_AUDIT_ENABLED, nodeAuditAnalyzerEnabled); -2292 settings.setStringIfNotNull(Settings.KEYS.ANALYZER_NODE_AUDIT_URL, nodeAuditAnalyzerUrl); -2293 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_NODE_AUDIT_USE_CACHE, nodeAuditAnalyzerUseCache); -2294 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_NODE_PACKAGE_SKIPDEV, nodePackageSkipDevDependencies); -2295 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_NODE_AUDIT_SKIPDEV, nodeAuditSkipDevDependencies); -2296 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_YARN_AUDIT_ENABLED, yarnAuditAnalyzerEnabled); -2297 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_PNPM_AUDIT_ENABLED, pnpmAuditAnalyzerEnabled); -2298 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_RETIREJS_ENABLED, retireJsAnalyzerEnabled); -2299 settings.setStringIfNotNull(Settings.KEYS.ANALYZER_RETIREJS_REPO_JS_URL, retireJsUrl); -2300 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_RETIREJS_FORCEUPDATE, retireJsForceUpdate); -2301 if (retireJsUser == null && retireJsPassword == null && retireJsUrlServerId != null) { -2302 configureServerCredentials(retireJsUrlServerId, Settings.KEYS.ANALYZER_RETIREJS_REPO_JS_USER, Settings.KEYS.ANALYZER_RETIREJS_REPO_JS_PASSWORD); -2303 } else { -2304 settings.setStringIfNotEmpty(Settings.KEYS.ANALYZER_RETIREJS_REPO_JS_USER, retireJsUser); -2305 settings.setStringIfNotEmpty(Settings.KEYS.ANALYZER_RETIREJS_REPO_JS_PASSWORD, retireJsPassword); -2306 } -2307 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_MIX_AUDIT_ENABLED, mixAuditAnalyzerEnabled); -2308 settings.setStringIfNotNull(Settings.KEYS.ANALYZER_MIX_AUDIT_PATH, mixAuditPath); -2309 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_BUNDLE_AUDIT_ENABLED, bundleAuditAnalyzerEnabled); -2310 settings.setStringIfNotNull(Settings.KEYS.ANALYZER_BUNDLE_AUDIT_PATH, bundleAuditPath); -2311 settings.setStringIfNotNull(Settings.KEYS.ANALYZER_BUNDLE_AUDIT_WORKING_DIRECTORY, bundleAuditWorkingDirectory); -2312 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_COCOAPODS_ENABLED, cocoapodsAnalyzerEnabled); -2313 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_SWIFT_PACKAGE_MANAGER_ENABLED, swiftPackageManagerAnalyzerEnabled); -2314 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_SWIFT_PACKAGE_RESOLVED_ENABLED, swiftPackageResolvedAnalyzerEnabled); -2315 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_OSSINDEX_ENABLED, ossindexAnalyzerEnabled); -2316 settings.setStringIfNotEmpty(Settings.KEYS.ANALYZER_OSSINDEX_URL, ossindexAnalyzerUrl); -2317 configureServerCredentials(ossIndexServerId, Settings.KEYS.ANALYZER_OSSINDEX_USER, Settings.KEYS.ANALYZER_OSSINDEX_PASSWORD); -2318 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_OSSINDEX_USE_CACHE, ossindexAnalyzerUseCache); -2319 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_OSSINDEX_WARN_ONLY_ON_REMOTE_ERRORS, ossIndexWarnOnlyOnRemoteErrors); -2320 if (retirejs != null) { -2321 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_RETIREJS_FILTER_NON_VULNERABLE, retirejs.getFilterNonVulnerable()); -2322 settings.setArrayIfNotEmpty(Settings.KEYS.ANALYZER_RETIREJS_FILTERS, retirejs.getFilters()); -2323 } -2324 //Database configuration -2325 settings.setStringIfNotEmpty(Settings.KEYS.DB_DRIVER_NAME, databaseDriverName); -2326 settings.setStringIfNotEmpty(Settings.KEYS.DB_DRIVER_PATH, databaseDriverPath); -2327 settings.setStringIfNotEmpty(Settings.KEYS.DB_CONNECTION_STRING, connectionString); -2328 if (databaseUser == null && databasePassword == null && serverId != null) { -2329 configureServerCredentials(serverId, Settings.KEYS.DB_USER, Settings.KEYS.DB_PASSWORD); -2330 } else { -2331 settings.setStringIfNotEmpty(Settings.KEYS.DB_USER, databaseUser); -2332 settings.setStringIfNotEmpty(Settings.KEYS.DB_PASSWORD, databasePassword); -2333 } -2334 settings.setStringIfNotEmpty(Settings.KEYS.DATA_DIRECTORY, dataDirectory); -2335 settings.setStringIfNotEmpty(Settings.KEYS.DB_FILE_NAME, dbFilename); -2336 settings.setIntIfNotNull(Settings.KEYS.NVD_API_DELAY, nvdApiDelay); -2337 settings.setStringIfNotEmpty(Settings.KEYS.NVD_API_DATAFEED_URL, nvdDatafeedUrl); -2338 settings.setIntIfNotNull(Settings.KEYS.NVD_API_VALID_FOR_HOURS, nvdValidForHours); -2339 settings.setIntIfNotNull(Settings.KEYS.NVD_API_MAX_RETRY_COUNT, nvdMaxRetryCount); -2340 if (nvdApiKey == null && nvdApiServerId != null) { -2341 configureServerCredentialsApiKey(nvdApiServerId, Settings.KEYS.NVD_API_KEY); -2342 } else { -2343 settings.setStringIfNotEmpty(Settings.KEYS.NVD_API_KEY, nvdApiKey); -2344 } -2345 if (nvdUser == null && nvdPassword == null && nvdDatafeedServerId != null) { -2346 configureServerCredentials(nvdDatafeedServerId, Settings.KEYS.NVD_API_DATAFEED_USER, Settings.KEYS.NVD_API_DATAFEED_PASSWORD); -2347 } else { -2348 settings.setStringIfNotEmpty(Settings.KEYS.NVD_API_DATAFEED_USER, nvdUser); -2349 settings.setStringIfNotEmpty(Settings.KEYS.NVD_API_DATAFEED_PASSWORD, nvdPassword); -2350 } -2351 settings.setBooleanIfNotNull(Settings.KEYS.PRETTY_PRINT, prettyPrint); -2352 artifactScopeExcluded = new ArtifactScopeExcluded(skipTestScope, skipProvidedScope, skipSystemScope, skipRuntimeScope); -2353 artifactTypeExcluded = new ArtifactTypeExcluded(skipArtifactType); -2354 if (suppressionFileUser == null && suppressionFilePassword == null && suppressionFileServerId != null) { -2355 configureServerCredentials(suppressionFileServerId, Settings.KEYS.SUPPRESSION_FILE_USER, Settings.KEYS.SUPPRESSION_FILE_PASSWORD); -2356 } else { -2357 settings.setStringIfNotEmpty(Settings.KEYS.SUPPRESSION_FILE_USER, suppressionFileUser); -2358 settings.setStringIfNotEmpty(Settings.KEYS.SUPPRESSION_FILE_PASSWORD, suppressionFilePassword); -2359 } -2360 settings.setIntIfNotNull(Settings.KEYS.HOSTED_SUPPRESSIONS_VALID_FOR_HOURS, hostedSuppressionsValidForHours); -2361 settings.setStringIfNotNull(Settings.KEYS.HOSTED_SUPPRESSIONS_URL, hostedSuppressionsUrl); -2362 settings.setBooleanIfNotNull(Settings.KEYS.HOSTED_SUPPRESSIONS_FORCEUPDATE, hostedSuppressionsForceUpdate); -2363 settings.setBooleanIfNotNull(Settings.KEYS.HOSTED_SUPPRESSIONS_ENABLED, hostedSuppressionsEnabled); -2364 } -2365 //CSON: MethodLength -2366 -2367 /** -2368 * Retrieves the server credentials from the settings.xml, decrypts the -2369 * password, and places the values into the settings under the given key -2370 * names. -2371 * -2372 * @param serverId the server id -2373 * @param userSettingKey the property name for the username -2374 * @param passwordSettingKey the property name for the password -2375 */ -2376 private void configureServerCredentials(String serverId, String userSettingKey, String passwordSettingKey) { -2377 if (serverId != null) { -2378 final Server server = settingsXml.getServer(serverId); -2379 if (server != null) { -2380 final String username = server.getUsername(); -2381 String password = null; -2382 try { -2383 password = decryptPasswordFromSettings(server.getPassword()); -2384 } catch (SecDispatcherException ex) { -2385 password = handleSecDispatcherException("server", serverId, server.getPassword(), ex); -2386 } -2387 settings.setStringIfNotEmpty(userSettingKey, username); -2388 settings.setStringIfNotEmpty(passwordSettingKey, password); -2389 } else { -2390 getLog().error(String.format("Server '%s' not found in the settings.xml file", serverId)); -2391 } -2392 } -2393 } -2394 -2395 /** -2396 * Retrieves the server credentials from the settings.xml, decrypts the -2397 * password, and places the values into the settings under the given key -2398 * names. This is used to retrieve an encrypted password as an API key. -2399 * -2400 * @param serverId the server id -2401 * @param apiKeySetting the property name for the username -2402 */ -2403 private void configureServerCredentialsApiKey(String serverId, String apiKeySetting) { -2404 if (serverId != null) { -2405 final Server server = settingsXml.getServer(serverId); -2406 if (server != null) { -2407 String password = null; -2408 try { -2409 password = decryptPasswordFromSettings(server.getPassword()); -2410 } catch (SecDispatcherException ex) { -2411 password = handleSecDispatcherException("server", serverId, server.getPassword(), ex); -2412 } -2413 settings.setStringIfNotEmpty(apiKeySetting, password); -2414 } else { -2415 getLog().error(String.format("Server '%s' not found in the settings.xml file", serverId)); -2416 } -2417 } -2418 } -2419 -2420 /** -2421 * Decrypts a password from the Maven settings if it needs to be decrypted. -2422 * If it's not encrypted the input password will be returned unchanged. -2423 * -2424 * @param password the original password value from the settings.xml -2425 * @return the decrypted password from the Maven configuration -2426 * @throws SecDispatcherException thrown if there is an error decrypting the -2427 * password -2428 */ -2429 private String decryptPasswordFromSettings(String password) throws SecDispatcherException { -2430 //The following fix was copied from: -2431 // https://github.com/bsorrentino/maven-confluence-plugin/blob/master/maven-confluence-reporting-plugin/src/main/java/org/bsc/maven/confluence/plugin/AbstractBaseConfluenceMojo.java -2432 // -2433 // FIX to resolve -2434 // org.sonatype.plexus.components.sec.dispatcher.SecDispatcherException: -2435 // java.io.FileNotFoundException: ~/.settings-security.xml (No such file or directory) -2436 // -2437 if (securityDispatcher instanceof DefaultSecDispatcher) { -2438 ((DefaultSecDispatcher) securityDispatcher).setConfigurationFile("~/.m2/settings-security.xml"); -2439 } -2440 -2441 return securityDispatcher.decrypt(password); -2442 } -2443 -2444 /** -2445 * Handles a SecDispatcherException that was thrown at an attempt to decrypt -2446 * an encrypted password from the Maven settings. -2447 * -2448 * @param settingsElementName - "server" or "proxy" -2449 * @param settingsElementId - value of the id attribute of the proxy resp. -2450 * server element to which the password belongs -2451 * @param passwordValueFromSettings - original, undecrypted password value -2452 * from the settings -2453 * @param ex - the Exception to handle -2454 * @return the password fallback value to go on with, might be a not working -2455 * one. -2456 */ -2457 private String handleSecDispatcherException(String settingsElementName, String settingsElementId, String passwordValueFromSettings, -2458 SecDispatcherException ex) { -2459 String password = passwordValueFromSettings; -2460 if (ex.getCause() instanceof FileNotFoundException -2461 || (ex.getCause() != null && ex.getCause().getCause() instanceof FileNotFoundException)) { -2462 //maybe its not encrypted? -2463 final String tmp = passwordValueFromSettings; -2464 if (tmp.startsWith("{") && tmp.endsWith("}")) { -2465 getLog().error(String.format( -2466 "Unable to decrypt the %s password for %s id '%s' in settings.xml%n\tCause: %s", -2467 settingsElementName, settingsElementName, settingsElementId, ex.getMessage())); -2468 } else { -2469 password = tmp; -2470 } -2471 } else { -2472 getLog().error(String.format( -2473 "Unable to decrypt the %s password for %s id '%s' in settings.xml%n\tCause: %s", -2474 settingsElementName, settingsElementName, settingsElementId, ex.getMessage())); -2475 } -2476 return password; -2477 } -2478 -2479 /** -2480 * Combines the configured suppressionFile and suppressionFiles into a -2481 * single array. -2482 * -2483 * @return an array of suppression file paths -2484 */ -2485 private String[] determineSuppressions() { -2486 String[] suppressions = suppressionFiles; -2487 if (suppressionFile != null) { -2488 if (suppressions == null) { -2489 suppressions = new String[]{suppressionFile}; -2490 } else { -2491 suppressions = Arrays.copyOf(suppressions, suppressions.length + 1); -2492 suppressions[suppressions.length - 1] = suppressionFile; -2493 } -2494 } -2495 return suppressions; -2496 } -2497 -2498 /** -2499 * Hacky method of muting the noisy logging from JCS -2500 */ -2501 private void muteJCS() { -2502 System.setProperty("jcs.logSystem", "slf4j"); -2503 if (!getLog().isDebugEnabled()) { -2504 Slf4jAdapter.muteLogging(true); -2505 } -2506 } -2507 -2508 /** -2509 * Returns the maven proxy. -2510 * -2511 * @return the maven proxy -2512 */ -2513 private Proxy getMavenProxy() { -2514 if (mavenSettings != null) { -2515 final List<Proxy> proxies = mavenSettings.getProxies(); -2516 if (proxies != null && !proxies.isEmpty()) { -2517 if (mavenSettingsProxyId != null) { -2518 for (Proxy proxy : proxies) { -2519 if (mavenSettingsProxyId.equalsIgnoreCase(proxy.getId())) { -2520 return proxy; -2521 } -2522 } -2523 } else { -2524 for (Proxy aProxy : proxies) { -2525 if (aProxy.isActive()) { -2526 return aProxy; -2527 } -2528 } -2529 } -2530 } -2531 } -2532 return null; -2533 } -2534 -2535 /** -2536 * Returns a reference to the current project. This method is used instead -2537 * of auto-binding the project via component annotation in concrete -2538 * implementations of this. If the child has a -2539 * <code>@Component MavenProject project;</code> defined then the abstract -2540 * class (i.e. this class) will not have access to the current project (just -2541 * the way Maven works with the binding). -2542 * -2543 * @return returns a reference to the current project -2544 */ -2545 protected MavenProject getProject() { -2546 return project; -2547 } -2548 -2549 /** -2550 * Returns the list of Maven Projects in this build. +141 private final List<File> scannedFiles = new ArrayList<>(); +142 //</editor-fold> +143 // <editor-fold defaultstate="collapsed" desc="Maven bound parameters and components"> +144 /** +145 * Sets whether or not the mojo should fail if an error occurs. +146 */ +147 @SuppressWarnings("CanBeFinal") +148 @Parameter(property = "failOnError", defaultValue = "true", required = true) +149 private boolean failOnError; +150 +151 /** +152 * The Maven Project Object. +153 */ +154 @SuppressWarnings("CanBeFinal") +155 @Parameter(property = "project", required = true, readonly = true) +156 private MavenProject project; +157 /** +158 * List of Maven project of the current build +159 */ +160 @SuppressWarnings("CanBeFinal") +161 @Parameter(readonly = true, required = true, property = "reactorProjects") +162 private List<MavenProject> reactorProjects; +163 /** +164 * The entry point towards a Maven version independent way of resolving +165 * artifacts (handles both Maven 3.0 Sonatype and Maven 3.1+ eclipse Aether +166 * implementations). +167 */ +168 @SuppressWarnings("CanBeFinal") +169 @Component +170 private ArtifactResolver artifactResolver; +171 /** +172 * The entry point towards a Maven version independent way of resolving +173 * dependencies (handles both Maven 3.0 Sonatype and Maven 3.1+ eclipse +174 * Aether implementations). Contrary to the ArtifactResolver this resolver +175 * also takes into account the additional repositories defined in the +176 * dependency-path towards transitive dependencies. +177 */ +178 @SuppressWarnings("CanBeFinal") +179 @Component +180 private DependencyResolver dependencyResolver; +181 +182 /** +183 * The Maven Session. +184 */ +185 @SuppressWarnings("CanBeFinal") +186 @Parameter(defaultValue = "${session}", readonly = true, required = true) +187 private MavenSession session; +188 +189 /** +190 * Component within Maven to build the dependency graph. +191 */ +192 @Component +193 private DependencyGraphBuilder dependencyGraphBuilder; +194 +195 /** +196 * The output directory. This generally maps to "target". +197 */ +198 @SuppressWarnings("CanBeFinal") +199 @Parameter(defaultValue = "${project.build.directory}", required = true, property = "odc.outputDirectory") +200 private File outputDirectory; +201 /** +202 * This is a reference to the &gt;reporting&lt; sections +203 * <code>outputDirectory</code>. This cannot be configured in the +204 * dependency-check mojo directly. This generally maps to "target/site". +205 */ +206 @Parameter(property = "project.reporting.outputDirectory", readonly = true) +207 private File reportOutputDirectory; +208 /** +209 * Specifies if the build should be failed if a CVSS score above a specified +210 * level is identified. The default is 11 which means since the CVSS scores +211 * are 0-10, by default the build will never fail. +212 */ +213 @SuppressWarnings("CanBeFinal") +214 @Parameter(property = "failBuildOnCVSS", defaultValue = "11", required = true) +215 private float failBuildOnCVSS = 11f; +216 /** +217 * Specifies the CVSS score that is considered a "test" failure when +218 * generating a jUnit style report. The default value is 0 - all +219 * vulnerabilities are considered a failure. +220 */ +221 @SuppressWarnings("CanBeFinal") +222 @Parameter(property = "junitFailOnCVSS", defaultValue = "0", required = true) +223 private float junitFailOnCVSS = 0; +224 /** +225 * Fail the build if any dependency has a vulnerability listed. +226 * +227 * @deprecated use {@link BaseDependencyCheckMojo#failBuildOnCVSS} with a +228 * value of 0 instead +229 */ +230 @SuppressWarnings("CanBeFinal") +231 @Parameter(property = "failBuildOnAnyVulnerability", defaultValue = "false", required = true) +232 @Deprecated +233 private boolean failBuildOnAnyVulnerability = false; +234 /** +235 * Sets whether auto-updating of the NVD CVE data is enabled. It is not +236 * recommended that this be turned to false. Default is true. +237 */ +238 @SuppressWarnings("CanBeFinal") +239 @Parameter(property = "autoUpdate") +240 private Boolean autoUpdate; +241 /** +242 * Sets whether Experimental analyzers are enabled. Default is false. +243 */ +244 @SuppressWarnings("CanBeFinal") +245 @Parameter(property = "enableExperimental") +246 private Boolean enableExperimental; +247 /** +248 * Sets whether retired analyzers are enabled. Default is false. +249 */ +250 @SuppressWarnings("CanBeFinal") +251 @Parameter(property = "enableRetired") +252 private Boolean enableRetired; +253 /** +254 * Sets whether the Golang Dependency analyzer is enabled. Default is true. +255 */ +256 @SuppressWarnings("CanBeFinal") +257 @Parameter(property = "golangDepEnabled") +258 private Boolean golangDepEnabled; +259 /** +260 * Sets whether Golang Module Analyzer is enabled; this requires `go` to be +261 * installed. Default is true. +262 */ +263 @SuppressWarnings("CanBeFinal") +264 @Parameter(property = "golangModEnabled") +265 private Boolean golangModEnabled; +266 /** +267 * Sets the path to `go`. +268 */ +269 @SuppressWarnings("CanBeFinal") +270 @Parameter(property = "pathToGo") +271 private String pathToGo; +272 +273 /** +274 * Sets the path to `yarn`. +275 */ +276 @SuppressWarnings("CanBeFinal") +277 @Parameter(property = "pathToYarn") +278 private String pathToYarn; +279 /** +280 * Sets the path to `pnpm`. +281 */ +282 @SuppressWarnings("CanBeFinal") +283 @Parameter(property = "pathToPnpm") +284 private String pathToPnpm; +285 /** +286 * Use pom dependency information for snapshot dependencies that are part of +287 * the Maven reactor while aggregate scanning a multi-module project. +288 */ +289 @Parameter(property = "dependency-check.virtualSnapshotsFromReactor", defaultValue = "true") +290 private Boolean virtualSnapshotsFromReactor; +291 /** +292 * The report format to be generated (HTML, XML, CSV, JSON, JUNIT, SARIF, +293 * JENKINS, GITLAB, ALL). Multiple formats can be selected using a comma +294 * delineated list. +295 */ +296 @SuppressWarnings("CanBeFinal") +297 @Parameter(property = "format", defaultValue = "HTML", required = true) +298 private String format = "HTML"; +299 +300 /** +301 * Whether or not the XML and JSON report formats should be pretty printed. +302 * The default is false. +303 */ +304 @Parameter(property = "prettyPrint") +305 private Boolean prettyPrint; +306 /** +307 * The report format to be generated (HTML, XML, CSV, JSON, JUNIT, SARIF, +308 * JENKINS, GITLAB, ALL). Multiple formats can be selected using a comma +309 * delineated list. +310 */ +311 @Parameter(property = "formats", required = true) +312 private String[] formats; +313 /** +314 * The Maven settings. +315 */ +316 @SuppressWarnings("CanBeFinal") +317 @Parameter(property = "mavenSettings", defaultValue = "${settings}") +318 private org.apache.maven.settings.Settings mavenSettings; +319 +320 /** +321 * The maven settings proxy id. +322 */ +323 @SuppressWarnings("CanBeFinal") +324 @Parameter(property = "mavenSettingsProxyId") +325 private String mavenSettingsProxyId; +326 +327 /** +328 * The Connection Timeout. +329 */ +330 @SuppressWarnings("CanBeFinal") +331 @Parameter(property = "connectionTimeout") +332 private String connectionTimeout; +333 /** +334 * The Read Timeout. +335 */ +336 @SuppressWarnings("CanBeFinal") +337 @Parameter(property = "readTimeout") +338 private String readTimeout; +339 /** +340 * Sets whether dependency-check should check if there is a new version +341 * available. +342 */ +343 @SuppressWarnings("CanBeFinal") +344 @Parameter(property = "versionCheckEnabled", defaultValue = "true") +345 private boolean versionCheckEnabled; +346 /** +347 * The paths to the suppression files. The parameter value can be a local +348 * file path, a URL to a suppression file, or even a reference to a file on +349 * the class path (see +350 * https://github.com/jeremylong/DependencyCheck/issues/1878#issuecomment-487533799) +351 */ +352 @SuppressWarnings("CanBeFinal") +353 @Parameter(property = "suppressionFiles") +354 private String[] suppressionFiles; +355 /** +356 * The paths to the suppression file. The parameter value can be a local +357 * file path, a URL to a suppression file, or even a reference to a file on +358 * the class path (see +359 * https://github.com/jeremylong/DependencyCheck/issues/1878#issuecomment-487533799) +360 */ +361 @SuppressWarnings("CanBeFinal") +362 @Parameter(property = "suppressionFile") +363 private String suppressionFile; +364 /** +365 * The username used when connecting to the suppressionFiles. +366 */ +367 @Parameter(property = "suppressionFileUser") +368 private String suppressionFileUser; +369 /** +370 * The password used when connecting to the suppressionFiles. +371 */ +372 @Parameter(property = "suppressionFilePassword") +373 private String suppressionFilePassword; +374 /** +375 * The server id in the settings.xml; used to retrieve encrypted passwords +376 * from the settings.xml for suppressionFile(s). +377 */ +378 @SuppressWarnings("CanBeFinal") +379 @Parameter(property = "suppressionFileServerId") +380 private String suppressionFileServerId; +381 /** +382 * The path to the hints file. +383 */ +384 @SuppressWarnings("CanBeFinal") +385 @Parameter(property = "hintsFile") +386 private String hintsFile; +387 +388 /** +389 * Flag indicating whether or not to show a summary in the output. +390 */ +391 @SuppressWarnings("CanBeFinal") +392 @Parameter(property = "showSummary", defaultValue = "true") +393 private boolean showSummary = true; +394 +395 /** +396 * Whether or not the Jar Analyzer is enabled. +397 */ +398 @SuppressWarnings("CanBeFinal") +399 @Parameter(property = "jarAnalyzerEnabled") +400 private Boolean jarAnalyzerEnabled; +401 +402 /** +403 * Sets whether the Dart analyzer is enabled. Default is true. +404 */ +405 @SuppressWarnings("CanBeFinal") +406 @Parameter(property = "dartAnalyzerEnabled") +407 private Boolean dartAnalyzerEnabled; +408 +409 /** +410 * Whether or not the Archive Analyzer is enabled. +411 */ +412 @SuppressWarnings("CanBeFinal") +413 @Parameter(property = "archiveAnalyzerEnabled") +414 private Boolean archiveAnalyzerEnabled; +415 /** +416 * Whether or not the Known Exploited Vulnerability Analyzer is enabled. +417 */ +418 @SuppressWarnings("CanBeFinal") +419 @Parameter(property = "knownExploitedEnabled") +420 private Boolean knownExploitedEnabled; +421 /** +422 * The URL to the CISA Known Exploited Vulnerabilities JSON datafeed. +423 */ +424 @SuppressWarnings("CanBeFinal") +425 @Parameter(property = "knownExploitedUrl") +426 private String knownExploitedUrl; +427 /** +428 * Sets whether the Python Distribution Analyzer will be used. +429 */ +430 @SuppressWarnings("CanBeFinal") +431 @Parameter(property = "pyDistributionAnalyzerEnabled") +432 private Boolean pyDistributionAnalyzerEnabled; +433 /** +434 * Sets whether the Python Package Analyzer will be used. +435 */ +436 @Parameter(property = "pyPackageAnalyzerEnabled") +437 private Boolean pyPackageAnalyzerEnabled; +438 /** +439 * Sets whether the Ruby Gemspec Analyzer will be used. +440 */ +441 @SuppressWarnings("CanBeFinal") +442 @Parameter(property = "rubygemsAnalyzerEnabled") +443 private Boolean rubygemsAnalyzerEnabled; +444 /** +445 * Sets whether or not the openssl Analyzer should be used. +446 */ +447 @SuppressWarnings("CanBeFinal") +448 @Parameter(property = "opensslAnalyzerEnabled") +449 private Boolean opensslAnalyzerEnabled; +450 /** +451 * Sets whether or not the CMake Analyzer should be used. +452 */ +453 @SuppressWarnings("CanBeFinal") +454 @Parameter(property = "cmakeAnalyzerEnabled") +455 private Boolean cmakeAnalyzerEnabled; +456 /** +457 * Sets whether or not the autoconf Analyzer should be used. +458 */ +459 @SuppressWarnings("CanBeFinal") +460 @Parameter(property = "autoconfAnalyzerEnabled") +461 private Boolean autoconfAnalyzerEnabled; +462 /** +463 * Sets whether or not the Maven install Analyzer should be used. +464 */ +465 @SuppressWarnings("CanBeFinal") +466 @Parameter(property = "mavenInstallAnalyzerEnabled") +467 private Boolean mavenInstallAnalyzerEnabled; +468 /** +469 * Sets whether or not the pip Analyzer should be used. +470 */ +471 @SuppressWarnings("CanBeFinal") +472 @Parameter(property = "pipAnalyzerEnabled") +473 private Boolean pipAnalyzerEnabled; +474 /** +475 * Sets whether or not the pipfile Analyzer should be used. +476 */ +477 @SuppressWarnings("CanBeFinal") +478 @Parameter(property = "pipfileAnalyzerEnabled") +479 private Boolean pipfileAnalyzerEnabled; +480 /** +481 * Sets whether or not the poetry Analyzer should be used. +482 */ +483 @SuppressWarnings("CanBeFinal") +484 @Parameter(property = "poetryAnalyzerEnabled") +485 private Boolean poetryAnalyzerEnabled; +486 /** +487 * Sets whether or not the PHP Composer Lock File Analyzer should be used. +488 */ +489 @Parameter(property = "composerAnalyzerEnabled") +490 private Boolean composerAnalyzerEnabled; +491 /** +492 * Whether or not the Perl CPAN File Analyzer is enabled. +493 */ +494 @Parameter(property = "cpanfileAnalyzerEnabled") +495 private Boolean cpanfileAnalyzerEnabled; +496 /** +497 * Sets whether or not the Node.js Analyzer should be used. +498 */ +499 @SuppressWarnings("CanBeFinal") +500 @Parameter(property = "nodeAnalyzerEnabled") +501 private Boolean nodeAnalyzerEnabled; +502 /** +503 * Sets whether or not the Node Audit Analyzer should be used. +504 */ +505 @SuppressWarnings("CanBeFinal") +506 @Parameter(property = "nodeAuditAnalyzerEnabled") +507 private Boolean nodeAuditAnalyzerEnabled; +508 +509 /** +510 * The Node Audit API URL for the Node Audit Analyzer. +511 */ +512 @SuppressWarnings("CanBeFinal") +513 @Parameter(property = "nodeAuditAnalyzerUrl") +514 private String nodeAuditAnalyzerUrl; +515 +516 /** +517 * Sets whether or not the Yarn Audit Analyzer should be used. +518 */ +519 @SuppressWarnings("CanBeFinal") +520 @Parameter(property = "yarnAuditAnalyzerEnabled") +521 private Boolean yarnAuditAnalyzerEnabled; +522 +523 /** +524 * Sets whether or not the Pnpm Audit Analyzer should be used. +525 */ +526 @SuppressWarnings("CanBeFinal") +527 @Parameter(property = "pnpmAuditAnalyzerEnabled") +528 private Boolean pnpmAuditAnalyzerEnabled; +529 +530 /** +531 * Sets whether or not the Node Audit Analyzer should use a local cache. +532 */ +533 @SuppressWarnings("CanBeFinal") +534 @Parameter(property = "nodeAuditAnalyzerUseCache") +535 private Boolean nodeAuditAnalyzerUseCache; +536 /** +537 * Sets whether or not the Node Audit Analyzer should skip devDependencies. +538 */ +539 @SuppressWarnings("CanBeFinal") +540 @Parameter(property = "nodeAuditSkipDevDependencies") +541 private Boolean nodeAuditSkipDevDependencies; +542 /** +543 * Sets whether or not the Node.js Analyzer should skip devDependencies. +544 */ +545 @SuppressWarnings("CanBeFinal") +546 @Parameter(property = "nodePackageSkipDevDependencies") +547 private Boolean nodePackageSkipDevDependencies; +548 /** +549 * Sets whether or not the Retirejs Analyzer should be used. +550 */ +551 @SuppressWarnings("CanBeFinal") +552 @Parameter(property = "retireJsAnalyzerEnabled") +553 private Boolean retireJsAnalyzerEnabled; +554 /** +555 * The Retire JS repository URL. +556 */ +557 @SuppressWarnings("CanBeFinal") +558 @Parameter(property = "retireJsUrl") +559 private String retireJsUrl; +560 /** +561 * The username to use when connecting to the CVE-URL. +562 */ +563 @Parameter(property = "retireJsUser") +564 private String retireJsUser; +565 /** +566 * The password to authenticate to the CVE-URL. +567 */ +568 @Parameter(property = "retireJsPassword") +569 private String retireJsPassword; +570 /** +571 * The server id in the settings.xml; used to retrieve encrypted passwords +572 * from the settings.xml for cve-URLs. +573 */ +574 @SuppressWarnings("CanBeFinal") +575 @Parameter(property = "retireJsUrlServerId") +576 private String retireJsUrlServerId; +577 /** +578 * Whether the Retire JS repository will be updated regardless of the +579 * `autoupdate` settings. +580 */ +581 @SuppressWarnings("CanBeFinal") +582 @Parameter(property = "retireJsForceUpdate") +583 private Boolean retireJsForceUpdate; +584 /** +585 * Whether or not the .NET Assembly Analyzer is enabled. +586 */ +587 @Parameter(property = "assemblyAnalyzerEnabled") +588 private Boolean assemblyAnalyzerEnabled; +589 /** +590 * Whether or not the MS Build Analyzer is enabled. +591 */ +592 @Parameter(property = "msbuildAnalyzerEnabled") +593 private Boolean msbuildAnalyzerEnabled; +594 /** +595 * Whether or not the .NET Nuspec Analyzer is enabled. +596 */ +597 @SuppressWarnings("CanBeFinal") +598 @Parameter(property = "nuspecAnalyzerEnabled") +599 private Boolean nuspecAnalyzerEnabled; +600 +601 /** +602 * Whether or not the .NET packages.config Analyzer is enabled. +603 */ +604 @SuppressWarnings("CanBeFinal") +605 @Parameter(property = "nugetconfAnalyzerEnabled") +606 private Boolean nugetconfAnalyzerEnabled; +607 +608 /** +609 * Whether or not the Libman Analyzer is enabled. +610 */ +611 @SuppressWarnings("CanBeFinal") +612 @Parameter(property = "libmanAnalyzerEnabled") +613 private Boolean libmanAnalyzerEnabled; +614 +615 /** +616 * Whether or not the Central Analyzer is enabled. +617 */ +618 @SuppressWarnings("CanBeFinal") +619 @Parameter(property = "centralAnalyzerEnabled") +620 private Boolean centralAnalyzerEnabled; +621 +622 /** +623 * Whether or not the Central Analyzer should use a local cache. +624 */ +625 @SuppressWarnings("CanBeFinal") +626 @Parameter(property = "centralAnalyzerUseCache") +627 private Boolean centralAnalyzerUseCache; +628 +629 /** +630 * Whether or not the Artifactory Analyzer is enabled. +631 */ +632 @SuppressWarnings("CanBeFinal") +633 @Parameter(property = "artifactoryAnalyzerEnabled") +634 private Boolean artifactoryAnalyzerEnabled; +635 /** +636 * The serverId inside the settings.xml containing the username and token to +637 * access artifactory +638 */ +639 @SuppressWarnings("CanBeFinal") +640 @Parameter(property = "artifactoryAnalyzerServerId") +641 private String artifactoryAnalyzerServerId; +642 /** +643 * The username (only used with API token) to connect to Artifactory +644 * instance +645 */ +646 @SuppressWarnings("CanBeFinal") +647 @Parameter(property = "artifactoryAnalyzerUsername") +648 private String artifactoryAnalyzerUsername; +649 /** +650 * The API token to connect to Artifactory instance +651 */ +652 @SuppressWarnings("CanBeFinal") +653 @Parameter(property = "artifactoryAnalyzerApiToken") +654 private String artifactoryAnalyzerApiToken; +655 /** +656 * The bearer token to connect to Artifactory instance +657 */ +658 @SuppressWarnings("CanBeFinal") +659 @Parameter(property = "artifactoryAnalyzerBearerToken") +660 private String artifactoryAnalyzerBearerToken; +661 /** +662 * The Artifactory URL for the Artifactory analyzer. +663 */ +664 @SuppressWarnings("CanBeFinal") +665 @Parameter(property = "artifactoryAnalyzerUrl") +666 private String artifactoryAnalyzerUrl; +667 /** +668 * Whether Artifactory should be accessed through a proxy or not +669 */ +670 @SuppressWarnings("CanBeFinal") +671 @Parameter(property = "artifactoryAnalyzerUseProxy") +672 private Boolean artifactoryAnalyzerUseProxy; +673 /** +674 * Whether the Artifactory analyzer should be run in parallel or not. +675 */ +676 @SuppressWarnings("CanBeFinal") +677 @Parameter(property = "artifactoryAnalyzerParallelAnalysis", defaultValue = "true") +678 private Boolean artifactoryAnalyzerParallelAnalysis; +679 /** +680 * Whether or not the Nexus Analyzer is enabled. +681 */ +682 @SuppressWarnings("CanBeFinal") +683 @Parameter(property = "nexusAnalyzerEnabled") +684 private Boolean nexusAnalyzerEnabled; +685 +686 /** +687 * Whether or not the Sonatype OSS Index analyzer is enabled. +688 */ +689 @SuppressWarnings("CanBeFinal") +690 @Parameter(property = "ossindexAnalyzerEnabled") +691 private Boolean ossindexAnalyzerEnabled; +692 /** +693 * Whether or not the Sonatype OSS Index analyzer should cache results. +694 */ +695 @SuppressWarnings("CanBeFinal") +696 @Parameter(property = "ossindexAnalyzerUseCache") +697 private Boolean ossindexAnalyzerUseCache; +698 /** +699 * URL of the Sonatype OSS Index service. +700 */ +701 @SuppressWarnings("CanBeFinal") +702 @Parameter(property = "ossindexAnalyzerUrl") +703 private String ossindexAnalyzerUrl; +704 +705 /** +706 * The id of a server defined in the settings.xml that configures the +707 * credentials (username and password) for a OSS Index service. +708 */ +709 @SuppressWarnings("CanBeFinal") +710 @Parameter(property = "ossIndexServerId") +711 private String ossIndexServerId; +712 +713 /** +714 * Whether we should only warn about Sonatype OSS Index remote errors +715 * instead of failing the goal completely. +716 */ +717 @SuppressWarnings("CanBeFinal") +718 @Parameter(property = "ossIndexWarnOnlyOnRemoteErrors") +719 private Boolean ossIndexWarnOnlyOnRemoteErrors; +720 +721 /** +722 * Whether or not the Elixir Mix Audit Analyzer is enabled. +723 */ +724 @Parameter(property = "mixAuditAnalyzerEnabled") +725 private Boolean mixAuditAnalyzerEnabled; +726 +727 /** +728 * Sets the path for the mix_audit binary. +729 */ +730 @SuppressWarnings("CanBeFinal") +731 @Parameter(property = "mixAuditPath") +732 private String mixAuditPath; +733 +734 /** +735 * Whether or not the Ruby Bundle Audit Analyzer is enabled. +736 */ +737 @Parameter(property = "bundleAuditAnalyzerEnabled") +738 private Boolean bundleAuditAnalyzerEnabled; +739 +740 /** +741 * Sets the path for the bundle-audit binary. +742 */ +743 @SuppressWarnings("CanBeFinal") +744 @Parameter(property = "bundleAuditPath") +745 private String bundleAuditPath; +746 +747 /** +748 * Sets the path for the working directory that the bundle-audit binary +749 * should be executed from. +750 */ +751 @SuppressWarnings("CanBeFinal") +752 @Parameter(property = "bundleAuditWorkingDirectory") +753 private String bundleAuditWorkingDirectory; +754 +755 /** +756 * Whether or not the CocoaPods Analyzer is enabled. +757 */ +758 @SuppressWarnings("CanBeFinal") +759 @Parameter(property = "cocoapodsAnalyzerEnabled") +760 private Boolean cocoapodsAnalyzerEnabled; +761 +762 /** +763 * Whether or not the Swift package Analyzer is enabled. +764 */ +765 @SuppressWarnings("CanBeFinal") +766 @Parameter(property = "swiftPackageManagerAnalyzerEnabled") +767 private Boolean swiftPackageManagerAnalyzerEnabled; +768 /** +769 * Whether or not the Swift package resolved Analyzer is enabled. +770 */ +771 @SuppressWarnings("CanBeFinal") +772 @Parameter(property = "swiftPackageResolvedAnalyzerEnabled") +773 private Boolean swiftPackageResolvedAnalyzerEnabled; +774 /** +775 * The URL of a Nexus server's REST API end point +776 * (http://domain/nexus/service/local). +777 */ +778 @SuppressWarnings("CanBeFinal") +779 @Parameter(property = "nexusUrl") +780 private String nexusUrl; +781 /** +782 * The id of a server defined in the settings.xml that configures the +783 * credentials (username and password) for a Nexus server's REST API end +784 * point. When not specified the communication with the Nexus server's REST +785 * API will be unauthenticated. +786 */ +787 @SuppressWarnings("CanBeFinal") +788 @Parameter(property = "nexusServerId") +789 private String nexusServerId; +790 /** +791 * Whether or not the configured proxy is used to connect to Nexus. +792 */ +793 @SuppressWarnings("CanBeFinal") +794 @Parameter(property = "nexusUsesProxy") +795 private Boolean nexusUsesProxy; +796 /** +797 * The database connection string. +798 */ +799 @SuppressWarnings("CanBeFinal") +800 @Parameter(property = "connectionString") +801 private String connectionString; +802 +803 /** +804 * The database driver name. An example would be org.h2.Driver. +805 */ +806 @SuppressWarnings("CanBeFinal") +807 @Parameter(property = "databaseDriverName") +808 private String databaseDriverName; +809 /** +810 * The path to the database driver if it is not on the class path. +811 */ +812 @SuppressWarnings("CanBeFinal") +813 @Parameter(property = "databaseDriverPath") +814 private String databaseDriverPath; +815 /** +816 * A reference to the settings.xml settings. +817 */ +818 @SuppressWarnings("CanBeFinal") +819 @Parameter(defaultValue = "${settings}", readonly = true, required = true) +820 private org.apache.maven.settings.Settings settingsXml; +821 /** +822 * The security dispatcher that can decrypt passwords in the settings.xml. +823 */ +824 @Component(role = SecDispatcher.class, hint = "default") +825 private SecDispatcher securityDispatcher; +826 /** +827 * The database user name. +828 */ +829 @Parameter(property = "databaseUser") +830 private String databaseUser; +831 /** +832 * The password to use when connecting to the database. +833 */ +834 @Parameter(property = "databasePassword") +835 private String databasePassword; +836 /** +837 * A comma-separated list of file extensions to add to analysis next to jar, +838 * zip, .... +839 */ +840 @SuppressWarnings("CanBeFinal") +841 @Parameter(property = "zipExtensions") +842 private String zipExtensions; +843 /** +844 * Skip Dependency Check altogether. +845 */ +846 @SuppressWarnings("CanBeFinal") +847 @Parameter(property = "dependency-check.skip", defaultValue = "false") +848 private boolean skip = false; +849 /** +850 * Skip Analysis for Test Scope Dependencies. +851 */ +852 @SuppressWarnings("CanBeFinal") +853 @Parameter(property = "skipTestScope", defaultValue = "true") +854 private boolean skipTestScope = true; +855 /** +856 * Skip Analysis for Runtime Scope Dependencies. +857 */ +858 @SuppressWarnings("CanBeFinal") +859 @Parameter(property = "skipRuntimeScope", defaultValue = "false") +860 private boolean skipRuntimeScope = false; +861 /** +862 * Skip Analysis for Provided Scope Dependencies. +863 */ +864 @SuppressWarnings("CanBeFinal") +865 @Parameter(property = "skipProvidedScope", defaultValue = "false") +866 private boolean skipProvidedScope = false; +867 +868 /** +869 * Skip Analysis for System Scope Dependencies. +870 */ +871 @SuppressWarnings("CanBeFinal") +872 @Parameter(property = "skipSystemScope", defaultValue = "false") +873 private boolean skipSystemScope = false; +874 +875 /** +876 * Skip Analysis for dependencyManagement section. +877 */ +878 @SuppressWarnings("CanBeFinal") +879 @Parameter(property = "skipDependencyManagement", defaultValue = "true") +880 private boolean skipDependencyManagement = true; +881 +882 /** +883 * Skip analysis for dependencies which type matches this regular +884 * expression. This filters on the `type` of dependency as defined in the +885 * dependency section: jar, pom, test-jar, etc. +886 */ +887 @SuppressWarnings("CanBeFinal") +888 @Parameter(property = "skipArtifactType") +889 private String skipArtifactType; +890 +891 /** +892 * The data directory, hold DC SQL DB. +893 */ +894 @SuppressWarnings("CanBeFinal") +895 @Parameter(property = "dataDirectory") +896 private String dataDirectory; +897 +898 /** +899 * The name of the DC DB. +900 */ +901 @SuppressWarnings("CanBeFinal") +902 @Parameter(property = "dbFilename") +903 private String dbFilename; +904 /** +905 * The server id in the settings.xml; used to retrieve encrypted passwords +906 * from the settings.xml. This is used for the database username and +907 * password. +908 */ +909 @SuppressWarnings("CanBeFinal") +910 @Parameter(property = "serverId") +911 private String serverId; +912 /** +913 * The NVD API Key. +914 */ +915 @SuppressWarnings("CanBeFinal") +916 @Parameter(property = "nvdApiKey") +917 private String nvdApiKey; +918 /** +919 * The maximum number of retry requests for a single call to the NVD API. +920 */ +921 @SuppressWarnings("CanBeFinal") +922 @Parameter(property = "nvdMaxRetryCount") +923 private Integer nvdMaxRetryCount; +924 /** +925 * The server id in the settings.xml; used to retrieve encrypted API Key +926 * from the settings.xml for the NVD API Key. Note that the password is used +927 * as the API Key +928 */ +929 @SuppressWarnings("CanBeFinal") +930 @Parameter(property = "nvdApiServerId") +931 private String nvdApiServerId; +932 +933 /** +934 * The number of hours to wait before checking for new updates from the NVD. +935 */ +936 @SuppressWarnings("CanBeFinal") +937 @Parameter(property = "nvdValidForHours") +938 private Integer nvdValidForHours; +939 /** +940 * The NVD API Endpoint; setting this is uncommon. +941 */ +942 @SuppressWarnings("CanBeFinal") +943 @Parameter(property = "nvdApiEndpoint") +944 private String nvdApiEndpoint; +945 /** +946 * The NVD API Data Feed URL. +947 */ +948 @SuppressWarnings("CanBeFinal") +949 @Parameter(property = "nvdDatafeedUrl") +950 private String nvdDatafeedUrl; +951 +952 /** +953 * The server id in the settings.xml; used to retrieve encrypted passwords +954 * from the settings.xml for the NVD Data Feed. +955 */ +956 @SuppressWarnings("CanBeFinal") +957 @Parameter(property = "nvdDatafeedServerId") +958 private String nvdDatafeedServerId; +959 /** +960 * The username for basic auth to the NVD Data Feed. +961 */ +962 @SuppressWarnings("CanBeFinal") +963 @Parameter(property = "nvdUser") +964 private String nvdUser; +965 /** +966 * The password for basic auth to the NVD Data Feed. +967 */ +968 @SuppressWarnings("CanBeFinal") +969 @Parameter(property = "nvdPassword") +970 private String nvdPassword; +971 /** +972 * The time in milliseconds to wait between downloading NVD API data. +973 */ +974 @SuppressWarnings("CanBeFinal") +975 @Parameter(property = "nvdApiDelay") +976 private Integer nvdApiDelay; +977 +978 /** +979 * The path to dotnet core. +980 */ +981 @SuppressWarnings("CanBeFinal") +982 @Parameter(property = "pathToCore") +983 private String pathToCore; +984 /** +985 * The hosted suppressions file URL. +986 */ +987 @SuppressWarnings("CanBeFinal") +988 @Parameter(property = "hostedSuppressionsUrl") +989 private String hostedSuppressionsUrl; +990 /** +991 * Whether the hosted suppressions file will be updated regardless of the +992 * `autoupdate` settings. +993 */ +994 @SuppressWarnings("CanBeFinal") +995 @Parameter(property = "hostedSuppressionsForceUpdate") +996 private Boolean hostedSuppressionsForceUpdate; +997 /** +998 * Whether the hosted suppressions file will be used. +999 */ +1000 @SuppressWarnings("CanBeFinal") +1001 @Parameter(property = "hostedSuppressionsEnabled") +1002 private Boolean hostedSuppressionsEnabled; +1003 /** +1004 * Skip excessive hosted suppression file update checks for a designated +1005 * duration in hours (defaults to 2 hours). +1006 */ +1007 @SuppressWarnings("CanBeFinal") +1008 @Parameter(property = "hostedSuppressionsValidForHours") +1009 private Integer hostedSuppressionsValidForHours; +1010 +1011 /** +1012 * The RetireJS Analyzer configuration: +1013 * <pre> +1014 * filters: an array of filter patterns that are used to exclude JS files that contain a match +1015 * filterNonVulnerable: a boolean that when true will remove non-vulnerable JS from the report +1016 * +1017 * Example: +1018 * &lt;retirejs&gt; +1019 * &lt;filters&gt; +1020 * &lt;filter&gt;copyright 2018\(c\) Jeremy Long&lt;/filter&gt; +1021 * &lt;/filters&gt; +1022 * &lt;filterNonVulnerable&gt;true&lt;/filterNonVulnerable&gt; +1023 * &lt;/retirejs&gt; +1024 * </pre> +1025 */ +1026 @SuppressWarnings("CanBeFinal") +1027 @Parameter(property = "retirejs") +1028 private Retirejs retirejs; +1029 +1030 /** +1031 * The list of artifacts (and their transitive dependencies) to exclude from +1032 * the check. +1033 */ +1034 @Parameter(property = "odc.excludes") +1035 private List<String> excludes; +1036 +1037 /** +1038 * The artifact scope filter. +1039 */ +1040 private Filter<String> artifactScopeExcluded; +1041 +1042 /** +1043 * Filter for artifact type. +1044 */ +1045 private Filter<String> artifactTypeExcluded; +1046 +1047 /** +1048 * An collection of <code>fileSet</code>s that specify additional files +1049 * and/or directories (from the basedir) to analyze as part of the scan. If +1050 * not specified, defaults to Maven conventions of: src/main/resources, +1051 * src/main/filters, and src/main/webapp. Note, this cannot be set via the +1052 * command line - use `scanDirectory` instead. +1053 */ +1054 @Parameter +1055 private List<FileSet> scanSet; +1056 /** +1057 * A list of directories to scan. Note, this should only be used via the +1058 * command line - if configuring the directories to scan consider using the +1059 * `scanSet` instead. +1060 */ +1061 @Parameter(property = "scanDirectory") +1062 private List<String> scanDirectory; +1063 +1064 /** +1065 * Whether the project's plugins should also be scanned. +1066 */ +1067 @SuppressWarnings("CanBeFinal") +1068 @Parameter(property = "odc.plugins.scan", defaultValue = "false", required = false) +1069 private boolean scanPlugins = false; +1070 /** +1071 * Whether the project's dependencies should also be scanned. +1072 */ +1073 @SuppressWarnings("CanBeFinal") +1074 @Parameter(property = "odc.dependencies.scan", defaultValue = "true", required = false) +1075 private boolean scanDependencies = true; +1076 /** +1077 * The proxy configuration. +1078 */ +1079 @Parameter +1080 private ProxyConfig proxy; +1081 +1082 // </editor-fold> +1083 //<editor-fold defaultstate="collapsed" desc="Base Maven implementation"> +1084 /** +1085 * Determines if the groupId, artifactId, and version of the Maven +1086 * dependency and artifact match. +1087 * +1088 * @param d the Maven dependency +1089 * @param a the Maven artifact +1090 * @return true if the groupId, artifactId, and version match +1091 */ +1092 private static boolean artifactsMatch(org.apache.maven.model.Dependency d, Artifact a) { +1093 return isEqualOrNull(a.getArtifactId(), d.getArtifactId()) +1094 && isEqualOrNull(a.getGroupId(), d.getGroupId()) +1095 && isEqualOrNull(a.getVersion(), d.getVersion()); +1096 } +1097 +1098 /** +1099 * Compares two strings for equality; if both strings are null they are +1100 * considered equal. +1101 * +1102 * @param left the first string to compare +1103 * @param right the second string to compare +1104 * @return true if the strings are equal or if they are both null; otherwise +1105 * false. +1106 */ +1107 private static boolean isEqualOrNull(String left, String right) { +1108 return (left != null && left.equals(right)) || (left == null && right == null); +1109 } +1110 +1111 /** +1112 * Executes dependency-check. +1113 * +1114 * @throws MojoExecutionException thrown if there is an exception executing +1115 * the mojo +1116 * @throws MojoFailureException thrown if dependency-check failed the build +1117 */ +1118 @Override +1119 public void execute() throws MojoExecutionException, MojoFailureException { +1120 generatingSite = false; +1121 final boolean shouldSkip = Boolean.parseBoolean(System.getProperty("dependency-check.skip", Boolean.toString(skip))); +1122 if (shouldSkip) { +1123 getLog().info("Skipping " + getName(Locale.US)); +1124 } else { +1125 project.setContextValue("dependency-check-output-dir", this.outputDirectory); +1126 runCheck(); +1127 } +1128 } +1129 +1130 /** +1131 * Generates the Dependency-Check Site Report. +1132 * +1133 * @param sink the sink to write the report to +1134 * @param locale the locale to use when generating the report +1135 * @throws MavenReportException if a maven report exception occurs +1136 * @deprecated use +1137 * {@link #generate(org.apache.maven.doxia.sink.Sink, java.util.Locale)} +1138 * instead. +1139 */ +1140 @Deprecated +1141 public final void generate(@SuppressWarnings("deprecation") org.codehaus.doxia.sink.Sink sink, Locale locale) throws MavenReportException { +1142 generate((Sink) sink, locale); +1143 } +1144 +1145 /** +1146 * Returns true if the Maven site is being generated. +1147 * +1148 * @return true if the Maven site is being generated +1149 */ +1150 protected boolean isGeneratingSite() { +1151 return generatingSite; +1152 } +1153 +1154 /** +1155 * Returns the connection string. +1156 * +1157 * @return the connection string +1158 */ +1159 protected String getConnectionString() { +1160 return connectionString; +1161 } +1162 +1163 /** +1164 * Returns if the mojo should fail the build if an exception occurs. +1165 * +1166 * @return whether or not the mojo should fail the build +1167 */ +1168 protected boolean isFailOnError() { +1169 return failOnError; +1170 } +1171 +1172 /** +1173 * Generates the Dependency-Check Site Report. +1174 * +1175 * @param sink the sink to write the report to +1176 * @param locale the locale to use when generating the report +1177 * @throws MavenReportException if a maven report exception occurs +1178 */ +1179 public void generate(Sink sink, Locale locale) throws MavenReportException { +1180 final boolean shouldSkip = Boolean.parseBoolean(System.getProperty("dependency-check.skip", Boolean.toString(skip))); +1181 if (shouldSkip) { +1182 getLog().info("Skipping report generation " + getName(Locale.US)); +1183 return; +1184 } +1185 +1186 generatingSite = true; +1187 project.setContextValue("dependency-check-output-dir", getReportOutputDirectory()); +1188 try { +1189 runCheck(); +1190 } catch (MojoExecutionException ex) { +1191 throw new MavenReportException(ex.getMessage(), ex); +1192 } catch (MojoFailureException ex) { +1193 getLog().warn("Vulnerabilities were identifies that exceed the CVSS threshold for failing the build"); +1194 } +1195 } +1196 +1197 /** +1198 * Returns the correct output directory depending on if a site is being +1199 * executed or not. +1200 * +1201 * @return the directory to write the report(s) +1202 * @throws MojoExecutionException thrown if there is an error loading the +1203 * file path +1204 */ +1205 protected File getCorrectOutputDirectory() throws MojoExecutionException { +1206 return getCorrectOutputDirectory(this.project); +1207 } +1208 +1209 /** +1210 * Returns the correct output directory depending on if a site is being +1211 * executed or not. +1212 * +1213 * @param current the Maven project to get the output directory from +1214 * @return the directory to write the report(s) +1215 */ +1216 protected File getCorrectOutputDirectory(MavenProject current) { +1217 final Object obj = current.getContextValue("dependency-check-output-dir"); +1218 if (obj != null && obj instanceof File) { +1219 return (File) obj; +1220 } +1221 //else we guess +1222 File target = new File(current.getBuild().getDirectory()); +1223 if (target.getParentFile() != null && "target".equals(target.getParentFile().getName())) { +1224 target = target.getParentFile(); +1225 } +1226 return target; +1227 } +1228 +1229 /** +1230 * Scans the project's artifacts and adds them to the engine's dependency +1231 * list. +1232 * +1233 * @param project the project to scan the dependencies of +1234 * @param engine the engine to use to scan the dependencies +1235 * @return a collection of exceptions that may have occurred while resolving +1236 * and scanning the dependencies +1237 */ +1238 protected ExceptionCollection scanArtifacts(MavenProject project, Engine engine) { +1239 return scanArtifacts(project, engine, false); +1240 } +1241 +1242 /** +1243 * Scans the project's artifacts and adds them to the engine's dependency +1244 * list. +1245 * +1246 * @param project the project to scan the dependencies of +1247 * @param engine the engine to use to scan the dependencies +1248 * @param aggregate whether the scan is part of an aggregate build +1249 * @return a collection of exceptions that may have occurred while resolving +1250 * and scanning the dependencies +1251 */ +1252 protected ExceptionCollection scanArtifacts(MavenProject project, Engine engine, boolean aggregate) { +1253 try { +1254 final List<String> filterItems = Collections.singletonList(String.format("%s:%s", project.getGroupId(), project.getArtifactId())); +1255 final ProjectBuildingRequest buildingRequest = newResolveArtifactProjectBuildingRequest(project, project.getRemoteArtifactRepositories()); +1256 //For some reason the filter does not filter out the project being analyzed +1257 //if we pass in the filter below instead of null to the dependencyGraphBuilder +1258 final DependencyNode dn = dependencyGraphBuilder.buildDependencyGraph(buildingRequest, null); +1259 +1260 final CollectingRootDependencyGraphVisitor collectorVisitor = new CollectingRootDependencyGraphVisitor(); +1261 +1262 // exclude artifact by pattern and its dependencies +1263 final DependencyNodeVisitor transitiveFilterVisitor = new FilteringDependencyTransitiveNodeVisitor(collectorVisitor, +1264 new ArtifactDependencyNodeFilter(new PatternExcludesArtifactFilter(getExcludes()))); +1265 // exclude exact artifact but not its dependencies, this filter must be appied on the root for first otherwise +1266 // in case the exclude has the same groupId of the current bundle its direct dependencies are not visited +1267 final DependencyNodeVisitor artifactFilter = new FilteringDependencyNodeVisitor(transitiveFilterVisitor, +1268 new ArtifactDependencyNodeFilter(new ExcludesArtifactFilter(filterItems))); +1269 dn.accept(artifactFilter); +1270 +1271 //collect dependencies with the filter - see comment above. +1272 final Map<DependencyNode, List<DependencyNode>> nodes = collectorVisitor.getNodes(); +1273 +1274 return collectDependencies(engine, project, nodes, buildingRequest, aggregate); +1275 } catch (DependencyGraphBuilderException ex) { +1276 final String msg = String.format("Unable to build dependency graph on project %s", project.getName()); +1277 getLog().debug(msg, ex); +1278 return new ExceptionCollection(ex); +1279 } +1280 } +1281 +1282 /** +1283 * Scans the project's artifacts for plugin-dependencies and adds them to +1284 * the engine's dependency list. +1285 * +1286 * @param project the project to scan the plugin-dependencies of +1287 * @param engine the engine to use to scan the plugin-dependencies +1288 * @param exCollection the collection of exceptions that have previously +1289 * occurred +1290 * @return a collection of exceptions that may have occurred while resolving +1291 * and scanning the plugins and their dependencies +1292 */ +1293 protected ExceptionCollection scanPlugins(MavenProject project, Engine engine, ExceptionCollection exCollection) { +1294 ExceptionCollection exCol = exCollection; +1295 final Set<Artifact> plugins = new HashSet<>(); +1296 final Set<Artifact> buildPlugins = getProject().getPluginArtifacts(); +1297 final Set<Artifact> reportPlugins = getProject().getReportArtifacts(); +1298 final Set<Artifact> extensions = getProject().getExtensionArtifacts(); +1299 +1300 plugins.addAll(buildPlugins); +1301 plugins.addAll(reportPlugins); +1302 plugins.addAll(extensions); +1303 +1304 final ProjectBuildingRequest buildingRequest = newResolveArtifactProjectBuildingRequest(project, project.getPluginArtifactRepositories()); +1305 for (Artifact plugin : plugins) { +1306 try { +1307 final Artifact resolved = artifactResolver.resolveArtifact(buildingRequest, plugin).getArtifact(); +1308 +1309 exCol = addPluginToDependencies(project, engine, resolved, "pom.xml (plugins)", exCol); +1310 +1311 final DefaultDependableCoordinate pluginCoordinate = new DefaultDependableCoordinate(); +1312 pluginCoordinate.setGroupId(resolved.getGroupId()); +1313 pluginCoordinate.setArtifactId(resolved.getArtifactId()); +1314 pluginCoordinate.setVersion(resolved.getVersion()); +1315 +1316 final String parent = buildReference(resolved.getGroupId(), resolved.getArtifactId(), resolved.getVersion()); +1317 for (Artifact artifact : resolveArtifactDependencies(pluginCoordinate, project)) { +1318 exCol = addPluginToDependencies(project, engine, artifact, parent, exCol); +1319 } +1320 } catch (ArtifactResolverException ex) { +1321 throw new RuntimeException(ex); +1322 } catch (IllegalArgumentException ex) { +1323 throw new RuntimeException(ex); +1324 } catch (DependencyResolverException ex) { +1325 throw new RuntimeException(ex); +1326 } +1327 } +1328 +1329 return null; +1330 +1331 } +1332 +1333 private ExceptionCollection addPluginToDependencies(MavenProject project, Engine engine, Artifact artifact, String parent, ExceptionCollection exCollection) { +1334 ExceptionCollection exCol = exCollection; +1335 final String groupId = artifact.getGroupId(); +1336 final String artifactId = artifact.getArtifactId(); +1337 final String version = artifact.getVersion(); +1338 final File artifactFile = artifact.getFile(); +1339 if (artifactFile.isFile()) { +1340 final List<ArtifactVersion> availableVersions = artifact.getAvailableVersions(); +1341 +1342 final List<Dependency> deps = engine.scan(artifactFile.getAbsoluteFile(), +1343 project.getName() + " (plugins)"); +1344 if (deps != null) { +1345 Dependency d = null; +1346 if (deps.size() == 1) { +1347 d = deps.get(0); +1348 } else { +1349 for (Dependency possible : deps) { +1350 if (artifactFile.getAbsoluteFile().equals(possible.getActualFile())) { +1351 d = possible; +1352 break; +1353 } +1354 } +1355 for (Dependency dep : deps) { +1356 if (d != null && d != dep) { +1357 final String includedBy = buildReference(groupId, artifactId, version); +1358 dep.addIncludedBy(includedBy, "plugins"); +1359 } +1360 } +1361 } +1362 if (d != null) { +1363 final MavenArtifact ma = new MavenArtifact(groupId, artifactId, version); +1364 d.addAsEvidence("pom", ma, Confidence.HIGHEST); +1365 if (parent != null) { +1366 d.addIncludedBy(parent, "plugins"); +1367 } else { +1368 final String includedby = buildReference( +1369 project.getGroupId(), +1370 project.getArtifactId(), +1371 project.getVersion()); +1372 d.addIncludedBy(includedby, "plugins"); +1373 } +1374 if (availableVersions != null) { +1375 for (ArtifactVersion av : availableVersions) { +1376 d.addAvailableVersion(av.toString()); +1377 } +1378 } +1379 } +1380 } +1381 } else { +1382 if (exCol == null) { +1383 exCol = new ExceptionCollection(); +1384 } +1385 exCol.addException(new DependencyNotFoundException("Unable to resolve plugin: " +1386 + groupId + ":" + artifactId + ":" + version)); +1387 } +1388 +1389 return exCol; +1390 } +1391 +1392 private String buildReference(final String groupId, final String artifactId, final String version) { +1393 String includedBy; +1394 try { +1395 final PackageURL purl = new PackageURL("maven", groupId, artifactId, version, null, null); +1396 includedBy = purl.toString(); +1397 } catch (MalformedPackageURLException ex) { +1398 getLog().warn("Unable to generate build reference for " + groupId +1399 + ":" + artifactId + ":" + version, ex); +1400 includedBy = groupId + ":" + artifactId + ":" + version; +1401 } +1402 return includedBy; +1403 } +1404 +1405 protected Set<Artifact> resolveArtifactDependencies(final DependableCoordinate artifact, MavenProject project) +1406 throws DependencyResolverException { +1407 final ProjectBuildingRequest buildingRequest = newResolveArtifactProjectBuildingRequest(project, project.getRemoteArtifactRepositories()); +1408 +1409 final Iterable<ArtifactResult> artifactResults = dependencyResolver.resolveDependencies(buildingRequest, artifact, null); +1410 +1411 final Set<Artifact> artifacts = new HashSet<>(); +1412 +1413 for (ArtifactResult artifactResult : artifactResults) { +1414 artifacts.add(artifactResult.getArtifact()); +1415 } +1416 +1417 return artifacts; +1418 +1419 } +1420 +1421 /** +1422 * Converts the dependency to a dependency node object. +1423 * +1424 * @param nodes the list of dependency nodes +1425 * @param buildingRequest the Maven project building request +1426 * @param parent the parent node +1427 * @param dependency the dependency to convert +1428 * @return the resulting dependency node +1429 * @throws ArtifactResolverException thrown if the artifact could not be +1430 * retrieved +1431 */ +1432 private DependencyNode toDependencyNode(List<DependencyNode> nodes, ProjectBuildingRequest buildingRequest, +1433 DependencyNode parent, org.apache.maven.model.Dependency dependency) throws ArtifactResolverException { +1434 +1435 final DefaultArtifactCoordinate coordinate = new DefaultArtifactCoordinate(); +1436 +1437 coordinate.setGroupId(dependency.getGroupId()); +1438 coordinate.setArtifactId(dependency.getArtifactId()); +1439 String version = null; +1440 final VersionRange vr; +1441 try { +1442 vr = VersionRange.createFromVersionSpec(dependency.getVersion()); +1443 } catch (InvalidVersionSpecificationException ex) { +1444 throw new ArtifactResolverException("Invalid version specification: " +1445 + dependency.getGroupId() + ":" +1446 + dependency.getArtifactId() + ":" +1447 + dependency.getVersion(), ex); +1448 } +1449 if (vr.hasRestrictions()) { +1450 version = findVersion(nodes, dependency.getGroupId(), dependency.getArtifactId()); +1451 if (version == null) { +1452 //TODO - this still may fail if the restriction is not a valid version number (i.e. only 2.9 instead of 2.9.1) +1453 //need to get available versions and filter on the restrictions. +1454 if (vr.getRecommendedVersion() != null) { +1455 version = vr.getRecommendedVersion().toString(); +1456 } else if (vr.hasRestrictions()) { +1457 for (Restriction restriction : vr.getRestrictions()) { +1458 if (restriction.getLowerBound() != null) { +1459 version = restriction.getLowerBound().toString(); +1460 } +1461 if (restriction.getUpperBound() != null) { +1462 version = restriction.getUpperBound().toString(); +1463 } +1464 } +1465 } else { +1466 version = vr.toString(); +1467 } +1468 } +1469 } +1470 if (version == null) { +1471 version = dependency.getVersion(); +1472 } +1473 coordinate.setVersion(version); +1474 +1475 final ArtifactType type = session.getRepositorySession().getArtifactTypeRegistry().get(dependency.getType()); +1476 coordinate.setExtension(type.getExtension()); +1477 coordinate.setClassifier((null == dependency.getClassifier() || dependency.getClassifier().isEmpty()) +1478 ? type.getClassifier() : dependency.getClassifier()); +1479 final Artifact artifact = artifactResolver.resolveArtifact(buildingRequest, coordinate).getArtifact(); +1480 artifact.setScope(dependency.getScope()); +1481 return new DefaultDependencyNode(parent, artifact, dependency.getVersion(), dependency.getScope(), null); +1482 } +1483 +1484 /** +1485 * Returns the version from the list of nodes that match the given groupId +1486 * and artifactID. +1487 * +1488 * @param nodes the nodes to search +1489 * @param groupId the group id to find +1490 * @param artifactId the artifact id to find +1491 * @return the version from the list of nodes that match the given groupId +1492 * and artifactID; otherwise <code>null</code> is returned +1493 */ +1494 private String findVersion(List<DependencyNode> nodes, String groupId, String artifactId) { +1495 final Optional<DependencyNode> f = nodes.stream().filter(p +1496 -> groupId.equals(p.getArtifact().getGroupId()) +1497 && artifactId.equals(p.getArtifact().getArtifactId())).findFirst(); +1498 if (f.isPresent()) { +1499 return f.get().getArtifact().getVersion(); +1500 } +1501 return null; +1502 } +1503 +1504 /** +1505 * Collect dependencies from the dependency management section. +1506 * +1507 * @param engine reference to the ODC engine +1508 * @param buildingRequest the Maven project building request +1509 * @param project the project being analyzed +1510 * @param nodes the list of dependency nodes +1511 * @param aggregate whether or not this is an aggregate analysis +1512 * @return a collection of exceptions if any occurred; otherwise +1513 * <code>null</code> +1514 */ +1515 private ExceptionCollection collectDependencyManagementDependencies(Engine engine, ProjectBuildingRequest buildingRequest, +1516 MavenProject project, List<DependencyNode> nodes, boolean aggregate) { +1517 if (skipDependencyManagement || project.getDependencyManagement() == null) { +1518 return null; +1519 } +1520 +1521 ExceptionCollection exCol = null; +1522 for (org.apache.maven.model.Dependency dependency : project.getDependencyManagement().getDependencies()) { +1523 try { +1524 nodes.add(toDependencyNode(nodes, buildingRequest, null, dependency)); +1525 } catch (ArtifactResolverException ex) { +1526 getLog().debug(String.format("Aggregate : %s", aggregate)); +1527 boolean addException = true; +1528 //CSOFF: EmptyBlock +1529 if (!aggregate) { +1530 // do nothing, exception is to be reported +1531 } else if (addReactorDependency(engine, +1532 new DefaultArtifact(dependency.getGroupId(), dependency.getArtifactId(), +1533 dependency.getVersion(), dependency.getScope(), dependency.getType(), dependency.getClassifier(), +1534 new DefaultArtifactHandler()), project)) { +1535 addException = false; +1536 } +1537 //CSON: EmptyBlock +1538 if (addException) { +1539 if (exCol == null) { +1540 exCol = new ExceptionCollection(); +1541 } +1542 exCol.addException(ex); +1543 } +1544 } +1545 } +1546 return exCol; +1547 } +1548 +1549 /** +1550 * Resolves the projects artifacts using Aether and scans the resulting +1551 * dependencies. +1552 * +1553 * @param engine the core dependency-check engine +1554 * @param project the project being scanned +1555 * @param nodeMap the map of dependency nodes, generally obtained via the +1556 * DependencyGraphBuilder using the CollectingRootDependencyGraphVisitor +1557 * @param buildingRequest the Maven project building request +1558 * @param aggregate whether the scan is part of an aggregate build +1559 * @return a collection of exceptions that may have occurred while resolving +1560 * and scanning the dependencies +1561 */ +1562 //CSOFF: OperatorWrap +1563 private ExceptionCollection collectMavenDependencies(Engine engine, MavenProject project, +1564 Map<DependencyNode, List<DependencyNode>> nodeMap, ProjectBuildingRequest buildingRequest, boolean aggregate) { +1565 +1566 final List<ArtifactResult> allResolvedDeps = new ArrayList<>(); +1567 +1568 //dependency management +1569 final List<DependencyNode> dmNodes = new ArrayList<>(); +1570 ExceptionCollection exCol = collectDependencyManagementDependencies(engine, buildingRequest, project, dmNodes, aggregate); +1571 for (DependencyNode dependencyNode : dmNodes) { +1572 exCol = scanDependencyNode(dependencyNode, null, engine, project, allResolvedDeps, buildingRequest, aggregate, exCol); +1573 } +1574 +1575 //dependencies +1576 for (Map.Entry<DependencyNode, List<DependencyNode>> entry : nodeMap.entrySet()) { +1577 exCol = scanDependencyNode(entry.getKey(), null, engine, project, allResolvedDeps, buildingRequest, aggregate, exCol); +1578 for (DependencyNode dependencyNode : entry.getValue()) { +1579 exCol = scanDependencyNode(dependencyNode, entry.getKey(), engine, project, allResolvedDeps, buildingRequest, aggregate, exCol); +1580 } +1581 } +1582 return exCol; +1583 } +1584 //CSON: OperatorWrap +1585 +1586 /** +1587 * Utility method for a work-around to MSHARED-998 +1588 * +1589 * @param allDeps The List of ArtifactResults for all dependencies +1590 * @param unresolvedArtifact The ArtifactCoordinate of the artifact we're +1591 * looking for +1592 * @param project The project in whose context resolution was attempted +1593 * @return the resolved artifact matching with {@code unresolvedArtifact} +1594 * @throws DependencyNotFoundException If {@code unresolvedArtifact} could +1595 * not be found within {@code allDeps} +1596 */ +1597 private Artifact findInAllDeps(final List<ArtifactResult> allDeps, final Artifact unresolvedArtifact, +1598 final MavenProject project) +1599 throws DependencyNotFoundException { +1600 Artifact result = null; +1601 for (final ArtifactResult res : allDeps) { +1602 if (sameArtifact(res, unresolvedArtifact)) { +1603 result = res.getArtifact(); +1604 break; +1605 } +1606 } +1607 if (result == null) { +1608 throw new DependencyNotFoundException(String.format("Expected dependency not found in resolved artifacts for " +1609 + "dependency %s of project-artifact %s", unresolvedArtifact, project.getArtifactId())); +1610 } +1611 return result; +1612 } +1613 +1614 /** +1615 * Utility method for a work-around to MSHARED-998 +1616 * +1617 * @param res A single ArtifactResult obtained from the DependencyResolver +1618 * @param unresolvedArtifact The unresolved Artifact from the +1619 * dependencyGraph that we try to find +1620 * @return {@code true} when unresolvedArtifact is non-null and matches with +1621 * the artifact of res +1622 */ +1623 private boolean sameArtifact(final ArtifactResult res, final Artifact unresolvedArtifact) { +1624 if (res == null || res.getArtifact() == null || unresolvedArtifact == null) { +1625 return false; +1626 } +1627 boolean result = Objects.equals(res.getArtifact().getGroupId(), unresolvedArtifact.getGroupId()); +1628 result &= Objects.equals(res.getArtifact().getArtifactId(), unresolvedArtifact.getArtifactId()); +1629 // accept any version as matching "LATEST" and any non-snapshot version as matching "RELEASE" meta-version +1630 if ("RELEASE".equals(unresolvedArtifact.getBaseVersion())) { +1631 result &= !res.getArtifact().isSnapshot(); +1632 } else if (!"LATEST".equals(unresolvedArtifact.getBaseVersion())) { +1633 result &= Objects.equals(res.getArtifact().getBaseVersion(), unresolvedArtifact.getBaseVersion()); +1634 } +1635 result &= Objects.equals(res.getArtifact().getClassifier(), unresolvedArtifact.getClassifier()); +1636 result &= Objects.equals(res.getArtifact().getType(), unresolvedArtifact.getType()); +1637 return result; +1638 } +1639 +1640 /** +1641 * @param project the {@link MavenProject} +1642 * @param dependencyNode the {@link DependencyNode} +1643 * @return the name to be used when creating a +1644 * {@link Dependency#getProjectReferences() project reference} in a +1645 * {@link Dependency}. The behavior of this method returns {@link MavenProject#getName() project.getName()}<code> + ":" + +1646 * </code> +1647 * {@link DependencyNode#getArtifact() dependencyNode.getArtifact()}{@link Artifact#getScope() .getScope()}. +1648 */ +1649 protected String createProjectReferenceName(MavenProject project, DependencyNode dependencyNode) { +1650 return project.getName() + ":" + dependencyNode.getArtifact().getScope(); +1651 } +1652 +1653 /** +1654 * Scans the projects dependencies including the default (or defined) +1655 * FileSets. +1656 * +1657 * @param engine the core dependency-check engine +1658 * @param project the project being scanned +1659 * @param nodes the list of dependency nodes, generally obtained via the +1660 * DependencyGraphBuilder +1661 * @param buildingRequest the Maven project building request +1662 * @param aggregate whether the scan is part of an aggregate build +1663 * @return a collection of exceptions that may have occurred while resolving +1664 * and scanning the dependencies +1665 */ +1666 private ExceptionCollection collectDependencies(Engine engine, MavenProject project, +1667 Map<DependencyNode, List<DependencyNode>> nodes, ProjectBuildingRequest buildingRequest, boolean aggregate) { +1668 +1669 ExceptionCollection exCol; +1670 exCol = collectMavenDependencies(engine, project, nodes, buildingRequest, aggregate); +1671 +1672 final List<FileSet> projectScan; +1673 +1674 if (scanDirectory != null && !scanDirectory.isEmpty()) { +1675 if (scanSet == null) { +1676 scanSet = new ArrayList<>(); +1677 } +1678 scanDirectory.forEach(d -> { +1679 final FileSet fs = new FileSet(); +1680 fs.setDirectory(d); +1681 fs.addInclude(INCLUDE_ALL); +1682 scanSet.add(fs); +1683 }); +1684 } +1685 +1686 if (scanSet == null || scanSet.isEmpty()) { +1687 // Define the default FileSets +1688 final FileSet resourcesSet = new FileSet(); +1689 final FileSet filtersSet = new FileSet(); +1690 final FileSet webappSet = new FileSet(); +1691 final FileSet mixedLangSet = new FileSet(); +1692 try { +1693 resourcesSet.setDirectory(new File(project.getBasedir(), "src/main/resources").getCanonicalPath()); +1694 resourcesSet.addInclude(INCLUDE_ALL); +1695 filtersSet.setDirectory(new File(project.getBasedir(), "src/main/filters").getCanonicalPath()); +1696 filtersSet.addInclude(INCLUDE_ALL); +1697 webappSet.setDirectory(new File(project.getBasedir(), "src/main/webapp").getCanonicalPath()); +1698 webappSet.addInclude(INCLUDE_ALL); +1699 mixedLangSet.setDirectory(project.getBasedir().getCanonicalPath()); +1700 mixedLangSet.addInclude("package.json"); +1701 mixedLangSet.addInclude("package-lock.json"); +1702 mixedLangSet.addInclude("npm-shrinkwrap.json"); +1703 mixedLangSet.addInclude("Gopkg.lock"); +1704 mixedLangSet.addInclude("go.mod"); +1705 mixedLangSet.addInclude("yarn.lock"); +1706 mixedLangSet.addInclude("pnpm-lock.yaml"); +1707 mixedLangSet.addExclude("/node_modules/"); +1708 } catch (IOException ex) { +1709 if (exCol == null) { +1710 exCol = new ExceptionCollection(); +1711 } +1712 exCol.addException(ex); +1713 } +1714 projectScan = new ArrayList<>(); +1715 projectScan.add(resourcesSet); +1716 projectScan.add(filtersSet); +1717 projectScan.add(webappSet); +1718 projectScan.add(mixedLangSet); +1719 +1720 } else if (aggregate) { +1721 projectScan = new ArrayList<>(); +1722 for (FileSet copyFrom : scanSet) { +1723 //deep copy of the FileSet - modifying the directory if it is not absolute. +1724 final FileSet fsCopy = new FileSet(); +1725 final File f = new File(copyFrom.getDirectory()); +1726 if (f.isAbsolute()) { +1727 fsCopy.setDirectory(copyFrom.getDirectory()); +1728 } else { +1729 try { +1730 fsCopy.setDirectory(new File(project.getBasedir(), copyFrom.getDirectory()).getCanonicalPath()); +1731 } catch (IOException ex) { +1732 if (exCol == null) { +1733 exCol = new ExceptionCollection(); +1734 } +1735 exCol.addException(ex); +1736 fsCopy.setDirectory(copyFrom.getDirectory()); +1737 } +1738 } +1739 fsCopy.setDirectoryMode(copyFrom.getDirectoryMode()); +1740 fsCopy.setExcludes(copyFrom.getExcludes()); +1741 fsCopy.setFileMode(copyFrom.getFileMode()); +1742 fsCopy.setFollowSymlinks(copyFrom.isFollowSymlinks()); +1743 fsCopy.setIncludes(copyFrom.getIncludes()); +1744 fsCopy.setLineEnding(copyFrom.getLineEnding()); +1745 fsCopy.setMapper(copyFrom.getMapper()); +1746 fsCopy.setModelEncoding(copyFrom.getModelEncoding()); +1747 fsCopy.setOutputDirectory(copyFrom.getOutputDirectory()); +1748 fsCopy.setUseDefaultExcludes(copyFrom.isUseDefaultExcludes()); +1749 projectScan.add(fsCopy); +1750 } +1751 } else { +1752 projectScan = scanSet; +1753 } +1754 +1755 // Iterate through FileSets and scan included files +1756 final FileSetManager fileSetManager = new FileSetManager(); +1757 for (FileSet fileSet : projectScan) { +1758 getLog().debug("Scanning fileSet: " + fileSet.getDirectory()); +1759 final String[] includedFiles = fileSetManager.getIncludedFiles(fileSet); +1760 for (String include : includedFiles) { +1761 final File includeFile = new File(fileSet.getDirectory(), include).getAbsoluteFile(); +1762 if (includeFile.exists()) { +1763 engine.scan(includeFile, project.getName()); +1764 } +1765 } +1766 } +1767 return exCol; +1768 } +1769 +1770 /** +1771 * Checks if the current artifact is actually in the reactor projects that +1772 * have not yet been built. If true a virtual dependency is created based on +1773 * the evidence in the project. +1774 * +1775 * @param engine a reference to the engine being used to scan +1776 * @param artifact the artifact being analyzed in the mojo +1777 * @param depender The project that depends on this virtual dependency +1778 * @return <code>true</code> if the artifact is in the reactor; otherwise +1779 * <code>false</code> +1780 */ +1781 private boolean addReactorDependency(Engine engine, Artifact artifact, final MavenProject depender) { +1782 return addVirtualDependencyFromReactor(engine, artifact, depender, "Unable to resolve %s as it has not been built yet " +1783 + "- creating a virtual dependency instead."); +1784 } +1785 +1786 /** +1787 * Checks if the current artifact is actually in the reactor projects. If +1788 * true a virtual dependency is created based on the evidence in the +1789 * project. +1790 * +1791 * @param engine a reference to the engine being used to scan +1792 * @param artifact the artifact being analyzed in the mojo +1793 * @param depender The project that depends on this virtual dependency +1794 * @param infoLogTemplate the template for the infoLog entry written when a +1795 * virtual dependency is added. Needs a single %s placeholder for the +1796 * location of the displayName in the message +1797 * @return <code>true</code> if the artifact is in the reactor; otherwise +1798 * <code>false</code> +1799 */ +1800 private boolean addVirtualDependencyFromReactor(Engine engine, Artifact artifact, +1801 final MavenProject depender, String infoLogTemplate) { +1802 +1803 getLog().debug(String.format("Checking the reactor projects (%d) for %s:%s:%s", +1804 reactorProjects.size(), +1805 artifact.getGroupId(), artifact.getArtifactId(), artifact.getVersion())); +1806 +1807 for (MavenProject prj : reactorProjects) { +1808 +1809 getLog().debug(String.format("Comparing %s:%s:%s to %s:%s:%s", +1810 artifact.getGroupId(), artifact.getArtifactId(), artifact.getBaseVersion(), +1811 prj.getGroupId(), prj.getArtifactId(), prj.getVersion())); +1812 +1813 if (prj.getArtifactId().equals(artifact.getArtifactId()) +1814 && prj.getGroupId().equals(artifact.getGroupId()) +1815 && prj.getVersion().equals(artifact.getBaseVersion())) { +1816 +1817 final String displayName = String.format("%s:%s:%s", +1818 prj.getGroupId(), prj.getArtifactId(), prj.getVersion()); +1819 getLog().info(String.format(infoLogTemplate, +1820 displayName)); +1821 final Dependency d = newDependency(prj); +1822 final String key = String.format("%s:%s:%s", prj.getGroupId(), prj.getArtifactId(), prj.getVersion()); +1823 d.setSha1sum(Checksum.getSHA1Checksum(key)); +1824 d.setSha256sum(Checksum.getSHA256Checksum(key)); +1825 d.setMd5sum(Checksum.getMD5Checksum(key)); +1826 d.setEcosystem(JarAnalyzer.DEPENDENCY_ECOSYSTEM); +1827 d.setDisplayFileName(displayName); +1828 d.addProjectReference(depender.getName()); +1829 final String includedby = buildReference( +1830 depender.getGroupId(), +1831 depender.getArtifactId(), +1832 depender.getVersion()); +1833 d.addIncludedBy(includedby); +1834 d.addEvidence(EvidenceType.PRODUCT, "project", "artifactid", prj.getArtifactId(), Confidence.HIGHEST); +1835 d.addEvidence(EvidenceType.VENDOR, "project", "artifactid", prj.getArtifactId(), Confidence.LOW); +1836 +1837 d.addEvidence(EvidenceType.VENDOR, "project", "groupid", prj.getGroupId(), Confidence.HIGHEST); +1838 d.addEvidence(EvidenceType.PRODUCT, "project", "groupid", prj.getGroupId(), Confidence.LOW); +1839 d.setEcosystem(JarAnalyzer.DEPENDENCY_ECOSYSTEM); +1840 Identifier id; +1841 try { +1842 id = new PurlIdentifier(StandardTypes.MAVEN, artifact.getGroupId(), +1843 artifact.getArtifactId(), artifact.getVersion(), Confidence.HIGHEST); +1844 } catch (MalformedPackageURLException ex) { +1845 getLog().debug("Unable to create PackageURL object:" + key); +1846 id = new GenericIdentifier("maven:" + key, Confidence.HIGHEST); +1847 } +1848 d.addSoftwareIdentifier(id); +1849 //TODO unify the setName/version and package path - they are equivelent ideas submitted by two seperate committers +1850 d.setName(String.format("%s:%s", prj.getGroupId(), prj.getArtifactId())); +1851 d.setVersion(prj.getVersion()); +1852 d.setPackagePath(displayName); +1853 if (prj.getDescription() != null) { +1854 JarAnalyzer.addDescription(d, prj.getDescription(), "project", "description"); +1855 } +1856 for (License l : prj.getLicenses()) { +1857 final StringBuilder license = new StringBuilder(); +1858 if (l.getName() != null) { +1859 license.append(l.getName()); +1860 } +1861 if (l.getUrl() != null) { +1862 license.append(" ").append(l.getUrl()); +1863 } +1864 if (d.getLicense() == null) { +1865 d.setLicense(license.toString()); +1866 } else if (!d.getLicense().contains(license)) { +1867 d.setLicense(String.format("%s%n%s", d.getLicense(), license)); +1868 } +1869 } +1870 engine.addDependency(d); +1871 return true; +1872 } +1873 } +1874 return false; +1875 } +1876 +1877 Dependency newDependency(MavenProject prj) { +1878 final File pom = new File(prj.getBasedir(), "pom.xml"); +1879 +1880 if (pom.isFile()) { +1881 getLog().debug("Adding virtual dependency from pom.xml"); +1882 return new Dependency(pom, true); +1883 } else if (prj.getFile().isFile()) { +1884 getLog().debug("Adding virtual dependency from file"); +1885 return new Dependency(prj.getFile(), true); +1886 } else { +1887 return new Dependency(true); +1888 } +1889 } +1890 +1891 /** +1892 * Checks if the current artifact is actually in the reactor projects. If +1893 * true a virtual dependency is created based on the evidence in the +1894 * project. +1895 * +1896 * @param engine a reference to the engine being used to scan +1897 * @param artifact the artifact being analyzed in the mojo +1898 * @param depender The project that depends on this virtual dependency +1899 * @return <code>true</code> if the artifact is a snapshot artifact in the +1900 * reactor; otherwise <code>false</code> +1901 */ +1902 private boolean addSnapshotReactorDependency(Engine engine, Artifact artifact, final MavenProject depender) { +1903 if (!artifact.isSnapshot()) { +1904 return false; +1905 } +1906 return addVirtualDependencyFromReactor(engine, artifact, depender, "Found snapshot reactor project in aggregate for %s - " +1907 + "creating a virtual dependency as the snapshot found in the repository may contain outdated dependencies."); +1908 } +1909 +1910 /** +1911 * @param project The target project to create a building request for. +1912 * @param repos the artifact repositories to use. +1913 * @return Returns a new ProjectBuildingRequest populated from the current +1914 * session and the target project remote repositories, used to resolve +1915 * artifacts. +1916 */ +1917 public ProjectBuildingRequest newResolveArtifactProjectBuildingRequest(MavenProject project, List<ArtifactRepository> repos) { +1918 final ProjectBuildingRequest buildingRequest = new DefaultProjectBuildingRequest(session.getProjectBuildingRequest()); +1919 buildingRequest.setRemoteRepositories(repos); +1920 buildingRequest.setProject(project); +1921 return buildingRequest; +1922 } +1923 +1924 /** +1925 * Executes the dependency-check scan and generates the necessary report. +1926 * +1927 * @throws MojoExecutionException thrown if there is an exception running +1928 * the scan +1929 * @throws MojoFailureException thrown if dependency-check is configured to +1930 * fail the build +1931 */ +1932 protected void runCheck() throws MojoExecutionException, MojoFailureException { +1933 muteNoisyLoggers(); +1934 try (Engine engine = initializeEngine()) { +1935 ExceptionCollection exCol = null; +1936 if (scanDependencies) { +1937 exCol = scanDependencies(engine); +1938 } +1939 if (scanPlugins) { +1940 exCol = scanPlugins(engine, exCol); +1941 } +1942 try { +1943 engine.analyzeDependencies(); +1944 } catch (ExceptionCollection ex) { +1945 exCol = handleAnalysisExceptions(exCol, ex); +1946 } +1947 if (exCol == null || !exCol.isFatal()) { +1948 +1949 File outputDir = getCorrectOutputDirectory(this.getProject()); +1950 if (outputDir == null) { +1951 //in some regards we shouldn't be writing this, but we are anyway. +1952 //we shouldn't write this because nothing is configured to generate this report. +1953 outputDir = new File(this.getProject().getBuild().getDirectory()); +1954 } +1955 try { +1956 final MavenProject p = this.getProject(); +1957 for (String f : getFormats()) { +1958 engine.writeReports(p.getName(), p.getGroupId(), p.getArtifactId(), p.getVersion(), outputDir, f, exCol); +1959 } +1960 } catch (ReportException ex) { +1961 if (exCol == null) { +1962 exCol = new ExceptionCollection(ex); +1963 } else { +1964 exCol.addException(ex); +1965 } +1966 if (this.isFailOnError()) { +1967 throw new MojoExecutionException("One or more exceptions occurred during dependency-check analysis", exCol); +1968 } else { +1969 getLog().debug("Error writing the report", ex); +1970 } +1971 } +1972 showSummary(this.getProject(), engine.getDependencies()); +1973 checkForFailure(engine.getDependencies()); +1974 if (exCol != null && this.isFailOnError()) { +1975 throw new MojoExecutionException("One or more exceptions occurred during dependency-check analysis", exCol); +1976 } +1977 } +1978 } catch (DatabaseException ex) { +1979 if (getLog().isDebugEnabled()) { +1980 getLog().debug("Database connection error", ex); +1981 } +1982 final String msg = "An exception occurred connecting to the local database. Please see the log file for more details."; +1983 if (this.isFailOnError()) { +1984 throw new MojoExecutionException(msg, ex); +1985 } +1986 getLog().error(msg, ex); +1987 } finally { +1988 getSettings().cleanup(); +1989 } +1990 } +1991 +1992 /** +1993 * Combines the two exception collections and if either are fatal, throw an +1994 * MojoExecutionException +1995 * +1996 * @param currentEx the primary exception collection +1997 * @param newEx the new exception collection to add +1998 * @return the combined exception collection +1999 * @throws MojoExecutionException thrown if dependency-check is configured +2000 * to fail on errors +2001 */ +2002 private ExceptionCollection handleAnalysisExceptions(ExceptionCollection currentEx, ExceptionCollection newEx) throws MojoExecutionException { +2003 ExceptionCollection returnEx = currentEx; +2004 if (returnEx == null) { +2005 returnEx = newEx; +2006 } else { +2007 returnEx.getExceptions().addAll(newEx.getExceptions()); +2008 if (newEx.isFatal()) { +2009 returnEx.setFatal(true); +2010 } +2011 } +2012 if (returnEx.isFatal()) { +2013 final String msg = String.format("Fatal exception(s) analyzing %s", getProject().getName()); +2014 if (this.isFailOnError()) { +2015 throw new MojoExecutionException(msg, returnEx); +2016 } +2017 getLog().error(msg); +2018 if (getLog().isDebugEnabled()) { +2019 getLog().debug(returnEx); +2020 } +2021 } else { +2022 final String msg = String.format("Exception(s) analyzing %s", getProject().getName()); +2023 if (getLog().isDebugEnabled()) { +2024 getLog().debug(msg, returnEx); +2025 } +2026 } +2027 return returnEx; +2028 } +2029 +2030 /** +2031 * Scans the dependencies of the projects. +2032 * +2033 * @param engine the engine used to perform the scanning +2034 * @return a collection of exceptions +2035 * @throws MojoExecutionException thrown if a fatal exception occurs +2036 */ +2037 protected abstract ExceptionCollection scanDependencies(Engine engine) throws MojoExecutionException; +2038 +2039 /** +2040 * Scans the plugins of the projects. +2041 * +2042 * @param engine the engine used to perform the scanning +2043 * @param exCol the collection of any exceptions that have previously been +2044 * captured. +2045 * @return a collection of exceptions +2046 * @throws MojoExecutionException thrown if a fatal exception occurs +2047 */ +2048 protected abstract ExceptionCollection scanPlugins(Engine engine, ExceptionCollection exCol) throws MojoExecutionException; +2049 +2050 /** +2051 * Returns the report output directory. +2052 * +2053 * @return the report output directory +2054 */ +2055 @Override +2056 public File getReportOutputDirectory() { +2057 return reportOutputDirectory; +2058 } +2059 +2060 /** +2061 * Sets the Reporting output directory. +2062 * +2063 * @param directory the output directory +2064 */ +2065 @Override +2066 public void setReportOutputDirectory(File directory) { +2067 reportOutputDirectory = directory; +2068 } +2069 +2070 /** +2071 * Returns the output directory. +2072 * +2073 * @return the output directory +2074 */ +2075 public File getOutputDirectory() { +2076 return outputDirectory; +2077 } +2078 +2079 /** +2080 * Returns whether this is an external report. This method always returns +2081 * true. +2082 * +2083 * @return <code>true</code> +2084 */ +2085 @Override +2086 public final boolean isExternalReport() { +2087 return true; +2088 } +2089 +2090 /** +2091 * Returns the output name. +2092 * +2093 * @return the output name +2094 */ +2095 @Override +2096 public String getOutputName() { +2097 final Set<String> selectedFormats = getFormats(); +2098 if (selectedFormats.contains("HTML") || selectedFormats.contains("ALL") || selectedFormats.size() > 1) { +2099 return "dependency-check-report"; +2100 } else if (selectedFormats.contains("JENKINS")) { +2101 return "dependency-check-jenkins.html"; +2102 } else if (selectedFormats.contains("XML")) { +2103 return "dependency-check-report.xml"; +2104 } else if (selectedFormats.contains("JUNIT")) { +2105 return "dependency-check-junit.xml"; +2106 } else if (selectedFormats.contains("JSON")) { +2107 return "dependency-check-report.json"; +2108 } else if (selectedFormats.contains("SARIF")) { +2109 return "dependency-check-report.sarif"; +2110 } else if (selectedFormats.contains("CSV")) { +2111 return "dependency-check-report.csv"; +2112 } else { +2113 getLog().warn("Unknown report format used during site generation."); +2114 return "dependency-check-report"; +2115 } +2116 } +2117 +2118 /** +2119 * Returns the category name. +2120 * +2121 * @return the category name +2122 */ +2123 @Override +2124 public String getCategoryName() { +2125 return MavenReport.CATEGORY_PROJECT_REPORTS; +2126 } +2127 //</editor-fold> +2128 +2129 /** +2130 * Initializes a new <code>Engine</code> that can be used for scanning. This +2131 * method should only be called in a try-with-resources to ensure that the +2132 * engine is properly closed. +2133 * +2134 * @return a newly instantiated <code>Engine</code> +2135 * @throws DatabaseException thrown if there is a database exception +2136 */ +2137 protected Engine initializeEngine() throws DatabaseException { +2138 populateSettings(); +2139 return new Engine(settings); +2140 } +2141 +2142 //CSOFF: MethodLength +2143 /** +2144 * Takes the properties supplied and updates the dependency-check settings. +2145 * Additionally, this sets the system properties required to change the +2146 * proxy URL, port, and connection timeout. +2147 */ +2148 protected void populateSettings() { +2149 settings = new Settings(); +2150 InputStream mojoProperties = null; +2151 try { +2152 mojoProperties = this.getClass().getClassLoader().getResourceAsStream(PROPERTIES_FILE); +2153 settings.mergeProperties(mojoProperties); +2154 } catch (IOException ex) { +2155 getLog().warn("Unable to load the dependency-check maven mojo.properties file."); +2156 if (getLog().isDebugEnabled()) { +2157 getLog().debug("", ex); +2158 } +2159 } finally { +2160 if (mojoProperties != null) { +2161 try { +2162 mojoProperties.close(); +2163 } catch (IOException ex) { +2164 if (getLog().isDebugEnabled()) { +2165 getLog().debug("", ex); +2166 } +2167 } +2168 } +2169 } +2170 settings.setStringIfNotEmpty(Settings.KEYS.MAVEN_LOCAL_REPO, mavenSettings.getLocalRepository()); +2171 settings.setBooleanIfNotNull(Settings.KEYS.AUTO_UPDATE, autoUpdate); +2172 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_EXPERIMENTAL_ENABLED, enableExperimental); +2173 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_RETIRED_ENABLED, enableRetired); +2174 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_GOLANG_DEP_ENABLED, golangDepEnabled); +2175 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_GOLANG_MOD_ENABLED, golangModEnabled); +2176 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_DART_ENABLED, dartAnalyzerEnabled); +2177 settings.setStringIfNotNull(Settings.KEYS.ANALYZER_GOLANG_PATH, pathToGo); +2178 settings.setStringIfNotNull(Settings.KEYS.ANALYZER_YARN_PATH, pathToYarn); +2179 settings.setStringIfNotNull(Settings.KEYS.ANALYZER_PNPM_PATH, pathToPnpm); +2180 +2181 // use global maven proxy if provided +2182 final Proxy mavenProxy = getMavenProxy(); +2183 if (mavenProxy != null) { +2184 final String existing = System.getProperty("https.proxyHost"); +2185 if (existing == null && mavenProxy.getHost() != null && !mavenProxy.getHost().isEmpty()) { +2186 System.setProperty("https.proxyHost", mavenProxy.getHost()); +2187 if (mavenProxy.getPort() > 0) { +2188 System.setProperty("https.proxyPort", String.valueOf(mavenProxy.getPort())); +2189 } +2190 if (mavenProxy.getUsername() != null && !mavenProxy.getUsername().isEmpty()) { +2191 System.setProperty("https.proxyUser", mavenProxy.getUsername()); +2192 } +2193 if (mavenProxy.getPassword() != null && !mavenProxy.getPassword().isEmpty()) { +2194 System.setProperty("https.proxyPassword", mavenProxy.getPassword()); +2195 } +2196 if (mavenProxy.getNonProxyHosts() != null && !mavenProxy.getNonProxyHosts().isEmpty()) { +2197 System.setProperty("http.nonProxyHosts", mavenProxy.getNonProxyHosts()); +2198 } +2199 } +2200 +2201 settings.setString(Settings.KEYS.PROXY_SERVER, mavenProxy.getHost()); +2202 settings.setString(Settings.KEYS.PROXY_PORT, Integer.toString(mavenProxy.getPort())); +2203 final String userName = mavenProxy.getUsername(); +2204 String password = mavenProxy.getPassword(); +2205 if (password != null && !password.isEmpty()) { +2206 if (settings.getBoolean(Settings.KEYS.PROXY_DISABLE_SCHEMAS, true)) { +2207 System.setProperty("jdk.http.auth.tunneling.disabledSchemes", ""); +2208 } +2209 try { +2210 password = decryptPasswordFromSettings(password); +2211 } catch (SecDispatcherException ex) { +2212 password = handleSecDispatcherException("proxy", mavenProxy.getId(), password, ex); +2213 } +2214 } +2215 settings.setStringIfNotNull(Settings.KEYS.PROXY_USERNAME, userName); +2216 settings.setStringIfNotNull(Settings.KEYS.PROXY_PASSWORD, password); +2217 settings.setStringIfNotNull(Settings.KEYS.PROXY_NON_PROXY_HOSTS, mavenProxy.getNonProxyHosts()); +2218 } else if (System.getProperty("http.proxyHost") != null) { +2219 //else use standard Java system properties +2220 settings.setString(Settings.KEYS.PROXY_SERVER, System.getProperty("http.proxyHost", "")); +2221 if (System.getProperty("http.proxyPort") != null) { +2222 settings.setString(Settings.KEYS.PROXY_PORT, System.getProperty("http.proxyPort")); +2223 } +2224 if (System.getProperty("http.proxyUser") != null) { +2225 settings.setString(Settings.KEYS.PROXY_USERNAME, System.getProperty("http.proxyUser")); +2226 } +2227 if (System.getProperty("http.proxyPassword") != null) { +2228 settings.setString(Settings.KEYS.PROXY_PASSWORD, System.getProperty("http.proxyPassword")); +2229 } +2230 if (System.getProperty("http.nonProxyHosts") != null) { +2231 settings.setString(Settings.KEYS.PROXY_NON_PROXY_HOSTS, System.getProperty("http.nonProxyHosts")); +2232 } +2233 } else if (this.proxy != null && this.proxy.getHost() != null) { +2234 // or use configured <proxy> +2235 settings.setString(Settings.KEYS.PROXY_SERVER, this.proxy.getHost()); +2236 settings.setString(Settings.KEYS.PROXY_PORT, Integer.toString(this.proxy.getPort())); +2237 // user name and password from <server> entry settings.xml +2238 configureServerCredentials(this.proxy.getServerId(), Settings.KEYS.PROXY_USERNAME, Settings.KEYS.PROXY_PASSWORD); +2239 } +2240 +2241 final String[] suppressions = determineSuppressions(); +2242 settings.setArrayIfNotEmpty(Settings.KEYS.SUPPRESSION_FILE, suppressions); +2243 settings.setBooleanIfNotNull(Settings.KEYS.UPDATE_VERSION_CHECK_ENABLED, versionCheckEnabled); +2244 settings.setStringIfNotEmpty(Settings.KEYS.CONNECTION_TIMEOUT, connectionTimeout); +2245 settings.setStringIfNotEmpty(Settings.KEYS.CONNECTION_READ_TIMEOUT, readTimeout); +2246 settings.setStringIfNotEmpty(Settings.KEYS.HINTS_FILE, hintsFile); +2247 settings.setFloat(Settings.KEYS.JUNIT_FAIL_ON_CVSS, junitFailOnCVSS); +2248 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_JAR_ENABLED, jarAnalyzerEnabled); +2249 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_NUSPEC_ENABLED, nuspecAnalyzerEnabled); +2250 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_NUGETCONF_ENABLED, nugetconfAnalyzerEnabled); +2251 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_LIBMAN_ENABLED, libmanAnalyzerEnabled); +2252 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_CENTRAL_ENABLED, centralAnalyzerEnabled); +2253 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_CENTRAL_USE_CACHE, centralAnalyzerUseCache); +2254 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_ARTIFACTORY_ENABLED, artifactoryAnalyzerEnabled); +2255 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_NEXUS_ENABLED, nexusAnalyzerEnabled); +2256 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_ASSEMBLY_ENABLED, assemblyAnalyzerEnabled); +2257 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_MSBUILD_PROJECT_ENABLED, msbuildAnalyzerEnabled); +2258 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_ARCHIVE_ENABLED, archiveAnalyzerEnabled); +2259 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_KNOWN_EXPLOITED_ENABLED, knownExploitedEnabled); +2260 settings.setStringIfNotEmpty(Settings.KEYS.KEV_URL, knownExploitedUrl); +2261 settings.setStringIfNotEmpty(Settings.KEYS.ADDITIONAL_ZIP_EXTENSIONS, zipExtensions); +2262 settings.setStringIfNotEmpty(Settings.KEYS.ANALYZER_ASSEMBLY_DOTNET_PATH, pathToCore); +2263 settings.setStringIfNotEmpty(Settings.KEYS.ANALYZER_NEXUS_URL, nexusUrl); +2264 configureServerCredentials(nexusServerId, Settings.KEYS.ANALYZER_NEXUS_USER, Settings.KEYS.ANALYZER_NEXUS_PASSWORD); +2265 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_NEXUS_USES_PROXY, nexusUsesProxy); +2266 settings.setStringIfNotNull(Settings.KEYS.ANALYZER_ARTIFACTORY_URL, artifactoryAnalyzerUrl); +2267 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_ARTIFACTORY_USES_PROXY, artifactoryAnalyzerUseProxy); +2268 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_ARTIFACTORY_PARALLEL_ANALYSIS, artifactoryAnalyzerParallelAnalysis); +2269 if (Boolean.TRUE.equals(artifactoryAnalyzerEnabled)) { +2270 if (artifactoryAnalyzerServerId != null) { +2271 configureServerCredentials(artifactoryAnalyzerServerId, Settings.KEYS.ANALYZER_ARTIFACTORY_API_USERNAME, +2272 Settings.KEYS.ANALYZER_ARTIFACTORY_API_TOKEN); +2273 } else { +2274 settings.setStringIfNotNull(Settings.KEYS.ANALYZER_ARTIFACTORY_API_USERNAME, artifactoryAnalyzerUsername); +2275 settings.setStringIfNotNull(Settings.KEYS.ANALYZER_ARTIFACTORY_API_TOKEN, artifactoryAnalyzerApiToken); +2276 } +2277 settings.setStringIfNotNull(Settings.KEYS.ANALYZER_ARTIFACTORY_BEARER_TOKEN, artifactoryAnalyzerBearerToken); +2278 } +2279 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_PYTHON_DISTRIBUTION_ENABLED, pyDistributionAnalyzerEnabled); +2280 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_PYTHON_PACKAGE_ENABLED, pyPackageAnalyzerEnabled); +2281 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_RUBY_GEMSPEC_ENABLED, rubygemsAnalyzerEnabled); +2282 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_OPENSSL_ENABLED, opensslAnalyzerEnabled); +2283 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_CMAKE_ENABLED, cmakeAnalyzerEnabled); +2284 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_AUTOCONF_ENABLED, autoconfAnalyzerEnabled); +2285 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_MAVEN_INSTALL_ENABLED, mavenInstallAnalyzerEnabled); +2286 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_PIP_ENABLED, pipAnalyzerEnabled); +2287 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_PIPFILE_ENABLED, pipfileAnalyzerEnabled); +2288 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_POETRY_ENABLED, poetryAnalyzerEnabled); +2289 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_COMPOSER_LOCK_ENABLED, composerAnalyzerEnabled); +2290 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_CPANFILE_ENABLED, cpanfileAnalyzerEnabled); +2291 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_NODE_PACKAGE_ENABLED, nodeAnalyzerEnabled); +2292 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_NODE_AUDIT_ENABLED, nodeAuditAnalyzerEnabled); +2293 settings.setStringIfNotNull(Settings.KEYS.ANALYZER_NODE_AUDIT_URL, nodeAuditAnalyzerUrl); +2294 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_NODE_AUDIT_USE_CACHE, nodeAuditAnalyzerUseCache); +2295 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_NODE_PACKAGE_SKIPDEV, nodePackageSkipDevDependencies); +2296 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_NODE_AUDIT_SKIPDEV, nodeAuditSkipDevDependencies); +2297 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_YARN_AUDIT_ENABLED, yarnAuditAnalyzerEnabled); +2298 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_PNPM_AUDIT_ENABLED, pnpmAuditAnalyzerEnabled); +2299 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_RETIREJS_ENABLED, retireJsAnalyzerEnabled); +2300 settings.setStringIfNotNull(Settings.KEYS.ANALYZER_RETIREJS_REPO_JS_URL, retireJsUrl); +2301 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_RETIREJS_FORCEUPDATE, retireJsForceUpdate); +2302 if (retireJsUser == null && retireJsPassword == null && retireJsUrlServerId != null) { +2303 configureServerCredentials(retireJsUrlServerId, Settings.KEYS.ANALYZER_RETIREJS_REPO_JS_USER, Settings.KEYS.ANALYZER_RETIREJS_REPO_JS_PASSWORD); +2304 } else { +2305 settings.setStringIfNotEmpty(Settings.KEYS.ANALYZER_RETIREJS_REPO_JS_USER, retireJsUser); +2306 settings.setStringIfNotEmpty(Settings.KEYS.ANALYZER_RETIREJS_REPO_JS_PASSWORD, retireJsPassword); +2307 } +2308 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_MIX_AUDIT_ENABLED, mixAuditAnalyzerEnabled); +2309 settings.setStringIfNotNull(Settings.KEYS.ANALYZER_MIX_AUDIT_PATH, mixAuditPath); +2310 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_BUNDLE_AUDIT_ENABLED, bundleAuditAnalyzerEnabled); +2311 settings.setStringIfNotNull(Settings.KEYS.ANALYZER_BUNDLE_AUDIT_PATH, bundleAuditPath); +2312 settings.setStringIfNotNull(Settings.KEYS.ANALYZER_BUNDLE_AUDIT_WORKING_DIRECTORY, bundleAuditWorkingDirectory); +2313 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_COCOAPODS_ENABLED, cocoapodsAnalyzerEnabled); +2314 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_SWIFT_PACKAGE_MANAGER_ENABLED, swiftPackageManagerAnalyzerEnabled); +2315 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_SWIFT_PACKAGE_RESOLVED_ENABLED, swiftPackageResolvedAnalyzerEnabled); +2316 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_OSSINDEX_ENABLED, ossindexAnalyzerEnabled); +2317 settings.setStringIfNotEmpty(Settings.KEYS.ANALYZER_OSSINDEX_URL, ossindexAnalyzerUrl); +2318 configureServerCredentials(ossIndexServerId, Settings.KEYS.ANALYZER_OSSINDEX_USER, Settings.KEYS.ANALYZER_OSSINDEX_PASSWORD); +2319 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_OSSINDEX_USE_CACHE, ossindexAnalyzerUseCache); +2320 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_OSSINDEX_WARN_ONLY_ON_REMOTE_ERRORS, ossIndexWarnOnlyOnRemoteErrors); +2321 if (retirejs != null) { +2322 settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_RETIREJS_FILTER_NON_VULNERABLE, retirejs.getFilterNonVulnerable()); +2323 settings.setArrayIfNotEmpty(Settings.KEYS.ANALYZER_RETIREJS_FILTERS, retirejs.getFilters()); +2324 } +2325 //Database configuration +2326 settings.setStringIfNotEmpty(Settings.KEYS.DB_DRIVER_NAME, databaseDriverName); +2327 settings.setStringIfNotEmpty(Settings.KEYS.DB_DRIVER_PATH, databaseDriverPath); +2328 settings.setStringIfNotEmpty(Settings.KEYS.DB_CONNECTION_STRING, connectionString); +2329 if (databaseUser == null && databasePassword == null && serverId != null) { +2330 configureServerCredentials(serverId, Settings.KEYS.DB_USER, Settings.KEYS.DB_PASSWORD); +2331 } else { +2332 settings.setStringIfNotEmpty(Settings.KEYS.DB_USER, databaseUser); +2333 settings.setStringIfNotEmpty(Settings.KEYS.DB_PASSWORD, databasePassword); +2334 } +2335 settings.setStringIfNotEmpty(Settings.KEYS.DATA_DIRECTORY, dataDirectory); +2336 settings.setStringIfNotEmpty(Settings.KEYS.DB_FILE_NAME, dbFilename); +2337 settings.setStringIfNotNull(Settings.KEYS.NVD_API_ENDPOINT, nvdApiEndpoint); +2338 settings.setIntIfNotNull(Settings.KEYS.NVD_API_DELAY, nvdApiDelay); +2339 settings.setStringIfNotEmpty(Settings.KEYS.NVD_API_DATAFEED_URL, nvdDatafeedUrl); +2340 settings.setIntIfNotNull(Settings.KEYS.NVD_API_VALID_FOR_HOURS, nvdValidForHours); +2341 settings.setIntIfNotNull(Settings.KEYS.NVD_API_MAX_RETRY_COUNT, nvdMaxRetryCount); +2342 if (nvdApiKey == null && nvdApiServerId != null) { +2343 configureServerCredentialsApiKey(nvdApiServerId, Settings.KEYS.NVD_API_KEY); +2344 } else { +2345 settings.setStringIfNotEmpty(Settings.KEYS.NVD_API_KEY, nvdApiKey); +2346 } +2347 if (nvdUser == null && nvdPassword == null && nvdDatafeedServerId != null) { +2348 configureServerCredentials(nvdDatafeedServerId, Settings.KEYS.NVD_API_DATAFEED_USER, Settings.KEYS.NVD_API_DATAFEED_PASSWORD); +2349 } else { +2350 settings.setStringIfNotEmpty(Settings.KEYS.NVD_API_DATAFEED_USER, nvdUser); +2351 settings.setStringIfNotEmpty(Settings.KEYS.NVD_API_DATAFEED_PASSWORD, nvdPassword); +2352 } +2353 settings.setBooleanIfNotNull(Settings.KEYS.PRETTY_PRINT, prettyPrint); +2354 artifactScopeExcluded = new ArtifactScopeExcluded(skipTestScope, skipProvidedScope, skipSystemScope, skipRuntimeScope); +2355 artifactTypeExcluded = new ArtifactTypeExcluded(skipArtifactType); +2356 if (suppressionFileUser == null && suppressionFilePassword == null && suppressionFileServerId != null) { +2357 configureServerCredentials(suppressionFileServerId, Settings.KEYS.SUPPRESSION_FILE_USER, Settings.KEYS.SUPPRESSION_FILE_PASSWORD); +2358 } else { +2359 settings.setStringIfNotEmpty(Settings.KEYS.SUPPRESSION_FILE_USER, suppressionFileUser); +2360 settings.setStringIfNotEmpty(Settings.KEYS.SUPPRESSION_FILE_PASSWORD, suppressionFilePassword); +2361 } +2362 settings.setIntIfNotNull(Settings.KEYS.HOSTED_SUPPRESSIONS_VALID_FOR_HOURS, hostedSuppressionsValidForHours); +2363 settings.setStringIfNotNull(Settings.KEYS.HOSTED_SUPPRESSIONS_URL, hostedSuppressionsUrl); +2364 settings.setBooleanIfNotNull(Settings.KEYS.HOSTED_SUPPRESSIONS_FORCEUPDATE, hostedSuppressionsForceUpdate); +2365 settings.setBooleanIfNotNull(Settings.KEYS.HOSTED_SUPPRESSIONS_ENABLED, hostedSuppressionsEnabled); +2366 } +2367 //CSON: MethodLength +2368 +2369 /** +2370 * Retrieves the server credentials from the settings.xml, decrypts the +2371 * password, and places the values into the settings under the given key +2372 * names. +2373 * +2374 * @param serverId the server id +2375 * @param userSettingKey the property name for the username +2376 * @param passwordSettingKey the property name for the password +2377 */ +2378 private void configureServerCredentials(String serverId, String userSettingKey, String passwordSettingKey) { +2379 if (serverId != null) { +2380 final Server server = settingsXml.getServer(serverId); +2381 if (server != null) { +2382 final String username = server.getUsername(); +2383 String password = null; +2384 try { +2385 password = decryptPasswordFromSettings(server.getPassword()); +2386 } catch (SecDispatcherException ex) { +2387 password = handleSecDispatcherException("server", serverId, server.getPassword(), ex); +2388 } +2389 settings.setStringIfNotEmpty(userSettingKey, username); +2390 settings.setStringIfNotEmpty(passwordSettingKey, password); +2391 } else { +2392 getLog().error(String.format("Server '%s' not found in the settings.xml file", serverId)); +2393 } +2394 } +2395 } +2396 +2397 /** +2398 * Retrieves the server credentials from the settings.xml, decrypts the +2399 * password, and places the values into the settings under the given key +2400 * names. This is used to retrieve an encrypted password as an API key. +2401 * +2402 * @param serverId the server id +2403 * @param apiKeySetting the property name for the username +2404 */ +2405 private void configureServerCredentialsApiKey(String serverId, String apiKeySetting) { +2406 if (serverId != null) { +2407 final Server server = settingsXml.getServer(serverId); +2408 if (server != null) { +2409 String password = null; +2410 try { +2411 password = decryptPasswordFromSettings(server.getPassword()); +2412 } catch (SecDispatcherException ex) { +2413 password = handleSecDispatcherException("server", serverId, server.getPassword(), ex); +2414 } +2415 settings.setStringIfNotEmpty(apiKeySetting, password); +2416 } else { +2417 getLog().error(String.format("Server '%s' not found in the settings.xml file", serverId)); +2418 } +2419 } +2420 } +2421 +2422 /** +2423 * Decrypts a password from the Maven settings if it needs to be decrypted. +2424 * If it's not encrypted the input password will be returned unchanged. +2425 * +2426 * @param password the original password value from the settings.xml +2427 * @return the decrypted password from the Maven configuration +2428 * @throws SecDispatcherException thrown if there is an error decrypting the +2429 * password +2430 */ +2431 private String decryptPasswordFromSettings(String password) throws SecDispatcherException { +2432 //The following fix was copied from: +2433 // https://github.com/bsorrentino/maven-confluence-plugin/blob/master/maven-confluence-reporting-plugin/src/main/java/org/bsc/maven/confluence/plugin/AbstractBaseConfluenceMojo.java +2434 // +2435 // FIX to resolve +2436 // org.sonatype.plexus.components.sec.dispatcher.SecDispatcherException: +2437 // java.io.FileNotFoundException: ~/.settings-security.xml (No such file or directory) +2438 // +2439 if (securityDispatcher instanceof DefaultSecDispatcher) { +2440 ((DefaultSecDispatcher) securityDispatcher).setConfigurationFile("~/.m2/settings-security.xml"); +2441 } +2442 +2443 return securityDispatcher.decrypt(password); +2444 } +2445 +2446 /** +2447 * Handles a SecDispatcherException that was thrown at an attempt to decrypt +2448 * an encrypted password from the Maven settings. +2449 * +2450 * @param settingsElementName - "server" or "proxy" +2451 * @param settingsElementId - value of the id attribute of the proxy resp. +2452 * server element to which the password belongs +2453 * @param passwordValueFromSettings - original, undecrypted password value +2454 * from the settings +2455 * @param ex - the Exception to handle +2456 * @return the password fallback value to go on with, might be a not working +2457 * one. +2458 */ +2459 private String handleSecDispatcherException(String settingsElementName, String settingsElementId, String passwordValueFromSettings, +2460 SecDispatcherException ex) { +2461 String password = passwordValueFromSettings; +2462 if (ex.getCause() instanceof FileNotFoundException +2463 || (ex.getCause() != null && ex.getCause().getCause() instanceof FileNotFoundException)) { +2464 //maybe its not encrypted? +2465 final String tmp = passwordValueFromSettings; +2466 if (tmp.startsWith("{") && tmp.endsWith("}")) { +2467 getLog().error(String.format( +2468 "Unable to decrypt the %s password for %s id '%s' in settings.xml%n\tCause: %s", +2469 settingsElementName, settingsElementName, settingsElementId, ex.getMessage())); +2470 } else { +2471 password = tmp; +2472 } +2473 } else { +2474 getLog().error(String.format( +2475 "Unable to decrypt the %s password for %s id '%s' in settings.xml%n\tCause: %s", +2476 settingsElementName, settingsElementName, settingsElementId, ex.getMessage())); +2477 } +2478 return password; +2479 } +2480 +2481 /** +2482 * Combines the configured suppressionFile and suppressionFiles into a +2483 * single array. +2484 * +2485 * @return an array of suppression file paths +2486 */ +2487 private String[] determineSuppressions() { +2488 String[] suppressions = suppressionFiles; +2489 if (suppressionFile != null) { +2490 if (suppressions == null) { +2491 suppressions = new String[]{suppressionFile}; +2492 } else { +2493 suppressions = Arrays.copyOf(suppressions, suppressions.length + 1); +2494 suppressions[suppressions.length - 1] = suppressionFile; +2495 } +2496 } +2497 return suppressions; +2498 } +2499 +2500 /** +2501 * Hacky method of muting the noisy logging from JCS +2502 */ +2503 private void muteNoisyLoggers() { +2504 System.setProperty("jcs.logSystem", "slf4j"); +2505 if (!getLog().isDebugEnabled()) { +2506 Slf4jAdapter.muteLogging(true); +2507 } +2508 +2509 final String[] noisyLoggers = { +2510 "org.apache.hc" +2511 }; +2512 for (String loggerName : noisyLoggers) { +2513 System.setProperty("org.slf4j.simpleLogger.log." + loggerName, "error"); +2514 } +2515 } +2516 +2517 /** +2518 * Returns the maven proxy. +2519 * +2520 * @return the maven proxy +2521 */ +2522 private Proxy getMavenProxy() { +2523 if (mavenSettings != null) { +2524 final List<Proxy> proxies = mavenSettings.getProxies(); +2525 if (proxies != null && !proxies.isEmpty()) { +2526 if (mavenSettingsProxyId != null) { +2527 for (Proxy proxy : proxies) { +2528 if (mavenSettingsProxyId.equalsIgnoreCase(proxy.getId())) { +2529 return proxy; +2530 } +2531 } +2532 } else { +2533 for (Proxy aProxy : proxies) { +2534 if (aProxy.isActive()) { +2535 return aProxy; +2536 } +2537 } +2538 } +2539 } +2540 } +2541 return null; +2542 } +2543 +2544 /** +2545 * Returns a reference to the current project. This method is used instead +2546 * of auto-binding the project via component annotation in concrete +2547 * implementations of this. If the child has a +2548 * <code>@Component MavenProject project;</code> defined then the abstract +2549 * class (i.e. this class) will not have access to the current project (just +2550 * the way Maven works with the binding). 2551 * -2552 * @return the list of Maven Projects in this build +2552 * @return returns a reference to the current project 2553 */ -2554 protected List<MavenProject> getReactorProjects() { -2555 return reactorProjects; +2554 protected MavenProject getProject() { +2555 return project; 2556 } 2557 2558 /** -2559 * Combines the format and formats properties into a single collection. +2559 * Returns the list of Maven Projects in this build. 2560 * -2561 * @return the selected report formats +2561 * @return the list of Maven Projects in this build 2562 */ -2563 private Set<String> getFormats() { -2564 final Set<String> invalid = new HashSet<>(); -2565 final Set<String> selectedFormats = formats == null || formats.length == 0 ? new HashSet<>() : new HashSet<>(Arrays.asList(formats)); -2566 selectedFormats.forEach((s) -> { -2567 try { -2568 ReportGenerator.Format.valueOf(s.toUpperCase()); -2569 } catch (IllegalArgumentException ex) { -2570 invalid.add(s); -2571 } -2572 }); -2573 invalid.forEach((s) -> getLog().warn("Invalid report format specified: " + s)); -2574 if (selectedFormats.contains("true")) { -2575 selectedFormats.remove("true"); -2576 } -2577 if (format != null && selectedFormats.isEmpty()) { -2578 selectedFormats.add(format); -2579 } -2580 return selectedFormats; -2581 } -2582 -2583 /** -2584 * Returns the list of excluded artifacts based on either artifact id or -2585 * group id and artifact id. -2586 * -2587 * @return a list of artifact to exclude -2588 */ -2589 public List<String> getExcludes() { -2590 if (excludes == null) { -2591 excludes = new ArrayList<>(); -2592 } -2593 return excludes; -2594 } -2595 -2596 /** -2597 * Returns the artifact scope excluded filter. -2598 * -2599 * @return the artifact scope excluded filter -2600 */ -2601 protected Filter<String> getArtifactScopeExcluded() { -2602 return artifactScopeExcluded; +2563 protected List<MavenProject> getReactorProjects() { +2564 return reactorProjects; +2565 } +2566 +2567 /** +2568 * Combines the format and formats properties into a single collection. +2569 * +2570 * @return the selected report formats +2571 */ +2572 private Set<String> getFormats() { +2573 final Set<String> invalid = new HashSet<>(); +2574 final Set<String> selectedFormats = formats == null || formats.length == 0 ? new HashSet<>() : new HashSet<>(Arrays.asList(formats)); +2575 selectedFormats.forEach((s) -> { +2576 try { +2577 ReportGenerator.Format.valueOf(s.toUpperCase()); +2578 } catch (IllegalArgumentException ex) { +2579 invalid.add(s); +2580 } +2581 }); +2582 invalid.forEach((s) -> getLog().warn("Invalid report format specified: " + s)); +2583 if (selectedFormats.contains("true")) { +2584 selectedFormats.remove("true"); +2585 } +2586 if (format != null && selectedFormats.isEmpty()) { +2587 selectedFormats.add(format); +2588 } +2589 return selectedFormats; +2590 } +2591 +2592 /** +2593 * Returns the list of excluded artifacts based on either artifact id or +2594 * group id and artifact id. +2595 * +2596 * @return a list of artifact to exclude +2597 */ +2598 public List<String> getExcludes() { +2599 if (excludes == null) { +2600 excludes = new ArrayList<>(); +2601 } +2602 return excludes; 2603 } 2604 2605 /** -2606 * Returns the configured settings. +2606 * Returns the artifact scope excluded filter. 2607 * -2608 * @return the configured settings +2608 * @return the artifact scope excluded filter 2609 */ -2610 protected Settings getSettings() { -2611 return settings; +2610 protected Filter<String> getArtifactScopeExcluded() { +2611 return artifactScopeExcluded; 2612 } 2613 -2614 //<editor-fold defaultstate="collapsed" desc="Methods to fail build or show summary"> -2615 /** -2616 * Checks to see if a vulnerability has been identified with a CVSS score -2617 * that is above the threshold set in the configuration. -2618 * -2619 * @param dependencies the list of dependency objects -2620 * @throws MojoFailureException thrown if a CVSS score is found that is -2621 * higher then the threshold set -2622 */ -2623 protected void checkForFailure(Dependency[] dependencies) throws MojoFailureException { -2624 final StringBuilder ids = new StringBuilder(); -2625 for (Dependency d : dependencies) { -2626 boolean addName = true; -2627 for (Vulnerability v : d.getVulnerabilities()) { -2628 final Double cvssV2 = v.getCvssV2() != null && v.getCvssV2().getCvssData() != null && v.getCvssV2().getCvssData().getBaseScore() != null ? v.getCvssV2().getCvssData().getBaseScore() : -1; -2629 final Double cvssV3 = v.getCvssV3() != null && v.getCvssV3().getCvssData() != null && v.getCvssV3().getCvssData().getBaseScore() != null ? v.getCvssV3().getCvssData().getBaseScore() : -1; -2630 final Double unscoredCvss = v.getUnscoredSeverity() != null ? SeverityUtil.estimateCvssV2(v.getUnscoredSeverity()) : -1; -2631 -2632 if (failBuildOnAnyVulnerability || cvssV2 >= failBuildOnCVSS -2633 || cvssV3 >= failBuildOnCVSS -2634 || unscoredCvss >= failBuildOnCVSS -2635 //safety net to fail on any if for some reason the above misses on 0 -2636 || (failBuildOnCVSS <= 0.0)) { -2637 String name = v.getName(); -2638 if (cvssV3 >= 0.0) { -2639 name += "(" + cvssV3 + ")"; -2640 } else if (cvssV2 >= 0.0) { -2641 name += "(" + cvssV2 + ")"; -2642 } else if (unscoredCvss >= 0.0) { -2643 name += "(" + unscoredCvss + ")"; -2644 } -2645 if (addName) { -2646 addName = false; -2647 ids.append(NEW_LINE).append(d.getFileName()).append(": "); -2648 ids.append(name); -2649 } else { -2650 ids.append(", ").append(name); -2651 } -2652 } -2653 } -2654 } -2655 if (ids.length() > 0) { -2656 final String msg; -2657 if (showSummary) { -2658 if (failBuildOnAnyVulnerability) { -2659 msg = String.format("%n%nOne or more dependencies were identified with vulnerabilities: %n%s%n%n" -2660 + "See the dependency-check report for more details.%n%n", ids); -2661 } else { -2662 msg = String.format("%n%nOne or more dependencies were identified with vulnerabilities that have a CVSS score greater than or " -2663 + "equal to '%.1f': %n%s%n%nSee the dependency-check report for more details.%n%n", failBuildOnCVSS, ids); -2664 } -2665 } else { -2666 msg = String.format("%n%nOne or more dependencies were identified with vulnerabilities.%n%n" -2667 + "See the dependency-check report for more details.%n%n"); -2668 } -2669 throw new MojoFailureException(msg); -2670 } -2671 } -2672 -2673 /** -2674 * Generates a warning message listing a summary of dependencies and their -2675 * associated CPE and CVE entries. -2676 * -2677 * @param mp the Maven project for which the summary is shown -2678 * @param dependencies a list of dependency objects -2679 */ -2680 protected void showSummary(MavenProject mp, Dependency[] dependencies) { -2681 if (showSummary) { -2682 DependencyCheckScanAgent.showSummary(mp.getName(), dependencies); -2683 } -2684 } -2685 -2686 //</editor-fold> -2687 //CSOFF: ParameterNumber -2688 private ExceptionCollection scanDependencyNode(DependencyNode dependencyNode, DependencyNode root, -2689 Engine engine, MavenProject project, List<ArtifactResult> allResolvedDeps, -2690 ProjectBuildingRequest buildingRequest, boolean aggregate, ExceptionCollection exceptionCollection) { -2691 ExceptionCollection exCol = exceptionCollection; -2692 if (artifactScopeExcluded.passes(dependencyNode.getArtifact().getScope()) -2693 || artifactTypeExcluded.passes(dependencyNode.getArtifact().getType())) { -2694 return exCol; -2695 } -2696 -2697 boolean isResolved = false; -2698 File artifactFile = null; -2699 String artifactId = null; -2700 String groupId = null; -2701 String version = null; -2702 List<ArtifactVersion> availableVersions = null; -2703 if (org.apache.maven.artifact.Artifact.SCOPE_SYSTEM.equals(dependencyNode.getArtifact().getScope())) { -2704 final Artifact a = dependencyNode.getArtifact(); -2705 if (a.isResolved() && a.getFile().isFile()) { -2706 artifactFile = a.getFile(); -2707 isResolved = artifactFile.isFile(); -2708 groupId = a.getGroupId(); -2709 artifactId = a.getArtifactId(); -2710 version = a.getVersion(); -2711 availableVersions = a.getAvailableVersions(); -2712 } else { -2713 for (org.apache.maven.model.Dependency d : project.getDependencies()) { -2714 if (d.getSystemPath() != null && artifactsMatch(d, a)) { -2715 artifactFile = new File(d.getSystemPath()); -2716 isResolved = artifactFile.isFile(); -2717 groupId = a.getGroupId(); -2718 artifactId = a.getArtifactId(); -2719 version = a.getVersion(); -2720 availableVersions = a.getAvailableVersions(); -2721 break; -2722 } -2723 } -2724 } -2725 Throwable ignored = null; -2726 if (!isResolved) { -2727 // Issue #4969 Tycho appears to add System-scoped libraries in reactor projects in unresolved state -2728 // so attempt to do a resolution for system-scoped too if still nothing found -2729 try { -2730 tryResolutionOnce(project, allResolvedDeps, buildingRequest); -2731 final Artifact result = findInAllDeps(allResolvedDeps, dependencyNode.getArtifact(), project); -2732 isResolved = result.isResolved(); -2733 artifactFile = result.getFile(); -2734 groupId = result.getGroupId(); -2735 artifactId = result.getArtifactId(); -2736 version = result.getVersion(); -2737 availableVersions = result.getAvailableVersions(); -2738 } catch (DependencyNotFoundException | DependencyResolverException e) { -2739 getLog().warn("Error performing last-resort System-scoped dependency resolution: " + e.getMessage()); -2740 ignored = e; -2741 } -2742 } -2743 if (!isResolved) { -2744 final StringBuilder message = new StringBuilder("Unable to resolve system scoped dependency: "); -2745 if (artifactFile != null) { -2746 message.append(dependencyNode.toNodeString()).append(" at path ").append(artifactFile); -2747 } else { -2748 message.append(dependencyNode.toNodeString()).append(" at path ").append(a.getFile()); -2749 } -2750 getLog().error(message); -2751 if (exCol == null) { -2752 exCol = new ExceptionCollection(); -2753 } -2754 final Exception thrown = new DependencyNotFoundException(message.toString()); -2755 if (ignored != null) { -2756 thrown.addSuppressed(ignored); -2757 } -2758 exCol.addException(thrown); -2759 } -2760 } else { -2761 final Artifact dependencyArtifact = dependencyNode.getArtifact(); -2762 final Artifact result; -2763 if (dependencyArtifact.isResolved()) { -2764 //All transitive dependencies, excluding reactor and dependencyManagement artifacts should -2765 //have been resolved by Maven prior to invoking the plugin - resolving the dependencies -2766 //manually is unnecessary, and does not work in some cases (issue-1751) -2767 getLog().debug(String.format("Skipping artifact %s, already resolved", dependencyArtifact.getArtifactId())); -2768 result = dependencyArtifact; -2769 } else { -2770 try { -2771 tryResolutionOnce(project, allResolvedDeps, buildingRequest); -2772 result = findInAllDeps(allResolvedDeps, dependencyNode.getArtifact(), project); -2773 } catch (DependencyNotFoundException | DependencyResolverException ex) { -2774 getLog().debug(String.format("Aggregate : %s", aggregate)); -2775 boolean addException = true; -2776 //CSOFF: EmptyBlock -2777 if (!aggregate) { -2778 // do nothing - the exception is to be reported -2779 } else if (addReactorDependency(engine, dependencyNode.getArtifact(), project)) { -2780 // successfully resolved as a reactor dependency - swallow the exception -2781 addException = false; -2782 } -2783 if (addException) { -2784 if (exCol == null) { -2785 exCol = new ExceptionCollection(); -2786 } -2787 exCol.addException(ex); -2788 } -2789 return exCol; -2790 } -2791 } -2792 if (aggregate && virtualSnapshotsFromReactor -2793 && dependencyNode.getArtifact().isSnapshot() -2794 && addSnapshotReactorDependency(engine, dependencyNode.getArtifact(), project)) { -2795 return exCol; -2796 } -2797 isResolved = result.isResolved(); -2798 artifactFile = result.getFile(); -2799 groupId = result.getGroupId(); -2800 artifactId = result.getArtifactId(); -2801 version = result.getVersion(); -2802 availableVersions = result.getAvailableVersions(); -2803 } -2804 if (isResolved && artifactFile != null) { -2805 final List<Dependency> deps = engine.scan(artifactFile.getAbsoluteFile(), -2806 createProjectReferenceName(project, dependencyNode)); -2807 if (deps != null) { -2808 processResolvedArtifact(artifactFile, deps, groupId, artifactId, version, root, project, availableVersions, dependencyNode); -2809 } else if ("import".equals(dependencyNode.getArtifact().getScope())) { -2810 final String msg = String.format("Skipping '%s:%s' in project %s as it uses an `import` scope", -2811 dependencyNode.getArtifact().getId(), dependencyNode.getArtifact().getScope(), project.getName()); -2812 getLog().debug(msg); -2813 } else if ("pom".equals(dependencyNode.getArtifact().getType())) { -2814 exCol = processPomArtifact(artifactFile, root, project, engine, exCol); -2815 } else { -2816 if (!scannedFiles.contains(artifactFile)) { -2817 final String msg = String.format("No analyzer could be found or the artifact has been scanned twice for '%s:%s' in project %s", -2818 dependencyNode.getArtifact().getId(), dependencyNode.getArtifact().getScope(), project.getName()); -2819 getLog().warn(msg); -2820 } -2821 } -2822 } else { -2823 final String msg = String.format("Unable to resolve '%s' in project %s", -2824 dependencyNode.getArtifact().getId(), project.getName()); -2825 getLog().debug(msg); -2826 if (exCol == null) { -2827 exCol = new ExceptionCollection(); -2828 } -2829 } -2830 return exCol; -2831 } -2832 -2833 /** -2834 * Try resolution of artifacts once, allowing for -2835 * DependencyResolutionException due to reactor-dependencies not being -2836 * resolvable. -2837 * <br> -2838 * The resolution is attempted only if allResolvedDeps is still empty. The -2839 * assumption is that for any given project at least one of the dependencies -2840 * will successfully resolve. If not, resolution will be attempted once for -2841 * every dependency (as allResolvedDeps remains empty). -2842 * -2843 * @param project The project to dependencies for -2844 * @param allResolvedDeps The collection of successfully resolved -2845 * dependencies, will be filled with the successfully resolved dependencies, -2846 * even in case of resolution failures. -2847 * @param buildingRequest The buildingRequest to hand to Maven's -2848 * DependencyResolver. -2849 * @throws DependencyResolverException For any DependencyResolverException -2850 * other than an Eclipse Aether DependencyResolutionException -2851 */ -2852 private void tryResolutionOnce(MavenProject project, List<ArtifactResult> allResolvedDeps, ProjectBuildingRequest buildingRequest) throws DependencyResolverException { -2853 if (allResolvedDeps.isEmpty()) { // no (partially successful) resolution attempt done -2854 try { -2855 final List<org.apache.maven.model.Dependency> dependencies = project.getDependencies(); -2856 final List<org.apache.maven.model.Dependency> managedDependencies = project -2857 .getDependencyManagement() == null ? null : project.getDependencyManagement().getDependencies(); -2858 final Iterable<ArtifactResult> allDeps = dependencyResolver -2859 .resolveDependencies(buildingRequest, dependencies, managedDependencies, null); -2860 allDeps.forEach(allResolvedDeps::add); -2861 } catch (DependencyResolverException dre) { -2862 if (dre.getCause() instanceof org.eclipse.aether.resolution.DependencyResolutionException) { -2863 final List<ArtifactResult> successResults = Mshared998Util -2864 .getResolutionResults((org.eclipse.aether.resolution.DependencyResolutionException) dre.getCause()); -2865 allResolvedDeps.addAll(successResults); -2866 } else { -2867 throw dre; -2868 } -2869 } -2870 } -2871 } -2872 //CSON: ParameterNumber -2873 -2874 //CSOFF: ParameterNumber -2875 private void processResolvedArtifact(File artifactFile, final List<Dependency> deps, -2876 String groupId, String artifactId, String version, DependencyNode root, -2877 MavenProject project1, List<ArtifactVersion> availableVersions, -2878 DependencyNode dependencyNode) { -2879 scannedFiles.add(artifactFile); -2880 Dependency d = null; -2881 if (deps.size() == 1) { -2882 d = deps.get(0); -2883 -2884 } else { -2885 for (Dependency possible : deps) { -2886 if (artifactFile.getAbsoluteFile().equals(possible.getActualFile())) { -2887 d = possible; -2888 break; -2889 } -2890 } -2891 for (Dependency dep : deps) { -2892 if (d != null && d != dep) { -2893 final String includedBy = buildReference(groupId, artifactId, version); -2894 dep.addIncludedBy(includedBy); -2895 } -2896 } -2897 } -2898 if (d != null) { -2899 final MavenArtifact ma = new MavenArtifact(groupId, artifactId, version); -2900 d.addAsEvidence("pom", ma, Confidence.HIGHEST); -2901 if (root != null) { -2902 final String includedby = buildReference( -2903 root.getArtifact().getGroupId(), -2904 root.getArtifact().getArtifactId(), -2905 root.getArtifact().getVersion()); -2906 d.addIncludedBy(includedby); -2907 } else { -2908 final String includedby = buildReference(project1.getGroupId(), project1.getArtifactId(), project1.getVersion()); -2909 d.addIncludedBy(includedby); -2910 } -2911 if (availableVersions != null) { -2912 for (ArtifactVersion av : availableVersions) { -2913 d.addAvailableVersion(av.toString()); -2914 } -2915 } -2916 getLog().debug(String.format("Adding project reference %s on dependency %s", project1.getName(), d.getDisplayFileName())); -2917 } else if (getLog().isDebugEnabled()) { -2918 final String msg = String.format("More than 1 dependency was identified in first pass scan of '%s' in project %s", dependencyNode.getArtifact().getId(), project1.getName()); -2919 getLog().debug(msg); -2920 } -2921 } -2922 //CSON: ParameterNumber -2923 -2924 private ExceptionCollection processPomArtifact(File artifactFile, DependencyNode root, -2925 MavenProject project1, Engine engine, ExceptionCollection exCollection) { -2926 ExceptionCollection exCol = exCollection; -2927 try { -2928 final Dependency d = new Dependency(artifactFile.getAbsoluteFile()); -2929 final Model pom = PomUtils.readPom(artifactFile.getAbsoluteFile()); -2930 JarAnalyzer.setPomEvidence(d, pom, null, true); -2931 if (root != null) { -2932 final String includedby = buildReference( -2933 root.getArtifact().getGroupId(), -2934 root.getArtifact().getArtifactId(), -2935 root.getArtifact().getVersion()); -2936 d.addIncludedBy(includedby); -2937 } else { -2938 final String includedby = buildReference(project1.getGroupId(), project1.getArtifactId(), project1.getVersion()); -2939 d.addIncludedBy(includedby); -2940 } -2941 engine.addDependency(d); -2942 } catch (AnalysisException ex) { -2943 if (exCol == null) { -2944 exCol = new ExceptionCollection(); -2945 } -2946 exCol.addException(ex); -2947 getLog().debug("Error reading pom " + artifactFile.getAbsoluteFile(), ex); -2948 } -2949 return exCol; -2950 } -2951 -2952 } -2953 //CSON: FileLength +2614 /** +2615 * Returns the configured settings. +2616 * +2617 * @return the configured settings +2618 */ +2619 protected Settings getSettings() { +2620 return settings; +2621 } +2622 +2623 //<editor-fold defaultstate="collapsed" desc="Methods to fail build or show summary"> +2624 /** +2625 * Checks to see if a vulnerability has been identified with a CVSS score +2626 * that is above the threshold set in the configuration. +2627 * +2628 * @param dependencies the list of dependency objects +2629 * @throws MojoFailureException thrown if a CVSS score is found that is +2630 * higher then the threshold set +2631 */ +2632 protected void checkForFailure(Dependency[] dependencies) throws MojoFailureException { +2633 final StringBuilder ids = new StringBuilder(); +2634 for (Dependency d : dependencies) { +2635 boolean addName = true; +2636 for (Vulnerability v : d.getVulnerabilities()) { +2637 final Double cvssV2 = v.getCvssV2() != null && v.getCvssV2().getCvssData() != null && v.getCvssV2().getCvssData().getBaseScore() != null ? v.getCvssV2().getCvssData().getBaseScore() : -1; +2638 final Double cvssV3 = v.getCvssV3() != null && v.getCvssV3().getCvssData() != null && v.getCvssV3().getCvssData().getBaseScore() != null ? v.getCvssV3().getCvssData().getBaseScore() : -1; +2639 final Double unscoredCvss = v.getUnscoredSeverity() != null ? SeverityUtil.estimateCvssV2(v.getUnscoredSeverity()) : -1; +2640 +2641 if (failBuildOnAnyVulnerability || cvssV2 >= failBuildOnCVSS +2642 || cvssV3 >= failBuildOnCVSS +2643 || unscoredCvss >= failBuildOnCVSS +2644 //safety net to fail on any if for some reason the above misses on 0 +2645 || (failBuildOnCVSS <= 0.0)) { +2646 String name = v.getName(); +2647 if (cvssV3 >= 0.0) { +2648 name += "(" + cvssV3 + ")"; +2649 } else if (cvssV2 >= 0.0) { +2650 name += "(" + cvssV2 + ")"; +2651 } else if (unscoredCvss >= 0.0) { +2652 name += "(" + unscoredCvss + ")"; +2653 } +2654 if (addName) { +2655 addName = false; +2656 ids.append(NEW_LINE).append(d.getFileName()).append(": "); +2657 ids.append(name); +2658 } else { +2659 ids.append(", ").append(name); +2660 } +2661 } +2662 } +2663 } +2664 if (ids.length() > 0) { +2665 final String msg; +2666 if (showSummary) { +2667 if (failBuildOnAnyVulnerability) { +2668 msg = String.format("%n%nOne or more dependencies were identified with vulnerabilities: %n%s%n%n" +2669 + "See the dependency-check report for more details.%n%n", ids); +2670 } else { +2671 msg = String.format("%n%nOne or more dependencies were identified with vulnerabilities that have a CVSS score greater than or " +2672 + "equal to '%.1f': %n%s%n%nSee the dependency-check report for more details.%n%n", failBuildOnCVSS, ids); +2673 } +2674 } else { +2675 msg = String.format("%n%nOne or more dependencies were identified with vulnerabilities.%n%n" +2676 + "See the dependency-check report for more details.%n%n"); +2677 } +2678 throw new MojoFailureException(msg); +2679 } +2680 } +2681 +2682 /** +2683 * Generates a warning message listing a summary of dependencies and their +2684 * associated CPE and CVE entries. +2685 * +2686 * @param mp the Maven project for which the summary is shown +2687 * @param dependencies a list of dependency objects +2688 */ +2689 protected void showSummary(MavenProject mp, Dependency[] dependencies) { +2690 if (showSummary) { +2691 DependencyCheckScanAgent.showSummary(mp.getName(), dependencies); +2692 } +2693 } +2694 +2695 //</editor-fold> +2696 //CSOFF: ParameterNumber +2697 private ExceptionCollection scanDependencyNode(DependencyNode dependencyNode, DependencyNode root, +2698 Engine engine, MavenProject project, List<ArtifactResult> allResolvedDeps, +2699 ProjectBuildingRequest buildingRequest, boolean aggregate, ExceptionCollection exceptionCollection) { +2700 ExceptionCollection exCol = exceptionCollection; +2701 if (artifactScopeExcluded.passes(dependencyNode.getArtifact().getScope()) +2702 || artifactTypeExcluded.passes(dependencyNode.getArtifact().getType())) { +2703 return exCol; +2704 } +2705 +2706 boolean isResolved = false; +2707 File artifactFile = null; +2708 String artifactId = null; +2709 String groupId = null; +2710 String version = null; +2711 List<ArtifactVersion> availableVersions = null; +2712 if (org.apache.maven.artifact.Artifact.SCOPE_SYSTEM.equals(dependencyNode.getArtifact().getScope())) { +2713 final Artifact a = dependencyNode.getArtifact(); +2714 if (a.isResolved() && a.getFile().isFile()) { +2715 artifactFile = a.getFile(); +2716 isResolved = artifactFile.isFile(); +2717 groupId = a.getGroupId(); +2718 artifactId = a.getArtifactId(); +2719 version = a.getVersion(); +2720 availableVersions = a.getAvailableVersions(); +2721 } else { +2722 for (org.apache.maven.model.Dependency d : project.getDependencies()) { +2723 if (d.getSystemPath() != null && artifactsMatch(d, a)) { +2724 artifactFile = new File(d.getSystemPath()); +2725 isResolved = artifactFile.isFile(); +2726 groupId = a.getGroupId(); +2727 artifactId = a.getArtifactId(); +2728 version = a.getVersion(); +2729 availableVersions = a.getAvailableVersions(); +2730 break; +2731 } +2732 } +2733 } +2734 Throwable ignored = null; +2735 if (!isResolved) { +2736 // Issue #4969 Tycho appears to add System-scoped libraries in reactor projects in unresolved state +2737 // so attempt to do a resolution for system-scoped too if still nothing found +2738 try { +2739 tryResolutionOnce(project, allResolvedDeps, buildingRequest); +2740 final Artifact result = findInAllDeps(allResolvedDeps, dependencyNode.getArtifact(), project); +2741 isResolved = result.isResolved(); +2742 artifactFile = result.getFile(); +2743 groupId = result.getGroupId(); +2744 artifactId = result.getArtifactId(); +2745 version = result.getVersion(); +2746 availableVersions = result.getAvailableVersions(); +2747 } catch (DependencyNotFoundException | DependencyResolverException e) { +2748 getLog().warn("Error performing last-resort System-scoped dependency resolution: " + e.getMessage()); +2749 ignored = e; +2750 } +2751 } +2752 if (!isResolved) { +2753 final StringBuilder message = new StringBuilder("Unable to resolve system scoped dependency: "); +2754 if (artifactFile != null) { +2755 message.append(dependencyNode.toNodeString()).append(" at path ").append(artifactFile); +2756 } else { +2757 message.append(dependencyNode.toNodeString()).append(" at path ").append(a.getFile()); +2758 } +2759 getLog().error(message); +2760 if (exCol == null) { +2761 exCol = new ExceptionCollection(); +2762 } +2763 final Exception thrown = new DependencyNotFoundException(message.toString()); +2764 if (ignored != null) { +2765 thrown.addSuppressed(ignored); +2766 } +2767 exCol.addException(thrown); +2768 } +2769 } else { +2770 final Artifact dependencyArtifact = dependencyNode.getArtifact(); +2771 final Artifact result; +2772 if (dependencyArtifact.isResolved()) { +2773 //All transitive dependencies, excluding reactor and dependencyManagement artifacts should +2774 //have been resolved by Maven prior to invoking the plugin - resolving the dependencies +2775 //manually is unnecessary, and does not work in some cases (issue-1751) +2776 getLog().debug(String.format("Skipping artifact %s, already resolved", dependencyArtifact.getArtifactId())); +2777 result = dependencyArtifact; +2778 } else { +2779 try { +2780 tryResolutionOnce(project, allResolvedDeps, buildingRequest); +2781 result = findInAllDeps(allResolvedDeps, dependencyNode.getArtifact(), project); +2782 } catch (DependencyNotFoundException | DependencyResolverException ex) { +2783 getLog().debug(String.format("Aggregate : %s", aggregate)); +2784 boolean addException = true; +2785 //CSOFF: EmptyBlock +2786 if (!aggregate) { +2787 // do nothing - the exception is to be reported +2788 } else if (addReactorDependency(engine, dependencyNode.getArtifact(), project)) { +2789 // successfully resolved as a reactor dependency - swallow the exception +2790 addException = false; +2791 } +2792 if (addException) { +2793 if (exCol == null) { +2794 exCol = new ExceptionCollection(); +2795 } +2796 exCol.addException(ex); +2797 } +2798 return exCol; +2799 } +2800 } +2801 if (aggregate && virtualSnapshotsFromReactor +2802 && dependencyNode.getArtifact().isSnapshot() +2803 && addSnapshotReactorDependency(engine, dependencyNode.getArtifact(), project)) { +2804 return exCol; +2805 } +2806 isResolved = result.isResolved(); +2807 artifactFile = result.getFile(); +2808 groupId = result.getGroupId(); +2809 artifactId = result.getArtifactId(); +2810 version = result.getVersion(); +2811 availableVersions = result.getAvailableVersions(); +2812 } +2813 if (isResolved && artifactFile != null) { +2814 final List<Dependency> deps = engine.scan(artifactFile.getAbsoluteFile(), +2815 createProjectReferenceName(project, dependencyNode)); +2816 if (deps != null) { +2817 processResolvedArtifact(artifactFile, deps, groupId, artifactId, version, root, project, availableVersions, dependencyNode); +2818 } else if ("import".equals(dependencyNode.getArtifact().getScope())) { +2819 final String msg = String.format("Skipping '%s:%s' in project %s as it uses an `import` scope", +2820 dependencyNode.getArtifact().getId(), dependencyNode.getArtifact().getScope(), project.getName()); +2821 getLog().debug(msg); +2822 } else if ("pom".equals(dependencyNode.getArtifact().getType())) { +2823 exCol = processPomArtifact(artifactFile, root, project, engine, exCol); +2824 } else { +2825 if (!scannedFiles.contains(artifactFile)) { +2826 final String msg = String.format("No analyzer could be found or the artifact has been scanned twice for '%s:%s' in project %s", +2827 dependencyNode.getArtifact().getId(), dependencyNode.getArtifact().getScope(), project.getName()); +2828 getLog().warn(msg); +2829 } +2830 } +2831 } else { +2832 final String msg = String.format("Unable to resolve '%s' in project %s", +2833 dependencyNode.getArtifact().getId(), project.getName()); +2834 getLog().debug(msg); +2835 if (exCol == null) { +2836 exCol = new ExceptionCollection(); +2837 } +2838 } +2839 return exCol; +2840 } +2841 +2842 /** +2843 * Try resolution of artifacts once, allowing for +2844 * DependencyResolutionException due to reactor-dependencies not being +2845 * resolvable. +2846 * <br> +2847 * The resolution is attempted only if allResolvedDeps is still empty. The +2848 * assumption is that for any given project at least one of the dependencies +2849 * will successfully resolve. If not, resolution will be attempted once for +2850 * every dependency (as allResolvedDeps remains empty). +2851 * +2852 * @param project The project to dependencies for +2853 * @param allResolvedDeps The collection of successfully resolved +2854 * dependencies, will be filled with the successfully resolved dependencies, +2855 * even in case of resolution failures. +2856 * @param buildingRequest The buildingRequest to hand to Maven's +2857 * DependencyResolver. +2858 * @throws DependencyResolverException For any DependencyResolverException +2859 * other than an Eclipse Aether DependencyResolutionException +2860 */ +2861 private void tryResolutionOnce(MavenProject project, List<ArtifactResult> allResolvedDeps, ProjectBuildingRequest buildingRequest) throws DependencyResolverException { +2862 if (allResolvedDeps.isEmpty()) { // no (partially successful) resolution attempt done +2863 try { +2864 final List<org.apache.maven.model.Dependency> dependencies = project.getDependencies(); +2865 final List<org.apache.maven.model.Dependency> managedDependencies = project +2866 .getDependencyManagement() == null ? null : project.getDependencyManagement().getDependencies(); +2867 final Iterable<ArtifactResult> allDeps = dependencyResolver +2868 .resolveDependencies(buildingRequest, dependencies, managedDependencies, null); +2869 allDeps.forEach(allResolvedDeps::add); +2870 } catch (DependencyResolverException dre) { +2871 if (dre.getCause() instanceof org.eclipse.aether.resolution.DependencyResolutionException) { +2872 final List<ArtifactResult> successResults = Mshared998Util +2873 .getResolutionResults((org.eclipse.aether.resolution.DependencyResolutionException) dre.getCause()); +2874 allResolvedDeps.addAll(successResults); +2875 } else { +2876 throw dre; +2877 } +2878 } +2879 } +2880 } +2881 //CSON: ParameterNumber +2882 +2883 //CSOFF: ParameterNumber +2884 private void processResolvedArtifact(File artifactFile, final List<Dependency> deps, +2885 String groupId, String artifactId, String version, DependencyNode root, +2886 MavenProject project1, List<ArtifactVersion> availableVersions, +2887 DependencyNode dependencyNode) { +2888 scannedFiles.add(artifactFile); +2889 Dependency d = null; +2890 if (deps.size() == 1) { +2891 d = deps.get(0); +2892 +2893 } else { +2894 for (Dependency possible : deps) { +2895 if (artifactFile.getAbsoluteFile().equals(possible.getActualFile())) { +2896 d = possible; +2897 break; +2898 } +2899 } +2900 for (Dependency dep : deps) { +2901 if (d != null && d != dep) { +2902 final String includedBy = buildReference(groupId, artifactId, version); +2903 dep.addIncludedBy(includedBy); +2904 } +2905 } +2906 } +2907 if (d != null) { +2908 final MavenArtifact ma = new MavenArtifact(groupId, artifactId, version); +2909 d.addAsEvidence("pom", ma, Confidence.HIGHEST); +2910 if (root != null) { +2911 final String includedby = buildReference( +2912 root.getArtifact().getGroupId(), +2913 root.getArtifact().getArtifactId(), +2914 root.getArtifact().getVersion()); +2915 d.addIncludedBy(includedby); +2916 } else { +2917 final String includedby = buildReference(project1.getGroupId(), project1.getArtifactId(), project1.getVersion()); +2918 d.addIncludedBy(includedby); +2919 } +2920 if (availableVersions != null) { +2921 for (ArtifactVersion av : availableVersions) { +2922 d.addAvailableVersion(av.toString()); +2923 } +2924 } +2925 getLog().debug(String.format("Adding project reference %s on dependency %s", project1.getName(), d.getDisplayFileName())); +2926 } else if (getLog().isDebugEnabled()) { +2927 final String msg = String.format("More than 1 dependency was identified in first pass scan of '%s' in project %s", dependencyNode.getArtifact().getId(), project1.getName()); +2928 getLog().debug(msg); +2929 } +2930 } +2931 //CSON: ParameterNumber +2932 +2933 private ExceptionCollection processPomArtifact(File artifactFile, DependencyNode root, +2934 MavenProject project1, Engine engine, ExceptionCollection exCollection) { +2935 ExceptionCollection exCol = exCollection; +2936 try { +2937 final Dependency d = new Dependency(artifactFile.getAbsoluteFile()); +2938 final Model pom = PomUtils.readPom(artifactFile.getAbsoluteFile()); +2939 JarAnalyzer.setPomEvidence(d, pom, null, true); +2940 if (root != null) { +2941 final String includedby = buildReference( +2942 root.getArtifact().getGroupId(), +2943 root.getArtifact().getArtifactId(), +2944 root.getArtifact().getVersion()); +2945 d.addIncludedBy(includedby); +2946 } else { +2947 final String includedby = buildReference(project1.getGroupId(), project1.getArtifactId(), project1.getVersion()); +2948 d.addIncludedBy(includedby); +2949 } +2950 engine.addDependency(d); +2951 } catch (AnalysisException ex) { +2952 if (exCol == null) { +2953 exCol = new ExceptionCollection(); +2954 } +2955 exCol.addException(ex); +2956 getLog().debug("Error reading pom " + artifactFile.getAbsoluteFile(), ex); +2957 } +2958 return exCol; +2959 } +2960 +2961 } +2962 //CSON: FileLength
    diff --git a/xref/org/owasp/dependencycheck/maven/package-frame.html b/xref/org/owasp/dependencycheck/maven/package-frame.html index e6b6a2dc107..835845b399e 100644 --- a/xref/org/owasp/dependencycheck/maven/package-frame.html +++ b/xref/org/owasp/dependencycheck/maven/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.maven + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.maven diff --git a/xref/org/owasp/dependencycheck/maven/package-summary.html b/xref/org/owasp/dependencycheck/maven/package-summary.html index dd760bf1577..b0774352db2 100644 --- a/xref/org/owasp/dependencycheck/maven/package-summary.html +++ b/xref/org/owasp/dependencycheck/maven/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.maven + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.maven diff --git a/xref/org/owasp/dependencycheck/package-frame.html b/xref/org/owasp/dependencycheck/package-frame.html index 8b58a2ad50a..029e766b9d0 100644 --- a/xref/org/owasp/dependencycheck/package-frame.html +++ b/xref/org/owasp/dependencycheck/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck diff --git a/xref/org/owasp/dependencycheck/package-summary.html b/xref/org/owasp/dependencycheck/package-summary.html index ab7b69eb056..c257beb9b68 100644 --- a/xref/org/owasp/dependencycheck/package-summary.html +++ b/xref/org/owasp/dependencycheck/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck diff --git a/xref/org/owasp/dependencycheck/processing/package-frame.html b/xref/org/owasp/dependencycheck/processing/package-frame.html index 06896050691..774726df527 100644 --- a/xref/org/owasp/dependencycheck/processing/package-frame.html +++ b/xref/org/owasp/dependencycheck/processing/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.processing + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.processing diff --git a/xref/org/owasp/dependencycheck/processing/package-summary.html b/xref/org/owasp/dependencycheck/processing/package-summary.html index 4be31be926a..288ce0034d0 100644 --- a/xref/org/owasp/dependencycheck/processing/package-summary.html +++ b/xref/org/owasp/dependencycheck/processing/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.processing + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.processing diff --git a/xref/org/owasp/dependencycheck/reporting/package-frame.html b/xref/org/owasp/dependencycheck/reporting/package-frame.html index 9d4e31ebfd2..72fb5e1adce 100644 --- a/xref/org/owasp/dependencycheck/reporting/package-frame.html +++ b/xref/org/owasp/dependencycheck/reporting/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.reporting + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.reporting diff --git a/xref/org/owasp/dependencycheck/reporting/package-summary.html b/xref/org/owasp/dependencycheck/reporting/package-summary.html index fee12c7a684..7172fb73300 100644 --- a/xref/org/owasp/dependencycheck/reporting/package-summary.html +++ b/xref/org/owasp/dependencycheck/reporting/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.reporting + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.reporting diff --git a/xref/org/owasp/dependencycheck/taskdefs/Purge.html b/xref/org/owasp/dependencycheck/taskdefs/Purge.html index a708fb7b019..59f4345b5d2 100644 --- a/xref/org/owasp/dependencycheck/taskdefs/Purge.html +++ b/xref/org/owasp/dependencycheck/taskdefs/Purge.html @@ -29,200 +29,203 @@ 21 import java.io.File; 22 import java.io.IOException; 23 import java.io.InputStream; -24 import java.lang.reflect.Field; -25 -26 import org.apache.tools.ant.BuildException; -27 import org.apache.tools.ant.Project; -28 import org.apache.tools.ant.Task; -29 import org.owasp.dependencycheck.Engine; -30 import org.owasp.dependencycheck.utils.Settings; -31 import org.slf4j.Logger; -32 import org.slf4j.LoggerFactory; -33 import org.slf4j.impl.StaticLoggerBinder; -34 import org.slf4j.spi.LocationAwareLogger; -35 -36 /** -37 * An Ant task definition to execute dependency-check during an Ant build. -38 * -39 * @author Jeremy Long -40 */ -41 public class Purge extends Task { -42 +24 +25 import org.apache.tools.ant.BuildException; +26 import org.apache.tools.ant.Project; +27 import org.apache.tools.ant.Task; +28 import org.owasp.dependencycheck.Engine; +29 import org.owasp.dependencycheck.utils.Settings; +30 import org.slf4j.impl.StaticLoggerBinder; +31 +32 /** +33 * An Ant task definition to execute dependency-check during an Ant build. +34 * +35 * @author Jeremy Long +36 */ +37 public class Purge extends Task { +38 +39 /** +40 * The properties file location. +41 */ +42 private static final String PROPERTIES_FILE = "task.properties"; 43 /** -44 * The properties file location. +44 * The configured settings. 45 */ -46 private static final String PROPERTIES_FILE = "task.properties"; -47 /** -48 * The configured settings. -49 */ -50 private Settings settings; -51 +46 private Settings settings; +47 +48 /** +49 * The location of the data directory that contains +50 */ +51 private String dataDirectory = null; 52 /** -53 * The location of the data directory that contains -54 */ -55 private String dataDirectory = null; -56 /** -57 * Indicates if dependency-check should fail the build if an exception -58 * occurs. -59 */ -60 private boolean failOnError = true; -61 -62 /** -63 * The URL to hosted suppressions file with base FP suppressions. -64 */ -65 private String hostedSuppressionsUrl = null; -66 -67 /** -68 * Construct a new DependencyCheckTask. -69 */ -70 public Purge() { -71 super(); -72 -73 // Call this before Dependency Check Core starts logging anything - this way, all SLF4J messages from -74 // core end up coming through this tasks logger -75 StaticLoggerBinder.getSingleton().setTask(this); +53 * Indicates if dependency-check should fail the build if an exception +54 * occurs. +55 */ +56 private boolean failOnError = true; +57 +58 /** +59 * The URL to hosted suppressions file with base FP suppressions. +60 */ +61 private String hostedSuppressionsUrl = null; +62 +63 /** +64 * Construct a new DependencyCheckTask. +65 */ +66 public Purge() { +67 super(); +68 +69 // Call this before Dependency Check Core starts logging anything - this way, all SLF4J messages from +70 // core end up coming through this tasks logger +71 StaticLoggerBinder.getSingleton().setTask(this); +72 } +73 +74 public Settings getSettings() { +75 return settings; 76 } 77 -78 public Settings getSettings() { -79 return settings; -80 } -81 -82 /** -83 * Get the value of dataDirectory. -84 * -85 * @return the value of dataDirectory -86 */ -87 public String getDataDirectory() { -88 return dataDirectory; -89 } -90 -91 /** -92 * Set the value of dataDirectory. -93 * -94 * @param dataDirectory new value of dataDirectory -95 */ -96 public void setDataDirectory(String dataDirectory) { -97 this.dataDirectory = dataDirectory; -98 } -99 -100 /** -101 * Get the value of failOnError. -102 * -103 * @return the value of failOnError -104 */ -105 public boolean isFailOnError() { -106 return failOnError; -107 } -108 -109 /** -110 * Set the value of failOnError. -111 * -112 * @param failOnError new value of failOnError -113 */ -114 public void setFailOnError(boolean failOnError) { -115 this.failOnError = failOnError; -116 } -117 -118 /** -119 * Get the value of hostedSuppressionsUrl. -120 * -121 * @return the value of hostedSuppressionsUrl -122 */ -123 public String getHostedSuppressionsUrl() { -124 return hostedSuppressionsUrl; -125 } -126 -127 /** -128 * Set the value of hostedSuppressionsUrl. -129 * -130 * @param hostedSuppressionsUrl new value of hostedSuppressionsUrl -131 */ -132 public void setHostedSuppressionsUrl(final String hostedSuppressionsUrl) { -133 this.hostedSuppressionsUrl = hostedSuppressionsUrl; -134 } -135 -136 /** -137 * Sets the -138 * {@link Thread#getContextClassLoader() Thread Context Class Loader} to the -139 * one for this class, and then calls -140 * {@link #executeWithContextClassloader()}. This is done because the JCS -141 * cache needs to have the Thread Context Class Loader set to something that -142 * can resolve it's classes. Other build tools do this by default but Ant -143 * does not. -144 * -145 * @throws BuildException throws if there is a problem. See -146 * {@link #executeWithContextClassloader()} for details -147 */ -148 @Override -149 public final void execute() throws BuildException { -150 muteJCS(); -151 final ClassLoader current = Thread.currentThread().getContextClassLoader(); -152 try { -153 Thread.currentThread().setContextClassLoader(getClass().getClassLoader()); -154 -155 executeWithContextClassloader(); -156 } finally { -157 Thread.currentThread().setContextClassLoader(current); -158 } -159 } -160 -161 /** -162 * Hacky method of muting the noisy logging from JCS. -163 */ -164 private void muteJCS() { -165 System.setProperty("jcs.logSystem", "slf4j"); -166 Slf4jAdapter.muteLogging(true); -167 } -168 -169 /** -170 * Executes the dependency-check purge to delete the existing local copy of -171 * the NVD CVE data. -172 * -173 * @throws BuildException thrown if there is a problem deleting the file(s) -174 */ -175 //see note on `Check.dealWithReferences()` for information on this suppression -176 @SuppressWarnings("squid:RedundantThrowsDeclarationCheck") -177 protected void executeWithContextClassloader() throws BuildException { -178 populateSettings(); -179 try (Engine engine = new Engine(Engine.Mode.EVIDENCE_PROCESSING, getSettings())) { -180 engine.purge(); -181 } finally { -182 settings.cleanup(true); -183 } -184 } -185 -186 /** -187 * Takes the properties supplied and updates the dependency-check settings. -188 * Additionally, this sets the system properties required to change the -189 * proxy server, port, and connection timeout. -190 * -191 * @throws BuildException thrown if the properties file cannot be read. -192 */ -193 //see note on `Check.dealWithReferences()` for information on this suppression -194 @SuppressWarnings("squid:RedundantThrowsDeclarationCheck") -195 protected void populateSettings() throws BuildException { -196 settings = new Settings(); -197 try (InputStream taskProperties = this.getClass().getClassLoader().getResourceAsStream(PROPERTIES_FILE)) { -198 settings.mergeProperties(taskProperties); -199 } catch (IOException ex) { -200 final String msg = "Unable to load the dependency-check ant task.properties file."; -201 if (this.failOnError) { -202 throw new BuildException(msg, ex); -203 } -204 log(msg, ex, Project.MSG_WARN); -205 } -206 settings.setStringIfNotEmpty(Settings.KEYS.HOSTED_SUPPRESSIONS_URL, hostedSuppressionsUrl); -207 if (dataDirectory != null) { -208 settings.setString(Settings.KEYS.DATA_DIRECTORY, dataDirectory); -209 } else { -210 final File jarPath = new File(Purge.class.getProtectionDomain().getCodeSource().getLocation().getPath()); -211 final File base = jarPath.getParentFile(); -212 final String sub = settings.getString(Settings.KEYS.DATA_DIRECTORY); -213 final File dataDir = new File(base, sub); -214 settings.setString(Settings.KEYS.DATA_DIRECTORY, dataDir.getAbsolutePath()); -215 } -216 } -217 } +78 /** +79 * Get the value of dataDirectory. +80 * +81 * @return the value of dataDirectory +82 */ +83 public String getDataDirectory() { +84 return dataDirectory; +85 } +86 +87 /** +88 * Set the value of dataDirectory. +89 * +90 * @param dataDirectory new value of dataDirectory +91 */ +92 public void setDataDirectory(String dataDirectory) { +93 this.dataDirectory = dataDirectory; +94 } +95 +96 /** +97 * Get the value of failOnError. +98 * +99 * @return the value of failOnError +100 */ +101 public boolean isFailOnError() { +102 return failOnError; +103 } +104 +105 /** +106 * Set the value of failOnError. +107 * +108 * @param failOnError new value of failOnError +109 */ +110 public void setFailOnError(boolean failOnError) { +111 this.failOnError = failOnError; +112 } +113 +114 /** +115 * Get the value of hostedSuppressionsUrl. +116 * +117 * @return the value of hostedSuppressionsUrl +118 */ +119 public String getHostedSuppressionsUrl() { +120 return hostedSuppressionsUrl; +121 } +122 +123 /** +124 * Set the value of hostedSuppressionsUrl. +125 * +126 * @param hostedSuppressionsUrl new value of hostedSuppressionsUrl +127 */ +128 public void setHostedSuppressionsUrl(final String hostedSuppressionsUrl) { +129 this.hostedSuppressionsUrl = hostedSuppressionsUrl; +130 } +131 +132 /** +133 * Sets the +134 * {@link Thread#getContextClassLoader() Thread Context Class Loader} to the +135 * one for this class, and then calls +136 * {@link #executeWithContextClassloader()}. This is done because the JCS +137 * cache needs to have the Thread Context Class Loader set to something that +138 * can resolve it's classes. Other build tools do this by default but Ant +139 * does not. +140 * +141 * @throws BuildException throws if there is a problem. See +142 * {@link #executeWithContextClassloader()} for details +143 */ +144 @Override +145 public final void execute() throws BuildException { +146 muteNoisyLoggers(); +147 final ClassLoader current = Thread.currentThread().getContextClassLoader(); +148 try { +149 Thread.currentThread().setContextClassLoader(getClass().getClassLoader()); +150 +151 executeWithContextClassloader(); +152 } finally { +153 Thread.currentThread().setContextClassLoader(current); +154 } +155 } +156 +157 /** +158 * Hacky method of muting the noisy logging from JCS. +159 */ +160 private void muteNoisyLoggers() { +161 System.setProperty("jcs.logSystem", "slf4j"); +162 Slf4jAdapter.muteLogging(true); +163 +164 final String[] noisyLoggers = { +165 "org.apache.hc" +166 }; +167 for (String loggerName : noisyLoggers) { +168 System.setProperty("org.slf4j.simpleLogger.log." + loggerName, "error"); +169 } +170 } +171 +172 /** +173 * Executes the dependency-check purge to delete the existing local copy of +174 * the NVD CVE data. +175 * +176 * @throws BuildException thrown if there is a problem deleting the file(s) +177 */ +178 //see note on `Check.dealWithReferences()` for information on this suppression +179 @SuppressWarnings("squid:RedundantThrowsDeclarationCheck") +180 protected void executeWithContextClassloader() throws BuildException { +181 populateSettings(); +182 try (Engine engine = new Engine(Engine.Mode.EVIDENCE_PROCESSING, getSettings())) { +183 engine.purge(); +184 } finally { +185 settings.cleanup(true); +186 } +187 } +188 +189 /** +190 * Takes the properties supplied and updates the dependency-check settings. +191 * Additionally, this sets the system properties required to change the +192 * proxy server, port, and connection timeout. +193 * +194 * @throws BuildException thrown if the properties file cannot be read. +195 */ +196 //see note on `Check.dealWithReferences()` for information on this suppression +197 @SuppressWarnings("squid:RedundantThrowsDeclarationCheck") +198 protected void populateSettings() throws BuildException { +199 settings = new Settings(); +200 try (InputStream taskProperties = this.getClass().getClassLoader().getResourceAsStream(PROPERTIES_FILE)) { +201 settings.mergeProperties(taskProperties); +202 } catch (IOException ex) { +203 final String msg = "Unable to load the dependency-check ant task.properties file."; +204 if (this.failOnError) { +205 throw new BuildException(msg, ex); +206 } +207 log(msg, ex, Project.MSG_WARN); +208 } +209 settings.setStringIfNotEmpty(Settings.KEYS.HOSTED_SUPPRESSIONS_URL, hostedSuppressionsUrl); +210 if (dataDirectory != null) { +211 settings.setString(Settings.KEYS.DATA_DIRECTORY, dataDirectory); +212 } else { +213 final File jarPath = new File(Purge.class.getProtectionDomain().getCodeSource().getLocation().getPath()); +214 final File base = jarPath.getParentFile(); +215 final String sub = settings.getString(Settings.KEYS.DATA_DIRECTORY); +216 final File dataDir = new File(base, sub); +217 settings.setString(Settings.KEYS.DATA_DIRECTORY, dataDir.getAbsolutePath()); +218 } +219 } +220 }
    diff --git a/xref/org/owasp/dependencycheck/taskdefs/Update.html b/xref/org/owasp/dependencycheck/taskdefs/Update.html index f2d89f3f57c..3fa53815b61 100644 --- a/xref/org/owasp/dependencycheck/taskdefs/Update.html +++ b/xref/org/owasp/dependencycheck/taskdefs/Update.html @@ -46,584 +46,607 @@ 38 public class Update extends Purge { 39 40 /** -41 * The NVD API Key. +41 * The NVD API endpoint. 42 */ -43 private String nvdApiKey; +43 private String nvdApiEndpoint; 44 /** -45 * The maximum number of retry requests for a single call to the NVD API. +45 * The NVD API Key. 46 */ -47 private Integer nvdMaxRetryCount; +47 private String nvdApiKey; 48 /** -49 * The number of hours to wait before checking for new updates from the NVD. +49 * The maximum number of retry requests for a single call to the NVD API. 50 */ -51 private Integer nvdValidForHours; +51 private Integer nvdMaxRetryCount; 52 /** -53 * The NVD API Data Feed URL. +53 * The number of hours to wait before checking for new updates from the NVD. 54 */ -55 private String nvdDatafeedUrl; +55 private Integer nvdValidForHours; 56 /** -57 * The username for basic auth to the NVD Data Feed. +57 * The NVD API Data Feed URL. 58 */ -59 private String nvdUser; +59 private String nvdDatafeedUrl; 60 /** -61 * The password for basic auth to the NVD Data Feed. +61 * The username for basic auth to the NVD Data Feed. 62 */ -63 private String nvdPassword; +63 private String nvdUser; 64 /** -65 * The time in milliseconds to wait between downloading NVD API data. +65 * The password for basic auth to the NVD Data Feed. 66 */ -67 private int nvdApiDelay = 0; -68 -69 /** -70 * The Proxy Server. -71 */ -72 private String proxyServer; +67 private String nvdPassword; +68 /** +69 * The time in milliseconds to wait between downloading NVD API data. +70 */ +71 private int nvdApiDelay = 0; +72 73 /** -74 * The Proxy Port. +74 * The Proxy Server. 75 */ -76 private String proxyPort; +76 private String proxyServer; 77 /** -78 * The Proxy username. +78 * The Proxy Port. 79 */ -80 private String proxyUsername; +80 private String proxyPort; 81 /** -82 * The Proxy password. +82 * The Proxy username. 83 */ -84 private String proxyPassword; +84 private String proxyUsername; 85 /** -86 * Non proxy hosts +86 * The Proxy password. 87 */ -88 private String nonProxyHosts; +88 private String proxyPassword; 89 /** -90 * The Connection Timeout. +90 * Non proxy hosts 91 */ -92 private String connectionTimeout; +92 private String nonProxyHosts; 93 /** -94 * The Read Timeout. +94 * The Connection Timeout. 95 */ -96 private String readTimeout; +96 private String connectionTimeout; 97 /** -98 * The database driver name; such as org.h2.Driver. +98 * The Read Timeout. 99 */ -100 private String databaseDriverName; +100 private String readTimeout; 101 /** -102 * The path to the database driver JAR file if it is not on the class path. +102 * The database driver name; such as org.h2.Driver. 103 */ -104 private String databaseDriverPath; +104 private String databaseDriverName; 105 /** -106 * The database connection string. +106 * The path to the database driver JAR file if it is not on the class path. 107 */ -108 private String connectionString; +108 private String databaseDriverPath; 109 /** -110 * The user name for connecting to the database. +110 * The database connection string. 111 */ -112 private String databaseUser; +112 private String connectionString; 113 /** -114 * The password to use when connecting to the database. +114 * The user name for connecting to the database. 115 */ -116 private String databasePassword; +116 private String databaseUser; 117 /** -118 * The number of hours to wait before re-checking hosted suppressions file -119 * for updates. -120 */ -121 private Integer hostedSuppressionsValidForHours; -122 /** -123 * Whether the hosted suppressions file will be updated regardless of the -124 * `autoupdate` settings. Defaults to false. -125 */ -126 private Boolean hostedSuppressionsForceUpdate; -127 /** -128 * Whether the hosted suppressions file will be used. Defaults to true. +118 * The password to use when connecting to the database. +119 */ +120 private String databasePassword; +121 /** +122 * The number of hours to wait before re-checking hosted suppressions file +123 * for updates. +124 */ +125 private Integer hostedSuppressionsValidForHours; +126 /** +127 * Whether the hosted suppressions file will be updated regardless of the +128 * `autoupdate` settings. Defaults to false. 129 */ -130 private Boolean hostedSuppressionsEnabled; -131 -132 /** -133 * Construct a new UpdateTask. -134 */ -135 public Update() { -136 super(); -137 // Call this before Dependency Check Core starts logging anything - this way, all SLF4J messages from -138 // core end up coming through this tasks logger -139 StaticLoggerBinder.getSingleton().setTask(this); -140 } -141 -142 /** -143 * Get the value of nvdApiKey. -144 * -145 * @return the value of nvdApiKey -146 */ -147 public String getNvdApiKey() { -148 return nvdApiKey; -149 } -150 -151 /** -152 * Set the value of nvdApiKey. -153 * -154 * @param nvdApiKey new value of nvdApiKey -155 */ -156 public void setNvdApiKey(String nvdApiKey) { -157 this.nvdApiKey = nvdApiKey; -158 } -159 -160 /** -161 * Get the value of nvdMaxRetryCount. -162 * -163 * @return the value of nvdMaxRetryCount -164 */ -165 public int getNvdMaxRetryCounts() { -166 return nvdMaxRetryCount; -167 } -168 -169 /** -170 * Set the value of nvdMaxRetryCount. -171 * -172 * @param nvdMaxRetryCount new value of nvdMaxRetryCount -173 */ -174 public void setNvdMaxRetryCount(int nvdMaxRetryCount) { -175 this.nvdMaxRetryCount = nvdMaxRetryCount; -176 } -177 -178 /** -179 * Get the value of nvdValidForHours. -180 * -181 * @return the value of nvdValidForHours -182 */ -183 public int getNvdValidForHours() { -184 return nvdValidForHours; -185 } -186 -187 /** -188 * Set the value of nvdValidForHours. -189 * -190 * @param nvdValidForHours new value of nvdValidForHours -191 */ -192 public void setNvdValidForHours(int nvdValidForHours) { -193 this.nvdValidForHours = nvdValidForHours; -194 } -195 -196 /** -197 * Get the value of nvdDatafeedUrl. -198 * -199 * @return the value of nvdDatafeedUrl -200 */ -201 public String getNvdDatafeedUrl() { -202 return nvdDatafeedUrl; -203 } -204 -205 /** -206 * Set the value of nvdDatafeedUrl. -207 * -208 * @param nvdDatafeedUrl new value of nvdDatafeedUrl -209 */ -210 public void setNvdDatafeedUrl(String nvdDatafeedUrl) { -211 this.nvdDatafeedUrl = nvdDatafeedUrl; -212 } -213 -214 /** -215 * Get the value of nvdUser. -216 * -217 * @return the value of nvdUser -218 */ -219 public String getNvdUser() { -220 return nvdUser; -221 } -222 -223 /** -224 * Set the value of nvdUser. -225 * -226 * @param nvdUser new value of nvdUser -227 */ -228 public void setNvdUser(String nvdUser) { -229 this.nvdUser = nvdUser; -230 } -231 -232 /** -233 * Get the value of nvdPassword. -234 * -235 * @return the value of nvdPassword -236 */ -237 public String getNvdPassword() { -238 return nvdPassword; -239 } -240 -241 /** -242 * Set the value of nvdPassword. -243 * -244 * @param nvdPassword new value of nvdPassword -245 */ -246 public void setNvdPassword(String nvdPassword) { -247 this.nvdPassword = nvdPassword; -248 } -249 -250 /** -251 * Get the value of nvdApiDelay. -252 * -253 * @return the value of nvdApiDelay -254 */ -255 public int getNvdApiDelay() { -256 return nvdApiDelay; -257 } -258 -259 /** -260 * Set the value of nvdApiDelay. -261 * -262 * @param nvdApiDelay new value of nvdApiDelay -263 */ -264 public void setNvdApiDelay(int nvdApiDelay) { -265 this.nvdApiDelay = nvdApiDelay; -266 } -267 -268 /** -269 * Get the value of proxyServer. -270 * -271 * @return the value of proxyServer -272 */ -273 public String getProxyServer() { -274 return proxyServer; -275 } -276 -277 /** -278 * Set the value of proxyServer. -279 * -280 * @param server new value of proxyServer -281 */ -282 public void setProxyServer(String server) { -283 this.proxyServer = server; -284 } -285 -286 /** -287 * Get the value of proxyPort. -288 * -289 * @return the value of proxyPort -290 */ -291 public String getProxyPort() { -292 return proxyPort; -293 } -294 -295 /** -296 * Set the value of proxyPort. -297 * -298 * @param proxyPort new value of proxyPort -299 */ -300 public void setProxyPort(String proxyPort) { -301 this.proxyPort = proxyPort; -302 } -303 -304 /** -305 * Get the value of proxyUsername. -306 * -307 * @return the value of proxyUsername -308 */ -309 public String getProxyUsername() { -310 return proxyUsername; -311 } -312 -313 /** -314 * Set the value of proxyUsername. -315 * -316 * @param proxyUsername new value of proxyUsername -317 */ -318 public void setProxyUsername(String proxyUsername) { -319 this.proxyUsername = proxyUsername; -320 } -321 -322 /** -323 * Get the value of proxyPassword. -324 * -325 * @return the value of proxyPassword -326 */ -327 public String getProxyPassword() { -328 return proxyPassword; -329 } -330 -331 /** -332 * Set the value of proxyPassword. -333 * -334 * @param proxyPassword new value of proxyPassword -335 */ -336 public void setProxyPassword(String proxyPassword) { -337 this.proxyPassword = proxyPassword; -338 } -339 -340 /** -341 * Get the value of nonProxyHosts. -342 * -343 * @return the value of nonProxyHosts -344 */ -345 public String getNonProxyHosts() { -346 return nonProxyHosts; -347 } -348 -349 /** -350 * Set the value of nonProxyHosts. -351 * -352 * @param nonProxyHosts new value of nonProxyHosts -353 */ -354 public void setNonProxyHosts(String nonProxyHosts) { -355 this.nonProxyHosts = nonProxyHosts; -356 } -357 -358 /** -359 * Get the value of connectionTimeout. -360 * -361 * @return the value of connectionTimeout -362 */ -363 public String getConnectionTimeout() { -364 return connectionTimeout; -365 } -366 -367 /** -368 * Set the value of connectionTimeout. -369 * -370 * @param connectionTimeout new value of connectionTimeout -371 */ -372 public void setConnectionTimeout(String connectionTimeout) { -373 this.connectionTimeout = connectionTimeout; -374 } -375 -376 /** -377 * Get the value of readTimeout. -378 * -379 * @return the value of readTimeout -380 */ -381 public String getReadTimeout() { -382 return readTimeout; -383 } -384 -385 /** -386 * Set the value of readTimeout. -387 * -388 * @param readTimeout new value of readTimeout -389 */ -390 public void setReadTimeout(String readTimeout) { -391 this.readTimeout = readTimeout; -392 } -393 -394 /** -395 * Get the value of databaseDriverName. -396 * -397 * @return the value of databaseDriverName -398 */ -399 public String getDatabaseDriverName() { -400 return databaseDriverName; -401 } -402 -403 /** -404 * Set the value of databaseDriverName. -405 * -406 * @param databaseDriverName new value of databaseDriverName -407 */ -408 public void setDatabaseDriverName(String databaseDriverName) { -409 this.databaseDriverName = databaseDriverName; -410 } -411 -412 /** -413 * Get the value of databaseDriverPath. -414 * -415 * @return the value of databaseDriverPath -416 */ -417 public String getDatabaseDriverPath() { -418 return databaseDriverPath; -419 } -420 -421 /** -422 * Set the value of databaseDriverPath. -423 * -424 * @param databaseDriverPath new value of databaseDriverPath -425 */ -426 public void setDatabaseDriverPath(String databaseDriverPath) { -427 this.databaseDriverPath = databaseDriverPath; -428 } -429 -430 /** -431 * Get the value of connectionString. -432 * -433 * @return the value of connectionString -434 */ -435 public String getConnectionString() { -436 return connectionString; -437 } -438 -439 /** -440 * Set the value of connectionString. -441 * -442 * @param connectionString new value of connectionString -443 */ -444 public void setConnectionString(String connectionString) { -445 this.connectionString = connectionString; -446 } -447 -448 /** -449 * Get the value of databaseUser. -450 * -451 * @return the value of databaseUser -452 */ -453 public String getDatabaseUser() { -454 return databaseUser; -455 } -456 -457 /** -458 * Set the value of databaseUser. -459 * -460 * @param databaseUser new value of databaseUser -461 */ -462 public void setDatabaseUser(String databaseUser) { -463 this.databaseUser = databaseUser; -464 } -465 -466 /** -467 * Get the value of databasePassword. -468 * -469 * @return the value of databasePassword -470 */ -471 public String getDatabasePassword() { -472 return databasePassword; -473 } -474 -475 /** -476 * Set the value of databasePassword. -477 * -478 * @param databasePassword new value of databasePassword -479 */ -480 public void setDatabasePassword(String databasePassword) { -481 this.databasePassword = databasePassword; -482 } -483 -484 /** -485 * Get the value of hostedSuppressionsValidForHours. -486 * -487 * @return the value of hostedSuppressionsValidForHours -488 */ -489 public Integer getHostedSuppressionsValidForHours() { -490 return hostedSuppressionsValidForHours; -491 } -492 -493 /** -494 * Set the value of hostedSuppressionsValidForHours. -495 * -496 * @param hostedSuppressionsValidForHours new value of -497 * hostedSuppressionsValidForHours -498 */ -499 public void setHostedSuppressionsValidForHours(final Integer hostedSuppressionsValidForHours) { -500 this.hostedSuppressionsValidForHours = hostedSuppressionsValidForHours; -501 } -502 -503 /** -504 * Get the value of hostedSuppressionsForceUpdate. -505 * -506 * @return the value of hostedSuppressionsForceUpdate -507 */ -508 public Boolean isHostedSuppressionsForceUpdate() { -509 return hostedSuppressionsForceUpdate; -510 } -511 -512 /** -513 * Set the value of hostedSuppressionsForceUpdate. -514 * -515 * @param hostedSuppressionsForceUpdate new value of -516 * hostedSuppressionsForceUpdate -517 */ -518 public void setHostedSuppressionsForceUpdate(final Boolean hostedSuppressionsForceUpdate) { -519 this.hostedSuppressionsForceUpdate = hostedSuppressionsForceUpdate; -520 } -521 -522 /** -523 * Get the value of hostedSuppressionsEnabled. -524 * -525 * @return the value of hostedSuppressionsEnabled -526 */ -527 public Boolean isHostedSuppressionsEnabled() { -528 return hostedSuppressionsEnabled; -529 } -530 -531 /** -532 * Set the value of hostedSuppressionsEnabled. -533 * -534 * @param hostedSuppressionsEnabled new value of hostedSuppressionsEnabled -535 */ -536 public void setHostedSuppressionsEnabled(Boolean hostedSuppressionsEnabled) { -537 this.hostedSuppressionsEnabled = hostedSuppressionsEnabled; -538 } -539 -540 /** -541 * Executes the update by initializing the settings, downloads the NVD XML -542 * data, and then processes the data storing it in the local database. -543 * -544 * @throws BuildException thrown if a connection to the local database -545 * cannot be made. -546 */ -547 //see note on `Check.dealWithReferences()` for information on this suppression -548 @SuppressWarnings("squid:RedundantThrowsDeclarationCheck") -549 @Override -550 protected void executeWithContextClassloader() throws BuildException { -551 populateSettings(); -552 try (Engine engine = new Engine(Update.class.getClassLoader(), getSettings())) { -553 engine.doUpdates(); -554 } catch (UpdateException ex) { -555 if (this.isFailOnError()) { -556 throw new BuildException(ex); -557 } -558 log(ex.getMessage(), Project.MSG_ERR); -559 } catch (DatabaseException ex) { -560 final String msg = "Unable to connect to the dependency-check database; unable to update the NVD data"; -561 if (this.isFailOnError()) { -562 throw new BuildException(msg, ex); -563 } -564 log(msg, Project.MSG_ERR); -565 } finally { -566 getSettings().cleanup(); -567 } -568 } -569 -570 /** -571 * Takes the properties supplied and updates the dependency-check settings. -572 * Additionally, this sets the system properties required to change the -573 * proxy server, port, and connection timeout. -574 * -575 * @throws BuildException thrown when an invalid setting is configured. -576 */ -577 //see note on `Check.dealWithReferences()` for information on this suppression -578 @SuppressWarnings("squid:RedundantThrowsDeclarationCheck") -579 @Override -580 protected void populateSettings() throws BuildException { -581 super.populateSettings(); -582 getSettings().setStringIfNotEmpty(Settings.KEYS.PROXY_SERVER, proxyServer); -583 getSettings().setStringIfNotEmpty(Settings.KEYS.PROXY_PORT, proxyPort); -584 getSettings().setStringIfNotEmpty(Settings.KEYS.PROXY_USERNAME, proxyUsername); -585 getSettings().setStringIfNotEmpty(Settings.KEYS.PROXY_PASSWORD, proxyPassword); -586 getSettings().setStringIfNotEmpty(Settings.KEYS.PROXY_NON_PROXY_HOSTS, nonProxyHosts); -587 getSettings().setStringIfNotEmpty(Settings.KEYS.CONNECTION_TIMEOUT, connectionTimeout); -588 getSettings().setStringIfNotEmpty(Settings.KEYS.CONNECTION_READ_TIMEOUT, readTimeout); -589 getSettings().setStringIfNotEmpty(Settings.KEYS.DB_DRIVER_NAME, databaseDriverName); -590 getSettings().setStringIfNotEmpty(Settings.KEYS.DB_DRIVER_PATH, databaseDriverPath); -591 getSettings().setStringIfNotEmpty(Settings.KEYS.DB_CONNECTION_STRING, connectionString); -592 getSettings().setStringIfNotEmpty(Settings.KEYS.DB_USER, databaseUser); -593 getSettings().setStringIfNotEmpty(Settings.KEYS.DB_PASSWORD, databasePassword); -594 getSettings().setIntIfNotNull(Settings.KEYS.HOSTED_SUPPRESSIONS_VALID_FOR_HOURS, hostedSuppressionsValidForHours); -595 getSettings().setBooleanIfNotNull(Settings.KEYS.HOSTED_SUPPRESSIONS_FORCEUPDATE, hostedSuppressionsForceUpdate); -596 getSettings().setBooleanIfNotNull(Settings.KEYS.HOSTED_SUPPRESSIONS_ENABLED, hostedSuppressionsEnabled); -597 -598 getSettings().setStringIfNotEmpty(Settings.KEYS.NVD_API_KEY, nvdApiKey); -599 getSettings().setIntIfNotNull(Settings.KEYS.NVD_API_DELAY, nvdApiDelay); -600 getSettings().setStringIfNotEmpty(Settings.KEYS.NVD_API_DATAFEED_URL, nvdDatafeedUrl); -601 getSettings().setStringIfNotEmpty(Settings.KEYS.NVD_API_DATAFEED_USER, nvdUser); -602 getSettings().setStringIfNotEmpty(Settings.KEYS.NVD_API_DATAFEED_PASSWORD, nvdPassword); -603 if (nvdMaxRetryCount != null) { -604 if (nvdMaxRetryCount > 0) { -605 getSettings().setInt(Settings.KEYS.NVD_API_MAX_RETRY_COUNT, nvdMaxRetryCount); -606 } else { -607 throw new BuildException("Invalid setting: `nvdMaxRetryCount` must be greater than zero"); -608 } -609 } -610 if (nvdValidForHours != null) { -611 if (nvdValidForHours >= 0) { -612 getSettings().setInt(Settings.KEYS.NVD_API_VALID_FOR_HOURS, nvdValidForHours); -613 } else { -614 throw new BuildException("Invalid setting: `nvdValidForHours` must be 0 or greater"); -615 } -616 } -617 } -618 } +130 private Boolean hostedSuppressionsForceUpdate; +131 /** +132 * Whether the hosted suppressions file will be used. Defaults to true. +133 */ +134 private Boolean hostedSuppressionsEnabled; +135 +136 /** +137 * Construct a new UpdateTask. +138 */ +139 public Update() { +140 super(); +141 // Call this before Dependency Check Core starts logging anything - this way, all SLF4J messages from +142 // core end up coming through this tasks logger +143 StaticLoggerBinder.getSingleton().setTask(this); +144 } +145 +146 /** +147 * Get the value of nvdApiEndpoint. +148 * +149 * @return the value of nvdApiEndpoint +150 */ +151 public String getNvdApiEndpoint() { +152 return nvdApiEndpoint; +153 } +154 +155 /** +156 * Set the value of nvdApiEndpoint. +157 * +158 * @param nvdApiEndpoint new value of nvdApiEndpoint +159 */ +160 public void setNvdApiEndpoint(String nvdApiEndpoint) { +161 this.nvdApiEndpoint = nvdApiEndpoint; +162 } +163 +164 /** +165 * Get the value of nvdApiKey. +166 * +167 * @return the value of nvdApiKey +168 */ +169 public String getNvdApiKey() { +170 return nvdApiKey; +171 } +172 +173 /** +174 * Set the value of nvdApiKey. +175 * +176 * @param nvdApiKey new value of nvdApiKey +177 */ +178 public void setNvdApiKey(String nvdApiKey) { +179 this.nvdApiKey = nvdApiKey; +180 } +181 +182 /** +183 * Get the value of nvdMaxRetryCount. +184 * +185 * @return the value of nvdMaxRetryCount +186 */ +187 public int getNvdMaxRetryCounts() { +188 return nvdMaxRetryCount; +189 } +190 +191 /** +192 * Set the value of nvdMaxRetryCount. +193 * +194 * @param nvdMaxRetryCount new value of nvdMaxRetryCount +195 */ +196 public void setNvdMaxRetryCount(int nvdMaxRetryCount) { +197 this.nvdMaxRetryCount = nvdMaxRetryCount; +198 } +199 +200 /** +201 * Get the value of nvdValidForHours. +202 * +203 * @return the value of nvdValidForHours +204 */ +205 public int getNvdValidForHours() { +206 return nvdValidForHours; +207 } +208 +209 /** +210 * Set the value of nvdValidForHours. +211 * +212 * @param nvdValidForHours new value of nvdValidForHours +213 */ +214 public void setNvdValidForHours(int nvdValidForHours) { +215 this.nvdValidForHours = nvdValidForHours; +216 } +217 +218 /** +219 * Get the value of nvdDatafeedUrl. +220 * +221 * @return the value of nvdDatafeedUrl +222 */ +223 public String getNvdDatafeedUrl() { +224 return nvdDatafeedUrl; +225 } +226 +227 /** +228 * Set the value of nvdDatafeedUrl. +229 * +230 * @param nvdDatafeedUrl new value of nvdDatafeedUrl +231 */ +232 public void setNvdDatafeedUrl(String nvdDatafeedUrl) { +233 this.nvdDatafeedUrl = nvdDatafeedUrl; +234 } +235 +236 /** +237 * Get the value of nvdUser. +238 * +239 * @return the value of nvdUser +240 */ +241 public String getNvdUser() { +242 return nvdUser; +243 } +244 +245 /** +246 * Set the value of nvdUser. +247 * +248 * @param nvdUser new value of nvdUser +249 */ +250 public void setNvdUser(String nvdUser) { +251 this.nvdUser = nvdUser; +252 } +253 +254 /** +255 * Get the value of nvdPassword. +256 * +257 * @return the value of nvdPassword +258 */ +259 public String getNvdPassword() { +260 return nvdPassword; +261 } +262 +263 /** +264 * Set the value of nvdPassword. +265 * +266 * @param nvdPassword new value of nvdPassword +267 */ +268 public void setNvdPassword(String nvdPassword) { +269 this.nvdPassword = nvdPassword; +270 } +271 +272 /** +273 * Get the value of nvdApiDelay. +274 * +275 * @return the value of nvdApiDelay +276 */ +277 public int getNvdApiDelay() { +278 return nvdApiDelay; +279 } +280 +281 /** +282 * Set the value of nvdApiDelay. +283 * +284 * @param nvdApiDelay new value of nvdApiDelay +285 */ +286 public void setNvdApiDelay(int nvdApiDelay) { +287 this.nvdApiDelay = nvdApiDelay; +288 } +289 +290 /** +291 * Get the value of proxyServer. +292 * +293 * @return the value of proxyServer +294 */ +295 public String getProxyServer() { +296 return proxyServer; +297 } +298 +299 /** +300 * Set the value of proxyServer. +301 * +302 * @param server new value of proxyServer +303 */ +304 public void setProxyServer(String server) { +305 this.proxyServer = server; +306 } +307 +308 /** +309 * Get the value of proxyPort. +310 * +311 * @return the value of proxyPort +312 */ +313 public String getProxyPort() { +314 return proxyPort; +315 } +316 +317 /** +318 * Set the value of proxyPort. +319 * +320 * @param proxyPort new value of proxyPort +321 */ +322 public void setProxyPort(String proxyPort) { +323 this.proxyPort = proxyPort; +324 } +325 +326 /** +327 * Get the value of proxyUsername. +328 * +329 * @return the value of proxyUsername +330 */ +331 public String getProxyUsername() { +332 return proxyUsername; +333 } +334 +335 /** +336 * Set the value of proxyUsername. +337 * +338 * @param proxyUsername new value of proxyUsername +339 */ +340 public void setProxyUsername(String proxyUsername) { +341 this.proxyUsername = proxyUsername; +342 } +343 +344 /** +345 * Get the value of proxyPassword. +346 * +347 * @return the value of proxyPassword +348 */ +349 public String getProxyPassword() { +350 return proxyPassword; +351 } +352 +353 /** +354 * Set the value of proxyPassword. +355 * +356 * @param proxyPassword new value of proxyPassword +357 */ +358 public void setProxyPassword(String proxyPassword) { +359 this.proxyPassword = proxyPassword; +360 } +361 +362 /** +363 * Get the value of nonProxyHosts. +364 * +365 * @return the value of nonProxyHosts +366 */ +367 public String getNonProxyHosts() { +368 return nonProxyHosts; +369 } +370 +371 /** +372 * Set the value of nonProxyHosts. +373 * +374 * @param nonProxyHosts new value of nonProxyHosts +375 */ +376 public void setNonProxyHosts(String nonProxyHosts) { +377 this.nonProxyHosts = nonProxyHosts; +378 } +379 +380 /** +381 * Get the value of connectionTimeout. +382 * +383 * @return the value of connectionTimeout +384 */ +385 public String getConnectionTimeout() { +386 return connectionTimeout; +387 } +388 +389 /** +390 * Set the value of connectionTimeout. +391 * +392 * @param connectionTimeout new value of connectionTimeout +393 */ +394 public void setConnectionTimeout(String connectionTimeout) { +395 this.connectionTimeout = connectionTimeout; +396 } +397 +398 /** +399 * Get the value of readTimeout. +400 * +401 * @return the value of readTimeout +402 */ +403 public String getReadTimeout() { +404 return readTimeout; +405 } +406 +407 /** +408 * Set the value of readTimeout. +409 * +410 * @param readTimeout new value of readTimeout +411 */ +412 public void setReadTimeout(String readTimeout) { +413 this.readTimeout = readTimeout; +414 } +415 +416 /** +417 * Get the value of databaseDriverName. +418 * +419 * @return the value of databaseDriverName +420 */ +421 public String getDatabaseDriverName() { +422 return databaseDriverName; +423 } +424 +425 /** +426 * Set the value of databaseDriverName. +427 * +428 * @param databaseDriverName new value of databaseDriverName +429 */ +430 public void setDatabaseDriverName(String databaseDriverName) { +431 this.databaseDriverName = databaseDriverName; +432 } +433 +434 /** +435 * Get the value of databaseDriverPath. +436 * +437 * @return the value of databaseDriverPath +438 */ +439 public String getDatabaseDriverPath() { +440 return databaseDriverPath; +441 } +442 +443 /** +444 * Set the value of databaseDriverPath. +445 * +446 * @param databaseDriverPath new value of databaseDriverPath +447 */ +448 public void setDatabaseDriverPath(String databaseDriverPath) { +449 this.databaseDriverPath = databaseDriverPath; +450 } +451 +452 /** +453 * Get the value of connectionString. +454 * +455 * @return the value of connectionString +456 */ +457 public String getConnectionString() { +458 return connectionString; +459 } +460 +461 /** +462 * Set the value of connectionString. +463 * +464 * @param connectionString new value of connectionString +465 */ +466 public void setConnectionString(String connectionString) { +467 this.connectionString = connectionString; +468 } +469 +470 /** +471 * Get the value of databaseUser. +472 * +473 * @return the value of databaseUser +474 */ +475 public String getDatabaseUser() { +476 return databaseUser; +477 } +478 +479 /** +480 * Set the value of databaseUser. +481 * +482 * @param databaseUser new value of databaseUser +483 */ +484 public void setDatabaseUser(String databaseUser) { +485 this.databaseUser = databaseUser; +486 } +487 +488 /** +489 * Get the value of databasePassword. +490 * +491 * @return the value of databasePassword +492 */ +493 public String getDatabasePassword() { +494 return databasePassword; +495 } +496 +497 /** +498 * Set the value of databasePassword. +499 * +500 * @param databasePassword new value of databasePassword +501 */ +502 public void setDatabasePassword(String databasePassword) { +503 this.databasePassword = databasePassword; +504 } +505 +506 /** +507 * Get the value of hostedSuppressionsValidForHours. +508 * +509 * @return the value of hostedSuppressionsValidForHours +510 */ +511 public Integer getHostedSuppressionsValidForHours() { +512 return hostedSuppressionsValidForHours; +513 } +514 +515 /** +516 * Set the value of hostedSuppressionsValidForHours. +517 * +518 * @param hostedSuppressionsValidForHours new value of +519 * hostedSuppressionsValidForHours +520 */ +521 public void setHostedSuppressionsValidForHours(final Integer hostedSuppressionsValidForHours) { +522 this.hostedSuppressionsValidForHours = hostedSuppressionsValidForHours; +523 } +524 +525 /** +526 * Get the value of hostedSuppressionsForceUpdate. +527 * +528 * @return the value of hostedSuppressionsForceUpdate +529 */ +530 public Boolean isHostedSuppressionsForceUpdate() { +531 return hostedSuppressionsForceUpdate; +532 } +533 +534 /** +535 * Set the value of hostedSuppressionsForceUpdate. +536 * +537 * @param hostedSuppressionsForceUpdate new value of +538 * hostedSuppressionsForceUpdate +539 */ +540 public void setHostedSuppressionsForceUpdate(final Boolean hostedSuppressionsForceUpdate) { +541 this.hostedSuppressionsForceUpdate = hostedSuppressionsForceUpdate; +542 } +543 +544 /** +545 * Get the value of hostedSuppressionsEnabled. +546 * +547 * @return the value of hostedSuppressionsEnabled +548 */ +549 public Boolean isHostedSuppressionsEnabled() { +550 return hostedSuppressionsEnabled; +551 } +552 +553 /** +554 * Set the value of hostedSuppressionsEnabled. +555 * +556 * @param hostedSuppressionsEnabled new value of hostedSuppressionsEnabled +557 */ +558 public void setHostedSuppressionsEnabled(Boolean hostedSuppressionsEnabled) { +559 this.hostedSuppressionsEnabled = hostedSuppressionsEnabled; +560 } +561 +562 /** +563 * Executes the update by initializing the settings, downloads the NVD XML +564 * data, and then processes the data storing it in the local database. +565 * +566 * @throws BuildException thrown if a connection to the local database +567 * cannot be made. +568 */ +569 //see note on `Check.dealWithReferences()` for information on this suppression +570 @SuppressWarnings("squid:RedundantThrowsDeclarationCheck") +571 @Override +572 protected void executeWithContextClassloader() throws BuildException { +573 populateSettings(); +574 try (Engine engine = new Engine(Update.class.getClassLoader(), getSettings())) { +575 engine.doUpdates(); +576 } catch (UpdateException ex) { +577 if (this.isFailOnError()) { +578 throw new BuildException(ex); +579 } +580 log(ex.getMessage(), Project.MSG_ERR); +581 } catch (DatabaseException ex) { +582 final String msg = "Unable to connect to the dependency-check database; unable to update the NVD data"; +583 if (this.isFailOnError()) { +584 throw new BuildException(msg, ex); +585 } +586 log(msg, Project.MSG_ERR); +587 } finally { +588 getSettings().cleanup(); +589 } +590 } +591 +592 /** +593 * Takes the properties supplied and updates the dependency-check settings. +594 * Additionally, this sets the system properties required to change the +595 * proxy server, port, and connection timeout. +596 * +597 * @throws BuildException thrown when an invalid setting is configured. +598 */ +599 //see note on `Check.dealWithReferences()` for information on this suppression +600 @SuppressWarnings("squid:RedundantThrowsDeclarationCheck") +601 @Override +602 protected void populateSettings() throws BuildException { +603 super.populateSettings(); +604 getSettings().setStringIfNotEmpty(Settings.KEYS.PROXY_SERVER, proxyServer); +605 getSettings().setStringIfNotEmpty(Settings.KEYS.PROXY_PORT, proxyPort); +606 getSettings().setStringIfNotEmpty(Settings.KEYS.PROXY_USERNAME, proxyUsername); +607 getSettings().setStringIfNotEmpty(Settings.KEYS.PROXY_PASSWORD, proxyPassword); +608 getSettings().setStringIfNotEmpty(Settings.KEYS.PROXY_NON_PROXY_HOSTS, nonProxyHosts); +609 getSettings().setStringIfNotEmpty(Settings.KEYS.CONNECTION_TIMEOUT, connectionTimeout); +610 getSettings().setStringIfNotEmpty(Settings.KEYS.CONNECTION_READ_TIMEOUT, readTimeout); +611 getSettings().setStringIfNotEmpty(Settings.KEYS.DB_DRIVER_NAME, databaseDriverName); +612 getSettings().setStringIfNotEmpty(Settings.KEYS.DB_DRIVER_PATH, databaseDriverPath); +613 getSettings().setStringIfNotEmpty(Settings.KEYS.DB_CONNECTION_STRING, connectionString); +614 getSettings().setStringIfNotEmpty(Settings.KEYS.DB_USER, databaseUser); +615 getSettings().setStringIfNotEmpty(Settings.KEYS.DB_PASSWORD, databasePassword); +616 getSettings().setIntIfNotNull(Settings.KEYS.HOSTED_SUPPRESSIONS_VALID_FOR_HOURS, hostedSuppressionsValidForHours); +617 getSettings().setBooleanIfNotNull(Settings.KEYS.HOSTED_SUPPRESSIONS_FORCEUPDATE, hostedSuppressionsForceUpdate); +618 getSettings().setBooleanIfNotNull(Settings.KEYS.HOSTED_SUPPRESSIONS_ENABLED, hostedSuppressionsEnabled); +619 +620 getSettings().setStringIfNotEmpty(Settings.KEYS.NVD_API_KEY, nvdApiKey); +621 getSettings().setStringIfNotEmpty(Settings.KEYS.NVD_API_ENDPOINT, nvdApiEndpoint); +622 getSettings().setIntIfNotNull(Settings.KEYS.NVD_API_DELAY, nvdApiDelay); +623 getSettings().setStringIfNotEmpty(Settings.KEYS.NVD_API_DATAFEED_URL, nvdDatafeedUrl); +624 getSettings().setStringIfNotEmpty(Settings.KEYS.NVD_API_DATAFEED_USER, nvdUser); +625 getSettings().setStringIfNotEmpty(Settings.KEYS.NVD_API_DATAFEED_PASSWORD, nvdPassword); +626 if (nvdMaxRetryCount != null) { +627 if (nvdMaxRetryCount > 0) { +628 getSettings().setInt(Settings.KEYS.NVD_API_MAX_RETRY_COUNT, nvdMaxRetryCount); +629 } else { +630 throw new BuildException("Invalid setting: `nvdMaxRetryCount` must be greater than zero"); +631 } +632 } +633 if (nvdValidForHours != null) { +634 if (nvdValidForHours >= 0) { +635 getSettings().setInt(Settings.KEYS.NVD_API_VALID_FOR_HOURS, nvdValidForHours); +636 } else { +637 throw new BuildException("Invalid setting: `nvdValidForHours` must be 0 or greater"); +638 } +639 } +640 } +641 }
    diff --git a/xref/org/owasp/dependencycheck/taskdefs/package-frame.html b/xref/org/owasp/dependencycheck/taskdefs/package-frame.html index 24e20baa299..8f36ca1d4a0 100644 --- a/xref/org/owasp/dependencycheck/taskdefs/package-frame.html +++ b/xref/org/owasp/dependencycheck/taskdefs/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.taskdefs + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.taskdefs diff --git a/xref/org/owasp/dependencycheck/taskdefs/package-summary.html b/xref/org/owasp/dependencycheck/taskdefs/package-summary.html index 6cd2bb2e95d..905d126de1e 100644 --- a/xref/org/owasp/dependencycheck/taskdefs/package-summary.html +++ b/xref/org/owasp/dependencycheck/taskdefs/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.taskdefs + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.taskdefs diff --git a/xref/org/owasp/dependencycheck/utils/Downloader.html b/xref/org/owasp/dependencycheck/utils/Downloader.html index f8c64caa7da..18212e87822 100644 --- a/xref/org/owasp/dependencycheck/utils/Downloader.html +++ b/xref/org/owasp/dependencycheck/utils/Downloader.html @@ -186,7 +186,7 @@ 178 public String fetchContent(URL url, boolean useProxy, String userKey, String passwordKey) 179 throws DownloadFailedException, TooManyRequestsException, ResourceNotFoundException { 180 InputStream in = null; -181 try (HttpResourceConnection conn = new HttpResourceConnection(settings, useProxy, userKey, passwordKey); +181 try (HttpResourceConnection conn = new HttpResourceConnection(settings, useProxy, userKey, passwordKey); 182 ByteArrayOutputStream out = new ByteArrayOutputStream()) { 183 in = conn.fetch(url); 184 IOUtils.copy(in, out); @@ -204,45 +204,7 @@ 196 } 197 } 198 } -199 -200 /** -201 * Retrieves a gzip file from a given URL and returns the uncompressed contents. -202 * -203 * @param url the URL of the file to download -204 * @param useProxy whether to use the configured proxy when downloading -205 * files -206 * @return the content of the file -207 * @param userKey the settings key for the username to be used -208 * @param passwordKey the settings key for the password to be used -209 * @throws DownloadFailedException is thrown if there is an error -210 * downloading the file -211 * @throws TooManyRequestsException thrown when a 429 is received -212 * @throws ResourceNotFoundException thrown when a 404 is received -213 */ -214 public String fetchGzContent(URL url, boolean useProxy, String userKey, String passwordKey) -215 throws DownloadFailedException, TooManyRequestsException, ResourceNotFoundException { -216 InputStream in = null; -217 try (HttpResourceConnection conn = new HttpResourceConnection(settings, useProxy, userKey, passwordKey)) { -218 in = conn.fetch(url); -219 try (GZIPInputStream gzipIn = new GZIPInputStream(in); -220 ByteArrayOutputStream out = new ByteArrayOutputStream()) { -221 IOUtils.copy(gzipIn, out); -222 return out.toString(UTF8); -223 } -224 } catch (IOException ex) { -225 final String msg = format("Download failed, unable to retrieve '%s'; %s", url, ex.getMessage()); -226 throw new DownloadFailedException(msg, ex); -227 } finally { -228 if (in != null) { -229 try { -230 in.close(); -231 } catch (IOException ex) { -232 LOGGER.trace("Ignorable error", ex); -233 } -234 } -235 } -236 } -237 } +199 }
    diff --git a/xref/org/owasp/dependencycheck/utils/Settings.html b/xref/org/owasp/dependencycheck/utils/Settings.html index 6e2905f37f6..6e19d836586 100644 --- a/xref/org/owasp/dependencycheck/utils/Settings.html +++ b/xref/org/owasp/dependencycheck/utils/Settings.html @@ -169,1346 +169,1349 @@ 161 * be imported. 162 */ 163 public static final String CVE_CPE_STARTS_WITH_FILTER = "cve.cpe.startswith.filter"; -164 -165 /** -166 * API Key for the NVD API. -167 */ -168 public static final String NVD_API_KEY = "nvd.api.key"; -169 /** -170 * The delay between requests for the NVD API. -171 */ -172 public static final String NVD_API_DELAY = "nvd.api.delay"; -173 /** -174 * The maximum number of retry requests for a single call to the NVD -175 * API. -176 */ -177 public static final String NVD_API_MAX_RETRY_COUNT = "nvd.api.max.retry.count"; -178 /** -179 * The properties key to control the skipping of the check for NVD -180 * updates. -181 */ -182 public static final String NVD_API_VALID_FOR_HOURS = "nvd.api.check.validforhours"; -183 /** -184 * The properties key that indicates how often the NVD API data feed -185 * needs to be updated before a full refresh is evaluated. -186 */ -187 public static final String NVD_API_DATAFEED_VALID_FOR_DAYS = "nvd.api.datafeed.validfordays"; -188 /** -189 * The URL for the NVD API Data Feed. -190 */ -191 public static final String NVD_API_DATAFEED_URL = "nvd.api.datafeed.url"; -192 /** -193 * The username to use when connecting to the NVD Data feed. -194 */ -195 public static final String NVD_API_DATAFEED_USER = "nvd.api.datafeed.user"; -196 /** -197 * The password to authenticate to the NVD Data feed. -198 */ -199 public static final String NVD_API_DATAFEED_PASSWORD = "nvd.api.datafeed.password"; -200 /** -201 * The starting year for the NVD CVE Data feed cache. -202 */ -203 public static final String NVD_API_DATAFEED_START_YEAR = "nvd.api.datafeed.startyear"; -204 //END NEW -205 /** -206 * The key to determine if the NVD CVE analyzer is enabled. -207 */ -208 public static final String ANALYZER_NVD_CVE_ENABLED = "analyzer.nvdcve.enabled"; -209 /** -210 * The properties key that indicates how often the CPE data needs to be -211 * updated. -212 */ -213 public static final String CPE_MODIFIED_VALID_FOR_DAYS = "cpe.validfordays"; -214 /** -215 * The properties key for the URL to retrieve the CPE. -216 */ -217 public static final String CPE_URL = "cpe.url"; -218 /** -219 * The properties key for the URL to retrieve the Known Exploited -220 * Vulnerabilities.. -221 */ -222 public static final String KEV_URL = "kev.url"; -223 /** -224 * The properties key to control the skipping of the check for Known -225 * Exploited Vulnerabilities updates. -226 */ -227 public static final String KEV_CHECK_VALID_FOR_HOURS = "kev.check.validforhours"; -228 /** -229 * Whether or not if using basic auth with a proxy the system setting -230 * 'jdk.http.auth.tunneling.disabledSchemes' should be set to an empty -231 * string. -232 */ -233 public static final String PROXY_DISABLE_SCHEMAS = "proxy.disableSchemas"; -234 /** -235 * The properties key for the proxy server. -236 */ -237 public static final String PROXY_SERVER = "proxy.server"; -238 /** -239 * The properties key for the proxy port - this must be an integer -240 * value. -241 */ -242 public static final String PROXY_PORT = "proxy.port"; -243 /** -244 * The properties key for the proxy username. -245 */ -246 public static final String PROXY_USERNAME = "proxy.username"; -247 /** -248 * The properties key for the proxy password. -249 */ -250 public static final String PROXY_PASSWORD = "proxy.password"; -251 /** -252 * The properties key for the non proxy hosts. -253 */ -254 public static final String PROXY_NON_PROXY_HOSTS = "proxy.nonproxyhosts"; -255 /** -256 * The properties key for the connection timeout. -257 */ -258 public static final String CONNECTION_TIMEOUT = "connection.timeout"; -259 /** -260 * The properties key for the connection read timeout. -261 */ -262 public static final String CONNECTION_READ_TIMEOUT = "connection.read.timeout"; -263 /** -264 * The location of the temporary directory. -265 */ -266 public static final String TEMP_DIRECTORY = "temp.directory"; -267 /** -268 * The maximum number of threads to allocate when downloading files. -269 */ -270 public static final String MAX_DOWNLOAD_THREAD_POOL_SIZE = "max.download.threads"; -271 /** -272 * The properties key for the analysis timeout. -273 */ -274 public static final String ANALYSIS_TIMEOUT = "odc.analysis.timeout"; -275 /** -276 * The key for the suppression file. -277 */ -278 public static final String SUPPRESSION_FILE = "suppression.file"; -279 /** -280 * The username used when connecting to the suppressionFiles. -281 */ -282 public static final String SUPPRESSION_FILE_USER = "suppression.file.user"; -283 /** -284 * The password used when connecting to the suppressionFiles. -285 */ -286 public static final String SUPPRESSION_FILE_PASSWORD = "suppression.file.password"; -287 /** -288 * The key for the whether the hosted suppressions file datasource is -289 * enabled. -290 */ -291 public static final String HOSTED_SUPPRESSIONS_ENABLED = "hosted.suppressions.enabled"; -292 /** -293 * The key for the hosted suppressions file URL. -294 */ -295 public static final String HOSTED_SUPPRESSIONS_URL = "hosted.suppressions.url"; -296 -297 /** -298 * The properties key for defining whether the hosted suppressions file -299 * will be updated regardless of the autoupdate settings. -300 */ -301 public static final String HOSTED_SUPPRESSIONS_FORCEUPDATE = "hosted.suppressions.forceupdate"; -302 -303 /** -304 * The properties key to control the skipping of the check for hosted -305 * suppressions file updates. -306 */ -307 public static final String HOSTED_SUPPRESSIONS_VALID_FOR_HOURS = "hosted.suppressions.validforhours"; -308 -309 /** -310 * The key for the hint file. -311 */ -312 public static final String HINTS_FILE = "hints.file"; -313 /** -314 * The key for the property that controls what CVSS scores are -315 * considered failing test cases for the JUNIT repor. -316 */ -317 public static final String JUNIT_FAIL_ON_CVSS = "junit.fail.on.cvss"; -318 -319 /** -320 * The properties key for whether the Jar Analyzer is enabled. -321 */ -322 public static final String ANALYZER_JAR_ENABLED = "analyzer.jar.enabled"; -323 -324 /** -325 * The properties key for whether the Known Exploited Vulnerability -326 * Analyzer is enabled. -327 */ -328 public static final String ANALYZER_KNOWN_EXPLOITED_ENABLED = "analyzer.knownexploited.enabled"; -329 -330 /** -331 * The properties key for whether experimental analyzers are loaded. -332 */ -333 public static final String ANALYZER_EXPERIMENTAL_ENABLED = "analyzer.experimental.enabled"; -334 /** -335 * The properties key for whether experimental analyzers are loaded. -336 */ -337 public static final String ANALYZER_RETIRED_ENABLED = "analyzer.retired.enabled"; -338 /** -339 * The properties key for whether the Archive analyzer is enabled. -340 */ -341 public static final String ANALYZER_ARCHIVE_ENABLED = "analyzer.archive.enabled"; -342 /** -343 * The properties key for whether the node.js package analyzer is -344 * enabled. -345 */ -346 public static final String ANALYZER_NODE_PACKAGE_ENABLED = "analyzer.node.package.enabled"; -347 /** -348 * The properties key for configure whether the Node Package analyzer -349 * should skip devDependencies. -350 */ -351 public static final String ANALYZER_NODE_PACKAGE_SKIPDEV = "analyzer.node.package.skipdev"; -352 /** -353 * The properties key for whether the Node Audit analyzer is enabled. -354 */ -355 public static final String ANALYZER_NODE_AUDIT_ENABLED = "analyzer.node.audit.enabled"; -356 /** -357 * The properties key for whether the Yarn Audit analyzer is enabled. -358 */ -359 public static final String ANALYZER_YARN_AUDIT_ENABLED = "analyzer.yarn.audit.enabled"; -360 /** -361 * The properties key for whether the Pnpm Audit analyzer is enabled. -362 */ -363 public static final String ANALYZER_PNPM_AUDIT_ENABLED = "analyzer.pnpm.audit.enabled"; -364 /** -365 * The properties key for supplying the URL to the Node Audit API. -366 */ -367 public static final String ANALYZER_NODE_AUDIT_URL = "analyzer.node.audit.url"; -368 /** -369 * The properties key for configure whether the Node Audit analyzer -370 * should skip devDependencies. -371 */ -372 public static final String ANALYZER_NODE_AUDIT_SKIPDEV = "analyzer.node.audit.skipdev"; -373 /** -374 * The properties key for whether node audit analyzer results will be -375 * cached. -376 */ -377 public static final String ANALYZER_NODE_AUDIT_USE_CACHE = "analyzer.node.audit.use.cache"; -378 /** -379 * The properties key for whether the RetireJS analyzer is enabled. -380 */ -381 public static final String ANALYZER_RETIREJS_ENABLED = "analyzer.retirejs.enabled"; -382 /** -383 * The properties key for whether the RetireJS analyzer file content -384 * filters. -385 */ -386 public static final String ANALYZER_RETIREJS_FILTERS = "analyzer.retirejs.filters"; -387 /** -388 * The properties key for whether the RetireJS analyzer should filter -389 * out non-vulnerable dependencies. -390 */ -391 public static final String ANALYZER_RETIREJS_FILTER_NON_VULNERABLE = "analyzer.retirejs.filternonvulnerable"; -392 /** -393 * The properties key for defining the URL to the RetireJS repository. -394 */ -395 public static final String ANALYZER_RETIREJS_REPO_JS_URL = "analyzer.retirejs.repo.js.url"; -396 /** -397 * The properties key for the Nexus search credentials username. -398 */ -399 public static final String ANALYZER_RETIREJS_REPO_JS_USER = "analyzer.retirejs.repo.js.username"; -400 /** -401 * The properties key for the Nexus search credentials password. -402 */ -403 public static final String ANALYZER_RETIREJS_REPO_JS_PASSWORD = "analyzer.retirejs.repo.js.password"; -404 /** -405 * The properties key for defining whether the RetireJS repository will -406 * be updated regardless of the autoupdate settings. -407 */ -408 public static final String ANALYZER_RETIREJS_FORCEUPDATE = "analyzer.retirejs.forceupdate"; -409 /** -410 * The properties key to control the skipping of the check for CVE -411 * updates. -412 */ -413 public static final String ANALYZER_RETIREJS_REPO_VALID_FOR_HOURS = "analyzer.retirejs.repo.validforhours"; -414 /** -415 * The properties key for whether the PHP composer lock file analyzer is -416 * enabled. -417 */ -418 public static final String ANALYZER_COMPOSER_LOCK_ENABLED = "analyzer.composer.lock.enabled"; -419 /** -420 * The properties key for whether the Perl CPAN file file analyzer is -421 * enabled. -422 */ -423 public static final String ANALYZER_CPANFILE_ENABLED = "analyzer.cpanfile.enabled"; -424 /** -425 * The properties key for whether the Python Distribution analyzer is -426 * enabled. -427 */ -428 public static final String ANALYZER_PYTHON_DISTRIBUTION_ENABLED = "analyzer.python.distribution.enabled"; -429 /** -430 * The properties key for whether the Python Package analyzer is -431 * enabled. -432 */ -433 public static final String ANALYZER_PYTHON_PACKAGE_ENABLED = "analyzer.python.package.enabled"; -434 /** -435 * The properties key for whether the Elixir mix audit analyzer is -436 * enabled. -437 */ -438 public static final String ANALYZER_MIX_AUDIT_ENABLED = "analyzer.mix.audit.enabled"; -439 /** -440 * The path to mix_audit, if available. -441 */ -442 public static final String ANALYZER_MIX_AUDIT_PATH = "analyzer.mix.audit.path"; -443 /** -444 * The properties key for whether the Golang Mod analyzer is enabled. -445 */ -446 public static final String ANALYZER_GOLANG_MOD_ENABLED = "analyzer.golang.mod.enabled"; -447 /** -448 * The path to go, if available. -449 */ -450 public static final String ANALYZER_GOLANG_PATH = "analyzer.golang.path"; -451 /** -452 * The path to go, if available. -453 */ -454 public static final String ANALYZER_YARN_PATH = "analyzer.yarn.path"; -455 /** -456 * The path to pnpm, if available. -457 */ -458 public static final String ANALYZER_PNPM_PATH = "analyzer.pnpm.path"; -459 /** -460 * The properties key for whether the Golang Dep analyzer is enabled. -461 */ -462 public static final String ANALYZER_GOLANG_DEP_ENABLED = "analyzer.golang.dep.enabled"; -463 /** -464 * The properties key for whether the Ruby Gemspec Analyzer is enabled. -465 */ -466 public static final String ANALYZER_RUBY_GEMSPEC_ENABLED = "analyzer.ruby.gemspec.enabled"; -467 /** -468 * The properties key for whether the Autoconf analyzer is enabled. -469 */ -470 public static final String ANALYZER_AUTOCONF_ENABLED = "analyzer.autoconf.enabled"; -471 /** -472 * The properties key for whether the maven_install.json analyzer is -473 * enabled. -474 */ -475 public static final String ANALYZER_MAVEN_INSTALL_ENABLED = "analyzer.maveninstall.enabled"; -476 /** -477 * The properties key for whether the pip analyzer is enabled. -478 */ -479 public static final String ANALYZER_PIP_ENABLED = "analyzer.pip.enabled"; -480 /** -481 * The properties key for whether the pipfile analyzer is enabled. -482 */ -483 public static final String ANALYZER_PIPFILE_ENABLED = "analyzer.pipfile.enabled"; -484 /** -485 * The properties key for whether the Poetry analyzer is enabled. -486 */ -487 public static final String ANALYZER_POETRY_ENABLED = "analyzer.poetry.enabled"; -488 /** -489 * The properties key for whether the CMake analyzer is enabled. -490 */ -491 public static final String ANALYZER_CMAKE_ENABLED = "analyzer.cmake.enabled"; -492 /** -493 * The properties key for whether the Ruby Bundler Audit analyzer is -494 * enabled. -495 */ -496 public static final String ANALYZER_BUNDLE_AUDIT_ENABLED = "analyzer.bundle.audit.enabled"; -497 /** -498 * The properties key for whether the .NET Assembly analyzer is enabled. -499 */ -500 public static final String ANALYZER_ASSEMBLY_ENABLED = "analyzer.assembly.enabled"; -501 /** -502 * The properties key for whether the .NET Nuspec analyzer is enabled. -503 */ -504 public static final String ANALYZER_NUSPEC_ENABLED = "analyzer.nuspec.enabled"; -505 /** -506 * The properties key for whether the .NET Nuget packages.config -507 * analyzer is enabled. -508 */ -509 public static final String ANALYZER_NUGETCONF_ENABLED = "analyzer.nugetconf.enabled"; -510 /** -511 * The properties key for whether the Libman analyzer is enabled. -512 */ -513 public static final String ANALYZER_LIBMAN_ENABLED = "analyzer.libman.enabled"; -514 /** -515 * The properties key for whether the .NET MSBuild Project analyzer is -516 * enabled. -517 */ -518 public static final String ANALYZER_MSBUILD_PROJECT_ENABLED = "analyzer.msbuildproject.enabled"; -519 /** -520 * The properties key for whether the Nexus analyzer is enabled. -521 */ -522 public static final String ANALYZER_NEXUS_ENABLED = "analyzer.nexus.enabled"; -523 /** -524 * The properties key for the Nexus search URL. -525 */ -526 public static final String ANALYZER_NEXUS_URL = "analyzer.nexus.url"; -527 /** -528 * The properties key for the Nexus search credentials username. -529 */ -530 public static final String ANALYZER_NEXUS_USER = "analyzer.nexus.username"; -531 /** -532 * The properties key for the Nexus search credentials password. -533 */ -534 public static final String ANALYZER_NEXUS_PASSWORD = "analyzer.nexus.password"; -535 /** -536 * The properties key for using the proxy to reach Nexus. -537 */ -538 public static final String ANALYZER_NEXUS_USES_PROXY = "analyzer.nexus.proxy"; -539 /** -540 * The properties key for whether the Artifactory analyzer is enabled. -541 */ -542 public static final String ANALYZER_ARTIFACTORY_ENABLED = "analyzer.artifactory.enabled"; -543 /** -544 * The properties key for the Artifactory search URL. -545 */ -546 public static final String ANALYZER_ARTIFACTORY_URL = "analyzer.artifactory.url"; -547 /** -548 * The properties key for the Artifactory username. -549 */ -550 public static final String ANALYZER_ARTIFACTORY_API_USERNAME = "analyzer.artifactory.api.username"; -551 /** -552 * The properties key for the Artifactory API token. -553 */ -554 public static final String ANALYZER_ARTIFACTORY_API_TOKEN = "analyzer.artifactory.api.token"; -555 /** -556 * The properties key for the Artifactory bearer token -557 * (https://www.jfrog.com/confluence/display/RTF/Access+Tokens). It can -558 * be generated using: -559 * <pre>curl -u yourUserName -X POST \ -560 * "https://artifactory.techno.ingenico.com/artifactory/api/security/token" \ -561 * -d "username=yourUserName"</pre>. -562 */ -563 public static final String ANALYZER_ARTIFACTORY_BEARER_TOKEN = "analyzer.artifactory.bearer.token"; -564 /** -565 * The properties key for using the proxy to reach Artifactory. -566 */ -567 public static final String ANALYZER_ARTIFACTORY_USES_PROXY = "analyzer.artifactory.proxy"; -568 /** -569 * The properties key for whether the Artifactory analyzer should use -570 * parallel processing. -571 */ -572 public static final String ANALYZER_ARTIFACTORY_PARALLEL_ANALYSIS = "analyzer.artifactory.parallel.analysis"; -573 /** -574 * The properties key for whether the Central analyzer is enabled. -575 */ -576 public static final String ANALYZER_CENTRAL_ENABLED = "analyzer.central.enabled"; -577 /** -578 * Key for the path to the local Maven repository. -579 */ -580 public static final String MAVEN_LOCAL_REPO = "odc.maven.local.repo"; -581 /** -582 * Key for the URL to obtain content from Maven Central. -583 */ -584 public static final String CENTRAL_CONTENT_URL = "central.content.url"; -585 /** -586 * The properties key for whether the Central analyzer should use -587 * parallel processing. -588 */ -589 public static final String ANALYZER_CENTRAL_PARALLEL_ANALYSIS = "analyzer.central.parallel.analysis"; -590 /** -591 * The properties key for whether the Central analyzer should use -592 * parallel processing. -593 */ -594 public static final String ANALYZER_CENTRAL_RETRY_COUNT = "analyzer.central.retry.count"; -595 /** -596 * The properties key for whether the OpenSSL analyzer is enabled. -597 */ -598 public static final String ANALYZER_OPENSSL_ENABLED = "analyzer.openssl.enabled"; -599 /** -600 * The properties key for whether the cocoapods analyzer is enabled. -601 */ -602 public static final String ANALYZER_COCOAPODS_ENABLED = "analyzer.cocoapods.enabled"; -603 /** -604 * The properties key for whether the SWIFT package manager analyzer is -605 * enabled. -606 */ -607 public static final String ANALYZER_SWIFT_PACKAGE_MANAGER_ENABLED = "analyzer.swift.package.manager.enabled"; -608 /** -609 * The properties key for whether the SWIFT package resolved analyzer is -610 * enabled. -611 */ -612 public static final String ANALYZER_SWIFT_PACKAGE_RESOLVED_ENABLED = "analyzer.swift.package.resolved.enabled"; -613 /** -614 * The properties key for the Central search URL. -615 */ -616 public static final String ANALYZER_CENTRAL_URL = "analyzer.central.url"; -617 /** -618 * The properties key for the Central search query. -619 */ -620 public static final String ANALYZER_CENTRAL_QUERY = "analyzer.central.query"; -621 /** -622 * The properties key for whether Central search results will be cached. -623 */ -624 public static final String ANALYZER_CENTRAL_USE_CACHE = "analyzer.central.use.cache"; -625 /** -626 * The path to dotnet core, if available. -627 */ -628 public static final String ANALYZER_ASSEMBLY_DOTNET_PATH = "analyzer.assembly.dotnet.path"; -629 /** -630 * The path to bundle-audit, if available. -631 */ -632 public static final String ANALYZER_BUNDLE_AUDIT_PATH = "analyzer.bundle.audit.path"; -633 /** -634 * The path to bundle-audit, if available. -635 */ -636 public static final String ANALYZER_BUNDLE_AUDIT_WORKING_DIRECTORY = "analyzer.bundle.audit.working.directory"; -637 /** -638 * The additional configured zip file extensions, if available. -639 */ -640 public static final String ADDITIONAL_ZIP_EXTENSIONS = "extensions.zip"; -641 /** -642 * The key to obtain the path to the VFEED data file. -643 */ -644 public static final String VFEED_DATA_FILE = "vfeed.data_file"; -645 /** -646 * The key to obtain the VFEED connection string. -647 */ -648 public static final String VFEED_CONNECTION_STRING = "vfeed.connection_string"; -649 /** -650 * The key to obtain the base download URL for the VFeed data file. -651 */ -652 public static final String VFEED_DOWNLOAD_URL = "vfeed.download_url"; -653 /** -654 * The key to obtain the download file name for the VFeed data. -655 */ -656 public static final String VFEED_DOWNLOAD_FILE = "vfeed.download_file"; -657 /** -658 * The key to obtain the VFeed update status. -659 */ -660 public static final String VFEED_UPDATE_STATUS = "vfeed.update_status"; -661 /** -662 * The key to the HTTP request method for query last modified date. -663 */ -664 public static final String DOWNLOADER_QUICK_QUERY_TIMESTAMP = "downloader.quick.query.timestamp"; -665 /** -666 * The key to HTTP protocol list to use. -667 */ -668 public static final String DOWNLOADER_TLS_PROTOCOL_LIST = "downloader.tls.protocols"; -669 /** -670 * The key to determine if the CPE analyzer is enabled. -671 */ -672 public static final String ANALYZER_CPE_ENABLED = "analyzer.cpe.enabled"; -673 /** -674 * The key to determine if the NPM CPE analyzer is enabled. -675 */ -676 public static final String ANALYZER_NPM_CPE_ENABLED = "analyzer.npm.cpe.enabled"; -677 /** -678 * The key to determine if the CPE Suppression analyzer is enabled. -679 */ -680 public static final String ANALYZER_CPE_SUPPRESSION_ENABLED = "analyzer.cpesuppression.enabled"; -681 /** -682 * The key to determine if the Dependency Bundling analyzer is enabled. -683 */ -684 public static final String ANALYZER_DEPENDENCY_BUNDLING_ENABLED = "analyzer.dependencybundling.enabled"; -685 /** -686 * The key to determine if the Dependency Merging analyzer is enabled. -687 */ -688 public static final String ANALYZER_DEPENDENCY_MERGING_ENABLED = "analyzer.dependencymerging.enabled"; -689 /** -690 * The key to determine if the False Positive analyzer is enabled. -691 */ -692 public static final String ANALYZER_FALSE_POSITIVE_ENABLED = "analyzer.falsepositive.enabled"; -693 /** -694 * The key to determine if the File Name analyzer is enabled. -695 */ -696 public static final String ANALYZER_FILE_NAME_ENABLED = "analyzer.filename.enabled"; -697 /** -698 * The key to determine if the File Version analyzer is enabled. -699 */ -700 public static final String ANALYZER_PE_ENABLED = "analyzer.pe.enabled"; -701 /** -702 * The key to determine if the Hint analyzer is enabled. -703 */ -704 public static final String ANALYZER_HINT_ENABLED = "analyzer.hint.enabled"; -705 /** -706 * The key to determine if the Version Filter analyzer is enabled. -707 */ -708 public static final String ANALYZER_VERSION_FILTER_ENABLED = "analyzer.versionfilter.enabled"; -709 /** -710 * The key to determine if the Vulnerability Suppression analyzer is -711 * enabled. -712 */ -713 public static final String ANALYZER_VULNERABILITY_SUPPRESSION_ENABLED = "analyzer.vulnerabilitysuppression.enabled"; -714 /** -715 * The key to determine if the NVD CVE updater should be enabled. -716 */ -717 public static final String UPDATE_NVDCVE_ENABLED = "updater.nvdcve.enabled"; -718 /** -719 * The key to determine if dependency-check should check if there is a -720 * new version available. -721 */ -722 public static final String UPDATE_VERSION_CHECK_ENABLED = "updater.versioncheck.enabled"; -723 /** -724 * The key to determine which ecosystems should skip the CPE analysis. -725 */ -726 public static final String ECOSYSTEM_SKIP_CPEANALYZER = "ecosystem.skip.cpeanalyzer"; -727 /** -728 * Adds capabilities to batch insert. Tested on PostgreSQL and H2. -729 */ -730 public static final String ENABLE_BATCH_UPDATES = "database.batchinsert.enabled"; -731 /** -732 * Size of database batch inserts. -733 */ -734 public static final String MAX_BATCH_SIZE = "database.batchinsert.maxsize"; -735 /** -736 * The key that specifies the class name of the Write Lock shutdown -737 * hook. -738 */ -739 public static final String WRITELOCK_SHUTDOWN_HOOK = "data.writelock.shutdownhook"; -740 /** -741 * The properties key for whether the Sonatype OSS Index analyzer is -742 * enabled. -743 */ -744 public static final String ANALYZER_OSSINDEX_ENABLED = "analyzer.ossindex.enabled"; -745 /** -746 * The properties key for whether the Sonatype OSS Index should use a -747 * local cache. -748 */ -749 public static final String ANALYZER_OSSINDEX_USE_CACHE = "analyzer.ossindex.use.cache"; -750 /** -751 * The properties key for the Sonatype OSS Index URL. -752 */ -753 public static final String ANALYZER_OSSINDEX_URL = "analyzer.ossindex.url"; -754 /** -755 * The properties key for the Sonatype OSS Index user. -756 */ -757 public static final String ANALYZER_OSSINDEX_USER = "analyzer.ossindex.user"; -758 /** -759 * The properties key for the Sonatype OSS Index password. -760 */ -761 public static final String ANALYZER_OSSINDEX_PASSWORD = "analyzer.ossindex.password"; -762 /** -763 * The properties key for the Sonatype OSS batch-size. -764 */ -765 public static final String ANALYZER_OSSINDEX_BATCH_SIZE = "analyzer.ossindex.batch.size"; -766 /** -767 * The properties key for the Sonatype OSS Request Delay. Amount of time -768 * in seconds to wait before executing a request against the Sonatype -769 * OSS Rest API -770 */ -771 public static final String ANALYZER_OSSINDEX_REQUEST_DELAY = "analyzer.ossindex.request.delay"; -772 /** -773 * The properties key for only warning about Sonatype OSS Index remote -774 * errors instead of failing the request. -775 */ -776 public static final String ANALYZER_OSSINDEX_WARN_ONLY_ON_REMOTE_ERRORS = "analyzer.ossindex.remote-error.warn-only"; -777 /** -778 * The properties key setting whether or not the JSON and XML reports -779 * will be pretty printed. -780 */ -781 -782 /** -783 * The properties key for whether the Dart analyzer is enabled. -784 */ -785 public static final String ANALYZER_DART_ENABLED = "analyzer.dart.enabled"; -786 -787 /** -788 * The properties key for whether to pretty print the XML/JSON reports. -789 */ -790 public static final String PRETTY_PRINT = "odc.reports.pretty.print"; -791 /** -792 * The properties key setting which other keys should be considered -793 * sensitive and subsequently masked when logged. -794 */ -795 public static final String MASKED_PROPERTIES = "odc.settings.mask"; -796 /** -797 * The properties key for the default max query size for Lucene query -798 * results. -799 */ -800 public static final String MAX_QUERY_SIZE_DEFAULT = "odc.ecosystem.maxquerylimit.default"; -801 /** -802 * The properties key prefix for the default max query size for Lucene -803 * query results; append the ecosystem to obtain the default query size. -804 */ -805 public static final String MAX_QUERY_SIZE_PREFIX = "odc.ecosystem.maxquerylimit."; -806 -807 /** -808 * private constructor because this is a "utility" class containing -809 * constants -810 */ -811 private KEYS() { -812 //do nothing -813 } -814 } -815 //</editor-fold> -816 -817 /** -818 * Initialize the settings object. -819 */ -820 public Settings() { -821 initialize(PROPERTIES_FILE); -822 } -823 -824 /** -825 * Initialize the settings object using the given properties. -826 * -827 * @param properties the properties to be used with this Settings instance -828 * @since 4.0.3 -829 */ -830 public Settings(final Properties properties) { -831 props = properties; -832 logProperties("Properties loaded", props); -833 } -834 -835 /** -836 * Initialize the settings object using the given properties file. -837 * -838 * @param propertiesFilePath the path to the base properties file to load -839 */ -840 public Settings(@NotNull final String propertiesFilePath) { -841 initialize(propertiesFilePath); -842 } -843 -844 /** -845 * Initializes the settings object from the given file. -846 * -847 * @param propertiesFilePath the path to the settings property file -848 */ -849 private void initialize(@NotNull final String propertiesFilePath) { -850 props = new Properties(); -851 try (InputStream in = FileUtils.getResourceAsStream(propertiesFilePath)) { -852 props.load(in); -853 } catch (NullPointerException ex) { -854 LOGGER.error("Did not find settings file '{}'.", propertiesFilePath); -855 LOGGER.debug("", ex); -856 } catch (IOException ex) { -857 LOGGER.error("Unable to load settings from '{}'.", propertiesFilePath); +164 /** +165 * The NVD API Endpoint. +166 */ +167 public static final String NVD_API_ENDPOINT = "nvd.api.endpoint"; +168 /** +169 * API Key for the NVD API. +170 */ +171 public static final String NVD_API_KEY = "nvd.api.key"; +172 /** +173 * The delay between requests for the NVD API. +174 */ +175 public static final String NVD_API_DELAY = "nvd.api.delay"; +176 /** +177 * The maximum number of retry requests for a single call to the NVD +178 * API. +179 */ +180 public static final String NVD_API_MAX_RETRY_COUNT = "nvd.api.max.retry.count"; +181 /** +182 * The properties key to control the skipping of the check for NVD +183 * updates. +184 */ +185 public static final String NVD_API_VALID_FOR_HOURS = "nvd.api.check.validforhours"; +186 /** +187 * The properties key that indicates how often the NVD API data feed +188 * needs to be updated before a full refresh is evaluated. +189 */ +190 public static final String NVD_API_DATAFEED_VALID_FOR_DAYS = "nvd.api.datafeed.validfordays"; +191 /** +192 * The URL for the NVD API Data Feed. +193 */ +194 public static final String NVD_API_DATAFEED_URL = "nvd.api.datafeed.url"; +195 /** +196 * The username to use when connecting to the NVD Data feed. +197 */ +198 public static final String NVD_API_DATAFEED_USER = "nvd.api.datafeed.user"; +199 /** +200 * The password to authenticate to the NVD Data feed. +201 */ +202 public static final String NVD_API_DATAFEED_PASSWORD = "nvd.api.datafeed.password"; +203 /** +204 * The starting year for the NVD CVE Data feed cache. +205 */ +206 public static final String NVD_API_DATAFEED_START_YEAR = "nvd.api.datafeed.startyear"; +207 //END NEW +208 /** +209 * The key to determine if the NVD CVE analyzer is enabled. +210 */ +211 public static final String ANALYZER_NVD_CVE_ENABLED = "analyzer.nvdcve.enabled"; +212 /** +213 * The properties key that indicates how often the CPE data needs to be +214 * updated. +215 */ +216 public static final String CPE_MODIFIED_VALID_FOR_DAYS = "cpe.validfordays"; +217 /** +218 * The properties key for the URL to retrieve the CPE. +219 */ +220 public static final String CPE_URL = "cpe.url"; +221 /** +222 * The properties key for the URL to retrieve the Known Exploited +223 * Vulnerabilities.. +224 */ +225 public static final String KEV_URL = "kev.url"; +226 /** +227 * The properties key to control the skipping of the check for Known +228 * Exploited Vulnerabilities updates. +229 */ +230 public static final String KEV_CHECK_VALID_FOR_HOURS = "kev.check.validforhours"; +231 /** +232 * Whether or not if using basic auth with a proxy the system setting +233 * 'jdk.http.auth.tunneling.disabledSchemes' should be set to an empty +234 * string. +235 */ +236 public static final String PROXY_DISABLE_SCHEMAS = "proxy.disableSchemas"; +237 /** +238 * The properties key for the proxy server. +239 */ +240 public static final String PROXY_SERVER = "proxy.server"; +241 /** +242 * The properties key for the proxy port - this must be an integer +243 * value. +244 */ +245 public static final String PROXY_PORT = "proxy.port"; +246 /** +247 * The properties key for the proxy username. +248 */ +249 public static final String PROXY_USERNAME = "proxy.username"; +250 /** +251 * The properties key for the proxy password. +252 */ +253 public static final String PROXY_PASSWORD = "proxy.password"; +254 /** +255 * The properties key for the non proxy hosts. +256 */ +257 public static final String PROXY_NON_PROXY_HOSTS = "proxy.nonproxyhosts"; +258 /** +259 * The properties key for the connection timeout. +260 */ +261 public static final String CONNECTION_TIMEOUT = "connection.timeout"; +262 /** +263 * The properties key for the connection read timeout. +264 */ +265 public static final String CONNECTION_READ_TIMEOUT = "connection.read.timeout"; +266 /** +267 * The location of the temporary directory. +268 */ +269 public static final String TEMP_DIRECTORY = "temp.directory"; +270 /** +271 * The maximum number of threads to allocate when downloading files. +272 */ +273 public static final String MAX_DOWNLOAD_THREAD_POOL_SIZE = "max.download.threads"; +274 /** +275 * The properties key for the analysis timeout. +276 */ +277 public static final String ANALYSIS_TIMEOUT = "odc.analysis.timeout"; +278 /** +279 * The key for the suppression file. +280 */ +281 public static final String SUPPRESSION_FILE = "suppression.file"; +282 /** +283 * The username used when connecting to the suppressionFiles. +284 */ +285 public static final String SUPPRESSION_FILE_USER = "suppression.file.user"; +286 /** +287 * The password used when connecting to the suppressionFiles. +288 */ +289 public static final String SUPPRESSION_FILE_PASSWORD = "suppression.file.password"; +290 /** +291 * The key for the whether the hosted suppressions file datasource is +292 * enabled. +293 */ +294 public static final String HOSTED_SUPPRESSIONS_ENABLED = "hosted.suppressions.enabled"; +295 /** +296 * The key for the hosted suppressions file URL. +297 */ +298 public static final String HOSTED_SUPPRESSIONS_URL = "hosted.suppressions.url"; +299 +300 /** +301 * The properties key for defining whether the hosted suppressions file +302 * will be updated regardless of the autoupdate settings. +303 */ +304 public static final String HOSTED_SUPPRESSIONS_FORCEUPDATE = "hosted.suppressions.forceupdate"; +305 +306 /** +307 * The properties key to control the skipping of the check for hosted +308 * suppressions file updates. +309 */ +310 public static final String HOSTED_SUPPRESSIONS_VALID_FOR_HOURS = "hosted.suppressions.validforhours"; +311 +312 /** +313 * The key for the hint file. +314 */ +315 public static final String HINTS_FILE = "hints.file"; +316 /** +317 * The key for the property that controls what CVSS scores are +318 * considered failing test cases for the JUNIT repor. +319 */ +320 public static final String JUNIT_FAIL_ON_CVSS = "junit.fail.on.cvss"; +321 +322 /** +323 * The properties key for whether the Jar Analyzer is enabled. +324 */ +325 public static final String ANALYZER_JAR_ENABLED = "analyzer.jar.enabled"; +326 +327 /** +328 * The properties key for whether the Known Exploited Vulnerability +329 * Analyzer is enabled. +330 */ +331 public static final String ANALYZER_KNOWN_EXPLOITED_ENABLED = "analyzer.knownexploited.enabled"; +332 +333 /** +334 * The properties key for whether experimental analyzers are loaded. +335 */ +336 public static final String ANALYZER_EXPERIMENTAL_ENABLED = "analyzer.experimental.enabled"; +337 /** +338 * The properties key for whether experimental analyzers are loaded. +339 */ +340 public static final String ANALYZER_RETIRED_ENABLED = "analyzer.retired.enabled"; +341 /** +342 * The properties key for whether the Archive analyzer is enabled. +343 */ +344 public static final String ANALYZER_ARCHIVE_ENABLED = "analyzer.archive.enabled"; +345 /** +346 * The properties key for whether the node.js package analyzer is +347 * enabled. +348 */ +349 public static final String ANALYZER_NODE_PACKAGE_ENABLED = "analyzer.node.package.enabled"; +350 /** +351 * The properties key for configure whether the Node Package analyzer +352 * should skip devDependencies. +353 */ +354 public static final String ANALYZER_NODE_PACKAGE_SKIPDEV = "analyzer.node.package.skipdev"; +355 /** +356 * The properties key for whether the Node Audit analyzer is enabled. +357 */ +358 public static final String ANALYZER_NODE_AUDIT_ENABLED = "analyzer.node.audit.enabled"; +359 /** +360 * The properties key for whether the Yarn Audit analyzer is enabled. +361 */ +362 public static final String ANALYZER_YARN_AUDIT_ENABLED = "analyzer.yarn.audit.enabled"; +363 /** +364 * The properties key for whether the Pnpm Audit analyzer is enabled. +365 */ +366 public static final String ANALYZER_PNPM_AUDIT_ENABLED = "analyzer.pnpm.audit.enabled"; +367 /** +368 * The properties key for supplying the URL to the Node Audit API. +369 */ +370 public static final String ANALYZER_NODE_AUDIT_URL = "analyzer.node.audit.url"; +371 /** +372 * The properties key for configure whether the Node Audit analyzer +373 * should skip devDependencies. +374 */ +375 public static final String ANALYZER_NODE_AUDIT_SKIPDEV = "analyzer.node.audit.skipdev"; +376 /** +377 * The properties key for whether node audit analyzer results will be +378 * cached. +379 */ +380 public static final String ANALYZER_NODE_AUDIT_USE_CACHE = "analyzer.node.audit.use.cache"; +381 /** +382 * The properties key for whether the RetireJS analyzer is enabled. +383 */ +384 public static final String ANALYZER_RETIREJS_ENABLED = "analyzer.retirejs.enabled"; +385 /** +386 * The properties key for whether the RetireJS analyzer file content +387 * filters. +388 */ +389 public static final String ANALYZER_RETIREJS_FILTERS = "analyzer.retirejs.filters"; +390 /** +391 * The properties key for whether the RetireJS analyzer should filter +392 * out non-vulnerable dependencies. +393 */ +394 public static final String ANALYZER_RETIREJS_FILTER_NON_VULNERABLE = "analyzer.retirejs.filternonvulnerable"; +395 /** +396 * The properties key for defining the URL to the RetireJS repository. +397 */ +398 public static final String ANALYZER_RETIREJS_REPO_JS_URL = "analyzer.retirejs.repo.js.url"; +399 /** +400 * The properties key for the Nexus search credentials username. +401 */ +402 public static final String ANALYZER_RETIREJS_REPO_JS_USER = "analyzer.retirejs.repo.js.username"; +403 /** +404 * The properties key for the Nexus search credentials password. +405 */ +406 public static final String ANALYZER_RETIREJS_REPO_JS_PASSWORD = "analyzer.retirejs.repo.js.password"; +407 /** +408 * The properties key for defining whether the RetireJS repository will +409 * be updated regardless of the autoupdate settings. +410 */ +411 public static final String ANALYZER_RETIREJS_FORCEUPDATE = "analyzer.retirejs.forceupdate"; +412 /** +413 * The properties key to control the skipping of the check for CVE +414 * updates. +415 */ +416 public static final String ANALYZER_RETIREJS_REPO_VALID_FOR_HOURS = "analyzer.retirejs.repo.validforhours"; +417 /** +418 * The properties key for whether the PHP composer lock file analyzer is +419 * enabled. +420 */ +421 public static final String ANALYZER_COMPOSER_LOCK_ENABLED = "analyzer.composer.lock.enabled"; +422 /** +423 * The properties key for whether the Perl CPAN file file analyzer is +424 * enabled. +425 */ +426 public static final String ANALYZER_CPANFILE_ENABLED = "analyzer.cpanfile.enabled"; +427 /** +428 * The properties key for whether the Python Distribution analyzer is +429 * enabled. +430 */ +431 public static final String ANALYZER_PYTHON_DISTRIBUTION_ENABLED = "analyzer.python.distribution.enabled"; +432 /** +433 * The properties key for whether the Python Package analyzer is +434 * enabled. +435 */ +436 public static final String ANALYZER_PYTHON_PACKAGE_ENABLED = "analyzer.python.package.enabled"; +437 /** +438 * The properties key for whether the Elixir mix audit analyzer is +439 * enabled. +440 */ +441 public static final String ANALYZER_MIX_AUDIT_ENABLED = "analyzer.mix.audit.enabled"; +442 /** +443 * The path to mix_audit, if available. +444 */ +445 public static final String ANALYZER_MIX_AUDIT_PATH = "analyzer.mix.audit.path"; +446 /** +447 * The properties key for whether the Golang Mod analyzer is enabled. +448 */ +449 public static final String ANALYZER_GOLANG_MOD_ENABLED = "analyzer.golang.mod.enabled"; +450 /** +451 * The path to go, if available. +452 */ +453 public static final String ANALYZER_GOLANG_PATH = "analyzer.golang.path"; +454 /** +455 * The path to go, if available. +456 */ +457 public static final String ANALYZER_YARN_PATH = "analyzer.yarn.path"; +458 /** +459 * The path to pnpm, if available. +460 */ +461 public static final String ANALYZER_PNPM_PATH = "analyzer.pnpm.path"; +462 /** +463 * The properties key for whether the Golang Dep analyzer is enabled. +464 */ +465 public static final String ANALYZER_GOLANG_DEP_ENABLED = "analyzer.golang.dep.enabled"; +466 /** +467 * The properties key for whether the Ruby Gemspec Analyzer is enabled. +468 */ +469 public static final String ANALYZER_RUBY_GEMSPEC_ENABLED = "analyzer.ruby.gemspec.enabled"; +470 /** +471 * The properties key for whether the Autoconf analyzer is enabled. +472 */ +473 public static final String ANALYZER_AUTOCONF_ENABLED = "analyzer.autoconf.enabled"; +474 /** +475 * The properties key for whether the maven_install.json analyzer is +476 * enabled. +477 */ +478 public static final String ANALYZER_MAVEN_INSTALL_ENABLED = "analyzer.maveninstall.enabled"; +479 /** +480 * The properties key for whether the pip analyzer is enabled. +481 */ +482 public static final String ANALYZER_PIP_ENABLED = "analyzer.pip.enabled"; +483 /** +484 * The properties key for whether the pipfile analyzer is enabled. +485 */ +486 public static final String ANALYZER_PIPFILE_ENABLED = "analyzer.pipfile.enabled"; +487 /** +488 * The properties key for whether the Poetry analyzer is enabled. +489 */ +490 public static final String ANALYZER_POETRY_ENABLED = "analyzer.poetry.enabled"; +491 /** +492 * The properties key for whether the CMake analyzer is enabled. +493 */ +494 public static final String ANALYZER_CMAKE_ENABLED = "analyzer.cmake.enabled"; +495 /** +496 * The properties key for whether the Ruby Bundler Audit analyzer is +497 * enabled. +498 */ +499 public static final String ANALYZER_BUNDLE_AUDIT_ENABLED = "analyzer.bundle.audit.enabled"; +500 /** +501 * The properties key for whether the .NET Assembly analyzer is enabled. +502 */ +503 public static final String ANALYZER_ASSEMBLY_ENABLED = "analyzer.assembly.enabled"; +504 /** +505 * The properties key for whether the .NET Nuspec analyzer is enabled. +506 */ +507 public static final String ANALYZER_NUSPEC_ENABLED = "analyzer.nuspec.enabled"; +508 /** +509 * The properties key for whether the .NET Nuget packages.config +510 * analyzer is enabled. +511 */ +512 public static final String ANALYZER_NUGETCONF_ENABLED = "analyzer.nugetconf.enabled"; +513 /** +514 * The properties key for whether the Libman analyzer is enabled. +515 */ +516 public static final String ANALYZER_LIBMAN_ENABLED = "analyzer.libman.enabled"; +517 /** +518 * The properties key for whether the .NET MSBuild Project analyzer is +519 * enabled. +520 */ +521 public static final String ANALYZER_MSBUILD_PROJECT_ENABLED = "analyzer.msbuildproject.enabled"; +522 /** +523 * The properties key for whether the Nexus analyzer is enabled. +524 */ +525 public static final String ANALYZER_NEXUS_ENABLED = "analyzer.nexus.enabled"; +526 /** +527 * The properties key for the Nexus search URL. +528 */ +529 public static final String ANALYZER_NEXUS_URL = "analyzer.nexus.url"; +530 /** +531 * The properties key for the Nexus search credentials username. +532 */ +533 public static final String ANALYZER_NEXUS_USER = "analyzer.nexus.username"; +534 /** +535 * The properties key for the Nexus search credentials password. +536 */ +537 public static final String ANALYZER_NEXUS_PASSWORD = "analyzer.nexus.password"; +538 /** +539 * The properties key for using the proxy to reach Nexus. +540 */ +541 public static final String ANALYZER_NEXUS_USES_PROXY = "analyzer.nexus.proxy"; +542 /** +543 * The properties key for whether the Artifactory analyzer is enabled. +544 */ +545 public static final String ANALYZER_ARTIFACTORY_ENABLED = "analyzer.artifactory.enabled"; +546 /** +547 * The properties key for the Artifactory search URL. +548 */ +549 public static final String ANALYZER_ARTIFACTORY_URL = "analyzer.artifactory.url"; +550 /** +551 * The properties key for the Artifactory username. +552 */ +553 public static final String ANALYZER_ARTIFACTORY_API_USERNAME = "analyzer.artifactory.api.username"; +554 /** +555 * The properties key for the Artifactory API token. +556 */ +557 public static final String ANALYZER_ARTIFACTORY_API_TOKEN = "analyzer.artifactory.api.token"; +558 /** +559 * The properties key for the Artifactory bearer token +560 * (https://www.jfrog.com/confluence/display/RTF/Access+Tokens). It can +561 * be generated using: +562 * <pre>curl -u yourUserName -X POST \ +563 * "https://artifactory.techno.ingenico.com/artifactory/api/security/token" \ +564 * -d "username=yourUserName"</pre>. +565 */ +566 public static final String ANALYZER_ARTIFACTORY_BEARER_TOKEN = "analyzer.artifactory.bearer.token"; +567 /** +568 * The properties key for using the proxy to reach Artifactory. +569 */ +570 public static final String ANALYZER_ARTIFACTORY_USES_PROXY = "analyzer.artifactory.proxy"; +571 /** +572 * The properties key for whether the Artifactory analyzer should use +573 * parallel processing. +574 */ +575 public static final String ANALYZER_ARTIFACTORY_PARALLEL_ANALYSIS = "analyzer.artifactory.parallel.analysis"; +576 /** +577 * The properties key for whether the Central analyzer is enabled. +578 */ +579 public static final String ANALYZER_CENTRAL_ENABLED = "analyzer.central.enabled"; +580 /** +581 * Key for the path to the local Maven repository. +582 */ +583 public static final String MAVEN_LOCAL_REPO = "odc.maven.local.repo"; +584 /** +585 * Key for the URL to obtain content from Maven Central. +586 */ +587 public static final String CENTRAL_CONTENT_URL = "central.content.url"; +588 /** +589 * The properties key for whether the Central analyzer should use +590 * parallel processing. +591 */ +592 public static final String ANALYZER_CENTRAL_PARALLEL_ANALYSIS = "analyzer.central.parallel.analysis"; +593 /** +594 * The properties key for whether the Central analyzer should use +595 * parallel processing. +596 */ +597 public static final String ANALYZER_CENTRAL_RETRY_COUNT = "analyzer.central.retry.count"; +598 /** +599 * The properties key for whether the OpenSSL analyzer is enabled. +600 */ +601 public static final String ANALYZER_OPENSSL_ENABLED = "analyzer.openssl.enabled"; +602 /** +603 * The properties key for whether the cocoapods analyzer is enabled. +604 */ +605 public static final String ANALYZER_COCOAPODS_ENABLED = "analyzer.cocoapods.enabled"; +606 /** +607 * The properties key for whether the SWIFT package manager analyzer is +608 * enabled. +609 */ +610 public static final String ANALYZER_SWIFT_PACKAGE_MANAGER_ENABLED = "analyzer.swift.package.manager.enabled"; +611 /** +612 * The properties key for whether the SWIFT package resolved analyzer is +613 * enabled. +614 */ +615 public static final String ANALYZER_SWIFT_PACKAGE_RESOLVED_ENABLED = "analyzer.swift.package.resolved.enabled"; +616 /** +617 * The properties key for the Central search URL. +618 */ +619 public static final String ANALYZER_CENTRAL_URL = "analyzer.central.url"; +620 /** +621 * The properties key for the Central search query. +622 */ +623 public static final String ANALYZER_CENTRAL_QUERY = "analyzer.central.query"; +624 /** +625 * The properties key for whether Central search results will be cached. +626 */ +627 public static final String ANALYZER_CENTRAL_USE_CACHE = "analyzer.central.use.cache"; +628 /** +629 * The path to dotnet core, if available. +630 */ +631 public static final String ANALYZER_ASSEMBLY_DOTNET_PATH = "analyzer.assembly.dotnet.path"; +632 /** +633 * The path to bundle-audit, if available. +634 */ +635 public static final String ANALYZER_BUNDLE_AUDIT_PATH = "analyzer.bundle.audit.path"; +636 /** +637 * The path to bundle-audit, if available. +638 */ +639 public static final String ANALYZER_BUNDLE_AUDIT_WORKING_DIRECTORY = "analyzer.bundle.audit.working.directory"; +640 /** +641 * The additional configured zip file extensions, if available. +642 */ +643 public static final String ADDITIONAL_ZIP_EXTENSIONS = "extensions.zip"; +644 /** +645 * The key to obtain the path to the VFEED data file. +646 */ +647 public static final String VFEED_DATA_FILE = "vfeed.data_file"; +648 /** +649 * The key to obtain the VFEED connection string. +650 */ +651 public static final String VFEED_CONNECTION_STRING = "vfeed.connection_string"; +652 /** +653 * The key to obtain the base download URL for the VFeed data file. +654 */ +655 public static final String VFEED_DOWNLOAD_URL = "vfeed.download_url"; +656 /** +657 * The key to obtain the download file name for the VFeed data. +658 */ +659 public static final String VFEED_DOWNLOAD_FILE = "vfeed.download_file"; +660 /** +661 * The key to obtain the VFeed update status. +662 */ +663 public static final String VFEED_UPDATE_STATUS = "vfeed.update_status"; +664 /** +665 * The key to the HTTP request method for query last modified date. +666 */ +667 public static final String DOWNLOADER_QUICK_QUERY_TIMESTAMP = "downloader.quick.query.timestamp"; +668 /** +669 * The key to HTTP protocol list to use. +670 */ +671 public static final String DOWNLOADER_TLS_PROTOCOL_LIST = "downloader.tls.protocols"; +672 /** +673 * The key to determine if the CPE analyzer is enabled. +674 */ +675 public static final String ANALYZER_CPE_ENABLED = "analyzer.cpe.enabled"; +676 /** +677 * The key to determine if the NPM CPE analyzer is enabled. +678 */ +679 public static final String ANALYZER_NPM_CPE_ENABLED = "analyzer.npm.cpe.enabled"; +680 /** +681 * The key to determine if the CPE Suppression analyzer is enabled. +682 */ +683 public static final String ANALYZER_CPE_SUPPRESSION_ENABLED = "analyzer.cpesuppression.enabled"; +684 /** +685 * The key to determine if the Dependency Bundling analyzer is enabled. +686 */ +687 public static final String ANALYZER_DEPENDENCY_BUNDLING_ENABLED = "analyzer.dependencybundling.enabled"; +688 /** +689 * The key to determine if the Dependency Merging analyzer is enabled. +690 */ +691 public static final String ANALYZER_DEPENDENCY_MERGING_ENABLED = "analyzer.dependencymerging.enabled"; +692 /** +693 * The key to determine if the False Positive analyzer is enabled. +694 */ +695 public static final String ANALYZER_FALSE_POSITIVE_ENABLED = "analyzer.falsepositive.enabled"; +696 /** +697 * The key to determine if the File Name analyzer is enabled. +698 */ +699 public static final String ANALYZER_FILE_NAME_ENABLED = "analyzer.filename.enabled"; +700 /** +701 * The key to determine if the File Version analyzer is enabled. +702 */ +703 public static final String ANALYZER_PE_ENABLED = "analyzer.pe.enabled"; +704 /** +705 * The key to determine if the Hint analyzer is enabled. +706 */ +707 public static final String ANALYZER_HINT_ENABLED = "analyzer.hint.enabled"; +708 /** +709 * The key to determine if the Version Filter analyzer is enabled. +710 */ +711 public static final String ANALYZER_VERSION_FILTER_ENABLED = "analyzer.versionfilter.enabled"; +712 /** +713 * The key to determine if the Vulnerability Suppression analyzer is +714 * enabled. +715 */ +716 public static final String ANALYZER_VULNERABILITY_SUPPRESSION_ENABLED = "analyzer.vulnerabilitysuppression.enabled"; +717 /** +718 * The key to determine if the NVD CVE updater should be enabled. +719 */ +720 public static final String UPDATE_NVDCVE_ENABLED = "updater.nvdcve.enabled"; +721 /** +722 * The key to determine if dependency-check should check if there is a +723 * new version available. +724 */ +725 public static final String UPDATE_VERSION_CHECK_ENABLED = "updater.versioncheck.enabled"; +726 /** +727 * The key to determine which ecosystems should skip the CPE analysis. +728 */ +729 public static final String ECOSYSTEM_SKIP_CPEANALYZER = "ecosystem.skip.cpeanalyzer"; +730 /** +731 * Adds capabilities to batch insert. Tested on PostgreSQL and H2. +732 */ +733 public static final String ENABLE_BATCH_UPDATES = "database.batchinsert.enabled"; +734 /** +735 * Size of database batch inserts. +736 */ +737 public static final String MAX_BATCH_SIZE = "database.batchinsert.maxsize"; +738 /** +739 * The key that specifies the class name of the Write Lock shutdown +740 * hook. +741 */ +742 public static final String WRITELOCK_SHUTDOWN_HOOK = "data.writelock.shutdownhook"; +743 /** +744 * The properties key for whether the Sonatype OSS Index analyzer is +745 * enabled. +746 */ +747 public static final String ANALYZER_OSSINDEX_ENABLED = "analyzer.ossindex.enabled"; +748 /** +749 * The properties key for whether the Sonatype OSS Index should use a +750 * local cache. +751 */ +752 public static final String ANALYZER_OSSINDEX_USE_CACHE = "analyzer.ossindex.use.cache"; +753 /** +754 * The properties key for the Sonatype OSS Index URL. +755 */ +756 public static final String ANALYZER_OSSINDEX_URL = "analyzer.ossindex.url"; +757 /** +758 * The properties key for the Sonatype OSS Index user. +759 */ +760 public static final String ANALYZER_OSSINDEX_USER = "analyzer.ossindex.user"; +761 /** +762 * The properties key for the Sonatype OSS Index password. +763 */ +764 public static final String ANALYZER_OSSINDEX_PASSWORD = "analyzer.ossindex.password"; +765 /** +766 * The properties key for the Sonatype OSS batch-size. +767 */ +768 public static final String ANALYZER_OSSINDEX_BATCH_SIZE = "analyzer.ossindex.batch.size"; +769 /** +770 * The properties key for the Sonatype OSS Request Delay. Amount of time +771 * in seconds to wait before executing a request against the Sonatype +772 * OSS Rest API +773 */ +774 public static final String ANALYZER_OSSINDEX_REQUEST_DELAY = "analyzer.ossindex.request.delay"; +775 /** +776 * The properties key for only warning about Sonatype OSS Index remote +777 * errors instead of failing the request. +778 */ +779 public static final String ANALYZER_OSSINDEX_WARN_ONLY_ON_REMOTE_ERRORS = "analyzer.ossindex.remote-error.warn-only"; +780 /** +781 * The properties key setting whether or not the JSON and XML reports +782 * will be pretty printed. +783 */ +784 +785 /** +786 * The properties key for whether the Dart analyzer is enabled. +787 */ +788 public static final String ANALYZER_DART_ENABLED = "analyzer.dart.enabled"; +789 +790 /** +791 * The properties key for whether to pretty print the XML/JSON reports. +792 */ +793 public static final String PRETTY_PRINT = "odc.reports.pretty.print"; +794 /** +795 * The properties key setting which other keys should be considered +796 * sensitive and subsequently masked when logged. +797 */ +798 public static final String MASKED_PROPERTIES = "odc.settings.mask"; +799 /** +800 * The properties key for the default max query size for Lucene query +801 * results. +802 */ +803 public static final String MAX_QUERY_SIZE_DEFAULT = "odc.ecosystem.maxquerylimit.default"; +804 /** +805 * The properties key prefix for the default max query size for Lucene +806 * query results; append the ecosystem to obtain the default query size. +807 */ +808 public static final String MAX_QUERY_SIZE_PREFIX = "odc.ecosystem.maxquerylimit."; +809 +810 /** +811 * private constructor because this is a "utility" class containing +812 * constants +813 */ +814 private KEYS() { +815 //do nothing +816 } +817 } +818 //</editor-fold> +819 +820 /** +821 * Initialize the settings object. +822 */ +823 public Settings() { +824 initialize(PROPERTIES_FILE); +825 } +826 +827 /** +828 * Initialize the settings object using the given properties. +829 * +830 * @param properties the properties to be used with this Settings instance +831 * @since 4.0.3 +832 */ +833 public Settings(final Properties properties) { +834 props = properties; +835 logProperties("Properties loaded", props); +836 } +837 +838 /** +839 * Initialize the settings object using the given properties file. +840 * +841 * @param propertiesFilePath the path to the base properties file to load +842 */ +843 public Settings(@NotNull final String propertiesFilePath) { +844 initialize(propertiesFilePath); +845 } +846 +847 /** +848 * Initializes the settings object from the given file. +849 * +850 * @param propertiesFilePath the path to the settings property file +851 */ +852 private void initialize(@NotNull final String propertiesFilePath) { +853 props = new Properties(); +854 try (InputStream in = FileUtils.getResourceAsStream(propertiesFilePath)) { +855 props.load(in); +856 } catch (NullPointerException ex) { +857 LOGGER.error("Did not find settings file '{}'.", propertiesFilePath); 858 LOGGER.debug("", ex); -859 } -860 logProperties("Properties loaded", props); -861 } -862 -863 /** -864 * Cleans up resources to prevent memory leaks. -865 */ -866 public void cleanup() { -867 cleanup(true); -868 } -869 -870 /** -871 * Cleans up resources to prevent memory leaks. -872 * -873 * @param deleteTemporary flag indicating whether any temporary directories -874 * generated should be removed -875 */ -876 public synchronized void cleanup(boolean deleteTemporary) { -877 if (deleteTemporary && tempDirectory != null && tempDirectory.exists()) { -878 LOGGER.debug("Deleting ALL temporary files from `{}`", tempDirectory.toString()); -879 FileUtils.delete(tempDirectory); -880 tempDirectory = null; -881 } -882 } -883 -884 /** -885 * Check if a given key is considered to have a value with sensitive data. -886 * -887 * @param key the key to determine if the property should be masked -888 * @return <code>true</code> if the key is for a sensitive property value; -889 * otherwise <code>false</code> -890 */ -891 private boolean isKeyMasked(@NotNull String key) { -892 if (maskedKeys == null || maskedKeys.isEmpty()) { -893 initMaskedKeys(); -894 } -895 return maskedKeys.stream().anyMatch(maskExp -> maskExp.test(key)); -896 } -897 -898 /** -899 * Obtains the printable/loggable value for a given key/value pair. This -900 * will mask some values so as to not leak sensitive information. -901 * -902 * @param key the property key -903 * @param value the property value -904 * @return the printable value -905 */ -906 String getPrintableValue(@NotNull String key, String value) { -907 String printableValue = null; -908 if (value != null) { -909 printableValue = isKeyMasked(key) ? "********" : value; -910 } -911 return printableValue; -912 } -913 -914 /** -915 * Initializes the masked keys collection. This is done outside of the -916 * {@link #initialize(java.lang.String)} method because a caller may use the -917 * {@link #mergeProperties(java.io.File)} to add additional properties after -918 * the call to initialize. -919 */ -920 void initMaskedKeys() { -921 final String[] masked = getArray(Settings.KEYS.MASKED_PROPERTIES); -922 if (masked == null) { -923 maskedKeys = new ArrayList<>(); -924 } else { -925 maskedKeys = Arrays.stream(masked) -926 .map(v -> Pattern.compile(v).asPredicate()) -927 .collect(Collectors.toList()); -928 } -929 } -930 -931 /** -932 * Logs the properties. This will not log any properties that contain -933 * 'password' in the key. -934 * -935 * @param header the header to print with the log message -936 * @param properties the properties to log -937 */ -938 private void logProperties(@NotNull final String header, @NotNull final Properties properties) { -939 if (LOGGER.isDebugEnabled()) { -940 initMaskedKeys(); -941 final StringWriter sw = new StringWriter(); -942 try (PrintWriter pw = new PrintWriter(sw)) { -943 pw.format("%s:%n%n", header); -944 final Enumeration<?> e = properties.propertyNames(); -945 while (e.hasMoreElements()) { -946 final String key = (String) e.nextElement(); -947 final String value = getPrintableValue(key, properties.getProperty(key)); -948 if (value != null) { -949 pw.format("%s='%s'%n", key, value); -950 } -951 } -952 pw.flush(); -953 LOGGER.debug(sw.toString()); -954 } -955 } -956 } -957 -958 /** -959 * Sets a property value. -960 * -961 * @param key the key for the property -962 * @param value the value for the property -963 */ -964 public void setString(@NotNull final String key, @NotNull final String value) { -965 props.setProperty(key, value); -966 LOGGER.debug("Setting: {}='{}'", key, getPrintableValue(key, value)); -967 } -968 -969 /** -970 * Sets a property value only if the value is not null. -971 * -972 * @param key the key for the property -973 * @param value the value for the property -974 */ -975 public void setStringIfNotNull(@NotNull final String key, @Nullable final String value) { -976 if (null != value) { -977 setString(key, value); -978 } -979 } -980 -981 /** -982 * Sets a property value only if the value is not null and not empty. -983 * -984 * @param key the key for the property -985 * @param value the value for the property -986 */ -987 public void setStringIfNotEmpty(@NotNull final String key, @Nullable final String value) { -988 if (null != value && !value.isEmpty()) { -989 setString(key, value); -990 } -991 } -992 -993 /** -994 * Sets a property value only if the array value is not null and not empty. -995 * -996 * @param key the key for the property -997 * @param value the value for the property -998 */ -999 public void setArrayIfNotEmpty(@NotNull final String key, @Nullable final String[] value) { -1000 if (null != value && value.length > 0) { -1001 try { -1002 setString(key, objectMapper.writeValueAsString(value)); -1003 } catch (JsonProcessingException e) { -1004 throw new IllegalArgumentException(); -1005 } -1006 } -1007 } -1008 -1009 /** -1010 * Sets a property value only if the array value is not null and not empty. -1011 * -1012 * @param key the key for the property -1013 * @param value the value for the property -1014 */ -1015 public void setArrayIfNotEmpty(@NotNull final String key, @Nullable final List<String> value) { -1016 if (null != value && !value.isEmpty()) { -1017 try { -1018 setString(key, objectMapper.writeValueAsString(value)); -1019 } catch (JsonProcessingException e) { -1020 throw new IllegalArgumentException(); -1021 } -1022 } -1023 } -1024 -1025 /** -1026 * Sets a property value. -1027 * -1028 * @param key the key for the property -1029 * @param value the value for the property -1030 */ -1031 public void setBoolean(@NotNull final String key, boolean value) { -1032 setString(key, Boolean.toString(value)); -1033 } -1034 -1035 /** -1036 * Sets a property value only if the value is not null. -1037 * -1038 * @param key the key for the property -1039 * @param value the value for the property -1040 */ -1041 public void setBooleanIfNotNull(@NotNull final String key, @Nullable final Boolean value) { -1042 if (null != value) { -1043 setBoolean(key, value); -1044 } -1045 } -1046 -1047 /** -1048 * Sets a float property value. -1049 * -1050 * @param key the key for the property -1051 * @param value the value for the property -1052 */ -1053 public void setFloat(@NotNull final String key, final float value) { -1054 setString(key, Float.toString(value)); -1055 } -1056 -1057 /** -1058 * Sets a property value. -1059 * -1060 * @param key the key for the property -1061 * @param value the value for the property -1062 */ -1063 public void setInt(@NotNull final String key, final int value) { -1064 props.setProperty(key, String.valueOf(value)); -1065 LOGGER.debug("Setting: {}='{}'", key, value); -1066 } -1067 -1068 /** -1069 * Sets a property value only if the value is not null. -1070 * -1071 * @param key the key for the property -1072 * @param value the value for the property -1073 */ -1074 public void setIntIfNotNull(@NotNull final String key, @Nullable final Integer value) { -1075 if (null != value) { -1076 setInt(key, value); -1077 } -1078 } -1079 -1080 /** -1081 * Merges a new properties file into the current properties. This method -1082 * allows for the loading of a user provided properties file.<br><br> -1083 * <b>Note</b>: even if using this method - system properties will be loaded -1084 * before properties loaded from files. -1085 * -1086 * @param filePath the path to the properties file to merge. -1087 * @throws java.io.FileNotFoundException is thrown when the filePath points -1088 * to a non-existent file -1089 * @throws java.io.IOException is thrown when there is an exception -1090 * loading/merging the properties -1091 */ -1092 @SuppressFBWarnings(justification = "try with resource will clenaup the resources", value = {"OBL_UNSATISFIED_OBLIGATION"}) -1093 public void mergeProperties(@NotNull final File filePath) throws FileNotFoundException, IOException { -1094 try (FileInputStream fis = new FileInputStream(filePath)) { -1095 mergeProperties(fis); -1096 } -1097 } -1098 -1099 /** -1100 * Merges a new properties file into the current properties. This method -1101 * allows for the loading of a user provided properties file.<br><br> -1102 * Note: even if using this method - system properties will be loaded before -1103 * properties loaded from files. -1104 * -1105 * @param filePath the path to the properties file to merge. -1106 * @throws java.io.FileNotFoundException is thrown when the filePath points -1107 * to a non-existent file -1108 * @throws java.io.IOException is thrown when there is an exception -1109 * loading/merging the properties -1110 */ -1111 @SuppressFBWarnings(justification = "try with resource will clenaup the resources", value = {"OBL_UNSATISFIED_OBLIGATION"}) -1112 public void mergeProperties(@NotNull final String filePath) throws FileNotFoundException, IOException { -1113 try (FileInputStream fis = new FileInputStream(filePath)) { -1114 mergeProperties(fis); -1115 } -1116 } -1117 -1118 /** -1119 * Merges a new properties file into the current properties. This method -1120 * allows for the loading of a user provided properties file.<br><br> -1121 * <b>Note</b>: even if using this method - system properties will be loaded -1122 * before properties loaded from files. -1123 * -1124 * @param stream an Input Stream pointing at a properties file to merge -1125 * @throws java.io.IOException is thrown when there is an exception -1126 * loading/merging the properties -1127 */ -1128 public void mergeProperties(@NotNull final InputStream stream) throws IOException { -1129 props.load(stream); -1130 logProperties("Properties updated via merge", props); -1131 } -1132 -1133 /** -1134 * Returns a value from the properties file as a File object. If the value -1135 * was specified as a system property or passed in via the -Dprop=value -1136 * argument - this method will return the value from the system properties -1137 * before the values in the contained configuration file. -1138 * -1139 * @param key the key to lookup within the properties file -1140 * @return the property from the properties file converted to a File object -1141 */ -1142 @Nullable -1143 public File getFile(@NotNull final String key) { -1144 final String file = getString(key); -1145 if (file == null) { -1146 return null; -1147 } -1148 return new File(file); -1149 } -1150 -1151 /** -1152 * Returns a value from the properties file as a File object. If the value -1153 * was specified as a system property or passed in via the -Dprop=value -1154 * argument - this method will return the value from the system properties -1155 * before the values in the contained configuration file. -1156 * <p> -1157 * This method will check the configured base directory and will use this as -1158 * the base of the file path. Additionally, if the base directory begins -1159 * with a leading "[JAR]\" sequence with the path to the folder containing -1160 * the JAR file containing this class. -1161 * -1162 * @param key the key to lookup within the properties file -1163 * @return the property from the properties file converted to a File object -1164 */ -1165 File getDataFile(@NotNull final String key) { -1166 final String file = getString(key); -1167 LOGGER.debug("Settings.getDataFile() - file: '{}'", file); -1168 if (file == null) { -1169 return null; -1170 } -1171 if (file.startsWith("[JAR]")) { -1172 LOGGER.debug("Settings.getDataFile() - transforming filename"); -1173 final File jarPath = getJarPath(); -1174 LOGGER.debug("Settings.getDataFile() - jar file: '{}'", jarPath.toString()); -1175 final File retVal = new File(jarPath, file.substring(6)); -1176 LOGGER.debug("Settings.getDataFile() - returning: '{}'", retVal); -1177 return retVal; -1178 } -1179 return new File(file); -1180 } -1181 -1182 /** -1183 * Attempts to retrieve the folder containing the Jar file containing the -1184 * Settings class. -1185 * -1186 * @return a File object -1187 */ -1188 private File getJarPath() { -1189 String decodedPath = "."; -1190 String jarPath = ""; -1191 final ProtectionDomain domain = Settings.class.getProtectionDomain(); -1192 if (domain != null && domain.getCodeSource() != null && domain.getCodeSource().getLocation() != null) { -1193 jarPath = Settings.class.getProtectionDomain().getCodeSource().getLocation().getPath(); -1194 } -1195 try { -1196 decodedPath = URLDecoder.decode(jarPath, StandardCharsets.UTF_8.name()); -1197 } catch (UnsupportedEncodingException ex) { -1198 LOGGER.trace("", ex); -1199 } -1200 -1201 final File path = new File(decodedPath); -1202 if (path.getName().toLowerCase().endsWith(".jar")) { -1203 return path.getParentFile(); -1204 } else { -1205 return new File("."); -1206 } -1207 } -1208 -1209 /** -1210 * Returns a value from the properties file. If the value was specified as a -1211 * system property or passed in via the -Dprop=value argument - this method -1212 * will return the value from the system properties before the values in the -1213 * contained configuration file. -1214 * -1215 * @param key the key to lookup within the properties file -1216 * @param defaultValue the default value for the requested property -1217 * @return the property from the properties file -1218 */ -1219 public String getString(@NotNull final String key, @Nullable final String defaultValue) { -1220 return System.getProperty(key, props.getProperty(key, defaultValue)); -1221 } -1222 -1223 /** -1224 * Returns the temporary directory. -1225 * -1226 * @return the temporary directory -1227 * @throws java.io.IOException if any. -1228 */ -1229 public synchronized File getTempDirectory() throws IOException { -1230 if (tempDirectory == null) { -1231 final File baseTemp = new File(getString(Settings.KEYS.TEMP_DIRECTORY, System.getProperty("java.io.tmpdir"))); -1232 tempDirectory = FileUtils.createTempDirectory(baseTemp); -1233 } -1234 return tempDirectory; -1235 } -1236 -1237 /** -1238 * Returns a value from the properties file. If the value was specified as a -1239 * system property or passed in via the -Dprop=value argument - this method -1240 * will return the value from the system properties before the values in the -1241 * contained configuration file. -1242 * -1243 * @param key the key to lookup within the properties file -1244 * @return the property from the properties file -1245 */ -1246 public String getString(@NotNull final String key) { -1247 return System.getProperty(key, props.getProperty(key)); -1248 } -1249 -1250 /** -1251 * Returns a list with the given key. -1252 * <p> -1253 * If the property is not set then {@code null} will be returned. -1254 * -1255 * @param key the key to get from this -1256 * {@link org.owasp.dependencycheck.utils.Settings}. -1257 * @return the list or {@code null} if the key wasn't present. -1258 */ -1259 public String[] getArray(@NotNull final String key) { -1260 final String string = getString(key); -1261 if (string != null) { -1262 if (string.charAt(0) == '{' || string.charAt(0) == '[') { -1263 try { -1264 return objectMapper.readValue(string, String[].class); -1265 } catch (JsonProcessingException e) { -1266 throw new IllegalStateException("Unable to read value '" + string + "' as an array"); -1267 } -1268 } else { -1269 return string.split(ARRAY_SEP); -1270 } -1271 } -1272 return null; -1273 } -1274 -1275 /** -1276 * Removes a property from the local properties collection. This is mainly -1277 * used in test cases. -1278 * -1279 * @param key the property key to remove -1280 */ -1281 public void removeProperty(@NotNull final String key) { -1282 props.remove(key); -1283 } -1284 -1285 /** -1286 * Returns an int value from the properties file. If the value was specified -1287 * as a system property or passed in via the -Dprop=value argument - this -1288 * method will return the value from the system properties before the values -1289 * in the contained configuration file. -1290 * -1291 * @param key the key to lookup within the properties file -1292 * @return the property from the properties file -1293 * @throws org.owasp.dependencycheck.utils.InvalidSettingException is thrown -1294 * if there is an error retrieving the setting -1295 */ -1296 public int getInt(@NotNull final String key) throws InvalidSettingException { -1297 try { -1298 return Integer.parseInt(getString(key)); -1299 } catch (NumberFormatException ex) { -1300 throw new InvalidSettingException("Could not convert property '" + key + "' to an int.", ex); -1301 } -1302 } -1303 -1304 /** -1305 * Returns an int value from the properties file. If the value was specified -1306 * as a system property or passed in via the -Dprop=value argument - this -1307 * method will return the value from the system properties before the values -1308 * in the contained configuration file. -1309 * -1310 * @param key the key to lookup within the properties file -1311 * @param defaultValue the default value to return -1312 * @return the property from the properties file or the defaultValue if the -1313 * property does not exist or cannot be converted to an integer -1314 */ -1315 public int getInt(@NotNull final String key, int defaultValue) { -1316 int value; -1317 try { -1318 value = Integer.parseInt(getString(key)); -1319 } catch (NumberFormatException ex) { -1320 if (!getString(key, "").isEmpty()) { -1321 LOGGER.debug("Could not convert property '{}={}' to an int; using {} instead.", -1322 key, getPrintableValue(key, getString(key)), defaultValue); -1323 } -1324 value = defaultValue; -1325 } -1326 return value; -1327 } -1328 -1329 /** -1330 * Returns a long value from the properties file. If the value was specified -1331 * as a system property or passed in via the -Dprop=value argument - this -1332 * method will return the value from the system properties before the values -1333 * in the contained configuration file. -1334 * -1335 * @param key the key to lookup within the properties file -1336 * @return the property from the properties file -1337 * @throws org.owasp.dependencycheck.utils.InvalidSettingException is thrown -1338 * if there is an error retrieving the setting -1339 */ -1340 public long getLong(@NotNull final String key) throws InvalidSettingException { -1341 try { -1342 return Long.parseLong(getString(key)); -1343 } catch (NumberFormatException ex) { -1344 throw new InvalidSettingException("Could not convert property '" + key + "' to a long.", ex); -1345 } -1346 } -1347 -1348 /** -1349 * Returns a boolean value from the properties file. If the value was -1350 * specified as a system property or passed in via the -1351 * <code>-Dprop=value</code> argument this method will return the value from -1352 * the system properties before the values in the contained configuration -1353 * file. -1354 * -1355 * @param key the key to lookup within the properties file -1356 * @return the property from the properties file -1357 * @throws org.owasp.dependencycheck.utils.InvalidSettingException is thrown -1358 * if there is an error retrieving the setting -1359 */ -1360 public boolean getBoolean(@NotNull final String key) throws InvalidSettingException { -1361 return Boolean.parseBoolean(getString(key)); -1362 } -1363 -1364 /** -1365 * Returns a boolean value from the properties file. If the value was -1366 * specified as a system property or passed in via the -1367 * <code>-Dprop=value</code> argument this method will return the value from -1368 * the system properties before the values in the contained configuration -1369 * file. -1370 * -1371 * @param key the key to lookup within the properties file -1372 * @param defaultValue the default value to return if the setting does not -1373 * exist -1374 * @return the property from the properties file -1375 */ -1376 public boolean getBoolean(@NotNull final String key, boolean defaultValue) { -1377 return Boolean.parseBoolean(getString(key, Boolean.toString(defaultValue))); -1378 } -1379 -1380 /** -1381 * Returns a float value from the properties file. If the value was -1382 * specified as a system property or passed in via the -1383 * <code>-Dprop=value</code> argument this method will return the value from -1384 * the system properties before the values in the contained configuration -1385 * file. -1386 * -1387 * @param key the key to lookup within the properties file -1388 * @param defaultValue the default value to return if the setting does not -1389 * exist -1390 * @return the property from the properties file -1391 */ -1392 public float getFloat(@NotNull final String key, float defaultValue) { -1393 float retValue = defaultValue; -1394 try { -1395 retValue = Float.parseFloat(getString(key)); -1396 } catch (Throwable ex) { -1397 LOGGER.trace("ignore", ex); -1398 } -1399 return retValue; -1400 } -1401 -1402 /** -1403 * Returns a connection string from the configured properties. If the -1404 * connection string contains a %s, this method will determine the 'data' -1405 * directory and replace the %s with the path to the data directory. If the -1406 * data directory does not exist it will be created. -1407 * -1408 * @param connectionStringKey the property file key for the connection -1409 * string -1410 * @param dbFileNameKey the settings key for the db filename -1411 * @return the connection string -1412 * @throws IOException thrown the data directory cannot be created -1413 * @throws InvalidSettingException thrown if there is an invalid setting -1414 */ -1415 public String getConnectionString(String connectionStringKey, String dbFileNameKey) -1416 throws IOException, InvalidSettingException { -1417 final String connStr = getString(connectionStringKey); -1418 if (connStr == null) { -1419 final String msg = String.format("Invalid properties file; %s is missing.", connectionStringKey); -1420 throw new InvalidSettingException(msg); -1421 } -1422 if (connStr.contains("%s")) { -1423 final File directory = getH2DataDirectory(); -1424 LOGGER.debug("Data directory: {}", directory); -1425 String fileName = null; -1426 if (dbFileNameKey != null) { -1427 fileName = getString(dbFileNameKey); -1428 } -1429 if (fileName == null) { -1430 final String msg = String.format("Invalid properties file to get a file based connection string; '%s' must be defined.", -1431 dbFileNameKey); -1432 throw new InvalidSettingException(msg); -1433 } -1434 if (connStr.startsWith("jdbc:h2:file:") && fileName.endsWith(".mv.db")) { -1435 fileName = fileName.substring(0, fileName.length() - 6); +859 } catch (IOException ex) { +860 LOGGER.error("Unable to load settings from '{}'.", propertiesFilePath); +861 LOGGER.debug("", ex); +862 } +863 logProperties("Properties loaded", props); +864 } +865 +866 /** +867 * Cleans up resources to prevent memory leaks. +868 */ +869 public void cleanup() { +870 cleanup(true); +871 } +872 +873 /** +874 * Cleans up resources to prevent memory leaks. +875 * +876 * @param deleteTemporary flag indicating whether any temporary directories +877 * generated should be removed +878 */ +879 public synchronized void cleanup(boolean deleteTemporary) { +880 if (deleteTemporary && tempDirectory != null && tempDirectory.exists()) { +881 LOGGER.debug("Deleting ALL temporary files from `{}`", tempDirectory.toString()); +882 FileUtils.delete(tempDirectory); +883 tempDirectory = null; +884 } +885 } +886 +887 /** +888 * Check if a given key is considered to have a value with sensitive data. +889 * +890 * @param key the key to determine if the property should be masked +891 * @return <code>true</code> if the key is for a sensitive property value; +892 * otherwise <code>false</code> +893 */ +894 private boolean isKeyMasked(@NotNull String key) { +895 if (maskedKeys == null || maskedKeys.isEmpty()) { +896 initMaskedKeys(); +897 } +898 return maskedKeys.stream().anyMatch(maskExp -> maskExp.test(key)); +899 } +900 +901 /** +902 * Obtains the printable/loggable value for a given key/value pair. This +903 * will mask some values so as to not leak sensitive information. +904 * +905 * @param key the property key +906 * @param value the property value +907 * @return the printable value +908 */ +909 String getPrintableValue(@NotNull String key, String value) { +910 String printableValue = null; +911 if (value != null) { +912 printableValue = isKeyMasked(key) ? "********" : value; +913 } +914 return printableValue; +915 } +916 +917 /** +918 * Initializes the masked keys collection. This is done outside of the +919 * {@link #initialize(java.lang.String)} method because a caller may use the +920 * {@link #mergeProperties(java.io.File)} to add additional properties after +921 * the call to initialize. +922 */ +923 void initMaskedKeys() { +924 final String[] masked = getArray(Settings.KEYS.MASKED_PROPERTIES); +925 if (masked == null) { +926 maskedKeys = new ArrayList<>(); +927 } else { +928 maskedKeys = Arrays.stream(masked) +929 .map(v -> Pattern.compile(v).asPredicate()) +930 .collect(Collectors.toList()); +931 } +932 } +933 +934 /** +935 * Logs the properties. This will not log any properties that contain +936 * 'password' in the key. +937 * +938 * @param header the header to print with the log message +939 * @param properties the properties to log +940 */ +941 private void logProperties(@NotNull final String header, @NotNull final Properties properties) { +942 if (LOGGER.isDebugEnabled()) { +943 initMaskedKeys(); +944 final StringWriter sw = new StringWriter(); +945 try (PrintWriter pw = new PrintWriter(sw)) { +946 pw.format("%s:%n%n", header); +947 final Enumeration<?> e = properties.propertyNames(); +948 while (e.hasMoreElements()) { +949 final String key = (String) e.nextElement(); +950 final String value = getPrintableValue(key, properties.getProperty(key)); +951 if (value != null) { +952 pw.format("%s='%s'%n", key, value); +953 } +954 } +955 pw.flush(); +956 LOGGER.debug(sw.toString()); +957 } +958 } +959 } +960 +961 /** +962 * Sets a property value. +963 * +964 * @param key the key for the property +965 * @param value the value for the property +966 */ +967 public void setString(@NotNull final String key, @NotNull final String value) { +968 props.setProperty(key, value); +969 LOGGER.debug("Setting: {}='{}'", key, getPrintableValue(key, value)); +970 } +971 +972 /** +973 * Sets a property value only if the value is not null. +974 * +975 * @param key the key for the property +976 * @param value the value for the property +977 */ +978 public void setStringIfNotNull(@NotNull final String key, @Nullable final String value) { +979 if (null != value) { +980 setString(key, value); +981 } +982 } +983 +984 /** +985 * Sets a property value only if the value is not null and not empty. +986 * +987 * @param key the key for the property +988 * @param value the value for the property +989 */ +990 public void setStringIfNotEmpty(@NotNull final String key, @Nullable final String value) { +991 if (null != value && !value.isEmpty()) { +992 setString(key, value); +993 } +994 } +995 +996 /** +997 * Sets a property value only if the array value is not null and not empty. +998 * +999 * @param key the key for the property +1000 * @param value the value for the property +1001 */ +1002 public void setArrayIfNotEmpty(@NotNull final String key, @Nullable final String[] value) { +1003 if (null != value && value.length > 0) { +1004 try { +1005 setString(key, objectMapper.writeValueAsString(value)); +1006 } catch (JsonProcessingException e) { +1007 throw new IllegalArgumentException(); +1008 } +1009 } +1010 } +1011 +1012 /** +1013 * Sets a property value only if the array value is not null and not empty. +1014 * +1015 * @param key the key for the property +1016 * @param value the value for the property +1017 */ +1018 public void setArrayIfNotEmpty(@NotNull final String key, @Nullable final List<String> value) { +1019 if (null != value && !value.isEmpty()) { +1020 try { +1021 setString(key, objectMapper.writeValueAsString(value)); +1022 } catch (JsonProcessingException e) { +1023 throw new IllegalArgumentException(); +1024 } +1025 } +1026 } +1027 +1028 /** +1029 * Sets a property value. +1030 * +1031 * @param key the key for the property +1032 * @param value the value for the property +1033 */ +1034 public void setBoolean(@NotNull final String key, boolean value) { +1035 setString(key, Boolean.toString(value)); +1036 } +1037 +1038 /** +1039 * Sets a property value only if the value is not null. +1040 * +1041 * @param key the key for the property +1042 * @param value the value for the property +1043 */ +1044 public void setBooleanIfNotNull(@NotNull final String key, @Nullable final Boolean value) { +1045 if (null != value) { +1046 setBoolean(key, value); +1047 } +1048 } +1049 +1050 /** +1051 * Sets a float property value. +1052 * +1053 * @param key the key for the property +1054 * @param value the value for the property +1055 */ +1056 public void setFloat(@NotNull final String key, final float value) { +1057 setString(key, Float.toString(value)); +1058 } +1059 +1060 /** +1061 * Sets a property value. +1062 * +1063 * @param key the key for the property +1064 * @param value the value for the property +1065 */ +1066 public void setInt(@NotNull final String key, final int value) { +1067 props.setProperty(key, String.valueOf(value)); +1068 LOGGER.debug("Setting: {}='{}'", key, value); +1069 } +1070 +1071 /** +1072 * Sets a property value only if the value is not null. +1073 * +1074 * @param key the key for the property +1075 * @param value the value for the property +1076 */ +1077 public void setIntIfNotNull(@NotNull final String key, @Nullable final Integer value) { +1078 if (null != value) { +1079 setInt(key, value); +1080 } +1081 } +1082 +1083 /** +1084 * Merges a new properties file into the current properties. This method +1085 * allows for the loading of a user provided properties file.<br><br> +1086 * <b>Note</b>: even if using this method - system properties will be loaded +1087 * before properties loaded from files. +1088 * +1089 * @param filePath the path to the properties file to merge. +1090 * @throws java.io.FileNotFoundException is thrown when the filePath points +1091 * to a non-existent file +1092 * @throws java.io.IOException is thrown when there is an exception +1093 * loading/merging the properties +1094 */ +1095 @SuppressFBWarnings(justification = "try with resource will clenaup the resources", value = {"OBL_UNSATISFIED_OBLIGATION"}) +1096 public void mergeProperties(@NotNull final File filePath) throws FileNotFoundException, IOException { +1097 try (FileInputStream fis = new FileInputStream(filePath)) { +1098 mergeProperties(fis); +1099 } +1100 } +1101 +1102 /** +1103 * Merges a new properties file into the current properties. This method +1104 * allows for the loading of a user provided properties file.<br><br> +1105 * Note: even if using this method - system properties will be loaded before +1106 * properties loaded from files. +1107 * +1108 * @param filePath the path to the properties file to merge. +1109 * @throws java.io.FileNotFoundException is thrown when the filePath points +1110 * to a non-existent file +1111 * @throws java.io.IOException is thrown when there is an exception +1112 * loading/merging the properties +1113 */ +1114 @SuppressFBWarnings(justification = "try with resource will clenaup the resources", value = {"OBL_UNSATISFIED_OBLIGATION"}) +1115 public void mergeProperties(@NotNull final String filePath) throws FileNotFoundException, IOException { +1116 try (FileInputStream fis = new FileInputStream(filePath)) { +1117 mergeProperties(fis); +1118 } +1119 } +1120 +1121 /** +1122 * Merges a new properties file into the current properties. This method +1123 * allows for the loading of a user provided properties file.<br><br> +1124 * <b>Note</b>: even if using this method - system properties will be loaded +1125 * before properties loaded from files. +1126 * +1127 * @param stream an Input Stream pointing at a properties file to merge +1128 * @throws java.io.IOException is thrown when there is an exception +1129 * loading/merging the properties +1130 */ +1131 public void mergeProperties(@NotNull final InputStream stream) throws IOException { +1132 props.load(stream); +1133 logProperties("Properties updated via merge", props); +1134 } +1135 +1136 /** +1137 * Returns a value from the properties file as a File object. If the value +1138 * was specified as a system property or passed in via the -Dprop=value +1139 * argument - this method will return the value from the system properties +1140 * before the values in the contained configuration file. +1141 * +1142 * @param key the key to lookup within the properties file +1143 * @return the property from the properties file converted to a File object +1144 */ +1145 @Nullable +1146 public File getFile(@NotNull final String key) { +1147 final String file = getString(key); +1148 if (file == null) { +1149 return null; +1150 } +1151 return new File(file); +1152 } +1153 +1154 /** +1155 * Returns a value from the properties file as a File object. If the value +1156 * was specified as a system property or passed in via the -Dprop=value +1157 * argument - this method will return the value from the system properties +1158 * before the values in the contained configuration file. +1159 * <p> +1160 * This method will check the configured base directory and will use this as +1161 * the base of the file path. Additionally, if the base directory begins +1162 * with a leading "[JAR]\" sequence with the path to the folder containing +1163 * the JAR file containing this class. +1164 * +1165 * @param key the key to lookup within the properties file +1166 * @return the property from the properties file converted to a File object +1167 */ +1168 File getDataFile(@NotNull final String key) { +1169 final String file = getString(key); +1170 LOGGER.debug("Settings.getDataFile() - file: '{}'", file); +1171 if (file == null) { +1172 return null; +1173 } +1174 if (file.startsWith("[JAR]")) { +1175 LOGGER.debug("Settings.getDataFile() - transforming filename"); +1176 final File jarPath = getJarPath(); +1177 LOGGER.debug("Settings.getDataFile() - jar file: '{}'", jarPath.toString()); +1178 final File retVal = new File(jarPath, file.substring(6)); +1179 LOGGER.debug("Settings.getDataFile() - returning: '{}'", retVal); +1180 return retVal; +1181 } +1182 return new File(file); +1183 } +1184 +1185 /** +1186 * Attempts to retrieve the folder containing the Jar file containing the +1187 * Settings class. +1188 * +1189 * @return a File object +1190 */ +1191 private File getJarPath() { +1192 String decodedPath = "."; +1193 String jarPath = ""; +1194 final ProtectionDomain domain = Settings.class.getProtectionDomain(); +1195 if (domain != null && domain.getCodeSource() != null && domain.getCodeSource().getLocation() != null) { +1196 jarPath = Settings.class.getProtectionDomain().getCodeSource().getLocation().getPath(); +1197 } +1198 try { +1199 decodedPath = URLDecoder.decode(jarPath, StandardCharsets.UTF_8.name()); +1200 } catch (UnsupportedEncodingException ex) { +1201 LOGGER.trace("", ex); +1202 } +1203 +1204 final File path = new File(decodedPath); +1205 if (path.getName().toLowerCase().endsWith(".jar")) { +1206 return path.getParentFile(); +1207 } else { +1208 return new File("."); +1209 } +1210 } +1211 +1212 /** +1213 * Returns a value from the properties file. If the value was specified as a +1214 * system property or passed in via the -Dprop=value argument - this method +1215 * will return the value from the system properties before the values in the +1216 * contained configuration file. +1217 * +1218 * @param key the key to lookup within the properties file +1219 * @param defaultValue the default value for the requested property +1220 * @return the property from the properties file +1221 */ +1222 public String getString(@NotNull final String key, @Nullable final String defaultValue) { +1223 return System.getProperty(key, props.getProperty(key, defaultValue)); +1224 } +1225 +1226 /** +1227 * Returns the temporary directory. +1228 * +1229 * @return the temporary directory +1230 * @throws java.io.IOException if any. +1231 */ +1232 public synchronized File getTempDirectory() throws IOException { +1233 if (tempDirectory == null) { +1234 final File baseTemp = new File(getString(Settings.KEYS.TEMP_DIRECTORY, System.getProperty("java.io.tmpdir"))); +1235 tempDirectory = FileUtils.createTempDirectory(baseTemp); +1236 } +1237 return tempDirectory; +1238 } +1239 +1240 /** +1241 * Returns a value from the properties file. If the value was specified as a +1242 * system property or passed in via the -Dprop=value argument - this method +1243 * will return the value from the system properties before the values in the +1244 * contained configuration file. +1245 * +1246 * @param key the key to lookup within the properties file +1247 * @return the property from the properties file +1248 */ +1249 public String getString(@NotNull final String key) { +1250 return System.getProperty(key, props.getProperty(key)); +1251 } +1252 +1253 /** +1254 * Returns a list with the given key. +1255 * <p> +1256 * If the property is not set then {@code null} will be returned. +1257 * +1258 * @param key the key to get from this +1259 * {@link org.owasp.dependencycheck.utils.Settings}. +1260 * @return the list or {@code null} if the key wasn't present. +1261 */ +1262 public String[] getArray(@NotNull final String key) { +1263 final String string = getString(key); +1264 if (string != null) { +1265 if (string.charAt(0) == '{' || string.charAt(0) == '[') { +1266 try { +1267 return objectMapper.readValue(string, String[].class); +1268 } catch (JsonProcessingException e) { +1269 throw new IllegalStateException("Unable to read value '" + string + "' as an array"); +1270 } +1271 } else { +1272 return string.split(ARRAY_SEP); +1273 } +1274 } +1275 return null; +1276 } +1277 +1278 /** +1279 * Removes a property from the local properties collection. This is mainly +1280 * used in test cases. +1281 * +1282 * @param key the property key to remove +1283 */ +1284 public void removeProperty(@NotNull final String key) { +1285 props.remove(key); +1286 } +1287 +1288 /** +1289 * Returns an int value from the properties file. If the value was specified +1290 * as a system property or passed in via the -Dprop=value argument - this +1291 * method will return the value from the system properties before the values +1292 * in the contained configuration file. +1293 * +1294 * @param key the key to lookup within the properties file +1295 * @return the property from the properties file +1296 * @throws org.owasp.dependencycheck.utils.InvalidSettingException is thrown +1297 * if there is an error retrieving the setting +1298 */ +1299 public int getInt(@NotNull final String key) throws InvalidSettingException { +1300 try { +1301 return Integer.parseInt(getString(key)); +1302 } catch (NumberFormatException ex) { +1303 throw new InvalidSettingException("Could not convert property '" + key + "' to an int.", ex); +1304 } +1305 } +1306 +1307 /** +1308 * Returns an int value from the properties file. If the value was specified +1309 * as a system property or passed in via the -Dprop=value argument - this +1310 * method will return the value from the system properties before the values +1311 * in the contained configuration file. +1312 * +1313 * @param key the key to lookup within the properties file +1314 * @param defaultValue the default value to return +1315 * @return the property from the properties file or the defaultValue if the +1316 * property does not exist or cannot be converted to an integer +1317 */ +1318 public int getInt(@NotNull final String key, int defaultValue) { +1319 int value; +1320 try { +1321 value = Integer.parseInt(getString(key)); +1322 } catch (NumberFormatException ex) { +1323 if (!getString(key, "").isEmpty()) { +1324 LOGGER.debug("Could not convert property '{}={}' to an int; using {} instead.", +1325 key, getPrintableValue(key, getString(key)), defaultValue); +1326 } +1327 value = defaultValue; +1328 } +1329 return value; +1330 } +1331 +1332 /** +1333 * Returns a long value from the properties file. If the value was specified +1334 * as a system property or passed in via the -Dprop=value argument - this +1335 * method will return the value from the system properties before the values +1336 * in the contained configuration file. +1337 * +1338 * @param key the key to lookup within the properties file +1339 * @return the property from the properties file +1340 * @throws org.owasp.dependencycheck.utils.InvalidSettingException is thrown +1341 * if there is an error retrieving the setting +1342 */ +1343 public long getLong(@NotNull final String key) throws InvalidSettingException { +1344 try { +1345 return Long.parseLong(getString(key)); +1346 } catch (NumberFormatException ex) { +1347 throw new InvalidSettingException("Could not convert property '" + key + "' to a long.", ex); +1348 } +1349 } +1350 +1351 /** +1352 * Returns a boolean value from the properties file. If the value was +1353 * specified as a system property or passed in via the +1354 * <code>-Dprop=value</code> argument this method will return the value from +1355 * the system properties before the values in the contained configuration +1356 * file. +1357 * +1358 * @param key the key to lookup within the properties file +1359 * @return the property from the properties file +1360 * @throws org.owasp.dependencycheck.utils.InvalidSettingException is thrown +1361 * if there is an error retrieving the setting +1362 */ +1363 public boolean getBoolean(@NotNull final String key) throws InvalidSettingException { +1364 return Boolean.parseBoolean(getString(key)); +1365 } +1366 +1367 /** +1368 * Returns a boolean value from the properties file. If the value was +1369 * specified as a system property or passed in via the +1370 * <code>-Dprop=value</code> argument this method will return the value from +1371 * the system properties before the values in the contained configuration +1372 * file. +1373 * +1374 * @param key the key to lookup within the properties file +1375 * @param defaultValue the default value to return if the setting does not +1376 * exist +1377 * @return the property from the properties file +1378 */ +1379 public boolean getBoolean(@NotNull final String key, boolean defaultValue) { +1380 return Boolean.parseBoolean(getString(key, Boolean.toString(defaultValue))); +1381 } +1382 +1383 /** +1384 * Returns a float value from the properties file. If the value was +1385 * specified as a system property or passed in via the +1386 * <code>-Dprop=value</code> argument this method will return the value from +1387 * the system properties before the values in the contained configuration +1388 * file. +1389 * +1390 * @param key the key to lookup within the properties file +1391 * @param defaultValue the default value to return if the setting does not +1392 * exist +1393 * @return the property from the properties file +1394 */ +1395 public float getFloat(@NotNull final String key, float defaultValue) { +1396 float retValue = defaultValue; +1397 try { +1398 retValue = Float.parseFloat(getString(key)); +1399 } catch (Throwable ex) { +1400 LOGGER.trace("ignore", ex); +1401 } +1402 return retValue; +1403 } +1404 +1405 /** +1406 * Returns a connection string from the configured properties. If the +1407 * connection string contains a %s, this method will determine the 'data' +1408 * directory and replace the %s with the path to the data directory. If the +1409 * data directory does not exist it will be created. +1410 * +1411 * @param connectionStringKey the property file key for the connection +1412 * string +1413 * @param dbFileNameKey the settings key for the db filename +1414 * @return the connection string +1415 * @throws IOException thrown the data directory cannot be created +1416 * @throws InvalidSettingException thrown if there is an invalid setting +1417 */ +1418 public String getConnectionString(String connectionStringKey, String dbFileNameKey) +1419 throws IOException, InvalidSettingException { +1420 final String connStr = getString(connectionStringKey); +1421 if (connStr == null) { +1422 final String msg = String.format("Invalid properties file; %s is missing.", connectionStringKey); +1423 throw new InvalidSettingException(msg); +1424 } +1425 if (connStr.contains("%s")) { +1426 final File directory = getH2DataDirectory(); +1427 LOGGER.debug("Data directory: {}", directory); +1428 String fileName = null; +1429 if (dbFileNameKey != null) { +1430 fileName = getString(dbFileNameKey); +1431 } +1432 if (fileName == null) { +1433 final String msg = String.format("Invalid properties file to get a file based connection string; '%s' must be defined.", +1434 dbFileNameKey); +1435 throw new InvalidSettingException(msg); 1436 } -1437 // yes, for H2 this path won't actually exists - but this is sufficient to get the value needed -1438 final File dbFile = new File(directory, fileName); -1439 final String cString = String.format(connStr, dbFile.getCanonicalPath()); -1440 LOGGER.debug("Connection String: '{}'", cString); -1441 return cString; -1442 } -1443 return connStr; -1444 } -1445 -1446 /** -1447 * Retrieves the primary data directory that is used for caching web -1448 * content. -1449 * -1450 * @return the data directory to store data files -1451 * @throws java.io.IOException is thrown if an java.io.IOException occurs of -1452 * course... -1453 */ -1454 public File getDataDirectory() throws IOException { -1455 final File path = getDataFile(Settings.KEYS.DATA_DIRECTORY); -1456 if (path != null && (path.exists() || path.mkdirs())) { -1457 return path; -1458 } -1459 throw new IOException(String.format("Unable to create the data directory '%s'", -1460 (path == null) ? "unknown" : path.getAbsolutePath())); -1461 } -1462 -1463 /** -1464 * Retrieves the H2 data directory - if the database has been moved to the -1465 * temp directory this method will return the temp directory. -1466 * -1467 * @return the data directory to store data files -1468 * @throws java.io.IOException is thrown if an java.io.IOException occurs of -1469 * course... -1470 */ -1471 public File getH2DataDirectory() throws IOException { -1472 final String h2Test = getString(Settings.KEYS.H2_DATA_DIRECTORY); -1473 final File path; -1474 if (h2Test != null && !h2Test.isEmpty()) { -1475 path = getDataFile(Settings.KEYS.H2_DATA_DIRECTORY); -1476 } else { -1477 path = getDataFile(Settings.KEYS.DATA_DIRECTORY); -1478 } -1479 if (path != null && (path.exists() || path.mkdirs())) { -1480 return path; +1437 if (connStr.startsWith("jdbc:h2:file:") && fileName.endsWith(".mv.db")) { +1438 fileName = fileName.substring(0, fileName.length() - 6); +1439 } +1440 // yes, for H2 this path won't actually exists - but this is sufficient to get the value needed +1441 final File dbFile = new File(directory, fileName); +1442 final String cString = String.format(connStr, dbFile.getCanonicalPath()); +1443 LOGGER.debug("Connection String: '{}'", cString); +1444 return cString; +1445 } +1446 return connStr; +1447 } +1448 +1449 /** +1450 * Retrieves the primary data directory that is used for caching web +1451 * content. +1452 * +1453 * @return the data directory to store data files +1454 * @throws java.io.IOException is thrown if an java.io.IOException occurs of +1455 * course... +1456 */ +1457 public File getDataDirectory() throws IOException { +1458 final File path = getDataFile(Settings.KEYS.DATA_DIRECTORY); +1459 if (path != null && (path.exists() || path.mkdirs())) { +1460 return path; +1461 } +1462 throw new IOException(String.format("Unable to create the data directory '%s'", +1463 (path == null) ? "unknown" : path.getAbsolutePath())); +1464 } +1465 +1466 /** +1467 * Retrieves the H2 data directory - if the database has been moved to the +1468 * temp directory this method will return the temp directory. +1469 * +1470 * @return the data directory to store data files +1471 * @throws java.io.IOException is thrown if an java.io.IOException occurs of +1472 * course... +1473 */ +1474 public File getH2DataDirectory() throws IOException { +1475 final String h2Test = getString(Settings.KEYS.H2_DATA_DIRECTORY); +1476 final File path; +1477 if (h2Test != null && !h2Test.isEmpty()) { +1478 path = getDataFile(Settings.KEYS.H2_DATA_DIRECTORY); +1479 } else { +1480 path = getDataFile(Settings.KEYS.DATA_DIRECTORY); 1481 } -1482 throw new IOException(String.format("Unable to create the h2 data directory '%s'", -1483 (path == null) ? "unknown" : path.getAbsolutePath())); -1484 } -1485 -1486 /** -1487 * Generates a new temporary file name that is guaranteed to be unique. -1488 * -1489 * @param prefix the prefix for the file name to generate -1490 * @param extension the extension of the generated file name -1491 * @return a temporary File -1492 * @throws java.io.IOException if any. -1493 */ -1494 public File getTempFile(@NotNull final String prefix, @NotNull final String extension) throws IOException { -1495 final File dir = getTempDirectory(); -1496 final String tempFileName = String.format("%s%s.%s", prefix, UUID.randomUUID(), extension); -1497 final File tempFile = new File(dir, tempFileName); -1498 if (tempFile.exists()) { -1499 return getTempFile(prefix, extension); -1500 } -1501 return tempFile; -1502 } -1503 } +1482 if (path != null && (path.exists() || path.mkdirs())) { +1483 return path; +1484 } +1485 throw new IOException(String.format("Unable to create the h2 data directory '%s'", +1486 (path == null) ? "unknown" : path.getAbsolutePath())); +1487 } +1488 +1489 /** +1490 * Generates a new temporary file name that is guaranteed to be unique. +1491 * +1492 * @param prefix the prefix for the file name to generate +1493 * @param extension the extension of the generated file name +1494 * @return a temporary File +1495 * @throws java.io.IOException if any. +1496 */ +1497 public File getTempFile(@NotNull final String prefix, @NotNull final String extension) throws IOException { +1498 final File dir = getTempDirectory(); +1499 final String tempFileName = String.format("%s%s.%s", prefix, UUID.randomUUID(), extension); +1500 final File tempFile = new File(dir, tempFileName); +1501 if (tempFile.exists()) { +1502 return getTempFile(prefix, extension); +1503 } +1504 return tempFile; +1505 } +1506 }
    diff --git a/xref/org/owasp/dependencycheck/utils/package-frame.html b/xref/org/owasp/dependencycheck/utils/package-frame.html index f4020c9823f..00fe62c7622 100644 --- a/xref/org/owasp/dependencycheck/utils/package-frame.html +++ b/xref/org/owasp/dependencycheck/utils/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.utils + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.utils diff --git a/xref/org/owasp/dependencycheck/utils/package-summary.html b/xref/org/owasp/dependencycheck/utils/package-summary.html index 816bfb1ee0c..7e8a92985df 100644 --- a/xref/org/owasp/dependencycheck/utils/package-summary.html +++ b/xref/org/owasp/dependencycheck/utils/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.utils + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.utils diff --git a/xref/org/owasp/dependencycheck/utils/processing/package-frame.html b/xref/org/owasp/dependencycheck/utils/processing/package-frame.html index fe5fc73b354..63a54905279 100644 --- a/xref/org/owasp/dependencycheck/utils/processing/package-frame.html +++ b/xref/org/owasp/dependencycheck/utils/processing/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.utils.processing + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.utils.processing diff --git a/xref/org/owasp/dependencycheck/utils/processing/package-summary.html b/xref/org/owasp/dependencycheck/utils/processing/package-summary.html index 4094b6fcc4c..a8cef5cb161 100644 --- a/xref/org/owasp/dependencycheck/utils/processing/package-summary.html +++ b/xref/org/owasp/dependencycheck/utils/processing/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.utils.processing + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.utils.processing diff --git a/xref/org/owasp/dependencycheck/utils/search/package-frame.html b/xref/org/owasp/dependencycheck/utils/search/package-frame.html index 713147e3668..4c31cca82a9 100644 --- a/xref/org/owasp/dependencycheck/utils/search/package-frame.html +++ b/xref/org/owasp/dependencycheck/utils/search/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.utils.search + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.utils.search diff --git a/xref/org/owasp/dependencycheck/utils/search/package-summary.html b/xref/org/owasp/dependencycheck/utils/search/package-summary.html index a17b0cedd9b..c7652f49043 100644 --- a/xref/org/owasp/dependencycheck/utils/search/package-summary.html +++ b/xref/org/owasp/dependencycheck/utils/search/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.utils.search + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.utils.search diff --git a/xref/org/owasp/dependencycheck/xml/assembly/package-frame.html b/xref/org/owasp/dependencycheck/xml/assembly/package-frame.html index f3fa2fe4b90..52bf84b7d4f 100644 --- a/xref/org/owasp/dependencycheck/xml/assembly/package-frame.html +++ b/xref/org/owasp/dependencycheck/xml/assembly/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.xml.assembly + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.xml.assembly diff --git a/xref/org/owasp/dependencycheck/xml/assembly/package-summary.html b/xref/org/owasp/dependencycheck/xml/assembly/package-summary.html index 6e0ae5f4242..cd30a0b24c0 100644 --- a/xref/org/owasp/dependencycheck/xml/assembly/package-summary.html +++ b/xref/org/owasp/dependencycheck/xml/assembly/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.xml.assembly + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.xml.assembly diff --git a/xref/org/owasp/dependencycheck/xml/hints/package-frame.html b/xref/org/owasp/dependencycheck/xml/hints/package-frame.html index 11766877968..bad3cd8890b 100644 --- a/xref/org/owasp/dependencycheck/xml/hints/package-frame.html +++ b/xref/org/owasp/dependencycheck/xml/hints/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.xml.hints + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.xml.hints diff --git a/xref/org/owasp/dependencycheck/xml/hints/package-summary.html b/xref/org/owasp/dependencycheck/xml/hints/package-summary.html index 98727f4eebb..6989c073b06 100644 --- a/xref/org/owasp/dependencycheck/xml/hints/package-summary.html +++ b/xref/org/owasp/dependencycheck/xml/hints/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.xml.hints + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.xml.hints diff --git a/xref/org/owasp/dependencycheck/xml/package-frame.html b/xref/org/owasp/dependencycheck/xml/package-frame.html index 24f61da637b..aa52b201061 100644 --- a/xref/org/owasp/dependencycheck/xml/package-frame.html +++ b/xref/org/owasp/dependencycheck/xml/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.xml + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.xml diff --git a/xref/org/owasp/dependencycheck/xml/package-summary.html b/xref/org/owasp/dependencycheck/xml/package-summary.html index 5b0d8ab93ef..31577ff7fce 100644 --- a/xref/org/owasp/dependencycheck/xml/package-summary.html +++ b/xref/org/owasp/dependencycheck/xml/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.xml + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.xml diff --git a/xref/org/owasp/dependencycheck/xml/pom/package-frame.html b/xref/org/owasp/dependencycheck/xml/pom/package-frame.html index 845e6947af0..25d54a1b833 100644 --- a/xref/org/owasp/dependencycheck/xml/pom/package-frame.html +++ b/xref/org/owasp/dependencycheck/xml/pom/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.xml.pom + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.xml.pom diff --git a/xref/org/owasp/dependencycheck/xml/pom/package-summary.html b/xref/org/owasp/dependencycheck/xml/pom/package-summary.html index 4072f04510c..5a078df6303 100644 --- a/xref/org/owasp/dependencycheck/xml/pom/package-summary.html +++ b/xref/org/owasp/dependencycheck/xml/pom/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.xml.pom + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.xml.pom diff --git a/xref/org/owasp/dependencycheck/xml/suppression/package-frame.html b/xref/org/owasp/dependencycheck/xml/suppression/package-frame.html index 78f5f2ef435..1f61386624e 100644 --- a/xref/org/owasp/dependencycheck/xml/suppression/package-frame.html +++ b/xref/org/owasp/dependencycheck/xml/suppression/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.xml.suppression + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.xml.suppression diff --git a/xref/org/owasp/dependencycheck/xml/suppression/package-summary.html b/xref/org/owasp/dependencycheck/xml/suppression/package-summary.html index c636dc2d982..ed47e3a9baa 100644 --- a/xref/org/owasp/dependencycheck/xml/suppression/package-summary.html +++ b/xref/org/owasp/dependencycheck/xml/suppression/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.owasp.dependencycheck.xml.suppression + Dependency-Check 9.0.5 Reference Package org.owasp.dependencycheck.xml.suppression diff --git a/xref/org/slf4j/impl/package-frame.html b/xref/org/slf4j/impl/package-frame.html index 207bf176693..e43623a360c 100644 --- a/xref/org/slf4j/impl/package-frame.html +++ b/xref/org/slf4j/impl/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.slf4j.impl + Dependency-Check 9.0.5 Reference Package org.slf4j.impl diff --git a/xref/org/slf4j/impl/package-summary.html b/xref/org/slf4j/impl/package-summary.html index c2b651be531..cded0262e71 100644 --- a/xref/org/slf4j/impl/package-summary.html +++ b/xref/org/slf4j/impl/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference Package org.slf4j.impl + Dependency-Check 9.0.5 Reference Package org.slf4j.impl diff --git a/xref/overview-frame.html b/xref/overview-frame.html index f6c7cc2b1ef..b984227c192 100644 --- a/xref/overview-frame.html +++ b/xref/overview-frame.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference + Dependency-Check 9.0.5 Reference diff --git a/xref/overview-summary.html b/xref/overview-summary.html index 15a8316c151..b78b50cdbfe 100644 --- a/xref/overview-summary.html +++ b/xref/overview-summary.html @@ -3,7 +3,7 @@ - Dependency-Check 9.0.4 Reference + Dependency-Check 9.0.5 Reference @@ -24,7 +24,7 @@ -

    Dependency-Check 9.0.4 Reference

    +

    Dependency-Check 9.0.5 Reference