Showing preview only (1,567K chars total). Download the full file or copy to clipboard to get everything.
Repository: salesforce/rules_spring
Branch: main
Commit: d774f923d79f
Files: 311
Total size: 1.4 MB
Directory structure:
gitextract_43sa_2ka/
├── .aspect/
│ └── bazelrc/
│ ├── README.md
│ ├── automatic_updates.md
│ ├── bazel6.bazelrc
│ ├── bazel7.bazelrc
│ ├── bazel8.bazelrc
│ ├── ci.bazelrc
│ ├── convenience.bazelrc
│ ├── correctness.bazelrc
│ ├── debug.bazelrc
│ ├── intro.md
│ ├── java.bazelrc
│ ├── javascript.bazelrc
│ ├── performance.bazelrc
│ └── usage.md
├── .bazelrc
├── .bazelversion
├── .gitignore
├── BUILD
├── CODEOWNERS
├── CODE_OF_CONDUCT.md
├── LICENSE.txt
├── MODULE.bazel
├── README.md
├── REPO.bazel
├── SECURITY.md
├── examples/
│ ├── README.md
│ ├── demoapp/
│ │ ├── BUILD
│ │ ├── README.md
│ │ ├── application-dev.properties
│ │ ├── application.properties
│ │ ├── author.txt
│ │ ├── config/
│ │ │ └── application.properties
│ │ ├── custom_bazelrun_script.sh
│ │ ├── demoapp_classpath.idx
│ │ ├── demoapp_dupeclass_allowlist.txt
│ │ ├── example_data.txt
│ │ ├── generate-build-info.bzl
│ │ ├── generate-build-info.sh
│ │ ├── info.txt
│ │ ├── libs/
│ │ │ ├── lib1/
│ │ │ │ ├── BUILD
│ │ │ │ └── src/
│ │ │ │ ├── main/
│ │ │ │ │ └── java/
│ │ │ │ │ └── com/
│ │ │ │ │ └── bazel/
│ │ │ │ │ └── demo/
│ │ │ │ │ └── IntentionalDupedClass.java
│ │ │ │ └── test/
│ │ │ │ └── java/
│ │ │ │ └── com/
│ │ │ │ └── bazel/
│ │ │ │ └── demo/
│ │ │ │ └── IntentionalDupedClassTest.java
│ │ │ ├── lib2/
│ │ │ │ ├── BUILD
│ │ │ │ └── src/
│ │ │ │ ├── main/
│ │ │ │ │ └── java/
│ │ │ │ │ └── com/
│ │ │ │ │ └── bazel/
│ │ │ │ │ └── demo/
│ │ │ │ │ └── IntentionalDupedClass.java
│ │ │ │ └── test/
│ │ │ │ └── java/
│ │ │ │ └── com/
│ │ │ │ └── bazel/
│ │ │ │ └── demo/
│ │ │ │ └── IntentionalDupedClassTest.java
│ │ │ └── lib3_neverlink/
│ │ │ ├── BUILD
│ │ │ ├── README.md
│ │ │ └── src/
│ │ │ ├── main/
│ │ │ │ └── java/
│ │ │ │ └── com/
│ │ │ │ └── bazel/
│ │ │ │ └── demo/
│ │ │ │ └── NeverLinkedClass.java
│ │ │ └── test/
│ │ │ └── java/
│ │ │ └── com/
│ │ │ └── bazel/
│ │ │ └── demo/
│ │ │ └── NeverLinkTest.java
│ │ ├── remote_debug.sh
│ │ ├── src/
│ │ │ ├── main/
│ │ │ │ ├── java/
│ │ │ │ │ └── com/
│ │ │ │ │ └── sample/
│ │ │ │ │ ├── SampleAutoConfiguration.java
│ │ │ │ │ ├── SampleMain.java
│ │ │ │ │ └── SampleRest.java
│ │ │ │ └── resources/
│ │ │ │ ├── META-INF/
│ │ │ │ │ └── spring/
│ │ │ │ │ └── org.springframework.boot.autoconfigure.AutoConfiguration.imports
│ │ │ │ └── application.properties
│ │ │ └── test/
│ │ │ ├── java/
│ │ │ │ └── com/
│ │ │ │ ├── salesforce/
│ │ │ │ │ └── rules_spring/
│ │ │ │ │ └── PackagingTest.java
│ │ │ │ └── sample/
│ │ │ │ ├── SampleRestFuncTest.java
│ │ │ │ └── SampleRestUnitTest.java
│ │ │ └── resources/
│ │ │ └── test.properties
│ │ └── src_root/
│ │ └── main/
│ │ └── java/
│ │ └── com/
│ │ └── sample/
│ │ └── SampleRootClass.java
│ ├── helloworld/
│ │ ├── BUILD
│ │ ├── README.md
│ │ ├── libs/
│ │ │ ├── lib1/
│ │ │ │ ├── BUILD
│ │ │ │ └── src/
│ │ │ │ ├── main/
│ │ │ │ │ └── java/
│ │ │ │ │ └── com/
│ │ │ │ │ └── bazel/
│ │ │ │ │ └── demo/
│ │ │ │ │ └── IntentionalDupedClass.java
│ │ │ │ └── test/
│ │ │ │ └── java/
│ │ │ │ └── com/
│ │ │ │ └── bazel/
│ │ │ │ └── demo/
│ │ │ │ └── IntentionalDupedClassTest.java
│ │ │ └── lib2/
│ │ │ ├── BUILD
│ │ │ └── src/
│ │ │ ├── main/
│ │ │ │ └── java/
│ │ │ │ └── com/
│ │ │ │ └── bazel/
│ │ │ │ └── demo/
│ │ │ │ └── IntentionalDupedClass.java
│ │ │ └── test/
│ │ │ └── java/
│ │ │ └── com/
│ │ │ └── bazel/
│ │ │ └── demo/
│ │ │ └── IntentionalDupedClassTest.java
│ │ ├── remote_debug.sh
│ │ └── src/
│ │ ├── main/
│ │ │ ├── java/
│ │ │ │ └── com/
│ │ │ │ └── sample/
│ │ │ │ ├── SampleAutoConfiguration.java
│ │ │ │ ├── SampleMain.java
│ │ │ │ └── SampleRest.java
│ │ │ └── resources/
│ │ │ ├── META-INF/
│ │ │ │ └── spring/
│ │ │ │ └── org.springframework.boot.autoconfigure.AutoConfiguration.imports
│ │ │ └── application.properties
│ │ └── test/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── sample/
│ │ │ ├── SampleRestFuncTest.java
│ │ │ └── SampleRestUnitTest.java
│ │ └── resources/
│ │ └── test.properties
│ └── kotlinapp/
│ └── README.md
├── makerelease.sh
├── maven_install.json
├── springboot/
│ ├── BUILD
│ ├── README.md
│ ├── addin_end.txt
│ ├── attributes.md
│ ├── bazelrun.md
│ ├── check_dupe_classes.py
│ ├── cli.md
│ ├── default_bazelrun_script.sh
│ ├── deps_filter_rules/
│ │ ├── BUILD
│ │ ├── README.md
│ │ ├── dependencyset.bzl
│ │ ├── dependencyset.md
│ │ ├── deps_filter.bzl
│ │ └── tests/
│ │ ├── README.md
│ │ ├── dependencyset/
│ │ │ ├── external_dependencies/
│ │ │ │ └── compile_and_runtime/
│ │ │ │ ├── BUILD
│ │ │ │ ├── compile_and_runtime_test.bzl
│ │ │ │ └── src/
│ │ │ │ ├── main/
│ │ │ │ │ └── java/
│ │ │ │ │ └── com/
│ │ │ │ │ └── depsfilter/
│ │ │ │ │ └── A.java
│ │ │ │ └── test/
│ │ │ │ └── java/
│ │ │ │ └── com/
│ │ │ │ └── depsfilter/
│ │ │ │ ├── DepsFilterCaseSensitivePatternMatchingTest.java
│ │ │ │ ├── DepsFilterCompileDepsOnlyTest.java
│ │ │ │ ├── DepsFilterEmptyExclusionsTest.java
│ │ │ │ ├── DepsFilterExcludeTransitiveTest.java
│ │ │ │ ├── DepsFilterLabelExclusionsTest.java
│ │ │ │ ├── DepsFilterMultipleExclusionsWithTransitivesTest.java
│ │ │ │ ├── DepsFilterMultipleExclusionsWithoutTransitivesTest.java
│ │ │ │ ├── DepsFilterNoFilteringTest.java
│ │ │ │ ├── DepsFilterOneCompileOneRuntimeDepTest.java
│ │ │ │ ├── DepsFilterPathBasedExclusionsComprehensiveTest.java
│ │ │ │ ├── DepsFilterPathExclusionsTest.java
│ │ │ │ ├── DepsFilterPathExclusionsWithTransitivesTest.java
│ │ │ │ ├── DepsFilterPathPatternsWithSpecialCharactersTest.java
│ │ │ │ ├── DepsFilterRuntimeDepsOnlyTest.java
│ │ │ │ ├── DepsFilterSingleDepWithExclusionsTest.java
│ │ │ │ └── DepsFilterSingleRuntimeDepWithExclusionsTest.java
│ │ │ └── internal_dependencies/
│ │ │ ├── compile_and_runtime_1/
│ │ │ │ ├── BUILD
│ │ │ │ ├── compile_and_runtime_test.bzl
│ │ │ │ └── src/
│ │ │ │ └── main/
│ │ │ │ └── java/
│ │ │ │ └── com/
│ │ │ │ └── depsfilter/
│ │ │ │ ├── A.java
│ │ │ │ ├── B.java
│ │ │ │ ├── C.java
│ │ │ │ ├── D.java
│ │ │ │ ├── E.java
│ │ │ │ ├── F.java
│ │ │ │ ├── G.java
│ │ │ │ ├── H.java
│ │ │ │ └── I.java
│ │ │ ├── compile_and_runtime_2/
│ │ │ │ ├── BUILD
│ │ │ │ ├── compile_and_runtime_test.bzl
│ │ │ │ └── src/
│ │ │ │ ├── main/
│ │ │ │ │ └── java/
│ │ │ │ │ └── com/
│ │ │ │ │ └── depsfilter/
│ │ │ │ │ ├── A.java
│ │ │ │ │ ├── B.java
│ │ │ │ │ ├── C.java
│ │ │ │ │ ├── D.java
│ │ │ │ │ ├── E.java
│ │ │ │ │ ├── F.java
│ │ │ │ │ ├── G.java
│ │ │ │ │ ├── H.java
│ │ │ │ │ ├── I.java
│ │ │ │ │ └── J.java
│ │ │ │ └── test/
│ │ │ │ └── java/
│ │ │ │ └── com/
│ │ │ │ └── depsfilter/
│ │ │ │ ├── DepsFilterEmptyExclusionsTest.java
│ │ │ │ ├── DepsFilterExcludeTransitiveTest.java
│ │ │ │ ├── DepsFilterFilteredDepsTest.java
│ │ │ │ ├── DepsFilterInterfaceImplementationTest.java
│ │ │ │ ├── DepsFilterMultipleExclusionsWithTransitiveTest.java
│ │ │ │ ├── DepsFilterMultipleExclusionsWithoutTransitiveTest.java
│ │ │ │ ├── DepsFilterMultiplePathsTest.java
│ │ │ │ ├── DepsFilterPathBasedExclusionsTest.java
│ │ │ │ └── DepsFilterTestHelper.java
│ │ │ ├── compile_time_only/
│ │ │ │ ├── BUILD
│ │ │ │ ├── compile_time_only_test.bzl
│ │ │ │ └── src/
│ │ │ │ └── main/
│ │ │ │ └── java/
│ │ │ │ └── com/
│ │ │ │ └── depsfilter/
│ │ │ │ ├── A.java
│ │ │ │ ├── B.java
│ │ │ │ ├── C.java
│ │ │ │ ├── D.java
│ │ │ │ ├── E.java
│ │ │ │ ├── F.java
│ │ │ │ ├── G.java
│ │ │ │ ├── H.java
│ │ │ │ └── I.java
│ │ │ └── runtime_only/
│ │ │ ├── BUILD
│ │ │ ├── runtime_only_test.bzl
│ │ │ └── src/
│ │ │ └── main/
│ │ │ └── java/
│ │ │ └── com/
│ │ │ └── depsfilter/
│ │ │ ├── A.java
│ │ │ ├── B.java
│ │ │ ├── C.java
│ │ │ ├── D.java
│ │ │ ├── E.java
│ │ │ ├── F.java
│ │ │ ├── G.java
│ │ │ ├── H.java
│ │ │ └── I.java
│ │ ├── depsfilter/
│ │ │ ├── external_dependencies/
│ │ │ │ ├── compile_and_runtime/
│ │ │ │ │ ├── BUILD
│ │ │ │ │ ├── compile_and_runtime_test.bzl
│ │ │ │ │ └── src/
│ │ │ │ │ └── test/
│ │ │ │ │ └── java/
│ │ │ │ │ └── com/
│ │ │ │ │ └── depsfilter/
│ │ │ │ │ ├── DepsFilterCaseSensitivePatternMatchingTest.java
│ │ │ │ │ ├── DepsFilterCompileDepsOnlyTest.java
│ │ │ │ │ ├── DepsFilterEmptyExclusionsTest.java
│ │ │ │ │ ├── DepsFilterExcludeTransitiveTest.java
│ │ │ │ │ ├── DepsFilterLabelExclusionsTest.java
│ │ │ │ │ ├── DepsFilterMultipleExclusionsWithTransitivesTest.java
│ │ │ │ │ ├── DepsFilterMultipleExclusionsWithoutTransitivesTest.java
│ │ │ │ │ ├── DepsFilterNoFilteringTest.java
│ │ │ │ │ ├── DepsFilterOneCompileOneRuntimeDepTest.java
│ │ │ │ │ ├── DepsFilterPathBasedExclusionsComprehensiveTest.java
│ │ │ │ │ ├── DepsFilterPathExclusionsTest.java
│ │ │ │ │ ├── DepsFilterPathExclusionsWithTransitivesTest.java
│ │ │ │ │ ├── DepsFilterPathPatternsWithSpecialCharactersTest.java
│ │ │ │ │ ├── DepsFilterRuntimeDepsOnlyTest.java
│ │ │ │ │ ├── DepsFilterSingleDepWithExclusionsTest.java
│ │ │ │ │ └── DepsFilterSingleRuntimeDepWithExclusionsTest.java
│ │ │ │ └── compile_and_runtime_through_java_library/
│ │ │ │ ├── BUILD
│ │ │ │ ├── compile_and_runtime_test.bzl
│ │ │ │ └── src/
│ │ │ │ ├── main/
│ │ │ │ │ └── java/
│ │ │ │ │ └── com/
│ │ │ │ │ └── depsfilter/
│ │ │ │ │ └── A.java
│ │ │ │ └── test/
│ │ │ │ └── java/
│ │ │ │ └── com/
│ │ │ │ └── depsfilter/
│ │ │ │ ├── DepsFilterCaseSensitivePatternMatchingTest.java
│ │ │ │ ├── DepsFilterCompileDepsOnlyTest.java
│ │ │ │ ├── DepsFilterEmptyExclusionsTest.java
│ │ │ │ ├── DepsFilterExcludeTransitiveTest.java
│ │ │ │ ├── DepsFilterLabelExclusionsTest.java
│ │ │ │ ├── DepsFilterMultipleExclusionsWithTransitivesTest.java
│ │ │ │ ├── DepsFilterMultipleExclusionsWithoutTransitivesTest.java
│ │ │ │ ├── DepsFilterNoFilteringTest.java
│ │ │ │ ├── DepsFilterOneCompileOneRuntimeDepTest.java
│ │ │ │ ├── DepsFilterPathBasedExclusionsComprehensiveTest.java
│ │ │ │ ├── DepsFilterPathExclusionsTest.java
│ │ │ │ ├── DepsFilterPathExclusionsWithTransitivesTest.java
│ │ │ │ ├── DepsFilterPathPatternsWithSpecialCharactersTest.java
│ │ │ │ ├── DepsFilterRuntimeDepsOnlyATest.java
│ │ │ │ ├── DepsFilterRuntimeDepsOnlyBTest.java
│ │ │ │ ├── DepsFilterSingleDepWithExclusionsTest.java
│ │ │ │ ├── DepsFilterSingleRuntimeDepWithExclusionsATest.java
│ │ │ │ └── DepsFilterSingleRuntimeDepWithExclusionsBTest.java
│ │ │ └── internal_dependencies/
│ │ │ ├── compile_and_runtime_1/
│ │ │ │ ├── BUILD
│ │ │ │ ├── compile_and_runtime_test.bzl
│ │ │ │ └── src/
│ │ │ │ └── main/
│ │ │ │ └── java/
│ │ │ │ └── com/
│ │ │ │ └── depsfilter/
│ │ │ │ ├── A.java
│ │ │ │ ├── B.java
│ │ │ │ ├── C.java
│ │ │ │ ├── D.java
│ │ │ │ ├── E.java
│ │ │ │ ├── F.java
│ │ │ │ ├── G.java
│ │ │ │ └── H.java
│ │ │ ├── compile_and_runtime_2/
│ │ │ │ ├── BUILD
│ │ │ │ ├── compile_and_runtime_test.bzl
│ │ │ │ └── src/
│ │ │ │ ├── main/
│ │ │ │ │ └── java/
│ │ │ │ │ └── com/
│ │ │ │ │ └── depsfilter/
│ │ │ │ │ ├── A.java
│ │ │ │ │ ├── B.java
│ │ │ │ │ ├── C.java
│ │ │ │ │ ├── D.java
│ │ │ │ │ ├── E.java
│ │ │ │ │ ├── F.java
│ │ │ │ │ ├── G.java
│ │ │ │ │ ├── H.java
│ │ │ │ │ ├── I.java
│ │ │ │ │ └── J.java
│ │ │ │ └── test/
│ │ │ │ └── java/
│ │ │ │ └── com/
│ │ │ │ └── depsfilter/
│ │ │ │ ├── DepsFilterEmptyExclusionsTest.java
│ │ │ │ ├── DepsFilterExcludeTransitiveTest.java
│ │ │ │ ├── DepsFilterFilteredDepsTest.java
│ │ │ │ ├── DepsFilterInterfaceImplementationTest.java
│ │ │ │ ├── DepsFilterMultipleExclusionsWithTransitiveTest.java
│ │ │ │ ├── DepsFilterMultipleExclusionsWithoutTransitiveTest.java
│ │ │ │ ├── DepsFilterMultiplePathsTest.java
│ │ │ │ ├── DepsFilterPathBasedExclusionsTest.java
│ │ │ │ └── DepsFilterTestHelper.java
│ │ │ ├── compile_time_only/
│ │ │ │ ├── BUILD
│ │ │ │ ├── compile_time_only_test.bzl
│ │ │ │ └── src/
│ │ │ │ └── main/
│ │ │ │ └── java/
│ │ │ │ └── com/
│ │ │ │ └── depsfilter/
│ │ │ │ ├── A.java
│ │ │ │ ├── B.java
│ │ │ │ ├── C.java
│ │ │ │ ├── D.java
│ │ │ │ ├── E.java
│ │ │ │ ├── F.java
│ │ │ │ ├── G.java
│ │ │ │ └── H.java
│ │ │ └── runtime_only/
│ │ │ ├── BUILD
│ │ │ ├── runtime_only_test.bzl
│ │ │ └── src/
│ │ │ └── main/
│ │ │ └── java/
│ │ │ └── com/
│ │ │ └── depsfilter/
│ │ │ ├── A.java
│ │ │ ├── B.java
│ │ │ ├── C.java
│ │ │ ├── D.java
│ │ │ ├── E.java
│ │ │ ├── F.java
│ │ │ ├── G.java
│ │ │ └── H.java
│ │ ├── external_dependencies_testing.md
│ │ ├── external_deps/
│ │ │ ├── BUILD
│ │ │ └── unmanaged_deps_filter_install.json
│ │ ├── internal_dependencies_testing.md
│ │ └── test_utils/
│ │ ├── BUILD
│ │ ├── dependency_graph.txt
│ │ ├── src/
│ │ │ └── test/
│ │ │ └── java/
│ │ │ └── com/
│ │ │ └── depsfilter/
│ │ │ ├── DependencyGraphAnalyzer.java
│ │ │ ├── DependencyGraphTestConfig.java
│ │ │ └── DepsFilterTestHelper.java
│ │ └── verification_utils.bzl
│ ├── deps_filter_rules_legacy/
│ │ ├── BUILD
│ │ ├── README.md
│ │ ├── deps_filter.bzl
│ │ ├── deps_filter.md
│ │ ├── deps_filter_disable_transitives.bzl
│ │ ├── deps_filter_disable_transitives.md
│ │ └── src/
│ │ └── test/
│ │ └── java/
│ │ └── com/
│ │ └── depsfilter/
│ │ ├── DepsFilterWithTransitivesExclusionTest.java
│ │ ├── DepsFilterWithoutTransitivesExclusionTest.java
│ │ ├── TransitiveDepsFilterCaseA.java
│ │ ├── TransitiveDepsFilterCaseB.java
│ │ ├── TransitiveDepsFilterCaseC.java
│ │ └── TransitiveDepsFilterCaseD.java
│ ├── deps_filter_transitive.bzl
│ ├── detect_javax_classes.py
│ ├── empty.txt
│ ├── import_bundles/
│ │ ├── BUILD
│ │ └── README.md
│ ├── javax.md
│ ├── springboot.bzl
│ ├── springboot_doc.md
│ ├── springboot_pkg.sh
│ ├── src/
│ │ ├── main/
│ │ │ └── java/
│ │ │ └── com/
│ │ │ └── salesforce/
│ │ │ └── rulesspring/
│ │ │ ├── cli/
│ │ │ │ └── SpringBootInspector.java
│ │ │ └── index/
│ │ │ ├── IndexFileType.java
│ │ │ ├── IndexOfFiles.java
│ │ │ ├── IndexedFile.java
│ │ │ ├── SpringBootIndexReporter.java
│ │ │ └── SpringBootJarIndexer.java
│ │ └── test/
│ │ └── java/
│ │ └── com/
│ │ └── salesforce/
│ │ └── rulesspring/
│ │ └── index/
│ │ └── SpringBootJarIndexerTest.java
│ ├── testing_springboot.md
│ ├── tests/
│ │ └── check_dupe_classes_test.py
│ ├── unwanted_classes.md
│ ├── write_bazelrun_env.sh
│ ├── write_gitinfo_properties.sh
│ └── write_manifest.sh
└── tools/
├── buildstamp/
│ ├── README.md
│ └── get_workspace_status
├── codecoverage/
│ └── coverage-report.sh
├── formatter/
│ ├── README.md
│ └── format_bazel_files.sh
├── get_github_stats_downloads.py
├── jar_explode/
│ ├── README.md
│ └── jar_explode.sh
└── license/
├── BUILD
└── licenses_used.bzl
================================================
FILE CONTENTS
================================================
================================================
FILE: .aspect/bazelrc/README.md
================================================
## Aspect bazelrc Presets
See:
- [Aspect Presets](https://github.com/bazel-contrib/bazel-lib/tree/main/.aspect/bazelrc)
================================================
FILE: .aspect/bazelrc/automatic_updates.md
================================================
## Automatic updates
A convenient way to automatically keep your vendored copy up-to-date is to use the `write_aspect_bazelrc_presets` rule in `.aspect/bazelrc/BUILD.bazel`:
```python title=".aspect/bazelrc/BUILD.bazel"
"Aspect bazelrc presets; see https://docs.aspect.build/guides/bazelrc"
load("@aspect_bazel_lib//lib:bazelrc_presets.bzl", "write_aspect_bazelrc_presets")
write_aspect_bazelrc_presets(name = "update_aspect_bazelrc_presets")
```
When `@aspect_bazel_lib` is upgraded in your `WORKSPACE.bazel` or your `MODULE.bazel` file, a `diff_test`
stamped out by `write_aspect_bazelrc_presets` will fail if your vendored copy is out-of-date and print the Bazel command
to run to update it. For example, `bazel run //.aspect/bazelrc:update_aspect_bazelrc_presets`.
See the [bazelrc](https://github.com/aspect-build/bazel-examples/blob/main/bazelrc/.aspect/bazelrc/BUILD.bazel) example
in our [bazel-examples](https://github.com/aspect-build/bazel-examples) repository for a working example.
================================================
FILE: .aspect/bazelrc/bazel6.bazelrc
================================================
# Speed up all builds by not checking if external repository files have been modified.
# Docs: https://github.com/bazelbuild/bazel/blob/1af61b21df99edc2fc66939cdf14449c2661f873/src/main/java/com/google/devtools/build/lib/bazel/repository/RepositoryOptions.java#L244
build --noexperimental_check_external_repository_files
fetch --noexperimental_check_external_repository_files
query --noexperimental_check_external_repository_files
# Directories used by sandboxed non-worker execution may be reused to avoid unnecessary setup costs.
# Save time on Sandbox creation and deletion when many of the same kind of action run during the
# build.
# Docs: https://bazel.build/reference/command-line-reference#flag--reuse_sandbox_directories
build --reuse_sandbox_directories
# Avoid this flag being enabled by remote_download_minimal or remote_download_toplevel
# See https://meroton.com/blog/bazel-6-errors-build-without-the-bytes/
build --noexperimental_action_cache_store_output_metadata
# Speed up all builds by not checking if output files have been modified. Lets you make changes to
# the output tree without triggering a build for local debugging. For example, you can modify
# [rules_js](https://github.com/aspect-build/rules_js) 3rd party npm packages in the output tree
# when local debugging.
# Docs: https://github.com/bazelbuild/bazel/blob/1af61b21df99edc2fc66939cdf14449c2661f873/src/main/java/com/google/devtools/build/lib/pkgcache/PackageOptions.java#L185
# NB: This flag is in bazel6.bazelrc as when used in Bazel 7 is has been observed to break
# "build without the bytes" --remote_download_outputs=toplevel. See https://github.com/bazel-contrib/bazel-lib/pull/711
# for more info.
build --noexperimental_check_output_files
fetch --noexperimental_check_output_files
query --noexperimental_check_output_files
# Don't apply `--noremote_upload_local_results` and `--noremote_accept_cached` to the disk cache.
# If you have both `--noremote_upload_local_results` and `--disk_cache`, then this fixes a bug where
# Bazel doesn't write to the local disk cache as it treats as a remote cache.
# Docs: https://bazel.build/reference/command-line-reference#flag--incompatible_remote_results_ignore_disk
# NB: This flag is in bazel6.bazelrc because it became a no-op in Bazel 7 and has been removed
# in Bazel 8.
build --incompatible_remote_results_ignore_disk
# Propagate tags from a target declaration to the actions' execution requirements.
# Ensures that tags applied in your BUILD file, like `tags=["no-remote"]`
# get propagated to actions created by the rule.
# Without this option, you rely on rules authors to manually check the tags you passed
# and apply relevant ones to the actions they create.
# See https://github.com/bazelbuild/bazel/issues/8830 for details.
# Docs: https://bazel.build/reference/command-line-reference#flag--experimental_allow_tags_propagation
build --experimental_allow_tags_propagation
fetch --experimental_allow_tags_propagation
query --experimental_allow_tags_propagation
================================================
FILE: .aspect/bazelrc/bazel7.bazelrc
================================================
# Speed up all builds by not checking if external repository files have been modified.
# Docs: https://github.com/bazelbuild/bazel/blob/1af61b21df99edc2fc66939cdf14449c2661f873/src/main/java/com/google/devtools/build/lib/bazel/repository/RepositoryOptions.java#L244
common --noexperimental_check_external_repository_files
# Don't report when the root module's lower bound for a dependency happens to be less than the resolved version.
# This is expected and should NOT prompt an engineer to update our lower bound to match.
# WARNING: For repository 'aspect_bazel_lib', the root module requires module version aspect_bazel_lib@1.30.2,
# but got aspect_bazel_lib@1.31.2 in the resolved dependency graph.
common --check_direct_dependencies=off
# Directories used by sandboxed non-worker execution may be reused to avoid unnecessary setup costs.
# Save time on Sandbox creation and deletion when many of the same kind of action run during the
# build.
# Docs: https://bazel.build/reference/command-line-reference#flag--reuse_sandbox_directories
build --reuse_sandbox_directories
================================================
FILE: .aspect/bazelrc/bazel8.bazelrc
================================================
# No Bazel 8 specific flag presets yet.
================================================
FILE: .aspect/bazelrc/ci.bazelrc
================================================
# Set this flag to enable re-tries of failed tests on CI.
# When any test target fails, try one or more times. This applies regardless of whether the "flaky"
# tag appears on the target definition.
# This is a tradeoff: legitimately failing tests will take longer to report,
# but we can paper over flaky tests that pass most of the time.
# The alternative is to mark every flaky test with the `flaky = True` attribute, but this requires
# the buildcop to make frequent code edits.
# Not recommended for local builds so that the flakiness is observed during development and thus
# is more likely to get fixed.
# Note that when passing after the first attempt, Bazel will give a special "FLAKY" status.
# Docs: https://bazel.build/docs/user-manual#flaky-test-attempts
test --flaky_test_attempts=2
# Announce all announces command options read from the bazelrc file(s) when starting up at the
# beginning of each Bazel invocation. This is very useful on CI to be able to inspect what Bazel rc
# settings are being applied on each run.
# Docs: https://bazel.build/docs/user-manual#announce-rc
build --announce_rc
# Add a timestamp to each message generated by Bazel specifying the time at which the message was
# displayed.
# Docs: https://bazel.build/docs/user-manual#show-timestamps
build --show_timestamps
# Only show progress every 60 seconds on CI.
# We want to find a compromise between printing often enough to show that the build isn't stuck,
# but not so often that we produce a long log file that requires a lot of scrolling.
# https://bazel.build/reference/command-line-reference#flag--show_progress_rate_limit
build --show_progress_rate_limit=60
# Use cursor controls in screen output.
# Docs: https://bazel.build/docs/user-manual#curses
build --curses=yes
# Use colors to highlight output on the screen. Set to `no` if your CI does not display colors.
# Docs: https://bazel.build/docs/user-manual#color
build --color=yes
# The terminal width in columns. Configure this to override the default value based on what your CI system renders.
# Docs: https://github.com/bazelbuild/bazel/blob/1af61b21df99edc2fc66939cdf14449c2661f873/src/main/java/com/google/devtools/build/lib/runtime/UiOptions.java#L151
build --terminal_columns=143
######################################
# Generic remote cache configuration #
######################################
# Only download remote outputs of top level targets to the local machine.
# Docs: https://bazel.build/reference/command-line-reference#flag--remote_download_toplevel
build --remote_download_toplevel
# The maximum amount of time to wait for remote execution and cache calls.
# https://bazel.build/reference/command-line-reference#flag--remote_timeout
build --remote_timeout=3600
# Upload locally executed action results to the remote cache.
# Docs: https://bazel.build/reference/command-line-reference#flag--remote_upload_local_results
build --remote_upload_local_results
# Fall back to standalone local execution strategy if remote execution fails. If the grpc remote
# cache connection fails, it will fail the build, add this so it falls back to the local cache.
# Docs: https://bazel.build/reference/command-line-reference#flag--remote_local_fallback
build --remote_local_fallback
# Fixes builds hanging on CI that get the TCP connection closed without sending RST packets.
# Docs: https://bazel.build/reference/command-line-reference#flag--grpc_keepalive_time
build --grpc_keepalive_time=30s
================================================
FILE: .aspect/bazelrc/convenience.bazelrc
================================================
# Attempt to build & test every target whose prerequisites were successfully built.
# Docs: https://bazel.build/docs/user-manual#keep-going
build --keep_going
# Output test errors to stderr so users don't have to `cat` or open test failure log files when test
# fail. This makes the log noisier in exchange for reducing the time-to-feedback on test failures for
# users.
# Docs: https://bazel.build/docs/user-manual#test-output
test --test_output=errors
# Show the output files created by builds that requested more than one target. This helps users
# locate the build outputs in more cases
# Docs: https://bazel.build/docs/user-manual#show-result
build --show_result=20
# Bazel picks up host-OS-specific config lines from bazelrc files. For example, if the host OS is
# Linux and you run bazel build, Bazel picks up lines starting with build:linux. Supported OS
# identifiers are `linux`, `macos`, `windows`, `freebsd`, and `openbsd`. Enabling this flag is
# equivalent to using `--config=linux` on Linux, `--config=windows` on Windows, etc.
# Docs: https://bazel.build/reference/command-line-reference#flag--enable_platform_specific_config
common --enable_platform_specific_config
# Output a heap dump if an OOM is thrown during a Bazel invocation
# (including OOMs due to `--experimental_oom_more_eagerly_threshold`).
# The dump will be written to `<output_base>/<invocation_id>.heapdump.hprof`.
# You may need to configure CI to capture this artifact and upload for later use.
# Docs: https://bazel.build/reference/command-line-reference#flag--heap_dump_on_oom
common --heap_dump_on_oom
================================================
FILE: .aspect/bazelrc/correctness.bazelrc
================================================
# Do not upload locally executed action results to the remote cache.
# This should be the default for local builds so local builds cannot poison the remote cache.
# It should be flipped to `--remote_upload_local_results` on CI
# by using `--bazelrc=.aspect/bazelrc/ci.bazelrc`.
# Docs: https://bazel.build/reference/command-line-reference#flag--remote_upload_local_results
build --noremote_upload_local_results
# Don't allow network access for build actions in the sandbox.
# Ensures that you don't accidentally make non-hermetic actions/tests which depend on remote
# services.
# Developers should tag targets with `tags=["requires-network"]` to opt-out of the enforcement.
# Docs: https://bazel.build/reference/command-line-reference#flag--sandbox_default_allow_network
build --sandbox_default_allow_network=false
# Warn if a test's timeout is significantly longer than the test's actual execution time.
# Bazel's default for test_timeout is medium (5 min), but most tests should instead be short (1 min).
# While a test's timeout should be set such that it is not flaky, a test that has a highly
# over-generous timeout can hide real problems that crop up unexpectedly.
# For instance, a test that normally executes in a minute or two should not have a timeout of
# ETERNAL or LONG as these are much, much too generous.
# Docs: https://bazel.build/docs/user-manual#test-verbose-timeout-warnings
test --test_verbose_timeout_warnings
# Allow the Bazel server to check directory sources for changes. Ensures that the Bazel server
# notices when a directory changes, if you have a directory listed in the srcs of some target.
# Recommended when using
# [copy_directory](https://github.com/bazel-contrib/bazel-lib/blob/main/docs/copy_directory.md) and
# [rules_js](https://github.com/aspect-build/rules_js) since npm package are source directories
# inputs to copy_directory actions.
# Docs: https://bazel.build/reference/command-line-reference#flag--host_jvm_args
startup --host_jvm_args=-DBAZEL_TRACK_SOURCE_DIRECTORIES=1
# Allow exclusive tests to run in the sandbox. Fixes a bug where Bazel doesn't enable sandboxing for
# tests with `tags=["exclusive"]`.
# Docs: https://bazel.build/reference/command-line-reference#flag--incompatible_exclusive_test_sandboxed
test --incompatible_exclusive_test_sandboxed
# Use a static value for `PATH` and does not inherit `LD_LIBRARY_PATH`. Doesn't let environment
# variables like `PATH` sneak into the build, which can cause massive cache misses when they change.
# Use `--action_env=ENV_VARIABLE` if you want to inherit specific environment variables from the
# client, but note that doing so can prevent cross-user caching if a shared cache is used.
# Docs: https://bazel.build/reference/command-line-reference#flag--incompatible_strict_action_env
build --incompatible_strict_action_env
# Do not automatically create `__init__.py` files in the runfiles of Python targets. Fixes the wrong
# default that comes from Google's internal monorepo by using `__init__.py` to delimit a Python
# package. Precisely, when a `py_binary` or `py_test` target has `legacy_create_init` set to `auto (the
# default), it is treated as false if and only if this flag is set. See
# https://github.com/bazelbuild/bazel/issues/10076.
# Docs: https://bazel.build/reference/command-line-reference#flag--incompatible_default_to_explicit_init_py
build --incompatible_default_to_explicit_init_py
# Set default value of `allow_empty` to `False` in `glob()`. This prevents a common mistake when
# attempting to use `glob()` to match files in a subdirectory that is opaque to the current package
# because it contains a BUILD file. See https://github.com/bazelbuild/bazel/issues/8195.
# Docs: https://bazel.build/reference/command-line-reference#flag--incompatible_disallow_empty_glob
common --incompatible_disallow_empty_glob
# Always download coverage files for tests from the remote cache. By default, coverage files are not
# downloaded on test result cache hits when --remote_download_minimal is enabled, making it impossible
# to generate a full coverage report.
# Docs: https://bazel.build/reference/command-line-reference#flag--experimental_fetch_all_coverage_outputs
# detching remote cache results
test --experimental_fetch_all_coverage_outputs
================================================
FILE: .aspect/bazelrc/debug.bazelrc
================================================
############################################################
# Use `bazel test --config=debug` to enable these settings #
############################################################
# Stream stdout/stderr output from each test in real-time.
# Docs: https://bazel.build/docs/user-manual#test-output
test:debug --test_output=streamed
# Run one test at a time.
# Docs: https://bazel.build/reference/command-line-reference#flag--test_strategy
test:debug --test_strategy=exclusive
# Prevent long running tests from timing out.
# Docs: https://bazel.build/docs/user-manual#test-timeout
test:debug --test_timeout=9999
# Always run tests even if they have cached results.
# Docs: https://bazel.build/docs/user-manual#cache-test-results
test:debug --nocache_test_results
================================================
FILE: .aspect/bazelrc/intro.md
================================================
# Aspect bazelrc presets
The `.bazelrc` files found here are the source-of-truth for our recommended Bazel presets.
They are mirrored on our docsite at https://docs.aspect.build/guides/bazelrc.
================================================
FILE: .aspect/bazelrc/java.bazelrc
================================================
# Aspect recommended Bazel flags when using rules_java and rules_jvm_external
# Pin java versions to desired language level
# See https://bazel.build/docs/bazel-and-java#java-versions
# and https://en.wikipedia.org/wiki/Java_version_history
# What version of Java are the source files in this repo?
# See https://bazel.build/docs/user-manual#java-language-version
common --java_language_version=17
# The Java language version used to build tools that are executed during a build
# See https://bazel.build/docs/user-manual#tool-java-language-version
common --tool_java_language_version=17
# The version of JVM to use to execute the code and run the tests.
# NB: The default value is local_jdk which is non-hermetic.
# See https://bazel.build/docs/user-manual#java-runtime-version
common --java_runtime_version=remotejdk_17
# The version of JVM used to execute tools that are needed during a build.
# See https://bazel.build/docs/user-manual#tool-java-runtime-version
common --tool_java_runtime_version=remotejdk_17
# Repository rules, such as rules_jvm_external: put Bazel's JDK on the path.
# Avoids non-hermeticity from dependency on a JAVA_HOME pointing at a system JDK
# see https://github.com/bazelbuild/rules_jvm_external/issues/445
common --repo_env=JAVA_HOME=../bazel_tools/jdk
================================================
FILE: .aspect/bazelrc/javascript.bazelrc
================================================
# Aspect recommended Bazel flags when using Aspect's JavaScript rules: https://github.com/aspect-build/rules_js
# Docs for Node.js flags: https://nodejs.org/en/docs/guides/debugging-getting-started/#command-line-options
# Support for debugging Node.js tests. Use bazel run with `--config=debug` to turn on the NodeJS
# inspector agent. The node process will break before user code starts and wait for the debugger to
# connect. Pass the --inspect-brk option to all tests which enables the node inspector agent. See
# https://nodejs.org/de/docs/guides/debugging-getting-started/#command-line-options for more
# details.
# Docs: https://nodejs.org/en/docs/guides/debugging-getting-started/#command-line-options
run:debug -- --node_options=--inspect-brk
test:debug --test_env=NODE_OPTIONS=--inspect-brk
================================================
FILE: .aspect/bazelrc/performance.bazelrc
================================================
# Directories used by sandboxed non-worker execution may be reused to avoid unnecessary setup costs.
# Save time on Sandbox creation and deletion when many of the same kind of action run during the
# build.
# No longer experimental in Bazel 6: https://github.com/bazelbuild/bazel/commit/c1a95501a5611878e5cc43a3cc531f2b9e47835b
# Docs: https://bazel.build/reference/command-line-reference#flag--reuse_sandbox_directories
build --experimental_reuse_sandbox_directories
# Do not build runfiles symlink forests for external repositories under
# `.runfiles/wsname/external/repo` (in addition to `.runfiles/repo`). This reduces runfiles &
# sandbox creation times & prevents accidentally depending on this feature which may flip to off by
# default in the future. Note, some rules may fail under this flag, please file issues with the rule
# author.
# Docs: https://bazel.build/reference/command-line-reference#flag--legacy_external_runfiles
build --nolegacy_external_runfiles
# Avoid creating a runfiles tree for binaries or tests until it is needed.
# Docs: https://bazel.build/reference/command-line-reference#flag--build_runfile_links
# See https://github.com/bazelbuild/bazel/issues/6627
#
# This may break local workflows that `build` a binary target, then run the resulting program
# outside of `bazel run`. In those cases, the script will need to call
# `bazel build --build_runfile_links //my/binary:target` and then execute the resulting program.
build --nobuild_runfile_links
# Needed prior to Bazel 8; see
# https://github.com/bazelbuild/bazel/issues/20577
coverage --build_runfile_links
================================================
FILE: .aspect/bazelrc/usage.md
================================================
## Using Aspect bazelrc presets in your project
The `.bazelrc` file can get large, fast.
Some settings don't apply everywhere - some options are appropriate only on CI,
and some vary depending on the version of Bazel you use or languages used.
Bazel rc files can contain `import` statements, which allow you to organize the content better.
To use these presets in your project, simply vendor the `*.bazelrc` files from
https://github.com/bazel-contrib/bazel-lib/tree/main/.aspect/bazelrc into the
`.aspect/bazelrc` folder in your repository and `import` them in your `.bazelrc` file.
For example,
```python title=".bazelrc"
# Import Aspect bazelrc presets
import %workspace%/.aspect/bazelrc/bazel6.bazelrc
import %workspace%/.aspect/bazelrc/convenience.bazelrc
import %workspace%/.aspect/bazelrc/correctness.bazelrc
import %workspace%/.aspect/bazelrc/debug.bazelrc
import %workspace%/.aspect/bazelrc/javascript.bazelrc
import %workspace%/.aspect/bazelrc/performance.bazelrc
### YOUR PROJECT SPECIFIC OPTIONS GO HERE ###
# Load any settings & overrides specific to the current user from `.aspect/bazelrc/user.bazelrc`.
# This file should appear in `.gitignore` so that settings are not shared with team members. This
# should be last statement in this config so the user configuration is able to overwrite flags from
# this file. See https://bazel.build/configure/best-practices#bazelrc-file.
try-import %workspace%/.aspect/bazelrc/user.bazelrc
```
================================================
FILE: .bazelrc
================================================
#
# Copyright (c) 2017-2024, salesforce.com, inc.
# All rights reserved.
# Licensed under the BSD 3-Clause license.
# For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
#
# **********************************
# ASPECT PRESETS
# https://github.com/bazel-contrib/bazel-lib/tree/main/.aspect/bazelrc
# **********************************
import %workspace%/.aspect/bazelrc/bazel7.bazelrc
import %workspace%/.aspect/bazelrc/convenience.bazelrc
import %workspace%/.aspect/bazelrc/correctness.bazelrc
# **********************************
# BZLMOD
# **********************************
common --enable_bzlmod
# **********************************
# ARTIFACT STAMPING
# **********************************
# These settings ensure Spring Boot artifacts are built with stamped version info.
# The Spring Boot rule uses the stamping information to populate the /manage/info endpoint
# refer to our tools/buildstamp/README.md for more details
build --stamp
build --workspace_status_command tools/buildstamp/get_workspace_status
# **********************************
# JAVA COMPILATION
# **********************************
# Currently, only the exmaples use Java, so these settings are limited to the examples.
# Spring Boot 3 requires JDK17
# Compile and Test/Run JDKs
common --java_language_version=17 # used for compilation (version for compiling java sources)
common --java_runtime_version=17 # used for execution & testing java binaries
# Tools - the jdk used for running tools that get executed during the build
common --tool_java_language_version=17
common --tool_java_runtime_version=17
================================================
FILE: .bazelversion
================================================
7.4.1
================================================
FILE: .gitignore
================================================
#
# Copyright (c) 2017-2021, salesforce.com, inc.
# All rights reserved.
# Licensed under the BSD 3-Clause license.
# For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
#
# bazel build dirs
bazel-*
# set your user to your public GitHub user in a script like this:
# git config --global user.email '#####+username@users.noreply.github.com'
# but dont check it in
setGitOSSUser.sh
# python
__pycache__
# //tools/python_interpreter
captive_python3
bin
# after running the //tools/codecoverage tooling you will be left with this root level folder
# it contains your test results, so do not checkin
coverage-reports
# release zips
rules-spring-*.zip
.vscode
.ijwb
.idea
================================================
FILE: BUILD
================================================
#
# Copyright (c) 2017-2024, salesforce.com, inc.
# All rights reserved.
# Licensed under the BSD 3-Clause license.
# For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
#
load("@rules_license//rules:license.bzl", "license")
exports_files([
"LICENSE.txt",
])
# Using a package wide default ensure that all targets are associated with the
# license.
package(
default_applicable_licenses = [":license"],
default_visibility = ["//visibility:public"],
)
license(
name = "license",
copyright_notice = "Copyright (c) 2017-2024, Salesforce",
license_kinds = [
"@rules_license//licenses/spdx:Apache-2.0",
],
license_text = "//:LICENSE.txt",
package_name = "@rules_spring",
package_url = "https://github.com/salesforce/rules_spring",
package_version = "2.4.2",
visibility = ["//visibility:public"],
)
================================================
FILE: CODEOWNERS
================================================
# Comment line immediately above ownership line is reserved for related gus information. Please be careful while editing.
#ECCN:Open Source
================================================
FILE: CODE_OF_CONDUCT.md
================================================
# Salesforce Open Source Community Code of Conduct
## About the Code of Conduct
Equality is a core value at Salesforce. We believe a diverse and inclusive
community fosters innovation and creativity, and are committed to building a
culture where everyone feels included.
Salesforce open-source projects are committed to providing a friendly, safe, and
welcoming environment for all, regardless of gender identity and expression,
sexual orientation, disability, physical appearance, body size, ethnicity, nationality,
race, age, religion, level of experience, education, socioeconomic status, or
other similar personal characteristics.
The goal of this code of conduct is to specify a baseline standard of behavior so
that people with different social values and communication styles can work
together effectively, productively, and respectfully in our open source community.
It also establishes a mechanism for reporting issues and resolving conflicts.
All questions and reports of abusive, harassing, or otherwise unacceptable behavior
in a Salesforce open-source project may be reported by contacting the Salesforce
Open Source Conduct Committee at ossconduct@salesforce.com.
## Our Pledge
In the interest of fostering an open and welcoming environment, we as
contributors and maintainers pledge to making participation in our project and
our community a harassment-free experience for everyone, regardless of gender
identity and expression, sexual orientation, disability, physical appearance,
body size, ethnicity, nationality, race, age, religion, level of experience, education,
socioeconomic status, or other similar personal characteristics.
## Our Standards
Examples of behavior that contributes to creating a positive environment
include:
* Using welcoming and inclusive language
* Being respectful of differing viewpoints and experiences
* Gracefully accepting constructive criticism
* Focusing on what is best for the community
* Showing empathy toward other community members
Examples of unacceptable behavior by participants include:
* The use of sexualized language or imagery and unwelcome sexual attention or
advances
* Personal attacks, insulting/derogatory comments, or trolling
* Public or private harassment
* Publishing, or threatening to publish, others' private information—such as
a physical or electronic address—without explicit permission
* Other conduct which could reasonably be considered inappropriate in a
professional setting
* Advocating for or encouraging any of the above behaviors
## Our Responsibilities
Project maintainers are responsible for clarifying the standards of acceptable
behavior and are expected to take appropriate and fair corrective action in
response to any instances of unacceptable behavior.
Project maintainers have the right and responsibility to remove, edit, or
reject comments, commits, code, wiki edits, issues, and other contributions
that are not aligned with this Code of Conduct, or to ban temporarily or
permanently any contributor for other behaviors that they deem inappropriate,
threatening, offensive, or harmful.
## Scope
This Code of Conduct applies both within project spaces and in public spaces
when an individual is representing the project or its community. Examples of
representing a project or community include using an official project email
address, posting via an official social media account, or acting as an appointed
representative at an online or offline event. Representation of a project may be
further defined and clarified by project maintainers.
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported by contacting the Salesforce Open Source Conduct Committee
at ossconduct@salesforce.com. All complaints will be reviewed and investigated
and will result in a response that is deemed necessary and appropriate to the
circumstances. The committee is obligated to maintain confidentiality with
regard to the reporter of an incident. Further details of specific enforcement
policies may be posted separately.
Project maintainers who do not follow or enforce the Code of Conduct in good
faith may face temporary or permanent repercussions as determined by other
members of the project's leadership and the Salesforce Open Source Conduct
Committee.
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant][contributor-covenant-home],
version 1.4, available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html.
It includes adaptions and additions from [Go Community Code of Conduct][golang-coc],
[CNCF Code of Conduct][cncf-coc], and [Microsoft Open Source Code of Conduct][microsoft-coc].
This Code of Conduct is licensed under the [Creative Commons Attribution 3.0 License][cc-by-3-us].
[contributor-covenant-home]: https://www.contributor-covenant.org (https://www.contributor-covenant.org/)
[golang-coc]: https://golang.org/conduct
[cncf-coc]: https://github.com/cncf/foundation/blob/master/code-of-conduct.md
[microsoft-coc]: https://opensource.microsoft.com/codeofconduct/
[cc-by-3-us]: https://creativecommons.org/licenses/by/3.0/us/
================================================
FILE: LICENSE.txt
================================================
Copyright (c) 2017-2024, Salesforce
All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
================================================
FILE: MODULE.bazel
================================================
module(
name = "rules_spring",
version = "2.6.3",
compatibility_level = 2,
repo_name = "rules_spring",
)
# Python for dupe class checking support
bazel_dep(name = "rules_python", version = "0.40.0")
# For License support
bazel_dep(name = "rules_license", version = "1.0.0")
# For unittest toolchain
bazel_dep(name = "bazel_skylib", version = "1.1.1")
# DEV DEPENDENCIES
# Maven dependencies for the examples
bazel_dep(name = "rules_jvm_external", version = "6.6", dev_dependency = True)
maven = use_extension("@rules_jvm_external//:extensions.bzl", "maven", dev_dependency = True)
maven.install(
artifacts = [
"org.slf4j:slf4j-api:2.0.17",
"org.springframework.boot:spring-boot:3.4.4",
"org.springframework.boot:spring-boot-actuator:3.4.4",
"org.springframework.boot:spring-boot-actuator-autoconfigure:3.4.4",
"org.springframework.boot:spring-boot-autoconfigure:3.4.4",
"org.springframework.boot:spring-boot-configuration-processor:3.4.4",
"org.springframework.boot:spring-boot-loader:3.4.4",
"org.springframework.boot:spring-boot-loader-tools:3.4.4",
"org.springframework.boot:spring-boot-jarmode-tools:3.4.4",
"org.springframework.boot:spring-boot-starter:3.4.4",
"org.springframework.boot:spring-boot-starter-actuator:3.4.4",
"org.springframework.boot:spring-boot-starter-freemarker:3.4.4",
"org.springframework.boot:spring-boot-starter-jdbc:3.4.4",
"org.springframework.boot:spring-boot-starter-jetty:3.4.4",
"org.springframework.boot:spring-boot-starter-logging:3.4.4",
"org.springframework.boot:spring-boot-starter-security:3.4.4",
"org.springframework.boot:spring-boot-starter-test:3.4.4",
"org.springframework.boot:spring-boot-starter-web:3.4.4",
"org.springframework.boot:spring-boot-test:3.4.4",
"org.springframework.boot:spring-boot-test-autoconfigure:3.4.4",
"org.springframework.boot:spring-boot-starter-thymeleaf:3.4.4",
"org.springframework:spring-aop:6.2.5",
"org.springframework:spring-aspects:6.2.5",
"org.springframework:spring-beans:6.2.5",
"org.springframework:spring-context:6.2.5",
"org.springframework:spring-context-support:6.2.5",
"org.springframework:spring-core:6.2.5",
"org.springframework:spring-expression:6.2.5",
"org.springframework:spring-jdbc:6.2.5",
"org.springframework:spring-test:6.2.5",
"org.springframework:spring-tx:6.2.5",
"org.springframework:spring-web:6.2.5",
"org.springframework:spring-webmvc:6.2.5",
# intentionally ancient version annotation-api; in demoapp we use
# a filter to exclude this dependency
"javax.annotation:javax.annotation-api:1.3.2",
# test deps
"junit:junit:4.13.2",
"org.hamcrest:hamcrest-core:2.2",
"org.assertj:assertj-core:3.25.3",
],
lock_file = "//:maven_install.json",
)
use_repo(maven, "maven")
unmanaged_maven = use_extension("@rules_jvm_external//:extensions.bzl", "maven", dev_dependency = True)
unmanaged_maven.install(
name = "unmanaged_deps_filter",
artifacts = [
"org.springframework.boot:spring-boot-starter-data-jpa:3.3.11",
"org.springframework.boot:spring-boot-starter-security:3.3.11",
"com.fasterxml.jackson.core:jackson-databind:2.17.2",
"org.hibernate.orm:hibernate-core:6.4.4.Final",
"org.springframework.boot:spring-boot-starter-oauth2-client:3.3.11",
"org.springframework.boot:spring-boot-starter-webflux:3.3.11",
"org.springframework.boot:spring-boot-starter-actuator:3.3.11",
"jakarta.servlet.jsp:jakarta.servlet.jsp-api:3.1.1",
"junit:junit:4.13.2",
"org.assertj:assertj-core:3.26.0",
"io.micrometer:micrometer-commons:1.13.13",
"org.slf4j:jul-to-slf4j:2.0.17",
],
excluded_artifacts = [
"org.slf4j:slf4j-api",
"org.yaml:snakeyaml",
],
lock_file = "//springboot/deps_filter_rules/tests/external_deps:unmanaged_deps_filter_install.json",
)
use_repo(unmanaged_maven, "unmanaged_deps_filter")
================================================
FILE: README.md
================================================
## Salesforce Spring Rules for Bazel
This repository contains the [Spring Boot](https://spring.io/guides/gs/spring-boot/) rule
for the [Bazel](https://bazel.build/) build system.
It enables Bazel to build Spring Boot applications and package them as an executable jar file.
The executable jar is the best way to deploy your Spring Boot application in production environments.
The Salesforce *springboot* rule can be found, along with documentation, in this directory:
- [springboot](springboot): a Bazel extension to build and package Spring Boot applications
### Support and Ongoing Development
This rule was developed and is supported by Salesforce.
If you have any issues with this repository, please create a [GitHub Issue](https://github.com/salesforce/rules_spring/issues).
We will try to quickly address problems and answer questions.
Note that we do not yet officially support running these [rules on Windows](https://github.com/salesforce/rules_spring/issues/25) but some users have gotten it to work.
Ongoing development is planned and tracked using this GitHub repository's [Issues list](https://github.com/salesforce/rules_spring/issues).
To see what bug fixes and new features are planned, consult the backlog located there.
Generally, we prioritize based on our internal requirements at Salesforce, but if you need something
please post a comment on the issue and that will help us prioritize.
To see what features/fixes were delivered in a particular release, use the release
[version labels](https://github.com/salesforce/rules_spring/issues/labels) and filter on Closed issues.
[(example)](https://github.com/salesforce/rules_spring/issues?q=label%3A2.6.1+is%3Aclosed).
:octocat: Please do us a **huge favor**. If you think this project could be useful for you, now or in the future,
please hit the **Star** button at the top. That helps us advocate for more time and resources on this project. Thanks!
### Loading the Spring Rules in your WORKSPACE
Before you can use the rule in your BUILD files, you need to add it to your workspace.
**Bzlmod**
```starlark
bazel_dep(name = "rules_spring", version = "2.6.3")
```
**WORKSPACE (legacy)**
This loads a pre-built version of this rule into your workspace during the build.
```starlark
http_archive(
name = "rules_spring",
sha256 = "2d0805b4096db89b8e407ed0c243ce81c3d20f346e4c259885041d5eabc59436",
urls = [
"https://github.com/salesforce/rules_spring/releases/download/2.6.3/rules-spring-2.6.3.zip",
],
)
```
If you choose not to use an official release, you may be tempted to use a *git_repository* workspace
rule to point to our *main* branch,
Please **do not** do this, as we use *main* for ongoing work.
We may check breaking changes into *main* at any time.
### Upgrading to Spring Boot 3
This is largely outside the scope of *rules_spring*.
You will need to update your dependencies in your *maven_install* rules, of course.
But there are [a ton of other steps](https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide).
Salesforce has some [docs/tools that will help](https://github.com/salesforce/rules_spring/issues/230) for Bazel users.
The one change that you will need to make for *rules_spring* is to choose the Boot3 launcher class.
This is because Boot rewrote the launcher for Boot3 and it is available under a different name.
The Boot2 launcher is the default for *rules_spring* so as not to break backwards compatibility.
Example:
```starlark
springboot(
name = "helloworld_boot3",
boot_app_class = "com.sample.SampleMain",
java_library = ":helloworld_lib",
# SPRING BOOT 3
# The launcher class changed in Spring Boot 3.2.0, so we provide the
# Boot3 launcher class here (the Boot2 one is the default)
boot_launcher_class = 'org.springframework.boot.loader.launch.JarLauncher',
)
```
### Appendix: Alternate Approach for Building and Running Spring Boot Applications
If you don't need to create a runnable executable jar file, there is an alternate approach to Spring Boot
in the *rules_jvm_external* repository.
That approach is sufficient if Bazel and your Bazel workspace (i.e. source code) are available in
all environments that launch the application.
- [rules_jvm_external Spring Boot example](https://github.com/bazelbuild/rules_jvm_external/tree/master/examples/spring_boot)
At Salesforce, Bazel is not available in production environments, and so this alternate approach is not viable.
================================================
FILE: REPO.bazel
================================================
repo(
default_package_metadata = ["//:license"],
)
================================================
FILE: SECURITY.md
================================================
## Security
Please report any security issue to [security@salesforce.com](mailto:security@salesforce.com)
as soon as it is discovered. This library limits its runtime dependencies in
order to reduce the total cost of ownership as much as can be, but all consumers
should remain vigilant and have their security stakeholders review all third-party
products (3PP) like this one and their dependencies.
================================================
FILE: examples/README.md
================================================
## Bazel Spring Boot Rule Examples
Navigate into our examples directories:
- [Hello World](helloworld): bare bones example
- [Demo App](demoapp): demonstrates how to use various features in the rule
The examples above are coresident with the rule itself, which makes them not precise.
Your usage of rules_spring will be as a remote repository.
These same examples are availabe in a dedicated repository:
- [External Demos](https://github.com/plaird/rules_spring_demoapp)
There is also a Kotlin example, which is kept in a separate branch in this repository:
- [KotlinApp](https://github.com/salesforce/rules_spring/tree/examples_kotlin) shows how to build and run Spring Boot applications written in Kotlin with *rules_spring*
================================================
FILE: examples/demoapp/BUILD
================================================
#
# Copyright (c) 2017-2024, salesforce.com, inc.
# All rights reserved.
# Licensed under the BSD 3-Clause license.
# For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
#
# NOTE:
# This sample is embedded in the same workspace as the springboot rule. Therefore references
# to local path "//springboot" work here. But you will need to change them to:
# "@rules_spring//springboot" when you consume the official release via http_archive.
load("//springboot:springboot.bzl", "springboot")
load("//springboot/deps_filter_rules_legacy:deps_filter.bzl", "deps_filter")
load("//tools/license:licenses_used.bzl", "licenses_used")
load(":generate-build-info.bzl", "gen_buildinfo_rule")
# dependencies from other packages in the workspace
deps = [
"//examples/demoapp/libs/lib1",
"//examples/demoapp/libs/lib2",
# the neverlink example lib is only included at compile time, and not packaged in the jar
"//examples/demoapp/libs/lib3_neverlink",
]
# create our deps list for Spring Boot
springboot_deps = [
"//springboot/import_bundles:springboot_required_deps",
"@maven//:org_springframework_boot_spring_boot_starter_jetty",
"@maven//:org_springframework_boot_spring_boot_starter_web",
"@maven//:org_springframework_boot_spring_boot_loader_tools",
"@maven//:org_springframework_boot_spring_boot_jarmode_tools",
"@maven//:org_springframework_spring_webmvc",
# bring in same dep again as above, but through a different maven_install
# rule: the springboot rule does not package duplicate deps, first one wins
#"@spring_boot_starter_jetty//:org_springframework_boot_spring_boot_starter_jetty",
]
# Sometimes you have a transitive that you don't want. The unwanted_classes.md doc
# covers this case, and this snippet shows how to use it:
deps_filter(
name = "filtered_deps",
deps_exclude_labels = [
# tomcat comes in transitively, but we want to use jetty
"@maven//:org_apache_tomcat_embed_tomcat_embed_core",
"@maven//:org_apache_tomcat_embed_tomcat_embed_el",
"@maven//:org_apache_tomcat_embed_tomcat_embed_websocket",
# just a demo of excluding a transitive
"@maven//:javax_annotation_javax_annotation_api",
],
exclude_transitives = True,
deps = springboot_deps + deps, # the input list
)
# This Java library contains the app code
java_library(
name = "demoapp_lib",
srcs = glob(["src/main/java/**/*.java"]),
resources = glob(["src/main/resources/**"]) + [":generate_build_info"],
deps = [":filtered_deps"],
)
# This is just an example of having a dependency that you want only added to
# the springboot jar, not the java_library. This is rare.
java_library(
name = "rootclassloader_lib",
srcs = glob(["src_root/main/java/**/*.java"]),
)
test_deps = [
"@maven//:junit_junit",
"@maven//:org_hamcrest_hamcrest_core",
]
java_test(
name = "SampleRestUnitTest",
srcs = ["src/test/java/com/sample/SampleRestUnitTest.java"],
deps = [":demoapp_lib"] + test_deps,
)
filegroup(
name = "bazelrun_data_files",
srcs = [
"application.properties",
"application-dev.properties",
"config/application.properties",
"example_data.txt",
],
)
# Build the app as a Spring Boot executable jar
# To launch: bazel run //examples/demoapp
springboot(
name = "demoapp",
# sometimes packagers want to put certain files into the root of the springboot app jar
# these addins will be copied into the root of the generated springboot jar
addins = [
":info.txt",
":author.txt",
],
# add JVM exports/opens for Java modularization
bazelrun_addexports = [
"java.base/java.base=ALL-UNNAMED",
"java.base/java.io=ALL-UNNAMED",
"java.base/java.nio=ALL-UNNAMED",
],
bazelrun_addopens = [
"java.base/java.util.concurrent=ALL-UNNAMED",
"java.base/java.util.logging=ALL-UNNAMED",
],
# data files can be made available in the working directory for when the app is launched with bazel run
bazelrun_data = [":bazelrun_data_files"],
# Specify optional environment variables to set when the application is launched with 'bazel run'
bazelrun_env_flag_list = [
"PROP1=blue",
"PROP2=green",
],
bazelrun_jvm_flag_list = [
"-Dcustomprop3=bronze",
"-DcustomProp4=copper",
], # new way
# Specify optional JVM args to use when the application is launched with 'bazel run'
bazelrun_jvm_flags = "-Dcustomprop=gold -DcustomProp2=silver", # old way
boot_app_class = "com.sample.SampleMain",
# SPRING BOOT 3
# The launcher class changed in between Boot2 and Boot3, so we provide the
# Boot3 launcher class here (the Boot2 one is the default)
boot_launcher_class = "org.springframework.boot.loader.launch.JarLauncher",
# BANNED DEPS
# These are dependencies that you never want in your springboot jar.
# This is used to detect mistakes in your transitive dependency graph. They
# might be test jars, or compile time jars like lombok. The list of strings
# is matched against the dependency jar filenames with a 'contains' match.
deps_banned = [
"junit",
"mockito",
"lombok",
],
# run the application in the background (command returns immediately)
#bazelrun_background = True,
# if you have conflicting classes in dependency jar files, you can define the order in which the jars are loaded
# https://docs.spring.io/spring-boot/docs/current/reference/html/appendix-executable-jar-format.html#executable-jar-war-index-files-classpath
deps_index_file = ":demoapp_classpath.idx",
# TO TEST THE DUPE CLASSES FEATURE:
# There is an intentionally duplicated class in lib1 and lib2. Do this:
# 1. set fail_on_duplicate_classes = True
# 2. comment out lib1 or lib2 in demoapp_dupeclass_allowlist.txt
# Build should fail due to the duplicate class.
dupeclassescheck_enable = True,
dupeclassescheck_ignorelist = "demoapp_dupeclass_allowlist.txt",
java_library = ":demoapp_lib",
# DEPS ARE OPTIONAL HERE
# The springboot rule inherits all deps and runtime_deps from the java_library()
# but this jar for uncommon reason is just added to the springboot rule.
deps = [":rootclassloader_lib"],
)
springboottest_deps = [
"@maven//:org_springframework_spring_beans",
"@maven//:org_springframework_boot_spring_boot_test",
"@maven//:org_springframework_spring_test",
]
java_test(
name = "SampleRestFuncTest",
srcs = ["src/test/java/com/sample/SampleRestFuncTest.java"],
resources = glob(["src/test/resources/**"]),
deps = [":demoapp_lib"] + test_deps + springboottest_deps,
)
java_test(
name = "PackagingTest",
srcs = ["src/test/java/com/salesforce/rules_spring/PackagingTest.java"],
data = [":demoapp"],
deps = [":demoapp_lib"] + test_deps,
)
licenses_used(
name = "demoapp_licenses",
out = "demoapp_licenses.json",
deps = [":demoapp"],
)
# Prove that we can have a second springboot() app in the same BUILD file.
# https://github.com/salesforce/rules_spring/issues/139
# To launch: bazel run //examples/demoapp:demoapp-second
springboot(
name = "demoapp-second",
# you may choose to override the launcher script that is used when you invoke 'bazel run //examples/demoapp'
bazelrun_script = "custom_bazelrun_script.sh",
boot_app_class = "com.sample.SampleMain",
boot_launcher_class = "org.springframework.boot.loader.launch.JarLauncher",
java_library = ":demoapp_lib",
deps = [":rootclassloader_lib"],
)
# BuildProperties Support
# See the generate-build-info.sh for usage details.
exports_files([
"generate-build-info.sh",
])
gen_buildinfo_rule(
name = "generate_build_info",
)
================================================
FILE: examples/demoapp/README.md
================================================
## Demo App Spring Boot Example
This example shows how to use many of the features of the Spring Boot rule for Bazel.
To build:
```bash
bazel build //examples/demoapp
```
To run:
```bash
bazel run //examples/demoapp
# or to see build data in the endpoint, run like this:
bazel run --action_env=BUILD_NUMBER=998 --action_env=BUILD_TAG=green examples/demoapp
```
Endpoints:
```
http://localhost:8080/
http://localhost:8080/actuator/configprops
http://localhost:8080/actuator/info
```
For full documentation of rules_spring, see the [//springboot](../../springboot) package documentation.
================================================
FILE: examples/demoapp/application-dev.properties
================================================
demoapp.config.rootdirectory=loaded (via dev profile)
================================================
FILE: examples/demoapp/application.properties
================================================
demoapp.config.rootdirectory=loaded
================================================
FILE: examples/demoapp/author.txt
================================================
Salesforce
================================================
FILE: examples/demoapp/config/application.properties
================================================
demoapp.config.configsubdirectory=loaded
================================================
FILE: examples/demoapp/custom_bazelrun_script.sh
================================================
#!/bin/bash
# Copyright (c) 2021-2024, salesforce.com, inc.
# All rights reserved.
# Licensed under the BSD 3-Clause license.
# For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
#
set -e
# Custom Launcher Script for launching a SpringBoot application with 'bazel run'
# this is wired up in the springboot rule (the bazelrun_script attribute)
echo "USING A CUSTOM LAUNCHER SCRIPT AS A DEMO (see custom_launcher_script.sh)"
# Launcher Script for launching a SpringBoot application with 'bazel run'
# The following environment variables will be set by the springboot rule, and can
# be reliably used for scripting:
# RULE_NAME=helloworld
# LABEL_PATH=examples/helloworld/
# SPRINGBOOTJAR_FILENAME=helloworld.jar
# JVM_FLAGS="-Dcustomprop=gold -DcustomProp2=silver"
# DO_BACKGROUND=true/false (if true, the caller is expecting the launcher not to block and return immediately)
#
# There are several other env variables set by Bazel. These should be stable between
# versions of Bazel because they are documented:
# https://docs.bazel.build/versions/master/user-manual.html#run
current_dir=$(pwd)
# Picking the Java VM to run is a bit of an ordeal.
# Precedence order is documented here:
# https://github.com/salesforce/rules_spring/blob/main/springboot/bazelrun.md#launcher-jvm
if [ -f "${BAZEL_RUN_JAVA}" ]; then
# BAZEL_RUN_JAVA points to the actual java executable (file), not the java_home directory
echo "Selected the JVM using the BAZEL_RUN_JAVA environment variable."
java_cmd=$BAZEL_RUN_JAVA
elif [ -f "${JAVABIN}" ]; then
# JAVABIN points to the actual java executable (file), not the java_home directory
# this is java_binary's convention: https://bazel.build/reference/be/java#java_binary
echo "Selected the JVM using the JAVABIN environment variable."
java_cmd=$JAVABIN
elif [ -f "$JAVA_TOOLCHAIN" ]; then
echo "Selected the JVM using the Bazel Java toolchain: $JAVA_TOOLCHAIN_NAME"
java_cmd=$JAVA_TOOLCHAIN
elif [ -d "${JAVA_HOME}" ]; then
echo "Selected the JVM using the JAVA_HOME environment variable."
java_cmd="${JAVA_HOME}/bin/java"
else
echo "Selected the JVM by executing 'which java'"
java_cmd="$(which java)"
fi
if [ -z "${java_cmd}" ]; then
echo "ERROR: no java found, either set JAVA_HOME or add the java executable to your PATH"
exit 1
fi
echo "Using Java at ${java_cmd}"
${java_cmd} -version
echo ""
# data files, which may include external config files
if [ ! -z "${DATAFILES}" ]; then
echo "Available datafiles:"
configpaths=""
for datafile in ${DATAFILES}; do
echo " datafile: $current_dir/$datafile"
if [[ $datafile == *"application"*".properties" ]]; then
path="file:$current_dir/$datafile"
if [ ! -z "${configpaths}" ]; then
configpaths="$configpaths,"
fi
configpaths="$configpaths$path"
fi
done
if [ ! -z "${configpaths}" ]; then
JVM_FLAGS="${JVM_FLAGS} -Dspring.config.additional-location=$configpaths"
fi
echo ""
fi
# java args
echo "Using JAVA_OPTS from the environment: ${JAVA_OPTS}"
echo "Using bazelrun_jvm_flags from the BUILD file: ${JVM_FLAGS}"
# main args
main_args="$@"
# spring boot jar; these are replaced by the springboot starlark code:
path=${LABEL_PATH}
jar=${SPRINGBOOTJAR_FILENAME}
# assemble the command
# use exec so that we can pass signals to the underlying process (https://github.com/salesforce/rules_spring/issues/91)
cmd="exec ${java_cmd} ${JVM_FLAGS} ${JAVA_OPTS} -jar ${path}${jar} ${main_args}"
echo "Running ${cmd}"
echo "In directory $current_dir"
echo ""
echo "You can also run from the root of the repo:"
echo "java -jar bazel-bin/${path}${jar}"
echo ""
# DO_BACKGROUND is set to true if the bazelrun_background attribute on the springboot rule is set to True
# BAZELRUN_DO_BACKGROUND=true may be set by the user in the shell env prior to running bazel run
# If either is true, we will run the application in the background and return immediately
if [ "$DO_BACKGROUND" = true ] || [ "$BAZELRUN_DO_BACKGROUND" = true ]; then
logfile=/tmp/${RULE_NAME}.log
pidfile=/tmp/${RULE_NAME}.pid
${cmd} > $logfile 2>&1 &
pid=$!
echo $pid > $pidfile
echo "Launched the Spring Boot application in the background..."
echo " BUILD rule 'bazelrun_background' attribute = [$DO_BACKGROUND] Environment variable BAZELRUN_DO_BACKGROUND = [$BAZELRUN_DO_BACKGROUND]"
echo " Console log is being written to $logfile"
echo " Application process id [$pid] has been written to $pidfile"
echo ""
else
echo "Launching the Spring Boot application in the foreground..."
echo ""
${cmd}
fi
================================================
FILE: examples/demoapp/demoapp_classpath.idx
================================================
- "liblib1.jar"
- "liblib2.jar"
================================================
FILE: examples/demoapp/demoapp_dupeclass_allowlist.txt
================================================
#
# Copyright (c) 2019-2024, salesforce.com, inc.
# All rights reserved.
# Licensed under the BSD 3-Clause license.
# For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
#
liblib1.jar
liblib2.jar
================================================
FILE: examples/demoapp/example_data.txt
================================================
x=0
y=0
================================================
FILE: examples/demoapp/generate-build-info.bzl
================================================
# This macro runs a shell script to implant build variables into a properties file,
# which is in turn consumed by Spring's BuildProperties bean. See the script for
# usage details.
def gen_buildinfo_rule(name, output = "src/main/resources/META-INF/build-info.properties"):
native.genrule(
name = name,
cmd = """$(location //examples/demoapp:generate-build-info.sh) $@""",
tools = ["//examples/demoapp:generate-build-info.sh"],
outs = [output],
)
================================================
FILE: examples/demoapp/generate-build-info.sh
================================================
#!/bin/bash
set -e
# This script is invoked by generate-build-info.bzl, which is in turn invoked by
# the BUILD file. Consult those files for usage info.
# This script implants build data into the Spring Boot app, which is then
# accessible by autowiring the org.springframework.boot.info.BuildProperties bean.
# See SampleAutoConfiguration.java for an example usage of BuildProperties.
buildpropsfile=$1
# These must be set by the bazel command that launches the app.
# bazel run --action_env=BUILD_NUMBER=998 --action_env=BUILD_TAG=green examples/demoapp
echo "build.number=$BUILD_NUMBER" >> $buildpropsfile
echo "build.tag=$BUILD_TAG" >> $buildpropsfile
================================================
FILE: examples/demoapp/info.txt
================================================
This springboot jar was built by Bazel rules_spring.
It is copied into the toplevel directory of the springboot jar as an 'addin'.
================================================
FILE: examples/demoapp/libs/lib1/BUILD
================================================
#
# Copyright (c) 2020-2021, salesforce.com, inc.
# All rights reserved.
# Licensed under the BSD 3-Clause license.
# For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
#
deps = [
"@maven//:org_slf4j_slf4j_api",
]
test_deps = [
"@maven//:junit_junit",
"@maven//:org_hamcrest_hamcrest_core",
]
java_library(
name = "lib1",
srcs = glob(["src/main/java/**/*.java"]),
visibility = ["//visibility:public"],
deps = deps,
)
java_test(
name = "IntentionalDupedClassTest",
srcs = ["src/test/java/com/bazel/demo/IntentionalDupedClassTest.java"],
deps = [":lib1"] + test_deps,
)
================================================
FILE: examples/demoapp/libs/lib1/src/main/java/com/bazel/demo/IntentionalDupedClass.java
================================================
/*
* Copyright (c) 2019-2021, salesforce.com, inc.
* All rights reserved.
* Licensed under the BSD 3-Clause license.
* For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
*/
package com.bazel.demo;
public class IntentionalDupedClass {
public String hello() {
return "Hello LIB1!";
}
}
================================================
FILE: examples/demoapp/libs/lib1/src/test/java/com/bazel/demo/IntentionalDupedClassTest.java
================================================
/*
* Copyright (c) 2019-2021, salesforce.com, inc.
* All rights reserved.
* Licensed under the BSD 3-Clause license.
* For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
*/
package com.bazel.demo;
import static org.junit.Assert.assertEquals;
import org.junit.Test;
public class IntentionalDupedClassTest {
@Test
public void helloTest() {
IntentionalDupedClass testClass = new IntentionalDupedClass();
assertEquals("Hello LIB1!", testClass.hello());
}
}
================================================
FILE: examples/demoapp/libs/lib2/BUILD
================================================
#
# Copyright (c) 2020-2021, salesforce.com, inc.
# All rights reserved.
# Licensed under the BSD 3-Clause license.
# For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
#
deps = [
"@maven//:org_slf4j_slf4j_api",
]
test_deps = [
"@maven//:junit_junit",
"@maven//:org_hamcrest_hamcrest_core",
]
java_library(
name = "lib2",
srcs = glob(["src/main/java/**/*.java"]),
visibility = ["//visibility:public"],
deps = deps,
)
java_test(
name = "IntentionalDupedClassTest",
srcs = ["src/test/java/com/bazel/demo/IntentionalDupedClassTest.java"],
deps = [":lib2"] + test_deps,
)
================================================
FILE: examples/demoapp/libs/lib2/src/main/java/com/bazel/demo/IntentionalDupedClass.java
================================================
/*
* Copyright (c) 2019-2021, salesforce.com, inc.
* All rights reserved.
* Licensed under the BSD 3-Clause license.
* For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
*/
package com.bazel.demo;
public class IntentionalDupedClass {
public String hello() {
return "Hello LIB2!";
}
}
================================================
FILE: examples/demoapp/libs/lib2/src/test/java/com/bazel/demo/IntentionalDupedClassTest.java
================================================
/*
* Copyright (c) 2019-2021, salesforce.com, inc.
* All rights reserved.
* Licensed under the BSD 3-Clause license.
* For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
*/
package com.bazel.demo;
import static org.junit.Assert.assertEquals;
import org.junit.Test;
public class IntentionalDupedClassTest {
@Test
public void helloTest() {
IntentionalDupedClass testClass = new IntentionalDupedClass();
assertEquals("Hello LIB2!", testClass.hello());
}
}
================================================
FILE: examples/demoapp/libs/lib3_neverlink/BUILD
================================================
#
# Copyright (c) 2020-2024, salesforce.com, inc.
# All rights reserved.
# Licensed under the BSD 3-Clause license.
# For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
#
deps = [
"@maven//:org_slf4j_slf4j_api",
]
test_deps = [
"@maven//:junit_junit",
"@maven//:org_hamcrest_hamcrest_core",
]
java_library(
name = "lib3_neverlink",
srcs = glob(["src/main/java/**/*.java"]),
visibility = ["//visibility:public"],
deps = deps,
# Signals that this is a compile only dep
neverlink = 1,
)
java_test(
name = "NeverLinkTest",
srcs = ["src/test/java/com/bazel/demo/NeverLinkTest.java"],
deps = [":lib3_neverlink"] + test_deps,
)
================================================
FILE: examples/demoapp/libs/lib3_neverlink/README.md
================================================
## Neverlink Lib
This example *java_library* has *neverlink* set to true.
```
Boolean; default is False
Whether this library should only be used for compilation and not at runtime. Useful if the library will be provided by the runtime environment during execution. Examples of such libraries are the IDE APIs for IDE plug-ins or tools.jar for anything running on a standard JDK.
Note that neverlink = True does not prevent the compiler from inlining material from this library into compilation targets that depend on it, as permitted by the Java Language Specification (e.g., static final constants of String or of primitive types). The preferred use case is therefore when the runtime library is identical to the compilation library.
If the runtime library differs from the compilation library then you must ensure that it differs only in places that the JLS forbids compilers to inline (and that must hold for all future versions of the JLS).
```
================================================
FILE: examples/demoapp/libs/lib3_neverlink/src/main/java/com/bazel/demo/NeverLinkedClass.java
================================================
/*
* Copyright (c) 2019-2021, salesforce.com, inc.
* All rights reserved.
* Licensed under the BSD 3-Clause license.
* For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
*/
package com.bazel.demo;
public class NeverLinkedClass {
public String hello() {
return "Hello LIB3!";
}
}
================================================
FILE: examples/demoapp/libs/lib3_neverlink/src/test/java/com/bazel/demo/NeverLinkTest.java
================================================
/*
* Copyright (c) 2019-2024, salesforce.com, inc.
* All rights reserved.
* Licensed under the BSD 3-Clause license.
* For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
*/
package com.bazel.demo;
import static org.junit.Assert.assertEquals;
import org.junit.Test;
public class NeverLinkTest {
// because the library is marked neverlink, it should not be on the runtime classpath
// TODO this is not testing the SpringBoot app, just the java_library, need to rewrite as SpringBootTest
// manually confirmed with: jar -tvf bazel-bin/examples/demoapp/demoapp.jar | grep lib3
@Test(expected = NoClassDefFoundError.class)
public void neverlinkTest() {
new NeverLinkedClass();
}
}
================================================
FILE: examples/demoapp/remote_debug.sh
================================================
# Remote attach debugging of the demoapp executable jar
java -Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=y -jar ../../bazel-bin/examples/demoapp/demoapp.jar
================================================
FILE: examples/demoapp/src/main/java/com/sample/SampleAutoConfiguration.java
================================================
package com.sample;
import jakarta.annotation.PostConstruct;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.info.BuildProperties;
import org.springframework.boot.loader.tools.SignalUtils;
public class SampleAutoConfiguration {
@Value("${demoapp.config.internal:not found}")
String config_internal;
@Value("${demoapp.config.rootdirectory:not found}")
String config_external_root;
@Value("${demoapp.config.configsubdirectory:not found}")
String config_external_configsub;
@Value("${prop1:not found}")
String config_external_env_prop1;
@Value("${prop2:not found}")
String config_external_env_prop2;
/**
* BuildProperties is a Spring facility for implanting build data into the app.
* This is not enabled by default for rules_spring. You must wire it up using
* the example code in generate-build-info.sh
*/
@Autowired
private BuildProperties buildProperties;
@PostConstruct
public void logLoadedProperties() {
System.out.println("SampleAutoConfiguration loading of application.properties files:");
System.out.println(" internal application.properties: "+config_internal);
System.out.println(" external application.properties: "+config_external_root);
System.out.println(" external config/application.properties: "+config_external_configsub);
System.out.println("SampleAutoConfiguration loading of environment variables:");
System.out.println(" PROP1: "+config_external_env_prop1);
System.out.println(" PROP2: "+config_external_env_prop2);
System.out.println("SampleAutoConfiguration loading of BuildProperties:");
System.out.println(" (set BUILD_NUMBER and BUILD_TAG action_env variables for Bazel build to use)");
System.out.println(" build.number: "+buildProperties.get("number"));
System.out.println(" build.tag: "+buildProperties.get("tag"));
}
@PostConstruct
public void setupSignalHandler() {
// SignalUtils is really limited, it only attaches to the INT signal (2)
// You could steal the code and attach to other signals.
// https://github.com/spring-projects/spring-boot/blob/master/spring-boot-project/spring-boot-tools/spring-boot-loader-tools/src/main/java/org/springframework/boot/loader/tools/SignalUtils.java
SignalUtils.attachSignalHandler(new SampleSignalHandler());
}
/**
* Shows how you can catch an OS signal. This is a good test of the launcher script See
* https://github.com/salesforce/rules_spring/issues/91
* The only signal that SignalUtils attaches to is 2 (interrupt). kill -2 [pid]
*/
private static class SampleSignalHandler implements Runnable {
@Override
public void run() {
System.out.println("Caught an Interrupt signal.");
System.exit(0);
}
}
}
================================================
FILE: examples/demoapp/src/main/java/com/sample/SampleMain.java
================================================
/*
* Copyright (c) 2019-2021, salesforce.com, inc.
* All rights reserved.
* Licensed under the BSD 3-Clause license.
* For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
*/
package com.sample;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.SpringApplication;
import com.bazel.demo.IntentionalDupedClass;
@SpringBootApplication
public class SampleMain {
// both //examples/demoapp/libs/lib1 and //examples/demoapp/libs/lib2 have this class
// this is only a problem if the springboot rule is configured to fail on dupes.
static private IntentionalDupedClass dupedClass = new IntentionalDupedClass();
public static void main(String[] args) throws Exception {
System.out.println("SampleMain: Launching the sample SpringBoot demo application...");
StringBuffer sb = new StringBuffer();
for (String arg : args) {
sb.append("[");
sb.append(arg);
sb.append("] ");
}
System.out.println("SampleMain: Command line args: "+sb.toString());
System.out.println("\nSampleMain: Intentional duped class version: "+dupedClass.hello());
// test that the root class is available
Class.forName("com.sample.SampleRootClass");
System.out.println("\nSampleMain: loaded the root class com.sample.SampleRootClass");
SpringApplication.run(SampleMain.class, args);
}
}
================================================
FILE: examples/demoapp/src/main/java/com/sample/SampleRest.java
================================================
/*
* Copyright (c) 2019-2021, salesforce.com, inc.
* All rights reserved.
* Licensed under the BSD 3-Clause license.
* For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
*/
package com.sample;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.RequestMapping;
@RestController
public class SampleRest {
@RequestMapping("/")
public String hello() {
return "Hello!";
}
}
================================================
FILE: examples/demoapp/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
================================================
com.sample.SampleAutoConfiguration
================================================
FILE: examples/demoapp/src/main/resources/application.properties
================================================
#
# Copyright (c) 2017-2021, salesforce.com, inc.
# All rights reserved.
# Licensed under the BSD 3-Clause license.
# For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
#
# expose the actuator endpoints
# http://localhost:8080/actuator/beans
# http://localhost:8080/actuator/info
management.endpoints.web.exposure.include=*
demoapp.config.internal=loaded
================================================
FILE: examples/demoapp/src/test/java/com/salesforce/rules_spring/PackagingTest.java
================================================
/*
* Copyright (c) 2021, salesforce.com, inc.
* All rights reserved.
* Licensed under the BSD 3-Clause license.
* For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
*/
package com.salesforce.rules_spring;
import org.junit.Before;
import org.junit.Test;
import java.io.File;
import java.io.InputStream;
import java.nio.charset.StandardCharsets;
import java.util.Enumeration;
import java.util.Iterator;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
import static org.junit.Assert.*;
/**
*/
public class PackagingTest {
File springbootJarFile = null;
// file contents
String gitPropertiesContents = null;
String buildPropertiesContents = null;
String applicationPropertiesContents = null;
// file existence
boolean exists_lib1 = false;
boolean exists_lib2 = false;
boolean exists_lib3_neverlink = false;
@Before
public void setup() throws Exception {
springbootJarFile = new File("./examples/demoapp/demoapp.jar");
if (!springbootJarFile.exists()) {
throw new IllegalStateException("Missing demoapp springboot jar; looked in path: " +
springbootJarFile.getAbsolutePath());
}
extractFilesFromSpringBootJar();
}
@Test
public void gitPropertiesFileTest() {
assertNotNull(gitPropertiesContents);
assertTrue(gitPropertiesContents.contains("git.commit"));
}
@Test
public void buildPropertiesFileTest() {
assertNotNull(buildPropertiesContents);
assertTrue(buildPropertiesContents.contains("build.number"));
}
@Test
public void applicationPropertiesFileTest() {
assertNotNull(applicationPropertiesContents);
assertTrue(applicationPropertiesContents.contains("demoapp.config.internal"));
}
@Test
public void internalLibsAreIncludedTest() {
assertTrue(this.exists_lib1);
assertTrue(this.exists_lib2);
}
@Test
public void neverlinkLibsAreExcludedTest() {
assertFalse(this.exists_lib3_neverlink);
}
private void extractFilesFromSpringBootJar() throws Exception {
try (ZipFile sbZip = new ZipFile(springbootJarFile)) {
Enumeration<? extends ZipEntry> entries = sbZip.entries();
for (Iterator<? extends ZipEntry> it = entries.asIterator(); it.hasNext(); ) {
ZipEntry entry = it.next();
String name = entry.getName();
System.out.println(" zipentry: "+name);
if (name.equals("BOOT-INF/classes/git.properties")) {
InputStream is = sbZip.getInputStream(entry);
gitPropertiesContents = new String(is.readAllBytes(), StandardCharsets.UTF_8);
} else if (name.equals("BOOT-INF/classes/META-INF/build-info.properties")) {
InputStream is = sbZip.getInputStream(entry);
buildPropertiesContents = new String(is.readAllBytes(), StandardCharsets.UTF_8);
} else if (name.equals("BOOT-INF/classes/application.properties")) {
InputStream is = sbZip.getInputStream(entry);
applicationPropertiesContents = new String(is.readAllBytes(), StandardCharsets.UTF_8);
} else if (name.equals("BOOT-INF/lib/examples/demoapp/libs/lib1/liblib1.jar")) {
exists_lib1 = true;
} else if (name.equals("BOOT-INF/lib/examples/demoapp/libs/lib2/liblib2.jar")) {
exists_lib2 = true;
} else if (name.contains("neverlink")) {
// we have a lib named lib3_neverlink that has neverlink = True, which means it should NOT be
// included in the springboot jar
exists_lib3_neverlink = true;
}
}
}
}
}
================================================
FILE: examples/demoapp/src/test/java/com/sample/SampleRestFuncTest.java
================================================
/*
* Copyright (c) 2021, salesforce.com, inc.
* All rights reserved.
* Licensed under the BSD 3-Clause license.
* For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
*/
package com.sample;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.TestPropertySource;
import org.springframework.test.context.junit4.SpringRunner;
import static org.junit.Assert.assertEquals;
import org.junit.Test;
/**
* This test class starts the Spring Boot application. Because the Spring context is
* created, you can autowire spring beans into the test.
*/
@RunWith(SpringRunner.class)
@SpringBootTest(classes = SampleMain.class, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
@TestPropertySource(locations = {"classpath:/test.properties"})
public class SampleRestFuncTest {
@Autowired
private SampleRest sampleRest;
@Test
public void apiTest() {
assertEquals("Hello!", sampleRest.hello());
}
}
================================================
FILE: examples/demoapp/src/test/java/com/sample/SampleRestUnitTest.java
================================================
/*
* Copyright (c) 2021, salesforce.com, inc.
* All rights reserved.
* Licensed under the BSD 3-Clause license.
* For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
*/
package com.sample;
import static org.junit.Assert.assertEquals;
import org.junit.Test;
/**
* This test class does NOT start the Spring Boot application. It is a simple unit test.
*/
public class SampleRestUnitTest {
@Test
public void apiTest() {
SampleRest testClass = new SampleRest();
assertEquals("Hello!", testClass.hello());
}
}
================================================
FILE: examples/demoapp/src/test/resources/test.properties
================================================
anyprop=somevalue
================================================
FILE: examples/demoapp/src_root/main/java/com/sample/SampleRootClass.java
================================================
/*
* Copyright (c) 2019-2021, salesforce.com, inc.
* All rights reserved.
* Licensed under the BSD 3-Clause license.
* For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
*/
package com.sample;
public class SampleRootClass {
public String helloMessage;
}
================================================
FILE: examples/helloworld/BUILD
================================================
#
# Copyright (c) 2017-2021, salesforce.com, inc.
# All rights reserved.
# Licensed under the BSD 3-Clause license.
# For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
#
# NOTE:
# This sample is embedded in the same workspace as the springboot rule. Therefore references
# to local path "//springboot" work here. But you will need to change them to:
# "@rules_spring//springboot" when you consume the official release via http_archive.
# load our Spring Boot rule
load("//springboot:springboot.bzl", "springboot")
# dependencies from other packages in the workspace
lib_deps = [
"//examples/helloworld/libs/lib1",
"//examples/helloworld/libs/lib2",
]
# create our deps list for Spring Boot
springboot_deps = [
"//springboot/import_bundles:springboot_required_deps",
"@maven//:org_springframework_boot_spring_boot_starter_jetty",
"@maven//:org_springframework_boot_spring_boot_starter_web",
"@maven//:org_springframework_boot_spring_boot_loader_tools",
"@maven//:org_springframework_boot_spring_boot_jarmode_tools",
"@maven//:org_springframework_spring_webmvc",
"@maven//:javax_annotation_javax_annotation_api",
]
# This Java library contains the app code
java_library(
name = "helloworld_lib",
srcs = glob(["src/main/java/**/*.java"]),
resources = glob(["src/main/resources/**"]),
deps = springboot_deps + lib_deps,
)
test_deps = [
"@maven//:junit_junit",
"@maven//:org_hamcrest_hamcrest_core",
]
java_test(
name = "SampleRestUnitTest",
srcs = ["src/test/java/com/sample/SampleRestUnitTest.java"],
deps = [ ":helloworld_lib" ] + test_deps,
)
# Build the app as a Spring Boot executable jar
# To launch: bazel run //examples/helloworld
springboot(
name = "helloworld",
boot_app_class = "com.sample.SampleMain",
java_library = ":helloworld_lib",
# SPRING BOOT 3
# The launcher class changed in between Boot2 and Boot3, so we provide the
# Boot3 launcher class here (the Boot2 one is the default)
boot_launcher_class = 'org.springframework.boot.loader.launch.JarLauncher',
)
springboottest_deps = [
"@maven//:org_springframework_spring_beans",
"@maven//:org_springframework_boot_spring_boot_test",
"@maven//:org_springframework_spring_test",
]
java_test(
name = "SampleRestFuncTest",
srcs = ["src/test/java/com/sample/SampleRestFuncTest.java"],
deps = [ ":helloworld_lib" ] + test_deps + springboottest_deps,
resources = glob(["src/test/resources/**"]),
)
================================================
FILE: examples/helloworld/README.md
================================================
## Hello World Spring Boot Example
This example shows a simple Spring Boot application packaged with Bazel.
To build:
```bash
bazel build //examples/helloworld
```
To run:
```bash
bazel run //examples/helloworld
```
For full documentation, see the [//springboot](../../springboot) package documentation.
================================================
FILE: examples/helloworld/libs/lib1/BUILD
================================================
#
# Copyright (c) 2020-2021, salesforce.com, inc.
# All rights reserved.
# Licensed under the BSD 3-Clause license.
# For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
#
deps = [
"@maven//:org_slf4j_slf4j_api",
]
test_deps = [
"@maven//:junit_junit",
"@maven//:org_hamcrest_hamcrest_core",
]
java_library(
name = "lib1",
srcs = glob(["src/main/java/**/*.java"]),
visibility = ["//visibility:public"],
deps = deps,
)
java_test(
name = "IntentionalDupedClassTest",
srcs = ["src/test/java/com/bazel/demo/IntentionalDupedClassTest.java"],
deps = [":lib1"] + test_deps,
)
================================================
FILE: examples/helloworld/libs/lib1/src/main/java/com/bazel/demo/IntentionalDupedClass.java
================================================
/*
* Copyright (c) 2019-2021, salesforce.com, inc.
* All rights reserved.
* Licensed under the BSD 3-Clause license.
* For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
*/
package com.bazel.demo;
public class IntentionalDupedClass {
public String hello() {
return "Hello LIB1!";
}
}
================================================
FILE: examples/helloworld/libs/lib1/src/test/java/com/bazel/demo/IntentionalDupedClassTest.java
================================================
/*
* Copyright (c) 2019-2021, salesforce.com, inc.
* All rights reserved.
* Licensed under the BSD 3-Clause license.
* For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
*/
package com.bazel.demo;
import static org.junit.Assert.assertEquals;
import org.junit.Test;
public class IntentionalDupedClassTest {
@Test
public void helloTest() {
IntentionalDupedClass testClass = new IntentionalDupedClass();
assertEquals("Hello LIB1!", testClass.hello());
}
}
================================================
FILE: examples/helloworld/libs/lib2/BUILD
================================================
#
# Copyright (c) 2020-2021, salesforce.com, inc.
# All rights reserved.
# Licensed under the BSD 3-Clause license.
# For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
#
deps = [
"@maven//:org_slf4j_slf4j_api",
]
test_deps = [
"@maven//:junit_junit",
"@maven//:org_hamcrest_hamcrest_core",
]
java_library(
name = "lib2",
srcs = glob(["src/main/java/**/*.java"]),
visibility = ["//visibility:public"],
deps = deps,
)
java_test(
name = "IntentionalDupedClassTest",
srcs = ["src/test/java/com/bazel/demo/IntentionalDupedClassTest.java"],
deps = [":lib2"] + test_deps,
)
================================================
FILE: examples/helloworld/libs/lib2/src/main/java/com/bazel/demo/IntentionalDupedClass.java
================================================
/*
* Copyright (c) 2019-2021, salesforce.com, inc.
* All rights reserved.
* Licensed under the BSD 3-Clause license.
* For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
*/
package com.bazel.demo;
public class IntentionalDupedClass {
public String hello() {
return "Hello LIB2!";
}
}
================================================
FILE: examples/helloworld/libs/lib2/src/test/java/com/bazel/demo/IntentionalDupedClassTest.java
================================================
/*
* Copyright (c) 2019-2021, salesforce.com, inc.
* All rights reserved.
* Licensed under the BSD 3-Clause license.
* For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
*/
package com.bazel.demo;
import static org.junit.Assert.assertEquals;
import org.junit.Test;
public class IntentionalDupedClassTest {
@Test
public void helloTest() {
IntentionalDupedClass testClass = new IntentionalDupedClass();
assertEquals("Hello LIB2!", testClass.hello());
}
}
================================================
FILE: examples/helloworld/remote_debug.sh
================================================
# Remote attach debugging of the helloworld executable jar
java -Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=y -jar ../../bazel-bin/examples/helloworld/helloworld.jar
================================================
FILE: examples/helloworld/src/main/java/com/sample/SampleAutoConfiguration.java
================================================
package com.sample;
import org.springframework.context.annotation.Bean;
public class SampleAutoConfiguration {
@Bean
public String helloMessage() {
return "Hello SpringBoot!";
}
}
================================================
FILE: examples/helloworld/src/main/java/com/sample/SampleMain.java
================================================
/*
* Copyright (c) 2019-2021, salesforce.com, inc.
* All rights reserved.
* Licensed under the BSD 3-Clause license.
* For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
*/
package com.sample;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class SampleMain {
public static void main(String[] args) {
System.out.println("SampleMain: Launching the sample SpringBoot demo application...");
StringBuffer sb = new StringBuffer();
for (String arg : args) {
sb.append(arg);
sb.append(" ");
}
System.out.println("SampleMain: Command line args: "+sb.toString());
SpringApplication.run(SampleMain.class, args);
}
}
================================================
FILE: examples/helloworld/src/main/java/com/sample/SampleRest.java
================================================
/*
* Copyright (c) 2019-2021, salesforce.com, inc.
* All rights reserved.
* Licensed under the BSD 3-Clause license.
* For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
*/
package com.sample;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class SampleRest {
@RequestMapping("/")
public String hello() {
return "Hello!";
}
}
================================================
FILE: examples/helloworld/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
================================================
com.sample.SampleAutoConfiguration
================================================
FILE: examples/helloworld/src/main/resources/application.properties
================================================
#
# Copyright (c) 2017-2021, salesforce.com, inc.
# All rights reserved.
# Licensed under the BSD 3-Clause license.
# For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
#
# expose the actuator endpoints
# http://localhost:8080/actuator/beans
# http://localhost:8080/actuator/info
management.endpoints.web.exposure.include=*
================================================
FILE: examples/helloworld/src/test/java/com/sample/SampleRestFuncTest.java
================================================
/*
* Copyright (c) 2021, salesforce.com, inc.
* All rights reserved.
* Licensed under the BSD 3-Clause license.
* For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
*/
package com.sample;
import static org.junit.Assert.assertEquals;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.TestPropertySource;
import org.springframework.test.context.junit4.SpringRunner;
/**
* This test class starts the Spring Boot application. Because the Spring context is
* created, you can autowire spring beans into the test.
*/
@RunWith(SpringRunner.class)
@SpringBootTest(classes = SampleMain.class, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
@TestPropertySource(locations = {"classpath:/test.properties"})
public class SampleRestFuncTest {
@Autowired
private SampleRest sampleRest;
@Test
public void apiTest() {
assertEquals("Hello!", sampleRest.hello());
}
}
================================================
FILE: examples/helloworld/src/test/java/com/sample/SampleRestUnitTest.java
================================================
/*
* Copyright (c) 2021, salesforce.com, inc.
* All rights reserved.
* Licensed under the BSD 3-Clause license.
* For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
*/
package com.sample;
import static org.junit.Assert.assertEquals;
import org.junit.Test;
/**
* This test class does NOT start the Spring Boot application. It is a simple unit test.
*/
public class SampleRestUnitTest {
@Test
public void apiTest() {
SampleRest testClass = new SampleRest();
assertEquals("Hello!", testClass.hello());
}
}
================================================
FILE: examples/helloworld/src/test/resources/test.properties
================================================
anyprop=somevalue
================================================
FILE: examples/kotlinapp/README.md
================================================
## Kotlin Example for Bazel Spring Boot
To avoid cluttering the WORKSPACE file for everyone, the Kotlin example is published
in a dedicated branch of this repository.
- [KotlinApp](https://github.com/salesforce/rules_spring/tree/examples_kotlin) shows how to build and run Spring Boot applications written in Kotlin with *rules_spring*
================================================
FILE: makerelease.sh
================================================
#
# Copyright (c) 2017-2024, salesforce.com, inc.
# All rights reserved.
# Licensed under the BSD 3-Clause license.
# For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
#
release_version=2.4.1
echo "RELEASE: You are about to create a local zip file that contains the release bits."
echo "After it is created, there will be instructions on how to upload it to GitHub and create the release metadata."
echo ""
echo "Please enter the release version (e.g. 2.4.1):"
read release_version
echo ""
echo "You have entered $release_version, are you good with this version? Enter to continue, ctrl-c to abort."
read DOTHETHING
echo "STEP 1: update MODULE.bazel with version $release_version"
echo "You must do this manually, I will wait for you. After it is done, press Enter here."
read DOTHETHING
echo ""
echo "STEP 2: packaging the release zip file."
echo "I can do this all by myself...."
echo ""
# remove/relocate local build artifacts and tools
rm -rf bazel-*
# move some dev directories out, so they don't get zipped up in the archive
tmpdir=/tmp/rules-spring-release
mkdir $tmpdir 2>/dev/null
mv examples $tmpdir 2>/dev/null
rm -rf coverage-reports
rm -rf springboot/tests/__pycache__
rm -rf springboot/__pycache__
rm *.zip
# jar up the code
release_zip=rules-spring-${release_version}.zip
jar -cvf $release_zip *
# restore the dev directories
mv $tmpdir/examples examples 2>/dev/null
rm -rf $tmpdir
sha256=$(shasum -a 256 $release_zip)
echo ""
echo "RELEASE artifact built successfully: rules-spring-${release_version}.zip"
echo " SHA256 of the release artifact: $sha256"
echo ""
echo ""
echo "STEP 3: release tasks"
echo " 0. commit and push the MODULE.bazel update you just did"
echo " 1. Create a new release on GitHub and upload the zip file to it. Look at previous releases and use the same doc conventions. Make sure you tag the release."
echo " 2. Update the bzlmod/http_archive stanzas in the top level README.md to refer to the latest release."
echo " 3. Test new release with the external demoapp repository: https://github.com/plaird/rules_spring_demoapp"
echo ""
echo "OK, go do those tasks now, please."
read DID_RELEASE
echo ""
echo ""
echo "STEP 4: BCR update tasks"
echo "OK, now you have to publish the release to the Bazel central registry."
echo "1. Activate your python virtual env (e.g. source ~/dev/bin/activate)"
echo "2. sync your BCR fork: git pull upstream main"
echo "3. run the add module script in your BCR fork: python3 tools/add_module.py"
echo " Please enter the module name: rules_spring"
echo " Please enter the module version: 2.6.2"
echo " Please enter the compatibility level [default is 0]: 2"
echo " Please enter the URL of the source archive: https://github.com/salesforce/rules_spring/releases/download/2.6.2/rules-spring-2.6.2.zip"
echo " Please enter the strip_prefix value of the archive [default None]:"
echo " Do you want to add patch files? [y/N]: n"
echo " Do you want to add a BUILD file? [y/N]: n"
echo " Do you want to specify a MODULE.bazel file? [y/N]: y"
echo " Please enter the MODULE.bazel file path: ../../rules_spring/MODULE.bazel"
echo " Do you want to specify an existing presubmit.yml file? y"
echo " Please enter the presubmit.yml file path: modules/rules_spring/2.6.0/presubmit.yml"
echo "4. git add modules"
echo "5. submit a PR to BCR"
echo ""
================================================
FILE: maven_install.json
================================================
{
"__AUTOGENERATED_FILE_DO_NOT_MODIFY_THIS_FILE_MANUALLY": "THERE_IS_NO_DATA_ONLY_ZUUL",
"__INPUT_ARTIFACTS_HASH": 280632942,
"__RESOLVED_ARTIFACTS_HASH": 217268227,
"conflict_resolution": {
"com.google.errorprone:error_prone_annotations:2.5.1": "com.google.errorprone:error_prone_annotations:2.18.0",
"org.assertj:assertj-core:3.25.3": "org.assertj:assertj-core:3.26.3",
"org.mockito:mockito-core:4.3.1": "org.mockito:mockito-core:5.14.2"
},
"artifacts": {
"biz.aQute.bnd:biz.aQute.bnd.util": {
"shasums": {
"jar": "65b5bd4a0fab16812f1800c98ff74a038f37a38bfe899af382efed4efdc1e3e1"
},
"version": "6.4.0"
},
"biz.aQute.bnd:biz.aQute.bndlib": {
"shasums": {
"jar": "357145074872f9dbf67e629fcd237e6152707e575d735df4535282f9f588d2d8"
},
"version": "6.4.0"
},
"ch.qos.logback:logback-classic": {
"shasums": {
"jar": "3e1533d0321f8815eef46750aee0111b41554f9a4644c3c4d2d404744b09f60f"
},
"version": "1.5.18"
},
"ch.qos.logback:logback-core": {
"shasums": {
"jar": "85139e7b57b464f8e5e36326dd81317648bed199ccc4f98cd42585f8d7571027"
},
"version": "1.5.18"
},
"com.fasterxml.jackson.core:jackson-annotations": {
"shasums": {
"jar": "8aa5740d80b5a5025508b41bbadbaa1fb3772267c628b2e30681a4f45f8b8931"
},
"version": "2.18.3"
},
"com.fasterxml.jackson.core:jackson-core": {
"shasums": {
"jar": "056bc4d3e5e53ce821450fa97b3f9e0f8dde125cf6da6884353bb1f09582e1d9"
},
"version": "2.18.3"
},
"com.fasterxml.jackson.core:jackson-databind": {
"shasums": {
"jar": "510bdda75a7a6186c5bf33b851239488a1450906ae5757121f2e1cc48a7e108f"
},
"version": "2.18.3"
},
"com.fasterxml.jackson.datatype:jackson-datatype-jdk8": {
"shasums": {
"jar": "1f517af91ace54150525cdb30a012fca19a536194564756f580c21acfc7e04a0"
},
"version": "2.18.3"
},
"com.fasterxml.jackson.datatype:jackson-datatype-jsr310": {
"shasums": {
"jar": "2e1df2feb93683d379969ceaf78b76a0ac115c67d04671958fddf4eed6e6401d"
},
"version": "2.18.3"
},
"com.fasterxml.jackson.module:jackson-module-parameter-names": {
"shasums": {
"jar": "3797241e299fcde9be2bf5f3a52ac61b66f749e7157478f5b246eb597e962c26"
},
"version": "2.18.3"
},
"com.google.auto.value:auto-value-annotations": {
"shasums": {
"jar": "37ec09b47d7ed35a99d13927db5c86fc9071f620f943ead5d757144698310852"
},
"version": "1.8.1"
},
"com.google.caliper:caliper": {
"shasums": {
"jar": "d54e1bfdbe9359a79e175c217b8d472555cf20da9c5c0a18bdb1ea7db979ed8e"
},
"version": "1.0-beta-3"
},
"com.google.caliper:caliper-api": {
"shasums": {
"jar": "374f0c6c0c1f8784cb69d885e1dcbb7498c34ca20369e0597264568530642928"
},
"version": "1.0-beta-3"
},
"com.google.caliper:caliper-core": {
"shasums": {
"jar": "514deac8f8b09dd4262733e0a4406a333208c899dc7ea726b03600b9bb94f192"
},
"version": "1.0-beta-3"
},
"com.google.caliper:caliper-runner": {
"shasums": {
"jar": "3ab58890aa01343361adedf859500d280f67813df0cedfcd165b169533b9b1fa"
},
"version": "1.0-beta-3"
},
"com.google.caliper:caliper-util": {
"shasums": {
"jar": "6e9af500c7020450dfdb5003d09501d512d395f431c54c7ee8f79e712463fe66"
},
"version": "1.0-beta-3"
},
"com.google.caliper:caliper-worker": {
"shasums": {
"jar": "315d8e51df1f60551645a0e3bf2c504d2c79762f688e6f728eb9d1d9cd9a491b"
},
"version": "1.0-beta-3"
},
"com.google.caliper:caliper-worker-jvm": {
"shasums": {
"jar": "e14e1ecfdf939c82abdb902105be41ff3f83c18cb968116232015f2662d065a4"
},
"version": "1.0-beta-3"
},
"com.google.code.findbugs:jsr305": {
"shasums": {
"jar": "766ad2a0783f2687962c8ad74ceecc38a28b9f72a2d085ee438b7813e928d0c7"
},
"version": "3.0.2"
},
"com.google.code.gson:gson": {
"shasums": {
"jar": "d3999291855de495c94c743761b8ab5176cfeabe281a5ab0d8e8d45326fd703e"
},
"version": "2.8.9"
},
"com.google.code.java-allocation-instrumenter:java-allocation-instrumenter": {
"shasums": {
"jar": "1ef5535a8bd41cf3072469f381b9ee6ab28275311a7499f53d6e52adf976fef0"
},
"version": "3.3.0"
},
"com.google.dagger:dagger": {
"shasums": {
"jar": "329d4340f24c4f5717af016c097e90668bfea2a5376e6aa9964b01cef3fd241a"
},
"version": "2.22.1"
},
"com.google.dagger:dagger-producers": {
"shasums": {
"jar": "f834a0082014213a68ff06a0f048d750178d02196c58b0b15beb367d32b97e35"
},
"version": "2.22.1"
},
"com.google.errorprone:error_prone_annotations": {
"shasums": {
"jar": "9e6814cb71816988a4fd1b07a993a8f21bb7058d522c162b1de849e19bea54ae"
},
"version": "2.18.0"
},
"com.google.guava:failureaccess": {
"shasums": {
"jar": "a171ee4c734dd2da837e4b16be9df4661afab72a41adaf31eb84dfdaf936ca26"
},
"version": "1.0.1"
},
"com.google.guava:guava": {
"shasums": {
"jar": "bd7fa227591fb8509677d0d1122cf95158f3b8a9f45653f58281d879f6dc48c5"
},
"version": "32.0.1-jre"
},
"com.google.guava:guava-testlib": {
"shasums": {
"jar": "c97511849a5e085280f106df2b059566febd280b118d33d6a9e068d238100b63"
},
"version": "32.0.1-jre"
},
"com.google.guava:listenablefuture": {
"shasums": {
"jar": "b372a037d4230aa57fbeffdef30fd6123f9c0c2db85d0aced00c91b974f33f99"
},
"version": "9999.0-empty-to-avoid-conflict-with-guava"
},
"com.google.j2objc:j2objc-annotations": {
"shasums": {
"jar": "f02a95fa1a5e95edb3ed859fd0fb7df709d121a35290eff8b74dce2ab7f4d6ed"
},
"version": "2.8"
},
"com.google.truth:truth": {
"shasums": {
"jar": "a85e03b8b6ae8780f060cfded9500a3d1b5f52808f99a2ea6da9c683313c7518"
},
"version": "1.1.2"
},
"com.jayway.jsonpath:json-path": {
"shasums": {
"jar": "11a9ee6f88bb31f1450108d1cf6441377dec84aca075eb6bb2343be157575bea"
},
"version": "2.9.0"
},
"com.squareup.okhttp:okhttp": {
"shasums": {
"jar": "88ac9fd1bb51f82bcc664cc1eb9c225c90dc4389d660231b4cc737bebfe7d0aa"
},
"version": "2.7.5"
},
"com.squareup.okio:okio": {
"shasums": {
"jar": "114bdc1f47338a68bcbc95abf2f5cdc72beeec91812f2fcd7b521c1937876266"
},
"version": "1.6.0"
},
"com.sun.jersey:jersey-client": {
"shasums": {
"jar": "639c825c5db580f8115bf49ffc893093526d2ed1079fbc929b6a5fbd0b2eda40"
},
"version": "1.19.4"
},
"com.sun.jersey:jersey-core": {
"shasums": {
"jar": "64b03198e0264849d0fc341857ebcc9c882b1909a2dc35a0972fe7d901b826e5"
},
"version": "1.19.4"
},
"com.vaadin.external.google:android-json": {
"shasums": {
"jar": "dfb7bae2f404cfe0b72b4d23944698cb716b7665171812a0a4d0f5926c0fac79"
},
"version": "0.0.20131108.vaadin1"
},
"com.zaxxer:HikariCP": {
"shasums": {
"jar": "a47a6ee62379694ee52c30036f0931b72f9aee2a801d590341ed82bd839e2134"
},
"version": "5.1.0"
},
"info.picocli:picocli": {
"shasums": {
"jar": "b0a5159e926de8084ff066025142270443533656bc599b8bb31d14d11fd138a4"
},
"version": "4.6.3"
},
"io.micrometer:micrometer-commons": {
"shasums": {
"jar": "e98485ffecb7d8cc9af47cfe627ea8bf3897915dd0f34b3e3a190d6896875b4b"
},
"version": "1.14.5"
},
"io.micrometer:micrometer-core": {
"shasums": {
"jar": "7c0c55ef7fe1bef5b89453655e768ee05fd35b381bd67f9d42cfe48362174ca5"
},
"version": "1.14.5"
},
"io.micrometer:micrometer-jakarta9": {
"shasums": {
"jar": "08c0e061df58583ae11b4b0ec664f0205e43dbb16ccd41571cf068269823803a"
},
"version": "1.14.5"
},
"io.micrometer:micrometer-observation": {
"shasums": {
"jar": "7cfbf714abdf3779c820ff19712199ac9bae03d2f0e809ba8e74c3663c12128a"
},
"version": "1.14.5"
},
"jakarta.activation:jakarta.activation-api": {
"shasums": {
"jar": "01b176d718a169263e78290691fc479977186bcc6b333487325084d6586f4627"
},
"version": "2.1.3"
},
"jakarta.annotation:jakarta.annotation-api": {
"shasums": {
"jar": "5f65fdaf424eee2b55e1d882ba9bb376be93fb09b37b808be6e22e8851c909fe"
},
"version": "2.1.1"
},
"jakarta.enterprise:jakarta.enterprise.cdi-api": {
"shasums": {
"jar": "beaf74c4f2618189309e3f4a09c43effab633dd96aa1f6dc58a6ba7ee0042717"
},
"version": "4.0.1"
},
"jakarta.enterprise:jakarta.enterprise.lang-model": {
"shasums": {
"jar": "53acafe65b6ef0195fa1b8a0ef2650e5aa024c32cb4059c4df372d6b32089cd3"
},
"version": "4.0.1"
},
"jakarta.inject:jakarta.inject-api": {
"shasums": {
"jar": "f7dc98062fccf14126abb751b64fab12c312566e8cbdc8483598bffcea93af7c"
},
"version": "2.0.1"
},
"jakarta.interceptor:jakarta.interceptor-api": {
"shasums": {
"jar": "ef787d3f713fc6ff4f02cd4b0dbed08f93d8af3400c90cbb43fb4b5c0583710b"
},
"version": "2.1.0"
},
"jakarta.servlet:jakarta.servlet-api": {
"shasums": {
"jar": "c034eb1afb158987dbb53a5fea0cadf611c8dae8daadd59c44d9d5ab70129cef"
},
"version": "6.0.0"
},
"jakarta.transaction:jakarta.transaction-api": {
"shasums": {
"jar": "50c0a7c760c13ae6c042acf182b28f0047413db95b4636fb8879bcffab5ba875"
},
"version": "2.0.1"
},
"jakarta.websocket:jakarta.websocket-api": {
"shasums": {
"jar": "beadb92c26d04da653f6d2db2532b549b7a0dbe59c6e22c23e55bd03617f0120"
},
"version": "2.1.1"
},
"jakarta.websocket:jakarta.websocket-client-api": {
"shasums": {
"jar": "e8fe8c1dff948385a461dbc85dec5467cbe350f065ec1a0f3bfed53b79e7b102"
},
"version": "2.1.1"
},
"jakarta.xml.bind:jakarta.xml.bind-api": {
"shasums": {
"jar": "0d6bcfe47763e85047acf7c398336dc84ff85ebcad0a7cb6f3b9d3e981245406"
},
"version": "4.0.2"
},
"javax.annotation:javax.annotation-api": {
"shasums": {
"jar": "e04ba5195bcd555dc95650f7cc614d151e4bcd52d29a10b8aa2197f3ab89ab9b"
},
"version": "1.3.2"
},
"javax.inject:javax.inject": {
"shasums": {
"jar": "91c77044a50c481636c32d916fd89c9118a72195390452c81065080f957de7ff"
},
"version": "1"
},
"javax.ws.rs:jsr311-api": {
"shasums": {
"jar": "ab1534b73b5fa055808e6598a5e73b599ccda28c3159c3c0908977809422ee4a"
},
"version": "1.1.1"
},
"joda-time:joda-time": {
"shasums": {
"jar": "dd8e7c92185a678d1b7b933f31209b6203c8ffa91e9880475a1be0346b9617e3"
},
"version": "2.10.10"
},
"junit:junit": {
"shasums": {
"jar": "8e495b634469d64fb8acfa3495a065cbacc8a0fff55ce1e31007be4c16dc57d3"
},
"version": "4.13.2"
},
"net.bytebuddy:byte-buddy": {
"shasums": {
"jar": "4a683d83ff219f20d44f35ca302d821e0c6842e3fa8f9f1ee913eb16f49cec6c"
},
"version": "1.15.4"
},
"net.bytebuddy:byte-buddy-agent": {
"shasums": {
"jar": "1d76defd159a564b9cb7a968d0dea27367b8b70ebde75a968e7ef1921bc75ee4"
},
"version": "1.15.4"
},
"net.minidev:accessors-smart": {
"shasums": {
"jar": "9b8a7bc43861d6156c021166d941fb7dddbe4463e2fa5ee88077e4b01452a836"
},
"version": "2.5.2"
},
"net.minidev:json-smart": {
"shasums": {
"jar": "4fbdedb0105cedc7f766b95c297d2e88fb6a560da48f3bbaa0cc538ea8b7bf71"
},
"version": "2.5.2"
},
"org.apache.commons:commons-compress": {
"shasums": {
"jar": "d0ec8014ebbb0749f471803122b21796afddf2e98e194e4374622e5fbaf69f49"
},
"version": "1.25.0"
},
"org.apache.logging.log4j:log4j-api": {
"shasums": {
"jar": "5b4a0a0cd0e751ded431c162442bdbdd53328d1f8bb2bae5fc1bbeee0f66d80f"
},
"version": "2.24.3"
},
"org.apache.logging.log4j:log4j-to-slf4j": {
"shasums": {
"jar": "c7f2b0c612a4eb05b1587d1c880eb4cf5f4f53850676a8ede8da2b8fabb4f73f"
},
"version": "2.24.3"
},
"org.apache.tomcat.embed:tomcat-embed-core": {
"shasums": {
"jar": "1a488786e23293aef05c12c14d375b6649e85a312f8d1db23d9274196b7b0eb5"
},
"version": "10.1.39"
},
"org.apache.tomcat.embed:tomcat-embed-el": {
"shasums": {
"jar": "de993a5a8af0b6ca6473ba59b95026d7ded93de3a1683d9fb7753b7b76d38ee7"
},
"version": "10.1.39"
},
"org.apache.tomcat.embed:tomcat-embed-websocket": {
"shasums": {
"jar": "3b4fb77c4df8c523ec631a817936c4dff152386d4451090f03cb18425bfd8aaf"
},
"version": "10.1.39"
},
"org.apiguardian:apiguardian-api": {
"shasums": {
"jar": "b509448ac506d607319f182537f0b35d71007582ec741832a1f111e5b5b70b38"
},
"version": "1.1.2"
},
"org.aspectj:aspectjweaver": {
"shasums": {
"jar": "cd2dd01ec2424c05669df4d557f6c6cd7ed87b05257ee3c866b4c5b116b18a78"
},
"version": "1.9.22.1"
},
"org.assertj:assertj-core": {
"shasums": {
"jar": "4c2f86418ff47ee6b67fbc6adb194e80219b793281b3bda28799d4425bc9a0bd"
},
"version": "3.26.3"
},
"org.attoparser:attoparser": {
"shasums": {
"jar": "75dd1c045492bff8e1963aabb28bfe903c2064e11e27fe2f0f0aff1ad3d84476"
},
"version": "2.0.7.RELEASE"
},
"org.awaitility:awaitility": {
"shasums": {
"jar": "e831fee30ed401e2208f1bd5a0ef9add538d9cb1103c0e43216691b647bde9c6"
},
"version": "4.2.2"
},
"org.checkerframework:checker-compat-qual": {
"shasums": {
"jar": "d76b9afea61c7c082908023f0cbc1427fab9abd2df915c8b8a3e7a509bccbc6d"
},
"version": "2.5.3"
},
"org.checkerframework:checker-qual": {
"shasums": {
"jar": "e316255bbfcd9fe50d165314b85abb2b33cb2a66a93c491db648e498a82c2de1"
},
"version": "3.33.0"
},
"org.eclipse.jetty.ee10.websocket:jetty-ee10-websocket-jakarta-client": {
"shasums": {
"jar": "39ae38c9557fe7caaa1f1bc4d17ceb2371c2c22e04142e2b6a0fb885256c7f51"
},
"version": "12.0.18"
},
"org.eclipse.jetty.ee10.websocket:jetty-ee10-websocket-jakarta-common": {
"shasums": {
"jar": "20bf9c4bcf43ce40f6f2279a67891a9302c4ee958d89b324a675aa8c2961aa02"
},
"version": "12.0.18"
},
"org.eclipse.jetty.ee10.websocket:jetty-ee10-websocket-jakarta-server": {
"shasums": {
"jar": "a295318242248d16b7efbeff99de2ce7b968af2b94032db3b1c56586ac78ecf4"
},
"version": "12.0.18"
},
"org.eclipse.jetty.ee10.websocket:jetty-ee10-websocket-jetty-server": {
"shasums": {
"jar": "720ba8972ce908bb6f3346e7635337b73b23f1b1c96bfed6d8bf9f4f2fcd1b02"
},
"version": "12.0.18"
},
"org.eclipse.jetty.ee10.websocket:jetty-ee10-websocket-servlet": {
"shasums": {
"jar": "c10bfd34b4042fdea16771520a2ac7a01e3394b483316e83432c8ea6c66c7f45"
},
"version": "12.0.18"
},
"org.eclipse.jetty.ee10:jetty-ee10-annotations": {
"shasums": {
"jar": "6ddfe086147eb648560c39cc6ec2daa2aa21a9783a521cc242145a9a5b0dde3b"
},
"version": "12.0.18"
},
"org.eclipse.jetty.ee10:jetty-ee10-plus": {
"shasums": {
"jar": "20e74b84e7f584795d1df246007bbf1229b35e6e3231b7678707b5969e9ef550"
},
"version": "12.0.18"
},
"org.eclipse.jetty.ee10:jetty-ee10-servlet": {
"shasums": {
"jar": "eaa998fd854d64fe161c822d21f0745986954db5c817ae7b83c3b13e94aa3e06"
},
"version": "12.0.18"
},
"org.eclipse.jetty.ee10:jetty-ee10-servlets": {
"shasums": {
"jar": "4adcaedb3a5dd75c55e345b04c457e24da293312563cd08474ef8d5a0b019d0d"
},
"version": "12.0.18"
},
"org.eclipse.jetty.ee10:jetty-ee10-webapp": {
"shasums": {
"jar": "c03115edb4a682bdb49ec8245f0acd7ecd25805caf2fbdd50eeac342d56af250"
},
"version": "12.0.18"
},
"org.eclipse.jetty.websocket:jetty-websocket-core-client": {
"shasums": {
"jar": "d67d396cdcb673d60742f80e42810b9193dd9f2aeec2692714acdeca7dfbe634"
},
"version": "12.0.18"
},
"org.eclipse.jetty.websocket:jetty-websocket-core-common": {
"shasums": {
"jar": "427ec242bc57c02638dd19c2c8d4bf66ebeea52ae58ad6d6a9b4013af88bb201"
},
"version": "12.0.18"
},
"org.eclipse.jetty.websocket:jetty-websocket-core-server": {
"shasums": {
"jar": "698163a545e21de0d6a330f0a082f81d4e96988703bea4881825fca4bd21d6f4"
},
"version": "12.0.18"
},
"org.eclipse.jetty.websocket:jetty-websocket-jetty-api": {
"shasums": {
"jar": "9ddc0de474bcc065b5cbb4682bb2f3a03f214e77268752c71f082a26683431ca"
},
"version": "12.0.18"
},
"org.eclipse.jetty.websocket:jetty-websocket-jetty-common": {
"shasums": {
"jar": "0a0b71ddaed72b8f71c47fe37cceda1ebacfaae69020038d12ec75e2791b15ce"
},
"version": "12.0.18"
},
"org.eclipse.jetty:jetty-alpn-client": {
"shasums": {
"jar": "e43c7c5a4cbb605089835b4d73c094768af965eba4bff702f905fe1750bc3846"
},
"version": "12.0.18"
},
"org.eclipse.jetty:jetty-client": {
"shasums": {
"jar": "f061ea09047445a79177591f0103deff0e0bdf352027462f094cfe486f0ed30f"
},
"version": "12.0.18"
},
"org.eclipse.jetty:jetty-ee": {
"shasums": {
"jar": "c2698b929cd5a2d0122d5c9c6be5daaebbe3fbb8984e925882e277716a14806f"
},
"version": "12.0.18"
},
"org.eclipse.jetty:jetty-http": {
"shasums": {
"jar": "640cf950ebad1f88d5a96e46548a34ff8da418b6171e2bc2e30e73f49111b068"
},
"version": "12.0.18"
},
"org.eclipse.jetty:jetty-io": {
"shasums": {
"jar": "2528c3240b0615fd735ef67825ee7cd7a2f430e405fd57eed756377d2d0702a7"
},
"version": "12.0.18"
},
"org.eclipse.jetty:jetty-plus": {
"shasums": {
"jar": "adedbee25414d4f2b76f641b346c9799494e384b2e14f55df8273f48f90b6be0"
},
"version": "12.0.18"
},
"org.eclipse.jetty:jetty-security": {
"shasums": {
"jar": "e98507bf4c273b22ad7bf54910032d0948a9ba838529260f1b91a8d60c76b749"
},
"version": "12.0.18"
},
"org.eclipse.jetty:jetty-server": {
"shasums": {
"jar": "118c8f784ffcbf4a69e1018b871fd396cd4ec631fc6f764fe958beb091e50568"
},
"version": "12.0.18"
},
"org.eclipse.jetty:jetty-session": {
"shasums": {
"jar": "b69800641f1e9adc15940dbbf226506f4154f543a52a036268e5e298fab85f87"
},
"version": "12.0.18"
},
"org.eclipse.jetty:jetty-util": {
"shasums": {
"jar": "c4c9e7435f7f005a74f746d94952e148ec803356e20c99e6d46a52f896e1e413"
},
"version": "12.0.18"
},
"org.eclipse.jetty:jetty-xml": {
"shasums": {
"jar": "4c228050d6a0e0fff22844bab9607d2f9093c39f6faea68dec53024448ab441c"
},
"version": "12.0.18"
},
"org.freemarker:freemarker": {
"shasums": {
"jar": "9a9fb91cd64199232eb1ca9766148a5d30ef8944be5fac051018f96c70c8f6a3"
},
"version": "2.3.34"
},
"org.hamcrest:hamcrest": {
"shasums": {
"jar": "5e62846a89f05cd78cd9c1a553f340d002458380c320455dd1f8fc5497a8a1c1"
},
"version": "2.2"
},
"org.hamcrest:hamcrest-core": {
"shasums": {
"jar": "094f5d92b4b7d9c8a2bf53cc69d356243ae89c3499457bcb4b92f7ed3bf95879"
},
"version": "2.2"
},
"org.hdrhistogram:HdrHistogram": {
"shasums": {
"jar": "22d1d4316c4ec13a68b559e98c8256d69071593731da96136640f864fa14fad8"
},
"version": "2.2.2"
},
"org.junit.jupiter:junit-jupiter": {
"shasums": {
"jar": "aa880e4afba87d447357e4c1fc098c5cb1d200cb9403496c00d3b35a5bd0e8db"
},
"version": "5.11.4"
},
"org.junit.jupiter:junit-jupiter-api": {
"shasums": {
"jar": "ab83ef9e51ac4597d59d26b4b58812129550e2f579a404c8af7d09f5ce5b4293"
},
"version": "5.11.4"
},
"org.junit.jupiter:junit-jupiter-engine": {
"shasums": {
"jar": "cdf8ac59f3fad774ca738ad03890950eeb91833ef0e8908753177edd26f1581c"
},
"version": "5.11.4"
},
"org.junit.jupiter:junit-jupiter-params": {
"shasums": {
"jar": "02a6e015de7ce94ac7f256e7fa05b8091dea861fe79a555a7993313d0f6c7d96"
},
"version": "5.11.4"
},
"org.junit.platform:junit-platform-commons": {
"shasums": {
"jar": "9edd969b0d0670c54105bc91ae79bd1c6f503e12115faba82073b84c86bbc334"
},
"version": "1.11.4"
},
"org.junit.platform:junit-platform-engine": {
"shasums": {
"jar": "b1dd998f64f9acadc15966d9cd3d08074662677b3e390f0a38fcbf0bb4c72330"
},
"version": "1.11.4"
},
"org.latencyutils:LatencyUtils": {
"shasums": {
"jar": "a32a9ffa06b2f4e01c5360f8f9df7bc5d9454a5d373cd8f361347fa5a57165ec"
},
"version": "2.0.3"
},
"org.mockito:mockito-core": {
"shasums": {
"jar": "2296141c1e1f2e1ae35c08d36a9ab4563ecd66e03533fe82630a764e7aa49182"
},
"version": "5.14.2"
},
"org.mockito:mockito-junit-jupiter": {
"shasums": {
"jar": "9a126e3bf6dd31826a138523c17f49de12b3243f3b5616b9ea977542e4a47a09"
},
"version": "5.14.2"
},
"org.objenesis:objenesis": {
"shasums": {
"jar": "02dfd0b0439a5591e35b708ed2f5474eb0948f53abf74637e959b8e4ef69bfeb"
},
"version": "3.3"
},
"org.opentest4j:opentest4j": {
"shasums": {
"jar": "48e2df636cab6563ced64dcdff8abb2355627cb236ef0bf37598682ddf742f1b"
},
"version": "1.3.0"
},
"org.osgi:org.osgi.dto": {
"shasums": {
"jar": "cb75f3c7e48e5a31a31df22e26873346f5bf659e2dcab2369e031e4850d2ff43"
},
"version": "1.0.0"
},
"org.osgi:org.osgi.framework": {
"shasums": {
"jar": "ec194b7871af27681716ff05259319a5c3c9b9727e8000e9e832499b93484b4e"
},
"version": "1.8.0"
},
"org.osgi:org.osgi.resource": {
"shasums": {
"jar": "81fc50f1f1d38a4af28e131907d4afe213249aab05060484edca0e60c4af9b4a"
},
"version": "1.0.0"
},
"org.osgi:org.osgi.service.log": {
"shasums": {
"jar": "ff6710c4856d32684cf3ebdc45248f41036ff734f2b03bbc08c4609a61fecfa0"
},
"version": "1.3.0"
},
"org.osgi:org.osgi.service.repository": {
"shasums": {
"jar": "c5553e95b459529192433486d4c4cc22ff45a2eae4968484f9f717319264a532"
},
"version": "1.1.0"
},
"org.osgi:org.osgi.util.function": {
"shasums": {
"jar": "208819c7c71690c15a6bb8b187474e7f9d0147946b680182a62b9f222ae014ec"
},
"version": "1.2.0"
},
"org.osgi:org.osgi.util.promise": {
"shasums": {
"jar": "fef86e64f584d012a16a0306160764f6179663b90988a226c4641b920f3a4b36"
},
"version": "1.2.0"
},
"org.osgi:org.osgi.util.tracker": {
"shasums": {
"jar": "7d78c2cc9bcb6421c24f17aa097866ce8d9115c219a4f8d6cc753bc4dfb97efa"
},
"version": "1.5.4"
},
"org.osgi:osgi.annotation": {
"shasums": {
"jar": "a0e8a4c362bd3600812f37b0ea45fba966c7bc049d01fed56a09ecc74082759e"
},
"version": "8.0.1"
},
"org.ow2.asm:asm": {
"shasums": {
"jar": "8cadd43ac5eb6d09de05faecca38b917a040bb9139c7edeb4cc81c740b713281"
},
"version": "9.7.1"
},
"org.ow2.asm:asm-analysis": {
"shasums": {
"jar": "be922aae60ff1ff1768e8e6544a38a7f92bd0a6d6b0b9791f94955d1bd453de2"
},
"version": "7.2"
},
"org.ow2.asm:asm-commons": {
"shasums": {
"jar": "9a579b54d292ad9be171d4313fd4739c635592c2b5ac3a459bbd1049cddec6a0"
},
"version": "9.7.1"
},
"org.ow2.asm:asm-tree": {
"shasums": {
"jar": "9929881f59eb6b840e86d54570c77b59ce721d104e6dfd7a40978991c2d3b41f"
},
"version": "9.7.1"
},
"org.ow2.asm:asm-util": {
"shasums": {
"jar": "6e24913b021ffacfe8e7e053d6e0ccc731941148cfa078d4f1ed3d96904530f8"
},
"version": "7.2"
},
"org.skyscreamer:jsonassert": {
"shasums": {
"jar": "719095c07d4203961320da593441d8b3b643c18eb1d81aa98ea933bb7eb351ba"
},
"version": "1.5.3"
},
"org.slf4j:jul-to-slf4j": {
"shasums": {
"jar": "a7afcd23b9cfd1475e55c94f943b808c5922035e7e2c2a5c65a487a4106bc538"
},
"version": "2.0.17"
},
"org.slf4j:slf4j-api": {
"shasums": {
"jar": "7b751d952061954d5abfed7181c1f645d336091b679891591d63329c622eb832"
},
"version": "2.0.17"
},
"org.springframework.boot:spring-boot": {
"shasums": {
"jar": "f134d42d19c1f707408e2ce6ace8d5887a9e7c3e50a351a75ada80afbbd6ecaf"
},
"version": "3.4.4"
},
"org.springframework.boot:spring-boot-actuator": {
"shasums": {
"jar": "94c1c6c9af96d4d2ca4af55b80c778b9750fcc63a378893f5873122b3b9c0dfc"
},
"version": "3.4.4"
},
"org.springframework.boot:spring-boot-actuator-autoconfigure": {
"shasums": {
"jar": "bed2fa189789b95d511ce1838dff9c041a34c93dac6f903c3a86959db033b7ac"
},
"version": "3.4.4"
},
"org.springframework.boot:spring-boot-autoconfigure": {
"shasums": {
"jar": "04a3b4f7c4e0ab39fb8b4dd77a2092ed5c036961133d278060af14455dc55d39"
},
"version": "3.4.4"
},
"org.springframework.boot:spring-boot-configuration-processor": {
"shasums": {
"jar": "b2db830eb773c97f7afe6b932af9b4cceded82ef44f7ef7da9855f63c1491791"
},
"version": "3.4.4"
},
"org.springframework.boot:spring-boot-jarmode-tools": {
"shasums": {
"jar": "c5e02a90aa82ef90a4770b75a6534dabee50702d1b7cefa38188a997f2308bdb"
},
"version": "3.4.4"
},
"org.springframework.boot:spring-boot-loader": {
"shasums": {
"jar": "55b6362f3b1c73b59f6b38d8fa6eca2cb576ee004650970c437e7b8f5c39c471"
},
"version": "3.4.4"
},
"org.springframework.boot:spring-boot-loader-tools": {
"shasums": {
"jar": "5b0d1f1c1d600f700c6d20b74c04f6e825b3f166ddd21b95d1930c04df9af5f7"
},
"version": "3.4.4"
},
"org.springframework.boot:spring-boot-starter": {
"shasums": {
"jar": "2fcdc0037fd1c0acebb4b1ef700818c97d8457fabc6d5bebc3878f584c1c727f"
},
"version": "3.4.4"
},
"org.springframework.boot:spring-boot-starter-actuator": {
"shasums": {
"jar": "738e74d67afbeb229ead61d3e233477ee9b45f007789079a5afd7f839ba417cf"
},
"version": "3.4.4"
},
"org.springframework.boot:spring-boot-starter-freemarker": {
"shasums": {
"jar": "c7bd38b5acbcaa51d3f1bdd5f994a0aa95271c041ff9d373235b9b192fe60f22"
},
"version": "3.4.4"
},
"org.springframework.boot:spring-boot-starter-jdbc": {
"shasums": {
"jar": "170abba02cb4b7d5bbda965872d54d587ec1fa7cd0494337ba6a29440b744e58"
},
"version": "3.4.4"
},
"org.springframework.boot:spring-boot-starter-jetty": {
"shasums": {
"jar": "8996a1b5038f95052515fe330e6769c0f4bde4de8b84d4b3a4039772ff134fa2"
},
"version": "3.4.4"
},
"org.springframework.boot:spring-boot-starter-json": {
"shasums": {
"jar": "c92ddd6f7d109a517391a59c0d9d4f0256d5c5ba8db5d1af4710e0ca17fdf2c2"
},
"version": "3.4.4"
},
"org.springframework.boot:spring-boot-starter-logging": {
"shasums": {
"jar": "1fcd1236a38b5eebc357527c058070669272b7b60c8394f887db882b4b47a240"
},
"version": "3.4.4"
},
"org.springframework.boot:spring-boot-starter-security": {
"shasums": {
"jar": "796452c20a9a0b46ed721d6f32fd35daf84074e8e345cec8318ad1217d08e7f1"
},
"version": "3.4.4"
},
"org.springframework.boot:spring-boot-starter-test": {
"shasums": {
"jar": "ef3e20f5cc7046ca4e79f5c756ff6a2b3d104acd43facf3e7cfefec7a15e8c08"
},
"version": "3.4.4"
},
"org.springframework.boot:spring-boot-starter-thymeleaf": {
"shasums": {
"jar": "cb6cd3fe4392b50bf58ec8ac20b103bbf15a3fcc1fda4891fb298e269ba8c1ee"
},
"version": "3.4.4"
},
"org.springframework.boot:spring-boot-starter-tomcat": {
"shasums": {
"jar": "fdae817f961cfc561af6f305895a2d334a3986bd4544d469e26a321814edff54"
},
"version": "3.4.4"
},
"org.springframework.boot:spring-boot-starter-web": {
"shasums": {
"jar": "c628b8d0d7c830c7ea3bc125950e11332b7ce3779ebd6d655f183e456ffe4481"
},
"version": "3.4.4"
},
"org.springframework.boot:spring-boot-test": {
"shasums": {
"jar": "bc69584886005c5607d89120fba3750bc689396c12586b6b917e21bd5bb92b15"
},
"version": "3.4.4"
},
"org.springframework.boot:spring-boot-test-autoconfigure": {
"shasums": {
"jar": "89626caa8edf7d47de5a8b6988c20b89abf4d73a04640d40fba3ad944399113a"
},
"version": "3.4.4"
},
"org.springframework.security:spring-security-config": {
"shasums": {
"jar": "f13f2365b4af41b33e40af657014db773de858d84c74f34c9ada471c96f9c169"
},
"version": "6.4.4"
},
"org.springframework.security:spring-security-core": {
"shasums": {
"jar": "d9f7ca559ecadc0700555fc16cbd4c8bdfbbedd2474f5fd1f0c429bed946658d"
},
"version": "6.4.4"
},
"org.springframework.security:spring-security-crypto": {
"shasums": {
"jar": "62b3424be620e457146a51a3da9aa878ee9874667cd2498d73085a8394d36940"
},
"version": "6.4.4"
},
"org.springframework.security:spring-security-web": {
"shasums": {
"jar": "7705eec34c86607d3e2c81965d20584fa46819baf311aa3e9381deebbeceb9a4"
},
"version": "6.4.4"
},
"org.springframework:spring-aop": {
"shasums": {
"jar": "dfde58e5b277e12e464d5f0d7d60c49ce10c96da94aa32a196a8711467af7dd8"
},
"version": "6.2.5"
},
"org.springframework:spring-aspects": {
"shasums": {
"jar": "4f8ef69ffc4cb3d651596a00f53b29dc813e40e75523ed5213547e20b47d8d8d"
},
"version": "6.2.5"
},
"org.springframework:spring-beans": {
"shasums": {
"jar": "63f7ff64a72187d71c402f8c77c5fe6ba9d38e03465e4f9a601c3522265051d4"
},
"version": "6.2.5"
},
"org.springframework:spring-context": {
"shasums": {
"jar": "21941e0c9f23310c78403f35a624b27f3a1301f1ccf5de250d7478956e7bab51"
},
"version": "6.2.5"
},
"org.springframework:spring-context-support": {
"shasums": {
"jar": "93f2de3b6236dd82ea52f3f184c1c3bd49496162d87f06ddbc426058905fcda7"
},
"version": "6.2.5"
},
"org.springframework:spring-core": {
"shasums": {
"jar": "4cee02cf2d0227c1f1bfb97c2edc29d3af83b93c83d08b38e5987c3fa0fe4f1e"
},
"version": "6.2.5"
},
"org.springframework:spring-expression": {
"shasums": {
"jar": "ec76c41d4e45779b48ae10020322b32ecb2e2f4f2d930b0d93844a44490d76c5"
},
"version": "6.2.5"
},
"org.springframework:spring-jcl": {
"shasums": {
"jar": "4f93915fab10c14df3b90054cfd5d1c01a29def59b6e25c0f33d9eac4ffec079"
},
"version": "6.2.5"
},
"org.springframework:spring-jdbc": {
"shasums": {
"jar": "2268b0a2fb0877f47677f6ea67f283d972b9591f4cd28d63719a3dfbabcd0a2d"
},
"version": "6.2.5"
},
"org.springframework:spring-test": {
"shasums": {
"jar": "5585586296cf9778d8d027971b529746561e0d9b2953d00956b27a1f5b1f0d7e"
},
"version": "6.2.5"
},
"org.springframework:spring-tx": {
"shasums": {
"jar": "a0fc4f275e04cf1b31dde8b5348e10ed03372cd734c6e3d14e0863263794a9e0"
},
"version": "6.2.5"
},
"org.springframework:spring-web": {
"shasums": {
"jar": "85f0c1acaf033a5f7abdcaf348f1dd2cebe1f77687ee77f05e8cb66bfbc6fecf"
},
"version": "6.2.5"
},
"org.springframework:spring-webmvc": {
"shasums": {
"jar": "b8d281aedf1e9cbf73bb2c6cf72d3eaf811f9298b2dc5017e9c40b3cb9284b46"
},
"version": "6.2.5"
},
"org.thymeleaf:thymeleaf": {
"shasums": {
"jar": "165ef16cd71020c4d572e77d73cf7baffd431f3f3e8c1d84b410de23dc79f92c"
},
"version": "3.1.3.RELEASE"
},
"org.thymeleaf:thymeleaf-spring6": {
"shasums": {
"jar": "79c7f0897008831e9cf87315c8ca452e5ea95d32cbf04648dc11f9e6bad0a50e"
},
"version": "3.1.3.RELEASE"
},
"org.unbescape:unbescape": {
"shasums": {
"jar": "597cf87d5b1a4f385b9d1cec974b7b483abb3ee85fc5b3f8b62af8e4bec95c2c"
},
"version": "1.1.6.RELEASE"
},
"org.xmlunit:xmlunit-core": {
"shasums": {
"jar": "3f89b0a629d3d9cca66e15f8dde5e0947852fa44172bc77ea26edf96e3e4fcf8"
},
"version": "2.10.0"
},
"org.yaml:snakeyaml": {
"shasums": {
"jar": "63a76fe66b652360bd4c2c107e6f0258daa7d4bb492008ba8c26fcd230ff9146"
},
"version": "2.3"
}
},
"dependencies": {
"biz.aQute.bnd:biz.aQute.bndlib": [
"biz.aQute.bnd:biz.aQute.bnd.util",
"org.osgi:org.osgi.dto",
"org.osgi:org.osgi.framework",
"org.osgi:org.osgi.resource",
"org.osgi:org.osgi.service.log",
"org.osgi:org.osgi.service.repository",
"org.osgi:org.osgi.util.function",
"org.osgi:org.osgi.util.promise",
"org.osgi:org.osgi.util.tracker",
"org.slf4j:slf4j-api"
],
"ch.qos.logback:logback-classic": [
"ch.qos.logback:logback-core",
"org.slf4j:slf4j-api"
],
"com.fasterxml.jackson.core:jackson-databind": [
"com.fasterxml.jackson.core:jackson-annotations",
"com.fasterxml.jackson.core:jackson-core"
],
"com.fasterxml.jackson.datatype:jackson-datatype-jdk8": [
"com.fasterxml.jackson.core:jackson-core",
"com.fasterxml.jackson.core:jackson-databind"
],
"com.fasterxml.jackson.datatype:jackson-datatype-jsr310": [
"com.fasterxml.jackson.core:jackson-annotations",
"com.fasterxml.jackson.core:jackson-core",
"com.fasterxml.jackson.core:jackson-databind"
],
"com.fasterxml.jackson.module:jackson-module-parameter-names": [
"com.fasterxml.jackson.core:jackson-core",
"com.fasterxml.jackson.core:jackson-databind"
],
"com.google.caliper:caliper": [
"com.google.caliper:caliper-core",
"com.google.caliper:caliper-runner",
"com.google.caliper:caliper-worker-jvm",
"com.google.code.java-allocation-instrumenter:java-allocation-instrumenter",
"com.google.dagger:dagger",
"com.google.guava:guava",
"com.sun.jersey:jersey-client"
],
"com.google.caliper:caliper-api": [
"com.google.guava:guava",
"joda-time:joda-time"
],
"com.google.caliper:caliper-core": [
"com.google.auto.value:auto-value-annotations",
"com.google.caliper:caliper-api",
"com.google.caliper:caliper-util",
"com.google.dagger:dagger",
"com.google.guava:guava",
"com.squareup.okhttp:okhttp",
"joda-time:joda-time"
],
"com.google.caliper:caliper-runner": [
"com.google.caliper:caliper-api",
"com.google.caliper:caliper-core",
"com.google.caliper:caliper-util",
"com.google.dagger:dagger",
"com.google.dagger:dagger-producers",
"com.google.guava:guava",
"com.squareup.okhttp:okhttp",
"joda-time:joda-time"
],
"com.google.caliper:caliper-util": [
"com.google.code.gson:gson",
"com.google.dagger:dagger",
"com.google.guava:guava",
"joda-time:joda-time"
],
"com.google.caliper:caliper-worker": [
"com.google.caliper:caliper-api",
"com.google.caliper:caliper-core",
"com.google.caliper:caliper-util",
"com.google.dagger:dagger",
"com.google.guava:guava",
"com.squareup.okhttp:okhttp",
"joda-time:joda-time"
],
"com.google.caliper:caliper-worker-jvm": [
"com.google.caliper:caliper-core",
"com.google.caliper:caliper-worker",
"com.google.code.java-allocation-instrumenter:java-allocation-instrumenter",
"com.google.dagger:dagger",
"com.google.guava:guava",
"com.sun.jersey:jersey-client"
],
"com.google.code.java-allocation-instrumenter:java-allocation-instrumenter": [
"com.google.guava:guava",
"javax.annotation:javax.annotation-api",
"org.ow2.asm:asm",
"org.ow2.asm:asm-analysis",
"org.ow2.asm:asm-commons",
"org.ow2.asm:asm-tree",
"org.ow2.asm:asm-util"
],
"com.google.dagger:dagger": [
"javax.inject:javax.inject"
],
"com.google.dagger:dagger-producers": [
"com.google.dagger:dagger",
"com.google.guava:guava",
"javax.inject:javax.inject",
"org.checkerframework:checker-compat-qual"
],
"com.google.guava:guava": [
"com.google.code.findbugs:jsr305",
"com.google.errorprone:error_prone_annotations",
"com.google.guava:failureaccess",
"com.google.guava:listenablefuture",
"com.google.j2objc:j2objc-annotations",
"org.checkerframework:checker-qual"
],
"com.google.guava:guava-testlib": [
"com.google.code.findbugs:jsr305",
"com.google.errorprone:error_prone_annotations",
"com.google.guava:guava",
"com.google.j2objc:j2objc-annotations",
"junit:junit",
"org.checkerframework:checker-qual"
],
"com.google.truth:truth": [
"com.google.auto.value:auto-value-annotations",
"com.google.errorprone:error_prone_annotations",
"com.google.guava:guava",
"junit:junit",
"org.checkerframework:checker-qual",
"org.ow2.asm:asm"
],
"com.jayway.jsonpath:json-path": [
"net.minidev:json-smart",
"org.slf4j:slf4j-api"
],
"com.squareup.okhttp:okhttp": [
"com.squareup.okio:okio"
],
"com.sun.jersey:jersey-client": [
"com.sun.jersey:jersey-core"
],
"com.sun.jersey:jersey-core": [
"javax.ws.rs:jsr311-api"
],
"com.zaxxer:HikariCP": [
"org.slf4j:slf4j-api"
],
"io.micrometer:micrometer-core": [
"io.micrometer:micrometer-commons",
"io.micrometer:micrometer-observation",
"org.hdrhistogram:HdrHistogram",
"org.latencyutils:LatencyUtils"
],
"io.micrometer:micrometer-jakarta9": [
"io.micrometer:micrometer-commons",
"io.micrometer:micrometer-core",
"io.micrometer:micrometer-observation"
],
"io.micrometer:micrometer-observation": [
"io.micrometer:micrometer-commons"
],
"jakarta.enterprise:jakarta.enterprise.cdi-api": [
"jakarta.annotation:jakarta.annotation-api",
"jakarta.enterprise:jakarta.enterprise.lang-model",
"jakarta.inject:jakarta.inject-api",
"jakarta.interceptor:jakarta.interceptor-api"
],
"jakarta.interceptor:jakarta.interceptor-api": [
"jakarta.annotation:jakarta.annotation-api"
],
"jakarta.xml.bind:jakarta.xml.bind-api": [
"jakarta.activation:jakarta.activation-api"
],
"junit:junit": [
"org.hamcrest:hamcrest-core"
],
"net.minidev:accessors-smart": [
"org.ow2.asm:asm"
],
"net.minidev:json-smart": [
"net.minidev:accessors-smart"
],
"org.apache.logging.log4j:log4j-to-slf4j": [
"org.apache.logging.log4j:log4j-api",
"org.slf4j:slf4j-api"
],
"org.apache.tomcat.embed:tomcat-embed-websocket": [
"org.apache.tomcat.embed:tomcat-embed-core"
],
"org.assertj:assertj-core": [
"net.bytebuddy:byte-buddy"
],
"org.awaitility:awaitility": [
"org.hamcrest:hamcrest"
],
"org.eclipse.jetty.ee10.websocket:jetty-ee10-websocket-jakarta-client": [
"jakarta.websocket:jakarta.websocket-api",
"jakarta.websocket:jakarta.websocket-client-api",
"org.eclipse.jetty.ee10.websocket:jetty-ee10-websocket-jakarta-common",
"org.eclipse.jetty.websocket:jetty-websocket-core-client",
"org.eclipse.jetty:jetty-client"
],
"org.eclipse.jetty.ee10.websocket:jetty-ee10-websocket-jakarta-common": [
"jakarta.websocket:jakarta.websocket-api",
"jakarta.websocket:jakarta.websocket-client-api",
"org.eclipse.jetty.websocket:jetty-websocket-core-client",
"org.slf4j:slf4j-api"
],
"org.eclipse.jetty.ee10.websocket:jetty-ee10-websocket-jakarta-server": [
"jakarta.websocket:jakarta.websocket-api",
"org.eclipse.jetty.ee10.websocket:jetty-ee10-websocket-jakarta-client",
"org.eclipse.jetty.ee10.websocket:jetty-ee10-websocket-servlet",
"org.eclipse.jetty.ee10:jetty-ee10-annotations",
"org.slf4j:slf4j-api"
],
"org.eclipse.jetty.ee10.websocket:jetty-ee10-websocket-jetty-server": [
"jakarta.servlet:jakarta.servlet-api",
"org.eclipse.jetty.ee10.websocket:jetty-ee10-websocket-servlet",
"org.eclipse.jetty.ee10:jetty-ee10-annotations",
"org.eclipse.jetty.ee10:jetty-ee10-servlet",
"org.eclipse.jetty.websocket:jetty-websocket-jetty-api",
"org.eclipse.jetty.websocket:jetty-websocket-jetty-common",
"org.slf4j:slf4j-api"
],
"org.eclipse.jetty.ee10.websocket:jetty-ee10-websocket-servlet": [
"org.eclipse.jetty.ee10:jetty-ee10-servlet",
"org.eclipse.jetty.websocket:jetty-websocket-core-server",
"org.slf4j:slf4j-api"
],
"org.eclipse.jetty.ee10:jetty-ee10-annotations": [
"jakarta.annotation:jakarta.annotation-api",
"jakarta.servlet:jakarta.servlet-api",
"org.eclipse.jetty.ee10:jetty-ee10-plus",
"org.eclipse.jetty.ee10:jetty-ee10-webapp",
"org.ow2.asm:asm",
"org.ow2.asm:asm-commons",
"org.slf4j:slf4j-api"
],
"org.eclipse.jetty.ee10:jetty-ee10-plus": [
"jakarta.enterprise:jakarta.enterprise.cdi-api",
"jakarta.enterprise:jakarta.enterprise.lang-model",
"jakarta.interceptor:jakarta.interceptor-api",
"jakarta.transaction:jakarta.transaction-api",
"org.eclipse.jetty.ee10:jetty-ee10-webapp",
"org.eclipse.jetty:jetty-plus",
"org.slf4j:slf4j-api"
],
"org.eclipse.jetty.ee10:jetty-ee10-servlet": [
"jakarta.servlet:jakarta.servlet-api",
"org.eclipse.jetty:jetty-security",
"org.eclipse.jetty:jetty-server",
"org.eclipse.jetty:jetty-session",
"org.slf4j:slf4j-api"
],
"org.eclipse.jetty.ee10:jetty-ee10-servlets": [
"org.eclipse.jetty:jetty-http",
"org.eclipse.jetty:jetty-io",
"org.eclipse.jetty:jetty-util",
"org.slf4j:slf4j-api"
],
"org.eclipse.jetty.ee10:jetty-ee10-webapp": [
"org.eclipse.jetty.ee10:jetty-ee10-servlet",
"org.eclipse.jetty:jetty-ee",
"org.eclipse.jetty:jetty-session",
"org.eclipse.jetty:jetty-xml",
"org.slf4j:slf4j-api"
],
"org.eclipse.jetty.websocket:jetty-websocket-core-client": [
"org.eclipse.jetty.websocket:jetty-websocket-core-common",
"org.eclipse.jetty:jetty-client"
],
"org.eclipse.jetty.websocket:jetty-websocket-core-common": [
"org.eclipse.jetty:jetty-http",
"org.eclipse.jetty:jetty-io",
"org.slf4j:slf4j-api"
],
"org.eclipse.jetty.websocket:jetty-websocket-core-server": [
"org.eclipse.jetty.websocket:jetty-websocket-core-common",
"org.eclipse.jetty:jetty-server"
],
"org.eclipse.jetty.websocket:jetty-websocket-jetty-common": [
"org.eclipse.jetty.websocket:jetty-websocket-core-common",
"org.eclipse.jetty.websocket:jetty-websocket-jetty-api"
],
"org.eclipse.jetty:jetty-alpn-client": [
"org.eclipse.jetty:jetty-io",
"org.slf4j:slf4j-api"
],
"org.eclipse.jetty:jetty-client": [
"org.eclipse.jetty:jetty-alpn-client",
"org.eclipse.jetty:jetty-http",
"org.eclipse.jetty:jetty-io",
"org.slf4j:slf4j-api"
],
"org.eclipse.jetty:jetty-ee": [
"org.eclipse.jetty:jetty-server",
"org.slf4j:slf4j-api"
],
"org.eclipse.jetty:jetty-http": [
"org.eclipse.jetty:jetty-io",
"org.eclipse.jetty:jetty-util",
"org.slf4j:slf4j-api"
],
"org.eclipse.jetty:jetty-io": [
"org.eclipse.jetty:jetty-util",
"org.slf4j:slf4j-api"
],
"org.eclipse.jetty:jetty-plus": [
"org.eclipse.jetty:jetty-security",
"org.eclipse.jetty:jetty-util",
"org.slf4j:slf4j-api"
],
"org.eclipse.jetty:jetty-security": [
"org.eclipse.jetty:jetty-server",
"org.slf4j:slf4j-api"
],
"org.eclipse.jetty:jetty-server": [
"org.eclipse.jetty:jetty-http",
"org.eclipse.jetty:jetty-io",
"org.slf4j:slf4j-api"
],
"org.eclipse.jetty:jetty-session": [
"org.eclipse.jetty:jetty-server",
"org.slf4j:slf4j-api"
],
"org.eclipse.jetty:jetty-util": [
"org.slf4j:slf4j-api"
],
"org.eclipse.jetty:jetty-xml": [
"org.eclipse.jetty:jetty-util",
"org.slf4j:slf4j-api"
],
"org.hamcrest:hamcrest-core": [
"org.hamcrest:hamcrest"
],
"org.junit.jupiter:junit-jupiter": [
"org.junit.jupiter:junit-jupiter-api",
"org.junit.jupiter:junit-jupiter-engine",
"org.junit.jupiter:junit-jupiter-params"
],
"org.junit.jupiter:junit-jupiter-api": [
"org.apiguardian:apiguardian-api",
"org.junit.platform:junit-platform-commons",
"org.opentest4j:opentest4j"
],
"org.junit.jupiter:junit-jupiter-engine": [
"org.apiguardian:apiguardian-api",
"org.junit.jupiter:junit-jupiter-api",
"org.junit.platform:junit-platform-engine"
],
"org.junit.jupiter:junit-jupiter-params": [
"org.apiguardian:apiguardian-api",
"org.junit.jupiter:junit-jupiter-api"
],
"org.junit.platform:junit-platform-commons": [
"org.apiguardian:apiguardian-api"
],
"org.junit.platform:junit-platform-engine": [
"org.apiguardian:apiguardian-api",
"org.junit.platform:junit-platform-commons",
"org.opentest4j:opentest4j"
],
"org.mockito:mockito-core": [
"net.bytebuddy:byte-buddy",
"net.bytebuddy:byte-buddy-agent",
"org.objenesis:objenesis"
],
"org.mockito:mockito-junit-jupiter": [
"org.junit.jupiter:junit-jupiter-api",
"org.mockito:mockito-core"
],
"org.osgi:org.osgi.util.function": [
"org.osgi:osgi.annotation"
],
"org.osgi:org.osgi.util.promise": [
"org.osgi:org.osgi.util.function",
"org.osgi:osgi.annotation"
],
"org.osgi:org.osgi.util.tracker": [
"org.osgi:osgi.annotation"
],
"org.ow2.asm:asm-analysis": [
"org.ow2.asm:asm-tree"
],
"org.ow2.asm:asm-commons": [
"org.ow2.asm:asm",
"org.ow2.asm:asm-tree"
],
"org.ow2.asm:asm-tree": [
"org.ow2.asm:asm"
],
"org.ow2.asm:asm-util": [
"org.ow2.asm:asm",
"org.ow2.asm:asm-analysis",
"org.ow2.asm:asm-tree"
],
"org.skyscreamer:jsonassert": [
"com.vaadin.external.google:android-json"
],
"org.slf4j:jul-to-slf4j": [
"org.slf4j:slf4j-api"
],
"org.springframework.boot:spring-boot": [
"org.springframework:spring-context",
"org.springframework:spring-core"
],
"org.springframework.boot:spring-boot-actuator": [
"org.springframework.boot:spring-boot"
],
"org.springframework.boot:spring-boot-actuator-autoconfigure": [
"com.fasterxml.jackson.core:jackson-databind",
"com.fasterxml.jackson.datatype:jackson-datatype-jsr310",
"org.springframework.boot:spring-boot",
"org.springframework.boot:spring-boot-actuator",
"org.springframework.boot:spring-boot-autoconfigure"
],
"org.springframework.boot:spring-boot-autoconfigure": [
"org.springframework.boot:spring-boot"
],
"org.springframework.boot:spring-boot-jarmode-tools": [
"org.springframework.boot:spring-boot-loader",
"org.springframework:spring-core"
],
"org.springframework.boot:spring-boot-loader-tools": [
"org.apache.commons:commons-compress",
"org.springframework:spring-core"
],
"org.springframework.boot:spring-boot-starter": [
"jakarta.annotation:jakarta.annotation-api",
"org.springframework.boot:spring-boot",
"org.springframework.boot:spring-boot-autoconfigure",
"org.springframework.boot:spring-boot-starter-logging",
"org.springframework:spring-core",
"org.yaml:snakeyaml"
],
"org.springframework.boot:spring-boot-starter-actuator": [
"io.micrometer:micrometer-jakarta9",
"io.micrometer:micrometer-observation",
"org.springframework.boot:spring-boot-actuator-autoconfigure",
"org.springframework.boot:spring-boot-starter"
],
"org.springframework.boot:spring-boot-starter-freemarker": [
"org.freemarker:freemarker",
"org.springframework.boot:spring-boot-starter",
"org.springframework:spring-context-support"
],
"org.springframework.boot:spring-boot-starter-jdbc": [
"com.zaxxer:HikariCP",
"org.springframework.boot:spring-boot-starter",
"org.springframework:spring-jdbc"
],
"org.springframework.boot:spring-boot-starter-jetty": [
"jakarta.servlet:jakarta.servlet-api",
"jakarta.websocket:jakarta.websocket-api",
"jakarta.websocket:jakarta.websocket-client-api",
"org.apache.tomcat.embed:tomcat-embed-el",
"org.eclipse.jetty.ee10.websocket:jetty-ee10-websocket-jakarta-server",
"org.eclipse.jetty.ee10.websocket:jetty-ee10-websocket-jetty-server",
"org.eclipse.jetty.ee10:jetty-ee10-servlets",
"org.eclipse.jetty.ee10:jetty-ee10-webapp"
],
"org.springframework.boot:spring-boot-starter-json": [
"com.fasterxml.jackson.core:jackson-databind",
"com.fasterxml.jackson.datatype:jackson-datatype-jdk8",
"com.fasterxml.jackson.datatype:jackson-datatype-jsr310",
"com.fasterxml.jackson.module:jackson-module-parameter-names",
"org.springframework.boot:spring-boot-starter",
"org.springframework:spring-web"
],
"org.springframework.boot:spring-boot-starter-logging": [
"ch.qos.logback:logback-classic",
"org.apache.logging.log4j:log4j-to-slf4j",
"org.slf4j:jul-to-slf4j"
],
"org.springframework.boot:spring-boot-starter-security": [
"org.springframework.boot:spring-boot-starter",
"org.springframework.security:spring-security-config",
"org.springframework.security:spring-security-web",
"org.springframework:spring-aop"
],
"org.springframework.boot:spring-boot-starter-test": [
"com.jayway.jsonpath:json-path",
"jakarta.xml.bind:jakarta.xml.bind-api",
"net.minidev:json-smart",
"org.assertj:assertj-core",
"org.awaitility:awaitility",
"org.hamcrest:hamcrest",
"org.junit.jupiter:junit-jupiter",
"org.mockito:mockito-core",
"org.mockito:mockito-junit-jupiter",
"org.skyscreamer:jsonassert",
"org.springframework.boot:spring-boot-starter",
"org.springframework.boot:spring-boot-test",
"org.springframework.boot:spring-boot-test-autoconfigure",
"org.springframework:spring-core",
"org.springframework:spring-test",
"org.xmlunit:xmlunit-core"
],
"org.springframework.boot:spring-boot-starter-thymeleaf": [
"org.springframework.boot:spring-boot-starter",
"org.thymeleaf:thymeleaf-spring6"
],
"org.springframework.boot:spring-boot-starter-tomcat": [
"jakarta.annotation:jakarta.annotation-api",
"org.apache.tomcat.embed:tomcat-embed-core",
"org.apache.tomcat.embed:tomcat-embed-el",
"org.apache.tomcat.embed:tomcat-embed-websocket"
],
"org.springframework.boot:spring-boot-starter-web": [
"org.springframework.boot:spring-boot-starter",
"org.springframework.boot:spring-boot-starter-json",
"org.springframework.boot:spring-boot-starter-tomcat",
"org.springframework:spring-web",
"org.springframework:spring-webmvc"
],
"org.springframework.boot:spring-boot-test": [
"org.springframework.boot:spring-boot",
"org.springframework:spring-test"
],
"org.springframework.boot:spring-boot-test-autoconfigure": [
"org.springframework.boot:spring-boot",
"org.springframework.boot:spring-boot-autoconfigure",
"org.springframework.boot:spring-boot-test"
],
"org.springframework.security:spring-security-config": [
"org.springframework.security:spring-security-core",
"org.springframework:spring-aop",
"org.springframework:spring-beans",
"org.springframework:spring-context",
"org.springframework:spring-core"
],
"org.springframework.security:spring-security-core": [
"io.micrometer:micrometer-observation",
"org.springframework.security:spring-security-crypto",
"org.springframework:spring-aop",
"org.springframework:spring-beans",
"org.springframework:spring-context",
"org.springframework:spring-core",
"org.springframework:spring-expression"
],
"org.springframework.security:spring-security-web": [
"org.springframework.security:spring-security-core",
"org.springframework:spring-aop",
"org.springframework:spring-beans",
"org.springframework:spring-context",
"org.springframework:spring-core",
"org.springframework:spring-expression",
"org.springframework:spring-web"
],
"org.springframework:spring-aop": [
"org.springframework:spring-beans",
"org.springframework:spring-core"
],
"org.springframework:spring-aspects": [
"org.aspectj:aspectjweaver"
],
"org.springframework:spring-beans": [
"org.springframework:spring-core"
],
"org.springframework:spring-context": [
"io.micrometer:micrometer-observation",
"org.springframework:spring-aop",
"org.springframework:spring-beans",
"org.springframework:spring-core",
"org.springframework:spring-expression"
],
"org.springframework:spring-context-support": [
"org.springframework:spring-beans",
"org.springframework:spring-context",
"org.springframework:spring-core"
],
"org.springframework:spring-core": [
"org.springframework:spring-jcl"
],
"org.springframework:spring-expression": [
"org.springframework:spring-core"
],
"org.springframework:spring-jdbc": [
"org.springframework:spring-beans",
"org.springframework:spring-core",
"org.springframework:spring-tx"
],
"org.springframework:spring-test": [
"org.springframework:spring-core"
],
"org.springframework:spring-tx": [
"org.springframework:spring-beans",
"org.springframework:spring-core"
],
"org.springframework:spring-web": [
"io.micrometer:micrometer-observation",
"org.springframework:spring-beans",
"org.springframework:spring-core"
],
"org.springframework:spring-webmvc": [
"org.springframework:spring-aop",
"org.springframework:spring-beans",
"org.springframework:spring-context",
"org.springframework:spring-core",
"org.springframework:spring-expression",
"org.springframework:spring-web"
],
"org.thymeleaf:thymeleaf": [
"org.attoparser:attoparser",
"org.slf4j:slf4j-api",
"org.unbescape:unbescape"
],
"org.thymeleaf:thymeleaf-spring6": [
"org.slf4j:slf4j-api",
"org.thymeleaf:thymeleaf"
],
"org.xmlunit:xmlunit-core": [
"jakarta.xml.bind:jakarta.xml.bind-api"
]
},
"packages": {
"biz.aQute.bnd:biz.aQute.bnd.util": [
"aQute.bnd.classfile",
"aQute.bnd.classfile.builder",
"aQute.bnd.classfile.preview",
"aQute.bnd.exceptions",
"aQute.bnd.memoize",
"aQute.bnd.result",
"aQute.bnd.signatures",
"aQute.bnd.stream",
"aQute.bnd.unmodifiable",
"aQute.lib.io",
"aQute.lib.stringrover",
"aQute.libg.glob"
],
"biz.aQute.bnd:biz.aQute.bndlib": [
"aQute.bnd.annotation",
"aQute.bnd.annotation.baseline",
"aQute.bnd.annotation.component",
"aQute.bnd.annotation.headers",
"aQute.bnd.annotation.jpms",
"aQute.bnd.annotation.licenses",
"aQute.bnd.annotation.metatype",
"aQute.bnd.annotation.plugin",
"aQute.bnd.annotation.service",
"aQute.bnd.annotation.spi",
"aQute.bnd.annotation.xml",
"aQute.bnd.apiguardian.api",
"aQute.bnd.aspectj.plugin",
"aQute.bnd.build",
"aQute.bnd.build.api",
"aQute.bnd.build.model",
"aQute.bnd.build.model.clauses",
"aQute.bnd.build.model.conversions",
"aQute.bnd.buildtool",
"aQute.bnd.bundle.annotations",
"aQute.bnd.cdi",
"aQute.bnd.classindex",
"aQute.bnd.compatibility",
"aQute.bnd.component",
"aQute.bnd.component.annotations",
"aQute.bnd.component.error",
"aQute.bnd.connection.settings",
"aQute.bnd.differ",
"aQute.bnd.exporter.executable",
"aQute.bnd.exporter.runbundles",
"aQute.bnd.filerepo",
"aQute.bnd.header",
"aQute.bnd.help",
"aQute.bnd.help.instructions",
"aQute.bnd.http",
"aQute.bnd.junit",
"aQute.bnd.make",
"aQute.bnd.make.calltree",
"aQute.bnd.make.component",
"aQute.bnd.make.coverage",
"aQute.bnd.make.metatype",
"aQute.bnd.maven",
"aQute.bnd.maven.support",
"aQute.bnd.metatype",
"aQute.bnd.metatype.annotations",
"aQute.bnd.obr",
"aQute.bnd.osgi",
"aQute.bnd.osgi.eclipse",
"aQute.bnd.osgi.repository",
"aQute.bnd.osgi.resource",
"aQute.bnd.plugin.ant",
"aQute.bnd.plugin.eclipse",
"aQute.bnd.plugin.git",
"aQute.bnd.plugin.gradle",
"aQute.bnd.plugin.jpms",
"aQute.bnd.plugin.maven",
"aQute.bnd.plugin.spi",
"aQute.bnd.print",
"aQute.bnd.properties",
"aQute.bnd.remoteworkspace.client",
"aQute.bnd.remoteworkspace.server",
"aQute.bnd.resource.repository",
"aQute.bnd.service",
"aQute.bnd.service.action",
"aQute.bnd.service.classparser",
"aQute.bnd.service.clipboard",
"aQute.bnd.service.diff",
"aQute.bnd.service.export",
"aQute.bnd.service.extension",
"aQute.bnd.service.externalplugin",
"aQute.bnd.service.generate",
"aQute.bnd.service.library",
"aQute.bnd.service.lifecycle",
"aQute.bnd.service.maven",
"aQute.bnd.service.message",
"aQute.bnd.service.progress",
"aQute.bnd.service.release",
"aQute.bnd.service.remotelaunch",
"aQute.bnd.service.remoteworkspace",
"aQute.bnd.service.reporter",
"aQute.bnd.service.repository",
"aQute.bnd.service.resolve.hook",
"aQute.bnd.service.specifications",
"aQute.bnd.service.url",
"aQute.bnd.service.verifier",
"aQute.bnd.signing",
"aQute.bnd.url",
"aQute.bnd.util.dto",
"aQute.bnd.util.home",
"aQute.bnd.util.repository",
"aQute.bnd.version",
"aQute.bnd.version.maven",
"aQute.bnd.xmlattribute",
"aQute.lib.aspects",
"aQute.lib.base64",
"aQute.lib.collections",
"aQute.lib.concurrent.serial",
"aQute.lib.concurrentinit",
"aQute.lib.converter",
"aQute.lib.date",
"aQute.lib.deployer",
"aQute.lib.fileset",
"aQute.lib.filter",
"aQute.lib.formatter",
"aQute.lib.hex",
"aQute.lib.hierarchy",
"aQute.lib.io",
"aQute.lib.json",
"aQute.lib.link",
"aQute.lib.manifest",
"aQute.lib.mavenpasswordobfuscator",
"aQute.lib.persistentmap",
"aQute.lib.redirect",
"aQute.lib.settings",
"aQute.lib.specinterface",
"aQute.lib.spring",
"aQute.lib.stringrover",
"aQute.lib.strings",
"aQute.lib.tag",
"aQute.lib.utf8properties",
"aQute.lib.watcher",
"aQute.lib.xml",
"aQute.lib.xpath",
"aQute.lib.zip",
"aQute.libg.command",
"aQute.libg.cryptography",
"aQute.libg.filelock",
"aQute.libg.generics",
"aQute.libg.glob",
"aQute.libg.gzip",
"aQute.libg.ints",
"aQute.libg.map",
"aQute.libg.qtokens",
"aQute.libg.reporter",
"aQute.libg.reporter.slf4j",
"aQute.libg.sed",
"aQute.libg.tuple",
"aQute.libg.uri",
"aQute.service.reporter"
],
"ch.qos.logback:logback-classic": [
"ch.qos.logback.classic",
"ch.qos.logback.classic.boolex",
"ch.qos.logback.classic.encoder",
"ch.qos.logback.classic.filter",
"ch.qos.logback.classic.helpers",
"ch.qos.logback.classic.html",
"ch.qos.logback.classic.joran",
"ch.qos.logback.classic.joran.action",
"ch.qos.logback.classic.joran.sanity",
"ch.qos.logback.classic.joran.serializedModel",
"ch.qos.logback.classic.jul",
"ch.qos.logback.classic.layout",
"ch.qos.logback.classic.log4j",
"ch.qos.logback.classic.model",
"ch.qos.logback.classic.model.processor",
"ch.qos.logback.classic.model.util",
"ch.qos.logback.classic.net",
"ch.qos.logback.classic.net.server",
"ch.qos.logback.classic.pattern",
"ch.qos.logback.classic.pattern.color",
"ch.qos.logback.classic.selector",
"ch.qos.logback.classic.selector.servlet",
"ch.qos.logback.classic.servlet",
"ch.qos.logback.classic.sift",
"ch.qos.logback.classic.spi",
"ch.qos.logback.classic.turbo",
"ch.qos.logback.classic.tyler",
"ch.qos.logback.classic.util"
],
"ch.qos.logback:logback-core": [
"ch.qos.logback.core",
"ch.qos.logback.core.boolex",
"ch.qos.logback.core.encoder",
"ch.qos.logback.core.filter",
"ch.qos.logback.core.helpers",
"ch.qos.logback.core.hook",
"ch.qos.logback.core.html",
"ch.qos.logback.core.joran",
"ch.qos.logback.core.joran.action",
"ch.qos.logback.core.joran.conditional",
"ch.qos.logback.core.joran.event",
"ch.qos.logback.core.joran.node",
"ch.qos.logback.core.joran.sanity",
"ch.qos.logback.core.joran.spi",
"ch.qos.logback.core.joran.util",
"ch.qos.logback.core.joran.util.beans",
"ch.qos.logback.core.layout",
"ch.qos.logback.core.model",
"ch.qos.logback.core.model.conditional",
"ch.qos.logback.core.model.processor",
"ch.qos.logback.core.model.processor.conditional",
"ch.qos.logback.core.model.util",
"ch.qos.logback.core.net",
"ch.qos.logback.core.net.server",
"ch.qos.logback.core.net.ssl",
"ch.qos.logback.core.pattern",
"ch.qos.logback.core.pattern.color",
"ch.qos.logback.core.pattern.parser",
"ch.qos.logback.core.pattern.util",
"ch.qos.logback.core.property",
"ch.qos.logback.core.read",
"ch.qos.logback.core.recovery",
"ch.qos.logback.core.rolling",
"ch.qos.logback.core.rolling.helper",
"ch.qos.logback.core.sift",
"ch.qos.logback.core.spi",
"ch.qos.logback.core.status",
"ch.qos.logback.core.subst",
"ch.qos.logback.core.testUtil",
"ch.qos.logback.core.util"
],
"com.fasterxml.jackson.core:jackson-annotations": [
"com.fasterxml.jackson.annotation"
],
"com.fasterxml.jackson.core:jackson-core": [
"com.fasterxml.jackson.core",
"com.fasterxml.jackson.core.async",
"com.fasterxml.jackson.core.base",
"com.fasterxml.jackson.core.exc",
"com.fasterxml.jackson.core.filter",
"com.fasterxml.jackson.core.format",
"com.fasterxml.jackson.core.internal.shaded.fdp.v2_18_3",
"com.fasterxml.jackson.core.io",
"com.fasterxml.jackson.core.io.schubfach",
"com.fasterxml.jackson.core.json",
"com.fasterxml.jackson.core.json.async",
"com.fasterxml.jackson.core.sym",
"com.fasterxml.jackson.core.type",
"com.fasterxml.jackson.core.util"
],
"com.fasterxml.jackson.core:jackson-databind": [
"com.fasterxml.jackson.databind",
"com.fasterxml.jackson.databind.annotation",
"com.fasterxml.jackson.databind.cfg",
"com.fasterxml.jackson.databind.deser",
"com.fasterxml.jackson.databind.deser.impl",
"com.fasterxml.jackson.databind.deser.std",
"com.fasterxml.jackson.databind.exc",
"com.fasterxml.jackson.databind.ext",
"com.fasterxml.jackson.databind.introspect",
"com.fasterxml.jackson.databind.jdk14",
"com.fasterxml.jackson.databind.json",
"com.fasterxml.jackson.databind.jsonFormatVisitors",
"com.fasterxml.jackson.databind.jsonschema",
"com.fasterxml.jackson.databind.jsontype",
"com.fasterxml.jackson.databind.jsontype.impl",
"com.fasterxml.jackson.databind.module",
"com.fasterxml.jackson.databind.node",
"com.fasterxml.jackson.databind.ser",
"com.fasterxml.jackson.databind.ser.impl",
"com.fasterxml.jackson.databind.ser.std",
"com.fasterxml.jackson.databind.type",
"com.fasterxml.jackson.databind.util",
"com.fasterxml.jackson.databind.util.internal"
],
"com.fasterxml.jackson.datatype:jackson-datatype-jdk8": [
"com.fasterxml.jackson.datatype.jdk8"
],
"com.fasterxml.jackson.datatype:jackson-datatype-jsr310": [
"com.fasterxml.jackson.datatype.jsr310",
"com.fasterxml.jackson.datatype.jsr310.deser",
"com.fasterxml.jackson.datatype.jsr310.deser.key",
"com.fasterxml.jackson.datatype.jsr310.ser",
"com.fasterxml.jackson.datatype.jsr310.ser.key",
"com.fasterxml.jackson.datatype.jsr310.util"
],
"com.fasterxml.jackson.module:jackson-module-parameter-names": [
"com.fasterxml.jackson.module.paramnames"
],
"com.google.auto.value:auto-value-annotations": [
"com.google.auto.value",
"com.google.auto.value.extension.memoized",
"com.google.auto.value.extension.serializable",
"com.google.auto.value.extension.toprettystring"
],
"com.google.caliper:caliper": [
"com.google.caliper.runner",
"com.google.caliper.runner.instrument",
"com.google.caliper.runner.resultprocessor"
],
"com.google.caliper:caliper-api": [
"com.google.caliper",
"com.google.caliper.api",
"com.google.caliper.model"
],
"com.google.caliper:caliper-core": [
"com.google.caliper.bridge",
"com.google.caliper.core",
"com.google.caliper.memory"
],
"com.google.caliper:caliper-runner": [
"com.google.caliper.runner",
"com.google.caliper.runner.config",
"com.google.caliper.runner.experiment",
"com.google.caliper.runner.instrument",
"com.google.caliper.runner.options",
"com.google.caliper.runner.resultprocessor",
"com.google.caliper.runner.server",
"com.google.caliper.runner.target",
"com.google.caliper.runner.worker",
"com.google.caliper.runner.worker.dryrun",
"com.google.caliper.runner.worker.targetinfo",
"com.google.caliper.runner.worker.trial"
],
"com.google.caliper:caliper-util": [
"com.google.caliper.json",
"com.google.caliper.util"
],
"com.google.caliper:caliper-worker": [
"com.google.caliper.worker",
"com.google.caliper.worker.connection",
"com.google.caliper.worker.handler",
"com.google.caliper.worker.instrument"
],
"com.google.caliper:caliper-worker-jvm": [
"com.google.caliper.worker"
],
"com.google.code.findbugs:jsr305": [
"javax.annotation",
"javax.annotation.concurrent",
"javax.annotation.meta"
],
"com.google.code.gson:gson": [
"com.google.gson",
"com.google.gson.annotations",
"com.google.gson.internal",
"com.google.gson.internal.bind",
"com.google.gson.internal.bind.util",
"com.google.gson.internal.reflect",
"com.google.gson.internal.sql",
"com.google.gson.reflect",
"com.google.gson.stream"
],
"com.google.code.java-allocation-instrumenter:java-allocation-instrumenter": [
"com.google.monitoring.runtime.instrumentation",
"com.google.monitoring.runtime.instrumentation.asm",
"com.google.monitoring.runtime.instrumentation.asm.commons",
"com.google.monitoring.runtime.instrumentation.asm.signature",
"com.google.monitoring.runtime.instrumentation.asm.tree",
"com.google.monitoring.runtime.instrumentation.asm.tree.analysis",
"com.google.monitoring.runtime.instrumentation.asm.util",
"com.google.monitoring.runtime.instrumentation.checker.nullness.compatqual",
"com.google.monitoring.runtime.instrumentation.common.annotations",
"com.google.monitoring.runtime.instrumentation.common.base",
"com.google.monitoring.runtime.instrumentation.common.base.internal",
"com.google.monitoring.runtime.instrumentation.common.cache",
"com.google.monitoring.runtime.instrumentation.common.collect",
"com.google.monitoring.runtime.instrumentation.common.escape",
"com.google.monitoring.runtime.instrumentation.common.eventbus",
"com.google.monitoring.runtime.instrumentation.common.graph",
"com.google.monitoring.runtime.instrumentation.common.hash",
"com.google.monitoring.runtime.instrumentation.common.html",
"com.google.monitoring.runtime.instrumentation.common.io",
"com.google.monitoring.runtime.instrumentation.common.math",
"com.google.monitoring.runtime.instrumentation.common.net",
"com.google.monitoring.runtime.instrumentation.common.primitives",
"com.google.monitoring.runtime.instrumentation.common.reflect",
"com.google.monitoring.runtime.instrumentation.common.util.concurrent",
"com.google.monitoring.runtime.instrumentation.common.xml",
"com.google.monitoring.runtime.instrumentation.errorprone.annotations",
"com.google.monitoring.runtime.instrumentation.errorprone.annotations.concurrent",
"com.google.monitoring.runtime.instrumentation.j2objc.annotations",
"com.google.thirdparty.publicsuffix"
],
"com.google.dagger:dagger": [
"dagger",
"dagger.internal",
"dagger.multibindings"
],
"com.google.dagger:dagger-producers": [
"dagger.producers",
"dagger.producers.internal",
"dagger.producers.monitoring",
"dagger.producers.monitoring.internal"
],
"com.google.errorprone:error_prone_annotations": [
"com.google.errorprone.annotations",
"com.google.errorprone.annotations.concurrent"
],
"com.google.guava:failureaccess": [
"com.google.common.util.concurrent.internal"
],
"com.google.guava:guava": [
"com.google.common.annotations",
"com.google.common.base",
"com.google.common.base.internal",
"com.google.common.cache",
"com.google.common.collect",
"com.google.common.escape",
"com.google.common.eventbus",
"com.google.common.graph",
"com.google.common.hash",
"com.google.common.html",
"com.google.common.io",
"com.google.common.math",
"com.google.common.net",
"com.google.common.primitives",
"com.google.common.reflect",
"com.google.common.util.concurrent",
"com.google.common.xml",
"com.google.thirdparty.publicsuffix"
],
"com.google.guava:guava-testlib": [
"com.google.common.collect.testing",
"com.google.common.collect.testing.features",
"com.google.common.collect.testing.google",
"com.google.common.collect.testing.suites",
"com.google.common.collect.testing.testers",
"com.google.common.escape.testing",
"com.google.common.testing",
"com.google.common.util.concurrent.testing"
],
"com.google.j2objc:j2objc-annotations": [
"com.google.j2objc.annotations"
],
"com.google.truth:truth": [
"com.google.common.truth"
],
"com.jayway.jsonpath:json-path": [
"com.jayway.jsonpath",
"com.jayway.jsonpath.internal",
"com.jayway.jsonpath.internal.filter",
"com.jayway.jsonpath.internal.function",
"com.jayway.jsonpath.internal.function.json",
"com.jayway.jsonpath.internal.function.latebinding",
"com.jayway.jsonpath.internal.function.numeric",
"com.jayway.jsonpath.internal.function.sequence",
"com.jayway.jsonpath.internal.function.text",
"com.jayway.jsonpath.internal.path",
"com.jayway.jsonpath.spi.cache",
"com.jayway.jsonpath.spi.json",
"com.jayway.jsonpath.spi.mapper"
],
"com.squareup.okhttp:okhttp": [
"com.squareup.okhttp",
"com.squareup.okhttp.internal",
"com.squareup.okhttp.internal.framed",
"com.squareup.okhttp.internal.http",
"com.squareup.okhttp.internal.io",
"com.squareup.okhttp.internal.tls"
],
"com.squareup.okio:okio": [
"okio"
],
"com.sun.jersey:jersey-client": [
"com.sun.jersey.api.client",
"com.sun.jersey.api.client.async",
"com.sun.jersey.api.client.config",
"com.sun.jersey.api.client.filter",
"com.sun.jersey.client.impl",
"com.sun.jersey.client.impl.async",
"com.sun.jersey.client.proxy",
"com.sun.jersey.client.urlconnection",
"com.sun.ws.rs.ext"
],
"com.sun.jersey:jersey-core": [
"com.sun.jersey.api.provider.jaxb",
"com.sun.jersey.api.representation",
"com.sun.jersey.api.uri",
"com.sun.jersey.core.header",
"com.sun.jersey.core.header.reader",
"com.sun.jersey.core.impl.provider.entity",
"com.sun.jersey.core.impl.provider.header",
"com.sun.jersey.core.impl.provider.xml",
"com.sun.jersey.core.osgi",
"com.sun.jersey.core.provider",
"com.sun.jersey.core.provider.jaxb",
"com.sun.jersey.core.reflection",
"com.sun.jersey.core.spi.component",
"com.sun.jersey.core.spi.component.ioc",
"com.sun.jersey.core.spi.factory",
"com.sun.jersey.core.spi.scanning",
"com.sun.jersey.core.spi.scanning.uri",
"com.sun.jersey.core.util",
"com.sun.jersey.impl",
"com.sun.jersey.localization",
"com.sun.jersey.spi",
"com.sun.jersey.spi.inject",
"com.sun.jersey.spi.service"
],
"com.vaadin.external.google:android-json": [
"org.json"
],
"com.zaxxer:HikariCP": [
"com.zaxxer.hikari",
"com.zaxxer.hikari.hibernate",
"com.zaxxer.hikari.metrics",
"com.zaxxer.hikari.metrics.dropwizard",
"com.zaxxer.hikari.metrics.micrometer",
"com.zaxxer.hikari.metrics.prometheus",
"com.zaxxer.hikari.pool",
"com.zaxxer.hikari.util"
],
"info.picocli:picocli": [
"picocli"
],
"io.micrometer:micrometer-commons": [
"io.micrometer.common",
"io.micrometer.common.annotation",
"io.micrometer.common.docs",
"io.micrometer.common.lang",
"io.micrometer.common.util",
"io.micrometer.common.util.internal.logging"
],
"io.micrometer:micrometer-core": [
"io.micrometer.core.annotation",
"io.micrometer.core.aop",
"io.micrometer.core.instrument",
"io.micrometer.core.instrument.binder",
"io.micrometer.core.instrument.binder.cache",
"io.micrometer.core.instrument.binder.commonspool2",
"io.micrometer.core.instrument.binder.db",
"io.micrometer.core.instrument.binder.grpc",
"io.micrometer.core.instrument.binder.http",
"io.micrometer.core.instrument.binder.httpcomponents",
"io.micrometer.core.instrument.binder.httpcomponents.hc5",
"io.micrometer.core.instrument.binder.hystrix",
"io.micrometer.core.instrument.binder.jdk",
"io.micrometer.core.instrument.binder.jersey.server",
"io.micrometer.core.instrument.binder.jetty",
"io.micrometer.core.instrument.binder.jpa",
"io.micrometer.core.instrument.binder.jvm",
"io.micrometer.core.instrument.binder.kafka",
"io.micrometer.core.instrument.binder.logging",
"io.micrometer.core.instrument.binder.mongodb",
"io.micrometer.core.instrument.binder.netty4",
"io.micrometer.core.instrument.binder.okhttp3",
"io.micrometer.core.instrument.binder.system",
"io.micrometer.core.instrument.binder.tomcat",
"io.micrometer.core.instrument.composite",
"io.micrometer.core.instrument.config",
"io.micrometer.core.instrument.config.validate",
"io.micrometer.core.instrument.cumulative",
"io.micrometer.core.instrument.distribution",
"io.micrometer.core.instrument.distribution.pause",
"io.micrometer.core.instrument.docs",
"io.micrometer.core.instrument.dropwizard",
"io.micrometer.core.instrument.internal",
"io.micrometer.core.instrument.kotlin",
"io.micrometer.core.instrument.logging",
"io.micrometer.core.instrument.noop",
"io.micrometer.core.instrument.observation",
"io.micrometer.core.instrument.push",
"io.micrometer.core.instrument.search",
"io.micrometer.core.instrument.simple",
"io.micrometer.core.instrument.step",
"io.micrometer.core.instrument.util",
"io.micrometer.core.ipc.http",
"io.micrometer.core.lang",
"io.micrometer.core.util.internal.logging"
],
"io.micrometer:micrometer-jakarta9": [
"io.micrometer.jakarta9.instrument.jms"
],
"io.micrometer:micrometer-observation": [
"io.micrometer.observation",
"io.micrometer.observation.annotation",
"io.micrometer.observation.aop",
"io.micrometer.observation.contextpropagation",
"io.micrometer.observation.docs",
"io.micrometer.observation.transport"
],
"jakarta.activation:jakarta.activation-api": [
"jakarta.activation",
"jakarta.activation.spi"
],
"jakarta.annotation:jakarta.annotation-api": [
"jakarta.annotation",
"jakarta.annotation.security",
"jakarta.annotation.sql"
],
"jakarta.enterprise:jakarta.enterprise.cdi-api": [
"jakarta.decorator",
"jakarta.enterprise.context",
"jakarta.enterprise.context.control",
"jakarta.enterprise.context.spi",
"jakarta.enterprise.event",
"jakarta.enterprise.inject",
"jakarta.enterprise.inject.build.compatible.spi",
"jakarta.enterprise.inject.literal",
"jakarta.enterprise.inject.se",
"jakarta.enterprise.inject.spi",
"jakarta.enterprise.inject.spi.configurator",
"jakarta.enterprise.util"
],
"jakarta.enterprise:jakarta.enterprise.lang-model": [
"jakarta.enterprise.lang.model",
"jakarta.enterprise.lang.model.declarations",
"jakarta.enterprise.lang.model.types"
],
"jakarta.inject:jakarta.inject-api": [
"jakarta.inject"
],
"jakarta.interceptor:jakarta.interceptor-api": [
"jakarta.interceptor"
],
"jakarta.servlet:jakarta.servlet-api": [
"jakarta.servlet",
"jakarta.servlet.annotation",
"jakarta.servlet.descriptor",
"jakarta.servlet.http"
],
"jakarta.transaction:jakarta.transaction-api": [
"jakarta.transaction"
],
"jakarta.websocket:jakarta.websocket-api": [
"jakarta.websocket.server"
],
"jakarta.websocket:jakarta.websocket-client-api": [
"jakarta.websocket"
],
"jakarta.xml.bind:jakarta.xml.bind-api": [
"jakarta.xml.bind",
"jakarta.xml.bind.annotation",
"jakarta.xml.bind.annotation.adapters",
"jakarta.xml.bind.attachment",
"jakarta.xml.bind.helpers",
"jakarta.xml.bind.util"
],
"javax.annotation:javax.annotation-api": [
"javax.annotation",
"javax.annotation.security",
"javax.annotation.sql"
],
"javax.inject:javax.inject": [
"javax.inject"
],
"javax.ws.rs:jsr311-api": [
"javax.ws.rs",
"javax.ws.rs.core",
"javax.ws.rs.ext"
],
"joda-time:joda-time": [
"org.joda.time",
"org.joda.time.base",
"org.joda.time.chrono",
"org.joda.time.convert",
"org.joda.time.field",
"org.joda.time.format",
"org.joda.time.tz"
],
"junit:junit": [
"junit.extensions",
"junit.framework",
"junit.runner",
"junit.textui",
"org.junit",
"org.junit.experimental",
"org.junit.experimental.categories",
"org.junit.experimental.max",
"org.junit.experimental.results",
"org.junit.experimental.runners",
"org.junit.experimental.theories",
"org.junit.experimental.theories.internal",
"org.junit.experimental.theories.suppliers",
"org.junit.function",
"org.junit.internal",
"org.junit.internal.builders",
"org.junit.internal.management",
"org.junit.internal.matchers",
"org.junit.internal.requests",
"org.junit.internal.runners",
"org.junit.internal.runners.model",
"org.junit.internal.runners.rules",
"org.junit.internal.runners.statements",
"org.junit.matchers",
"org.junit.rules",
"org.junit.runner",
"org.junit.runner.manipulation",
"org.junit.runner.notification",
"org.junit.runners",
"org.junit.runners.model",
"org.junit.runners.parameterized",
"org.junit.validator"
],
"net.bytebuddy:byte-buddy": [
"net.bytebuddy",
"net.bytebuddy.agent.builder",
"net.bytebuddy.asm",
"net.bytebuddy.build",
"net.bytebuddy.description",
"net.bytebuddy.description.annotation",
"net.bytebuddy.description.enumeration",
"net.bytebuddy.description.field",
"net.bytebuddy.description.method",
"net.bytebuddy.description.modifier",
"net.bytebuddy.description.type",
"net.bytebuddy.dynamic",
"net.bytebuddy.dynamic.loading",
"net.bytebuddy.dynamic.scaffold",
"net.bytebuddy.dynamic.scaffold.inline",
"net.bytebuddy.dynamic.scaffold.subclass",
"net.bytebuddy.implementation",
"net.bytebuddy.implementation.attribute",
"net.bytebuddy.implementation.auxiliary",
"net.bytebuddy.implementation.bind",
"net.bytebuddy.implementation.bind.annotation",
"net.bytebuddy.implementation.bytecode",
"net.bytebuddy.implementation.bytecode.assign",
"net.bytebuddy.implementation.bytecode.assign.primitive",
"net.bytebuddy.implementation.bytecode.assign.reference",
"net.bytebuddy.implementation.bytecode.collection",
"net.bytebuddy.implementation.bytecode.constant",
"net.bytebuddy.implementation.bytecode.member",
"net.bytebuddy.jar.asm",
"net.bytebuddy.jar.asm.commons",
"net.bytebuddy.jar.asm.signature",
"net.bytebuddy.matcher",
"net.bytebuddy.pool",
"net.bytebuddy.utility",
"net.bytebuddy.utility.dispatcher",
"net.bytebuddy.utility.nullability",
"net.bytebuddy.utility.privilege",
"net.bytebuddy.utility.visitor"
],
"net.bytebuddy:byte-buddy-agent": [
"net.bytebuddy.agent",
"net.bytebuddy.agent.utility.nullability"
],
"net.minidev:accessors-smart": [
"net.minidev.asm",
"net.minidev.asm.ex"
],
"net.minidev:json-smart": [
"net.minidev.json",
"net.minidev.json.annotate",
"net.minidev.json.parser",
"net.minidev.json.reader",
"net.minidev.json.writer"
],
"org.apache.commons:commons-compress": [
"org.apache.commons.compress",
"org.apache.commons.compress.archivers",
"org.apache.commons.compress.archivers.ar",
"org.apache.commons.compress.archivers.arj",
"org.apache.commons.compress.archivers.cpio",
"org.apache.commons.compress.archivers.dump",
"org.apache.commons.compress.archivers.examples",
"org.apache.commons.compress.archivers.jar",
"org.apache.commons.compress.archivers.sevenz",
"org.apache.commons.compress.archivers.tar",
"org.apache.commons.compress.archivers.zip",
"org.apache.commons.compress.changes",
"org.apache.commons.compress.compressors",
"org.apache.commons.compress.compressors.brotli",
"org.apache.commons.compress.compressors.bzip2",
"org.apache.commons.compress.compressors.deflate",
"org.apache.commons.compress.compressors.deflate64",
"org.apache.commons.compress.compressors.gzip",
"org.apache.commons.compress.compressors.lz4",
"org.apache.commons.compress.compressors.lz77support",
"org.apache.commons.compress.compressors.lzma",
"org.apache.commons.compress.compressors.lzw",
"org.apache.commons.compress.compressors.pack200",
"org.apache.commons.compress.compressors.snappy",
"org.apache.commons.compress.compressors.xz",
"org.apache.commons.compress.compressors.z",
"org.apache.commons.compress.compressors.zstandard",
"org.apache.commons.compress.harmony",
"org.apache.commons.compress.harmony.archive.internal.nls",
"org.apache.commons.compress.harmony.pack200",
"org.apache.commons.compress.harmony.unpack200",
"org.apache.commons.compress.harmony.unpack200.bytecode",
"org.apache.commons.compress.harmony.unpack200.bytecode.forms",
"org.apache.commons.compress.java.util.jar",
"org.apache.commons.compress.parallel",
"org.apache.commons.compress.utils"
],
"org.apache.logging.log4j:log4j-api": [
"org.apache.logging.log4j",
"org.apache.logging.log4j.internal",
"org.apache.logging.log4j.internal.map",
"org.apache.logging.log4j.message",
"org.apache.logging.log4j.simple",
"org.apache.logging.log4j.simple.internal",
"org.apache.logging.log4j.spi",
"org.apache.logging.log4j.status",
"org.apache.logging.log4j.util",
"org.apache.logging.log4j.util.internal"
],
"org.apache.logging.log4j:log4j-to-slf4j": [
"org.apache.logging.slf4j"
],
"org.apache.tomcat.embed:tomcat-embed-core": [
"jakarta.security.auth.message",
"jakarta.security.auth.message.callback",
"jakarta.security.auth.message.config",
"jakarta.security.auth.message.module",
"jakarta.servlet",
"jakarta.servlet.annotation",
"jakarta.servlet.descriptor",
"jakarta.servlet.http",
"org.apache.catalina",
"org.apache.catalina.authenticator",
"org.apache.catalina.authenticator.jaspic",
"org.apache.catalina.connector",
"org.apache.catalina.core",
"org.apache.catalina.deploy",
"org.apache.catalina.filters",
"org.apache.catalina.loader",
"org.apache.catalina.manager",
"org.apache.catalina.manager.host",
"org.apache.catalina.manager.util",
"org.apache.catalina.mapper",
"org.apache.catalina.mbeans",
"org.apache.catalina.realm",
"org.apache.catalina.security",
"org.apache.catalina.servlets",
"org.apache.catalina.session",
"org.apache.catalina.startup",
"org.apache.catalina.users",
"org.apache.catalina.util",
"org.apache.catalina.valves",
"org.apache.catalina.valves.rewrite",
"org.apache.catalina.webresources",
"org.apache.catalina.webresources.war",
"org.apache.coyote",
"org.apache.coyote.ajp",
"org.apache.coyote.http11",
"org.apache.coyote.http11.filters",
"org.apache.coyote.http11.upgrade",
"org.apache.coyote.http2",
"org.apache.juli",
"org.apache.juli.logging",
"org.apache.naming",
"org.apache.naming.factory",
"org.apache.naming.factory.webservices",
"org.apache.naming.java",
"org.apache.tomcat",
"org.apache.tomcat.jni",
"org.apache.tomcat.util",
"org.apache.tomcat.util.bcel",
"org.apache.tomcat.util.bcel.classfile",
"org.apache.tomcat.util.buf",
"org.apache.tomcat.util.codec.binary",
"org.apache.tomcat.util.collections",
"org.apache.tomcat.util.compat",
"org.apache.tomcat.util.descriptor",
"org.apache.tomcat.util.descriptor.tagplugin",
"org.apache.tomcat.util.descriptor.web",
"org.apache.tomcat.util.digester",
"org.apache.tomcat.util.file",
"org.apache.tomcat.util.http",
"org.apache.tomcat.util.http.fileupload",
"org.apache.tomcat.util.http.fileupload.disk",
"org.apache.tomcat.util.http.fileupload.impl",
"org.apache.tomcat.util.http.fileupload.servlet",
"org.apache.tomcat.util.http.fileupload.util",
"org.apache.tomcat.util.http.fileupload.util.mime",
"org.apache.tomcat.util.http.parser",
"org.apache.tomcat.util.json",
"org.apache.tomcat.util.log",
"org.apache.tomcat.util.modeler",
"org.apache.tomcat.util.modeler.modules",
"org.apache.tomcat.util.net",
"org.apache.tomcat.util.net.jsse",
"org.apache.tomcat.util.net.openssl",
"org.apache.tomcat.util.net.openssl.ciphers",
"org.apache.tomcat.util.res",
"org.apache.tomcat.util.scan",
"org.apache.tomcat.util.security",
"org.apache.tomcat.util.threads"
],
"org.apache.tomcat.embed:tomcat-embed-el": [
"jakarta.el",
"org.apache.el",
"org.apache.el.lang",
"org.apache.el.parser",
"org.apache.el.stream",
"org.apache.el.util"
],
"org.apache.tomcat.embed:tomcat-embed-websocket": [
"jakarta.websocket",
"jakarta.websocket.server",
"org.apache.tomcat.websocket",
"org.apache.tomcat.websocket.pojo",
"org.apache.tomcat.websocket.server"
],
"org.apiguardian:apiguardian-api": [
"org.apiguardian.api"
],
"org.aspectj:aspectjweaver": [
"aj.org.objectweb.asm",
"aj.org.objectweb.asm.commons",
"aj.org.objectweb.asm.signature",
"org.aspectj.apache.bcel",
"org.aspectj.apache.bcel.classfile",
"org.aspectj.apache.bcel.classfile.annotation",
"org.aspectj.apache.bcel.generic",
"org.aspectj.apache.bcel.util",
"org.aspectj.asm",
"org.aspectj.asm.internal",
"org.aspectj.bridge",
"org.aspectj.bridge.context",
"org.aspectj.internal.lang.annotation",
"org.aspectj.internal.lang.reflect",
"org.aspectj.lang",
"org.aspectj.lang.annotation",
"org.aspectj.lang.annotation.control",
"org.aspectj.lang.internal.lang",
"org.aspectj.lang.reflect",
"org.aspectj.runtime",
"org.aspectj.runtime.internal",
"org.aspectj.runtime.internal.cflowstack",
"org.aspectj.runtime.reflect",
"org.aspectj.util",
"org.aspectj.weaver",
"org.aspectj.weaver.ast",
"org.aspectj.weaver.bcel",
"org.aspectj.weaver.bcel.asm",
"org.aspectj.weaver.internal.tools",
"org.aspectj.weaver.loadtime",
"org.aspectj.weaver.loadtime.definition",
"org.aspectj.weaver.ltw",
"org.aspectj.weaver.model",
"org.aspectj.weaver.patterns",
"org.aspectj.weaver.reflect",
"org.aspectj.weaver.tools",
"org.aspectj.weaver.tools.cache"
],
"org.assertj:assertj-core": [
"org.assertj.core.annotations",
"org.assertj.core.api",
"org.assertj.core.api.exception",
"org.assertj.core.api.filter",
"org.assertj.core.api.iterable",
"org.assertj.core.api.junit.jupiter",
"org.assertj.core.api.recursive",
"org.assertj.core.api.recursive.assertion",
"org.assertj.core.api.recursive.comparison",
"org.assertj.core.condition",
"org.assertj.core.configuration",
"org.assertj.core.data",
"org.assertj.core.description",
"org.assertj.core.error",
"org.assertj.core.error.array2d",
"org.assertj.core.error.future",
"org.assertj.core.error.uri",
"org.assertj.core.extractor",
"org.assertj.core.groups",
"org.assertj.core.internal",
"org.assertj.core.matcher",
"org.assertj.core.presentation",
"org.assertj.core.util",
"org.assertj.core.util.diff",
"org.assertj.core.util.diff.myers",
"org.assertj.core.util.introspection",
"org.assertj.core.util.xml"
],
"org.attoparser:attoparser": [
"org.attoparser",
"org.attoparser.config",
"org.attoparser.discard",
"org.attoparser.dom",
"org.attoparser.duplicate",
"org.attoparser.minimize",
"org.attoparser.output",
"org.attoparser.prettyhtml",
"org.attoparser.select",
"org.attoparser.simple",
"org.attoparser.trace",
"org.attoparser.util"
],
"org.awaitility:awaitility": [
"org.awaitility",
"org.awaitility.classpath",
"org.awaitility.constraint",
"org.awaitility.core",
"org.awaitility.pollinterval",
"org.awaitility.reflect",
"org.awaitility.reflect.exception",
"org.awaitility.spi"
],
"org.checkerframework:checker-compat-qual": [
"org.checkerframework.checker.nullness.compatqual"
],
"org.checkerframework:checker-qual": [
"org.checkerframework.checker.builder.qual",
"org.checkerframework.checker.calledmethods.qual",
"org.checkerframework.checker.compilermsgs.qual",
"org.checkerframework.checker.fenum.qual",
"org.checkerframework.checker.formatter.qual",
"org.checkerframework.checker.guieffect.qual",
"org.checkerframework.checker.i18n.qual",
"org.checkerframework.checker.i18nformatter.qual",
"org.checkerframework.checker.index.qual",
"org.checkerframework.checker.initialization.qual",
"org.checkerframework.checker.interning.qual",
"org.checkerframework.checker.lock.qual",
"org.checkerframework.checker.mustcall.qual",
"org.checkerframework.checker.nullness.qual",
"org.checkerframework.checker.optional.qual",
"org.checkerframework.checker.propkey.qual",
"org.checkerframework.checker.regex.qual",
"org.checkerframework.checker.signature.qual",
"org.checkerframework.checker.signedness.qual",
"org.checkerframework.checker.tainting.qual",
"org.checkerframework.checker.units.qual",
"org.checkerframework.common.aliasing.qual",
"org.checkerframework.common.initializedfields.qual",
"org.checkerframework.common.reflection.qual",
"org.checkerframework.common.returnsreceiver.qual",
"org.checkerframework.common.subtyping.qual",
"org.checkerframework.common.util.report.qual",
"org.checkerframework.common.value.qual",
"org.checkerframework.dataflow.qual",
"org.checkerframework.framework.qual"
],
"org.eclipse.jetty.ee10.websocket:jetty-ee10-websocket-jakarta-client": [
"org.eclipse.jetty.ee10.websocket.jakarta.client",
"org.eclipse.jetty.ee10.websocket.jakarta.client.internal"
],
"org.eclipse.jetty.ee10.websocket:jetty-ee10-websocket-jakarta-common": [
"org.eclipse.jetty.ee10.websocket.jakarta.common",
"org.eclipse.jetty.ee10.websocket.jakarta.common.decoders",
"org.eclipse.jetty.ee10.websocket.jakarta.common.encoders",
"org.eclipse.jetty.ee10.websocket.jakarta.common.messages"
],
"org.eclipse.jetty.ee10.websocket:jetty-ee10-websocket-jakarta-server": [
"org.eclipse.jetty.ee10.websocket.jakarta.server",
"org.eclipse.jetty.ee10.websocket.jakarta.server.config",
"org.eclipse.jetty.ee10.websocket.jakarta.server.internal"
],
"org.eclipse.jetty.ee10.websocket:jetty-ee10-websocket-jetty-server": [
"org.eclipse.jetty.ee10.websocket.server",
"org.eclipse.jetty.ee10.websocket.server.config",
"org.eclipse.jetty.ee10.websocket.server.internal"
],
"org.eclipse.jetty.ee10.websocket:jetty-ee10-websocket-servlet": [
"org.eclipse.jetty.ee10.websocket.servlet"
],
"org.eclipse.jetty.ee10:jetty-ee10-annotations": [
"org.eclipse.jetty.ee10.annotations"
],
"org.eclipse.jetty.ee10:jetty-ee10-plus": [
"org.eclipse.jetty.ee10.plus.jndi",
"org.eclipse.jetty.ee10.plus.webapp"
],
"org.eclipse.jetty.ee10:jetty-ee10-servlet": [
"org.eclipse.jetty.ee10.servlet",
"org.eclipse.jetty.ee10.servlet.jmx",
"org.eclipse.jetty.ee10.servlet.listener",
"org.eclipse.jetty.ee10.servlet.security",
"org.eclipse.jetty.ee10.servlet.security.authentication",
"org.eclipse.jetty.ee10.servlet.util"
],
"org.eclipse.jetty.ee10:jetty-ee10-servlets": [
"org.eclipse.jetty.ee10.servlets"
],
"org.eclipse.jetty.ee10:jetty-ee10-webapp": [
"org.eclipse.jetty.ee10.webapp"
],
"org.eclipse.jetty.websocket:jetty-websocket-core-client": [
"org.eclipse.jetty.websocket.core.client",
"org.eclipse.jetty.websocket.core.client.internal"
],
"org.eclipse.jetty.websocket:jetty-websocket-core-common": [
"org.eclipse.jetty.websocket.core",
"org.eclipse.jetty.websocket.core.exception",
"org.eclipse.jetty.websocket.core.internal",
"org.eclipse.jetty.websocket.core.messages",
"org.eclipse.jetty.websocket.core.util"
],
"org.eclipse.jetty.websocket:jetty-websocket-core-server": [
"org.eclipse.jetty.websocket.core.server",
"org.eclipse.jetty.websocket.core.server.internal"
],
"org.eclipse.jetty.websocket:jetty-websocket-jetty-api": [
"org.eclipse.jetty.websocket.api",
"org.eclipse.jetty.websocket.api.annotations",
"org.eclipse.jetty.websocket.api.exceptions",
"org.eclipse.jetty.websocket.api.util"
],
"org.eclipse.jetty.websocket:jetty-websocket-jetty-common": [
"org.eclipse.jetty.websocket.common",
"org.eclipse.jetty.websocket.common.internal"
],
"org.eclipse.jetty:jetty-alpn-client": [
"org.eclipse.jetty.alpn.client"
],
"org.eclipse.jetty:jetty-client": [
"org.eclipse.jetty.client",
"org.eclipse.jetty.client.internal",
"org.eclipse.jetty.client.jmx",
"org.eclipse.jetty.client.transport",
"org.eclipse.jetty.client.transport.internal"
],
"org.eclipse.jetty:jetty-ee": [
"org.eclipse.jetty.ee"
],
"org.eclipse.jetty:jetty-http": [
"org.eclipse.jetty.http",
"org.eclipse.jetty.http.compression",
"org.eclipse.jetty.http.content",
"org.eclipse.jetty.http.pathmap"
],
"org.eclipse.jetty:jetty-io": [
"org.eclipse.jetty.io",
"org.eclipse.jetty.io.content",
"org.eclipse.jetty.io.internal",
"org.eclipse.jetty.io.jmx",
"org.eclipse.jetty.io.ssl"
],
"org.eclipse.jetty:jetty-plus": [
"org.eclipse.jetty.plus.annotation",
"org.eclipse.jetty.plus.jndi",
"org.eclipse.jetty.plus.security"
],
"org.eclipse.jetty:jetty-security": [
"org.eclipse.jetty.security",
"org.eclipse.jetty.security.authentication",
"org.eclipse.jetty.security.internal",
"org.eclipse.jetty.security.jaas",
"org.eclipse.jetty.security.jaas.callback",
"org.eclipse.jetty.security.jaas.spi"
],
"org.eclipse.jetty:jetty-server": [
"org.eclipse.jetty.server",
"org.eclipse.jetty.server.handler",
"org.eclipse.jetty.server.handler.gzip",
"org.eclipse.jetty.server.handler.jmx",
"org.eclipse.jetty.server.internal",
"org.eclipse.jetty.server.jmx"
],
"org.eclipse.jetty:jetty-session": [
"org.eclipse.jetty.session"
],
"org.eclipse.jetty:jetty-util": [
"org.eclipse.jetty.util",
"org.eclipse.jetty.util.annotation",
"org.eclipse.jetty.util.component",
"org.eclipse.jetty.util.compression",
"org.eclipse.jetty.util.jndi",
"org.eclipse.jetty.util.preventers",
"org.eclipse.jetty.util.resource",
"org.eclipse.jetty.util.security",
"org.eclipse.jetty.util.ssl",
"org.eclipse.jetty.util.statistic",
"org.eclipse.jetty.util.thread",
"org.eclipse.jetty.util.thread.strategy"
],
"org.eclipse.jetty:jetty-xml": [
"org.eclipse.jetty.xml"
],
"org.freemarker:freemarker": [
"freemarker.cache",
"freemarker.core",
"freemarker.debug",
"freemarker.debug.impl",
"freemarker.ext.ant",
"freemarker.ext.beans",
"freemarker.ext.dom",
"freemarker.ext.jakarta.jsp",
"freemarker.ext.jakarta.servlet",
"freemarker.ext.jdom",
"freemarker.ext.jsp",
"freemarker.ext.jython",
"freemarker.ext.rhino",
"freemarker.ext.servlet",
"freemarker.ext.util",
"freemarker.ext.xml",
"freemarker.log",
"freemarker.template",
"freemarker.template.utility"
],
"org.hamcrest:hamcrest": [
"org.hamcrest",
"org.hamcrest.beans",
"org.hamcrest.collection",
"org.hamcrest.comparator",
"org.hamcrest.core",
"org.hamcrest.internal",
"org.hamcrest.io",
"org.hamcrest.number",
"org.hamcrest.object",
"org.hamcrest.text",
"org.hamcrest.xml"
],
"org.hamcrest:hamcrest-core": [
"org.hamcrest.core.deprecated"
],
"org.hdrhistogram:HdrHistogram": [
"org.HdrHistogram",
"org.HdrHistogram.packedarray"
],
"org.junit.jupiter:junit-jupiter-api": [
"org.junit.jupiter.api",
"org.junit.jupiter.api.condition",
"org.junit.jupiter.api.extension",
"org.junit.jupiter.api.extension.support",
"org.junit.jupiter.api.function",
"org.junit.jupiter.api.io",
"org.junit.jupiter.api.parallel"
],
"org.junit.jupiter:junit-jupiter
gitextract_43sa_2ka/
├── .aspect/
│ └── bazelrc/
│ ├── README.md
│ ├── automatic_updates.md
│ ├── bazel6.bazelrc
│ ├── bazel7.bazelrc
│ ├── bazel8.bazelrc
│ ├── ci.bazelrc
│ ├── convenience.bazelrc
│ ├── correctness.bazelrc
│ ├── debug.bazelrc
│ ├── intro.md
│ ├── java.bazelrc
│ ├── javascript.bazelrc
│ ├── performance.bazelrc
│ └── usage.md
├── .bazelrc
├── .bazelversion
├── .gitignore
├── BUILD
├── CODEOWNERS
├── CODE_OF_CONDUCT.md
├── LICENSE.txt
├── MODULE.bazel
├── README.md
├── REPO.bazel
├── SECURITY.md
├── examples/
│ ├── README.md
│ ├── demoapp/
│ │ ├── BUILD
│ │ ├── README.md
│ │ ├── application-dev.properties
│ │ ├── application.properties
│ │ ├── author.txt
│ │ ├── config/
│ │ │ └── application.properties
│ │ ├── custom_bazelrun_script.sh
│ │ ├── demoapp_classpath.idx
│ │ ├── demoapp_dupeclass_allowlist.txt
│ │ ├── example_data.txt
│ │ ├── generate-build-info.bzl
│ │ ├── generate-build-info.sh
│ │ ├── info.txt
│ │ ├── libs/
│ │ │ ├── lib1/
│ │ │ │ ├── BUILD
│ │ │ │ └── src/
│ │ │ │ ├── main/
│ │ │ │ │ └── java/
│ │ │ │ │ └── com/
│ │ │ │ │ └── bazel/
│ │ │ │ │ └── demo/
│ │ │ │ │ └── IntentionalDupedClass.java
│ │ │ │ └── test/
│ │ │ │ └── java/
│ │ │ │ └── com/
│ │ │ │ └── bazel/
│ │ │ │ └── demo/
│ │ │ │ └── IntentionalDupedClassTest.java
│ │ │ ├── lib2/
│ │ │ │ ├── BUILD
│ │ │ │ └── src/
│ │ │ │ ├── main/
│ │ │ │ │ └── java/
│ │ │ │ │ └── com/
│ │ │ │ │ └── bazel/
│ │ │ │ │ └── demo/
│ │ │ │ │ └── IntentionalDupedClass.java
│ │ │ │ └── test/
│ │ │ │ └── java/
│ │ │ │ └── com/
│ │ │ │ └── bazel/
│ │ │ │ └── demo/
│ │ │ │ └── IntentionalDupedClassTest.java
│ │ │ └── lib3_neverlink/
│ │ │ ├── BUILD
│ │ │ ├── README.md
│ │ │ └── src/
│ │ │ ├── main/
│ │ │ │ └── java/
│ │ │ │ └── com/
│ │ │ │ └── bazel/
│ │ │ │ └── demo/
│ │ │ │ └── NeverLinkedClass.java
│ │ │ └── test/
│ │ │ └── java/
│ │ │ └── com/
│ │ │ └── bazel/
│ │ │ └── demo/
│ │ │ └── NeverLinkTest.java
│ │ ├── remote_debug.sh
│ │ ├── src/
│ │ │ ├── main/
│ │ │ │ ├── java/
│ │ │ │ │ └── com/
│ │ │ │ │ └── sample/
│ │ │ │ │ ├── SampleAutoConfiguration.java
│ │ │ │ │ ├── SampleMain.java
│ │ │ │ │ └── SampleRest.java
│ │ │ │ └── resources/
│ │ │ │ ├── META-INF/
│ │ │ │ │ └── spring/
│ │ │ │ │ └── org.springframework.boot.autoconfigure.AutoConfiguration.imports
│ │ │ │ └── application.properties
│ │ │ └── test/
│ │ │ ├── java/
│ │ │ │ └── com/
│ │ │ │ ├── salesforce/
│ │ │ │ │ └── rules_spring/
│ │ │ │ │ └── PackagingTest.java
│ │ │ │ └── sample/
│ │ │ │ ├── SampleRestFuncTest.java
│ │ │ │ └── SampleRestUnitTest.java
│ │ │ └── resources/
│ │ │ └── test.properties
│ │ └── src_root/
│ │ └── main/
│ │ └── java/
│ │ └── com/
│ │ └── sample/
│ │ └── SampleRootClass.java
│ ├── helloworld/
│ │ ├── BUILD
│ │ ├── README.md
│ │ ├── libs/
│ │ │ ├── lib1/
│ │ │ │ ├── BUILD
│ │ │ │ └── src/
│ │ │ │ ├── main/
│ │ │ │ │ └── java/
│ │ │ │ │ └── com/
│ │ │ │ │ └── bazel/
│ │ │ │ │ └── demo/
│ │ │ │ │ └── IntentionalDupedClass.java
│ │ │ │ └── test/
│ │ │ │ └── java/
│ │ │ │ └── com/
│ │ │ │ └── bazel/
│ │ │ │ └── demo/
│ │ │ │ └── IntentionalDupedClassTest.java
│ │ │ └── lib2/
│ │ │ ├── BUILD
│ │ │ └── src/
│ │ │ ├── main/
│ │ │ │ └── java/
│ │ │ │ └── com/
│ │ │ │ └── bazel/
│ │ │ │ └── demo/
│ │ │ │ └── IntentionalDupedClass.java
│ │ │ └── test/
│ │ │ └── java/
│ │ │ └── com/
│ │ │ └── bazel/
│ │ │ └── demo/
│ │ │ └── IntentionalDupedClassTest.java
│ │ ├── remote_debug.sh
│ │ └── src/
│ │ ├── main/
│ │ │ ├── java/
│ │ │ │ └── com/
│ │ │ │ └── sample/
│ │ │ │ ├── SampleAutoConfiguration.java
│ │ │ │ ├── SampleMain.java
│ │ │ │ └── SampleRest.java
│ │ │ └── resources/
│ │ │ ├── META-INF/
│ │ │ │ └── spring/
│ │ │ │ └── org.springframework.boot.autoconfigure.AutoConfiguration.imports
│ │ │ └── application.properties
│ │ └── test/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── sample/
│ │ │ ├── SampleRestFuncTest.java
│ │ │ └── SampleRestUnitTest.java
│ │ └── resources/
│ │ └── test.properties
│ └── kotlinapp/
│ └── README.md
├── makerelease.sh
├── maven_install.json
├── springboot/
│ ├── BUILD
│ ├── README.md
│ ├── addin_end.txt
│ ├── attributes.md
│ ├── bazelrun.md
│ ├── check_dupe_classes.py
│ ├── cli.md
│ ├── default_bazelrun_script.sh
│ ├── deps_filter_rules/
│ │ ├── BUILD
│ │ ├── README.md
│ │ ├── dependencyset.bzl
│ │ ├── dependencyset.md
│ │ ├── deps_filter.bzl
│ │ └── tests/
│ │ ├── README.md
│ │ ├── dependencyset/
│ │ │ ├── external_dependencies/
│ │ │ │ └── compile_and_runtime/
│ │ │ │ ├── BUILD
│ │ │ │ ├── compile_and_runtime_test.bzl
│ │ │ │ └── src/
│ │ │ │ ├── main/
│ │ │ │ │ └── java/
│ │ │ │ │ └── com/
│ │ │ │ │ └── depsfilter/
│ │ │ │ │ └── A.java
│ │ │ │ └── test/
│ │ │ │ └── java/
│ │ │ │ └── com/
│ │ │ │ └── depsfilter/
│ │ │ │ ├── DepsFilterCaseSensitivePatternMatchingTest.java
│ │ │ │ ├── DepsFilterCompileDepsOnlyTest.java
│ │ │ │ ├── DepsFilterEmptyExclusionsTest.java
│ │ │ │ ├── DepsFilterExcludeTransitiveTest.java
│ │ │ │ ├── DepsFilterLabelExclusionsTest.java
│ │ │ │ ├── DepsFilterMultipleExclusionsWithTransitivesTest.java
│ │ │ │ ├── DepsFilterMultipleExclusionsWithoutTransitivesTest.java
│ │ │ │ ├── DepsFilterNoFilteringTest.java
│ │ │ │ ├── DepsFilterOneCompileOneRuntimeDepTest.java
│ │ │ │ ├── DepsFilterPathBasedExclusionsComprehensiveTest.java
│ │ │ │ ├── DepsFilterPathExclusionsTest.java
│ │ │ │ ├── DepsFilterPathExclusionsWithTransitivesTest.java
│ │ │ │ ├── DepsFilterPathPatternsWithSpecialCharactersTest.java
│ │ │ │ ├── DepsFilterRuntimeDepsOnlyTest.java
│ │ │ │ ├── DepsFilterSingleDepWithExclusionsTest.java
│ │ │ │ └── DepsFilterSingleRuntimeDepWithExclusionsTest.java
│ │ │ └── internal_dependencies/
│ │ │ ├── compile_and_runtime_1/
│ │ │ │ ├── BUILD
│ │ │ │ ├── compile_and_runtime_test.bzl
│ │ │ │ └── src/
│ │ │ │ └── main/
│ │ │ │ └── java/
│ │ │ │ └── com/
│ │ │ │ └── depsfilter/
│ │ │ │ ├── A.java
│ │ │ │ ├── B.java
│ │ │ │ ├── C.java
│ │ │ │ ├── D.java
│ │ │ │ ├── E.java
│ │ │ │ ├── F.java
│ │ │ │ ├── G.java
│ │ │ │ ├── H.java
│ │ │ │ └── I.java
│ │ │ ├── compile_and_runtime_2/
│ │ │ │ ├── BUILD
│ │ │ │ ├── compile_and_runtime_test.bzl
│ │ │ │ └── src/
│ │ │ │ ├── main/
│ │ │ │ │ └── java/
│ │ │ │ │ └── com/
│ │ │ │ │ └── depsfilter/
│ │ │ │ │ ├── A.java
│ │ │ │ │ ├── B.java
│ │ │ │ │ ├── C.java
│ │ │ │ │ ├── D.java
│ │ │ │ │ ├── E.java
│ │ │ │ │ ├── F.java
│ │ │ │ │ ├── G.java
│ │ │ │ │ ├── H.java
│ │ │ │ │ ├── I.java
│ │ │ │ │ └── J.java
│ │ │ │ └── test/
│ │ │ │ └── java/
│ │ │ │ └── com/
│ │ │ │ └── depsfilter/
│ │ │ │ ├── DepsFilterEmptyExclusionsTest.java
│ │ │ │ ├── DepsFilterExcludeTransitiveTest.java
│ │ │ │ ├── DepsFilterFilteredDepsTest.java
│ │ │ │ ├── DepsFilterInterfaceImplementationTest.java
│ │ │ │ ├── DepsFilterMultipleExclusionsWithTransitiveTest.java
│ │ │ │ ├── DepsFilterMultipleExclusionsWithoutTransitiveTest.java
│ │ │ │ ├── DepsFilterMultiplePathsTest.java
│ │ │ │ ├── DepsFilterPathBasedExclusionsTest.java
│ │ │ │ └── DepsFilterTestHelper.java
│ │ │ ├── compile_time_only/
│ │ │ │ ├── BUILD
│ │ │ │ ├── compile_time_only_test.bzl
│ │ │ │ └── src/
│ │ │ │ └── main/
│ │ │ │ └── java/
│ │ │ │ └── com/
│ │ │ │ └── depsfilter/
│ │ │ │ ├── A.java
│ │ │ │ ├── B.java
│ │ │ │ ├── C.java
│ │ │ │ ├── D.java
│ │ │ │ ├── E.java
│ │ │ │ ├── F.java
│ │ │ │ ├── G.java
│ │ │ │ ├── H.java
│ │ │ │ └── I.java
│ │ │ └── runtime_only/
│ │ │ ├── BUILD
│ │ │ ├── runtime_only_test.bzl
│ │ │ └── src/
│ │ │ └── main/
│ │ │ └── java/
│ │ │ └── com/
│ │ │ └── depsfilter/
│ │ │ ├── A.java
│ │ │ ├── B.java
│ │ │ ├── C.java
│ │ │ ├── D.java
│ │ │ ├── E.java
│ │ │ ├── F.java
│ │ │ ├── G.java
│ │ │ ├── H.java
│ │ │ └── I.java
│ │ ├── depsfilter/
│ │ │ ├── external_dependencies/
│ │ │ │ ├── compile_and_runtime/
│ │ │ │ │ ├── BUILD
│ │ │ │ │ ├── compile_and_runtime_test.bzl
│ │ │ │ │ └── src/
│ │ │ │ │ └── test/
│ │ │ │ │ └── java/
│ │ │ │ │ └── com/
│ │ │ │ │ └── depsfilter/
│ │ │ │ │ ├── DepsFilterCaseSensitivePatternMatchingTest.java
│ │ │ │ │ ├── DepsFilterCompileDepsOnlyTest.java
│ │ │ │ │ ├── DepsFilterEmptyExclusionsTest.java
│ │ │ │ │ ├── DepsFilterExcludeTransitiveTest.java
│ │ │ │ │ ├── DepsFilterLabelExclusionsTest.java
│ │ │ │ │ ├── DepsFilterMultipleExclusionsWithTransitivesTest.java
│ │ │ │ │ ├── DepsFilterMultipleExclusionsWithoutTransitivesTest.java
│ │ │ │ │ ├── DepsFilterNoFilteringTest.java
│ │ │ │ │ ├── DepsFilterOneCompileOneRuntimeDepTest.java
│ │ │ │ │ ├── DepsFilterPathBasedExclusionsComprehensiveTest.java
│ │ │ │ │ ├── DepsFilterPathExclusionsTest.java
│ │ │ │ │ ├── DepsFilterPathExclusionsWithTransitivesTest.java
│ │ │ │ │ ├── DepsFilterPathPatternsWithSpecialCharactersTest.java
│ │ │ │ │ ├── DepsFilterRuntimeDepsOnlyTest.java
│ │ │ │ │ ├── DepsFilterSingleDepWithExclusionsTest.java
│ │ │ │ │ └── DepsFilterSingleRuntimeDepWithExclusionsTest.java
│ │ │ │ └── compile_and_runtime_through_java_library/
│ │ │ │ ├── BUILD
│ │ │ │ ├── compile_and_runtime_test.bzl
│ │ │ │ └── src/
│ │ │ │ ├── main/
│ │ │ │ │ └── java/
│ │ │ │ │ └── com/
│ │ │ │ │ └── depsfilter/
│ │ │ │ │ └── A.java
│ │ │ │ └── test/
│ │ │ │ └── java/
│ │ │ │ └── com/
│ │ │ │ └── depsfilter/
│ │ │ │ ├── DepsFilterCaseSensitivePatternMatchingTest.java
│ │ │ │ ├── DepsFilterCompileDepsOnlyTest.java
│ │ │ │ ├── DepsFilterEmptyExclusionsTest.java
│ │ │ │ ├── DepsFilterExcludeTransitiveTest.java
│ │ │ │ ├── DepsFilterLabelExclusionsTest.java
│ │ │ │ ├── DepsFilterMultipleExclusionsWithTransitivesTest.java
│ │ │ │ ├── DepsFilterMultipleExclusionsWithoutTransitivesTest.java
│ │ │ │ ├── DepsFilterNoFilteringTest.java
│ │ │ │ ├── DepsFilterOneCompileOneRuntimeDepTest.java
│ │ │ │ ├── DepsFilterPathBasedExclusionsComprehensiveTest.java
│ │ │ │ ├── DepsFilterPathExclusionsTest.java
│ │ │ │ ├── DepsFilterPathExclusionsWithTransitivesTest.java
│ │ │ │ ├── DepsFilterPathPatternsWithSpecialCharactersTest.java
│ │ │ │ ├── DepsFilterRuntimeDepsOnlyATest.java
│ │ │ │ ├── DepsFilterRuntimeDepsOnlyBTest.java
│ │ │ │ ├── DepsFilterSingleDepWithExclusionsTest.java
│ │ │ │ ├── DepsFilterSingleRuntimeDepWithExclusionsATest.java
│ │ │ │ └── DepsFilterSingleRuntimeDepWithExclusionsBTest.java
│ │ │ └── internal_dependencies/
│ │ │ ├── compile_and_runtime_1/
│ │ │ │ ├── BUILD
│ │ │ │ ├── compile_and_runtime_test.bzl
│ │ │ │ └── src/
│ │ │ │ └── main/
│ │ │ │ └── java/
│ │ │ │ └── com/
│ │ │ │ └── depsfilter/
│ │ │ │ ├── A.java
│ │ │ │ ├── B.java
│ │ │ │ ├── C.java
│ │ │ │ ├── D.java
│ │ │ │ ├── E.java
│ │ │ │ ├── F.java
│ │ │ │ ├── G.java
│ │ │ │ └── H.java
│ │ │ ├── compile_and_runtime_2/
│ │ │ │ ├── BUILD
│ │ │ │ ├── compile_and_runtime_test.bzl
│ │ │ │ └── src/
│ │ │ │ ├── main/
│ │ │ │ │ └── java/
│ │ │ │ │ └── com/
│ │ │ │ │ └── depsfilter/
│ │ │ │ │ ├── A.java
│ │ │ │ │ ├── B.java
│ │ │ │ │ ├── C.java
│ │ │ │ │ ├── D.java
│ │ │ │ │ ├── E.java
│ │ │ │ │ ├── F.java
│ │ │ │ │ ├── G.java
│ │ │ │ │ ├── H.java
│ │ │ │ │ ├── I.java
│ │ │ │ │ └── J.java
│ │ │ │ └── test/
│ │ │ │ └── java/
│ │ │ │ └── com/
│ │ │ │ └── depsfilter/
│ │ │ │ ├── DepsFilterEmptyExclusionsTest.java
│ │ │ │ ├── DepsFilterExcludeTransitiveTest.java
│ │ │ │ ├── DepsFilterFilteredDepsTest.java
│ │ │ │ ├── DepsFilterInterfaceImplementationTest.java
│ │ │ │ ├── DepsFilterMultipleExclusionsWithTransitiveTest.java
│ │ │ │ ├── DepsFilterMultipleExclusionsWithoutTransitiveTest.java
│ │ │ │ ├── DepsFilterMultiplePathsTest.java
│ │ │ │ ├── DepsFilterPathBasedExclusionsTest.java
│ │ │ │ └── DepsFilterTestHelper.java
│ │ │ ├── compile_time_only/
│ │ │ │ ├── BUILD
│ │ │ │ ├── compile_time_only_test.bzl
│ │ │ │ └── src/
│ │ │ │ └── main/
│ │ │ │ └── java/
│ │ │ │ └── com/
│ │ │ │ └── depsfilter/
│ │ │ │ ├── A.java
│ │ │ │ ├── B.java
│ │ │ │ ├── C.java
│ │ │ │ ├── D.java
│ │ │ │ ├── E.java
│ │ │ │ ├── F.java
│ │ │ │ ├── G.java
│ │ │ │ └── H.java
│ │ │ └── runtime_only/
│ │ │ ├── BUILD
│ │ │ ├── runtime_only_test.bzl
│ │ │ └── src/
│ │ │ └── main/
│ │ │ └── java/
│ │ │ └── com/
│ │ │ └── depsfilter/
│ │ │ ├── A.java
│ │ │ ├── B.java
│ │ │ ├── C.java
│ │ │ ├── D.java
│ │ │ ├── E.java
│ │ │ ├── F.java
│ │ │ ├── G.java
│ │ │ └── H.java
│ │ ├── external_dependencies_testing.md
│ │ ├── external_deps/
│ │ │ ├── BUILD
│ │ │ └── unmanaged_deps_filter_install.json
│ │ ├── internal_dependencies_testing.md
│ │ └── test_utils/
│ │ ├── BUILD
│ │ ├── dependency_graph.txt
│ │ ├── src/
│ │ │ └── test/
│ │ │ └── java/
│ │ │ └── com/
│ │ │ └── depsfilter/
│ │ │ ├── DependencyGraphAnalyzer.java
│ │ │ ├── DependencyGraphTestConfig.java
│ │ │ └── DepsFilterTestHelper.java
│ │ └── verification_utils.bzl
│ ├── deps_filter_rules_legacy/
│ │ ├── BUILD
│ │ ├── README.md
│ │ ├── deps_filter.bzl
│ │ ├── deps_filter.md
│ │ ├── deps_filter_disable_transitives.bzl
│ │ ├── deps_filter_disable_transitives.md
│ │ └── src/
│ │ └── test/
│ │ └── java/
│ │ └── com/
│ │ └── depsfilter/
│ │ ├── DepsFilterWithTransitivesExclusionTest.java
│ │ ├── DepsFilterWithoutTransitivesExclusionTest.java
│ │ ├── TransitiveDepsFilterCaseA.java
│ │ ├── TransitiveDepsFilterCaseB.java
│ │ ├── TransitiveDepsFilterCaseC.java
│ │ └── TransitiveDepsFilterCaseD.java
│ ├── deps_filter_transitive.bzl
│ ├── detect_javax_classes.py
│ ├── empty.txt
│ ├── import_bundles/
│ │ ├── BUILD
│ │ └── README.md
│ ├── javax.md
│ ├── springboot.bzl
│ ├── springboot_doc.md
│ ├── springboot_pkg.sh
│ ├── src/
│ │ ├── main/
│ │ │ └── java/
│ │ │ └── com/
│ │ │ └── salesforce/
│ │ │ └── rulesspring/
│ │ │ ├── cli/
│ │ │ │ └── SpringBootInspector.java
│ │ │ └── index/
│ │ │ ├── IndexFileType.java
│ │ │ ├── IndexOfFiles.java
│ │ │ ├── IndexedFile.java
│ │ │ ├── SpringBootIndexReporter.java
│ │ │ └── SpringBootJarIndexer.java
│ │ └── test/
│ │ └── java/
│ │ └── com/
│ │ └── salesforce/
│ │ └── rulesspring/
│ │ └── index/
│ │ └── SpringBootJarIndexerTest.java
│ ├── testing_springboot.md
│ ├── tests/
│ │ └── check_dupe_classes_test.py
│ ├── unwanted_classes.md
│ ├── write_bazelrun_env.sh
│ ├── write_gitinfo_properties.sh
│ └── write_manifest.sh
└── tools/
├── buildstamp/
│ ├── README.md
│ └── get_workspace_status
├── codecoverage/
│ └── coverage-report.sh
├── formatter/
│ ├── README.md
│ └── format_bazel_files.sh
├── get_github_stats_downloads.py
├── jar_explode/
│ ├── README.md
│ └── jar_explode.sh
└── license/
├── BUILD
└── licenses_used.bzl
SYMBOL INDEX (511 symbols across 182 files)
FILE: examples/demoapp/libs/lib1/src/main/java/com/bazel/demo/IntentionalDupedClass.java
class IntentionalDupedClass (line 9) | public class IntentionalDupedClass {
method hello (line 10) | public String hello() {
FILE: examples/demoapp/libs/lib1/src/test/java/com/bazel/demo/IntentionalDupedClassTest.java
class IntentionalDupedClassTest (line 12) | public class IntentionalDupedClassTest {
method helloTest (line 14) | @Test
FILE: examples/demoapp/libs/lib2/src/main/java/com/bazel/demo/IntentionalDupedClass.java
class IntentionalDupedClass (line 9) | public class IntentionalDupedClass {
method hello (line 10) | public String hello() {
FILE: examples/demoapp/libs/lib2/src/test/java/com/bazel/demo/IntentionalDupedClassTest.java
class IntentionalDupedClassTest (line 12) | public class IntentionalDupedClassTest {
method helloTest (line 14) | @Test
FILE: examples/demoapp/libs/lib3_neverlink/src/main/java/com/bazel/demo/NeverLinkedClass.java
class NeverLinkedClass (line 9) | public class NeverLinkedClass {
method hello (line 10) | public String hello() {
FILE: examples/demoapp/libs/lib3_neverlink/src/test/java/com/bazel/demo/NeverLinkTest.java
class NeverLinkTest (line 12) | public class NeverLinkTest {
method neverlinkTest (line 17) | @Test(expected = NoClassDefFoundError.class)
FILE: examples/demoapp/src/main/java/com/sample/SampleAutoConfiguration.java
class SampleAutoConfiguration (line 9) | public class SampleAutoConfiguration {
method logLoadedProperties (line 34) | @PostConstruct
method setupSignalHandler (line 49) | @PostConstruct
class SampleSignalHandler (line 62) | private static class SampleSignalHandler implements Runnable {
method run (line 63) | @Override
FILE: examples/demoapp/src/main/java/com/sample/SampleMain.java
class SampleMain (line 13) | @SpringBootApplication
method main (line 20) | public static void main(String[] args) throws Exception {
FILE: examples/demoapp/src/main/java/com/sample/SampleRest.java
class SampleRest (line 13) | @RestController
method hello (line 15) | @RequestMapping("/")
FILE: examples/demoapp/src/test/java/com/salesforce/rules_spring/PackagingTest.java
class PackagingTest (line 24) | public class PackagingTest {
method setup (line 38) | @Before
method gitPropertiesFileTest (line 48) | @Test
method buildPropertiesFileTest (line 54) | @Test
method applicationPropertiesFileTest (line 60) | @Test
method internalLibsAreIncludedTest (line 66) | @Test
method neverlinkLibsAreExcludedTest (line 72) | @Test
method extractFilesFromSpringBootJar (line 77) | private void extractFilesFromSpringBootJar() throws Exception {
FILE: examples/demoapp/src/test/java/com/sample/SampleRestFuncTest.java
class SampleRestFuncTest (line 22) | @RunWith(SpringRunner.class)
method apiTest (line 30) | @Test
FILE: examples/demoapp/src/test/java/com/sample/SampleRestUnitTest.java
class SampleRestUnitTest (line 15) | public class SampleRestUnitTest {
method apiTest (line 17) | @Test
FILE: examples/demoapp/src_root/main/java/com/sample/SampleRootClass.java
class SampleRootClass (line 9) | public class SampleRootClass {
FILE: examples/helloworld/libs/lib1/src/main/java/com/bazel/demo/IntentionalDupedClass.java
class IntentionalDupedClass (line 9) | public class IntentionalDupedClass {
method hello (line 10) | public String hello() {
FILE: examples/helloworld/libs/lib1/src/test/java/com/bazel/demo/IntentionalDupedClassTest.java
class IntentionalDupedClassTest (line 13) | public class IntentionalDupedClassTest {
method helloTest (line 15) | @Test
FILE: examples/helloworld/libs/lib2/src/main/java/com/bazel/demo/IntentionalDupedClass.java
class IntentionalDupedClass (line 9) | public class IntentionalDupedClass {
method hello (line 10) | public String hello() {
FILE: examples/helloworld/libs/lib2/src/test/java/com/bazel/demo/IntentionalDupedClassTest.java
class IntentionalDupedClassTest (line 13) | public class IntentionalDupedClassTest {
method helloTest (line 15) | @Test
FILE: examples/helloworld/src/main/java/com/sample/SampleAutoConfiguration.java
class SampleAutoConfiguration (line 5) | public class SampleAutoConfiguration {
method helloMessage (line 6) | @Bean
FILE: examples/helloworld/src/main/java/com/sample/SampleMain.java
class SampleMain (line 12) | @SpringBootApplication
method main (line 15) | public static void main(String[] args) {
FILE: examples/helloworld/src/main/java/com/sample/SampleRest.java
class SampleRest (line 13) | @RestController
method hello (line 16) | @RequestMapping("/")
FILE: examples/helloworld/src/test/java/com/sample/SampleRestFuncTest.java
class SampleRestFuncTest (line 22) | @RunWith(SpringRunner.class)
method apiTest (line 30) | @Test
FILE: examples/helloworld/src/test/java/com/sample/SampleRestUnitTest.java
class SampleRestUnitTest (line 16) | public class SampleRestUnitTest {
method apiTest (line 18) | @Test
FILE: springboot/check_dupe_classes.py
function _check_for_duplicate_classes (line 16) | def _check_for_duplicate_classes(springbootzip_filepath, ignorelisted_ja...
function _parse_ignorelisted_jars_file (line 118) | def _parse_ignorelisted_jars_file(ignorelist_file):
function _write_result_to_output_file (line 145) | def _write_result_to_output_file(output_filepath, result):
function run_with_ignorelist (line 151) | def run_with_ignorelist(springbootzip_filepath, ignorelisted_jars, outpu...
function run (line 160) | def run(springbootzip_filepath, ignorelist_file, output_filepath):
FILE: springboot/deps_filter_rules/tests/dependencyset/external_dependencies/compile_and_runtime/src/main/java/com/depsfilter/A.java
class A (line 3) | public class A {
method A (line 5) | public A() {
FILE: springboot/deps_filter_rules/tests/dependencyset/external_dependencies/compile_and_runtime/src/test/java/com/depsfilter/DepsFilterCaseSensitivePatternMatchingTest.java
class DepsFilterCaseSensitivePatternMatchingTest (line 9) | public class DepsFilterCaseSensitivePatternMatchingTest {
method setUp (line 11) | @BeforeClass
method testCaseSensitivePatternMatching (line 16) | @Test
FILE: springboot/deps_filter_rules/tests/dependencyset/external_dependencies/compile_and_runtime/src/test/java/com/depsfilter/DepsFilterCompileDepsOnlyTest.java
class DepsFilterCompileDepsOnlyTest (line 9) | public class DepsFilterCompileDepsOnlyTest {
method setUp (line 11) | @BeforeClass
method testCompileDepsOnly (line 16) | @Test
FILE: springboot/deps_filter_rules/tests/dependencyset/external_dependencies/compile_and_runtime/src/test/java/com/depsfilter/DepsFilterEmptyExclusionsTest.java
class DepsFilterEmptyExclusionsTest (line 9) | public class DepsFilterEmptyExclusionsTest {
method setUp (line 11) | @BeforeClass
method testTransitivesExclusion (line 16) | @Test
FILE: springboot/deps_filter_rules/tests/dependencyset/external_dependencies/compile_and_runtime/src/test/java/com/depsfilter/DepsFilterExcludeTransitiveTest.java
class DepsFilterExcludeTransitiveTest (line 9) | public class DepsFilterExcludeTransitiveTest {
method setUp (line 11) | @BeforeClass
method testTransitivesExclusion (line 16) | @Test
FILE: springboot/deps_filter_rules/tests/dependencyset/external_dependencies/compile_and_runtime/src/test/java/com/depsfilter/DepsFilterLabelExclusionsTest.java
class DepsFilterLabelExclusionsTest (line 10) | public class DepsFilterLabelExclusionsTest {
method setUp (line 12) | @BeforeClass
method testLabelExclusions (line 17) | @Test
FILE: springboot/deps_filter_rules/tests/dependencyset/external_dependencies/compile_and_runtime/src/test/java/com/depsfilter/DepsFilterMultipleExclusionsWithTransitivesTest.java
class DepsFilterMultipleExclusionsWithTransitivesTest (line 9) | public class DepsFilterMultipleExclusionsWithTransitivesTest {
method setUp (line 11) | @BeforeClass
method testMultipleExclusionsWithTransitives (line 16) | @Test
FILE: springboot/deps_filter_rules/tests/dependencyset/external_dependencies/compile_and_runtime/src/test/java/com/depsfilter/DepsFilterMultipleExclusionsWithoutTransitivesTest.java
class DepsFilterMultipleExclusionsWithoutTransitivesTest (line 9) | public class DepsFilterMultipleExclusionsWithoutTransitivesTest {
method setUp (line 11) | @BeforeClass
method testMultipleExclusionsWithoutTransitives (line 16) | @Test
FILE: springboot/deps_filter_rules/tests/dependencyset/external_dependencies/compile_and_runtime/src/test/java/com/depsfilter/DepsFilterNoFilteringTest.java
class DepsFilterNoFilteringTest (line 9) | public class DepsFilterNoFilteringTest {
method setUp (line 11) | @BeforeClass
method testNoFiltering (line 16) | @Test
FILE: springboot/deps_filter_rules/tests/dependencyset/external_dependencies/compile_and_runtime/src/test/java/com/depsfilter/DepsFilterOneCompileOneRuntimeDepTest.java
class DepsFilterOneCompileOneRuntimeDepTest (line 9) | public class DepsFilterOneCompileOneRuntimeDepTest {
method setUp (line 11) | @BeforeClass
method testOneCompileOneRuntimeDep (line 16) | @Test
FILE: springboot/deps_filter_rules/tests/dependencyset/external_dependencies/compile_and_runtime/src/test/java/com/depsfilter/DepsFilterPathBasedExclusionsComprehensiveTest.java
class DepsFilterPathBasedExclusionsComprehensiveTest (line 9) | public class DepsFilterPathBasedExclusionsComprehensiveTest {
method setUp (line 11) | @BeforeClass
method testPathBasedExclusionsComprehensive (line 16) | @Test
FILE: springboot/deps_filter_rules/tests/dependencyset/external_dependencies/compile_and_runtime/src/test/java/com/depsfilter/DepsFilterPathExclusionsTest.java
class DepsFilterPathExclusionsTest (line 9) | public class DepsFilterPathExclusionsTest {
method setUp (line 11) | @BeforeClass
method testPathExclusions (line 16) | @Test
FILE: springboot/deps_filter_rules/tests/dependencyset/external_dependencies/compile_and_runtime/src/test/java/com/depsfilter/DepsFilterPathExclusionsWithTransitivesTest.java
class DepsFilterPathExclusionsWithTransitivesTest (line 9) | public class DepsFilterPathExclusionsWithTransitivesTest {
method setUp (line 11) | @BeforeClass
method testPathExclusionsWithTransitives (line 16) | @Test
FILE: springboot/deps_filter_rules/tests/dependencyset/external_dependencies/compile_and_runtime/src/test/java/com/depsfilter/DepsFilterPathPatternsWithSpecialCharactersTest.java
class DepsFilterPathPatternsWithSpecialCharactersTest (line 9) | public class DepsFilterPathPatternsWithSpecialCharactersTest {
method setUp (line 11) | @BeforeClass
method testPathPatternsWithSpecialCharacters (line 16) | @Test
FILE: springboot/deps_filter_rules/tests/dependencyset/external_dependencies/compile_and_runtime/src/test/java/com/depsfilter/DepsFilterRuntimeDepsOnlyTest.java
class DepsFilterRuntimeDepsOnlyTest (line 9) | public class DepsFilterRuntimeDepsOnlyTest {
method setUp (line 11) | @BeforeClass
method testRuntimeDepsOnly (line 16) | @Test
FILE: springboot/deps_filter_rules/tests/dependencyset/external_dependencies/compile_and_runtime/src/test/java/com/depsfilter/DepsFilterSingleDepWithExclusionsTest.java
class DepsFilterSingleDepWithExclusionsTest (line 9) | public class DepsFilterSingleDepWithExclusionsTest {
method setUp (line 11) | @BeforeClass
method testSingleDepWithExclusions (line 16) | @Test
FILE: springboot/deps_filter_rules/tests/dependencyset/external_dependencies/compile_and_runtime/src/test/java/com/depsfilter/DepsFilterSingleRuntimeDepWithExclusionsTest.java
class DepsFilterSingleRuntimeDepWithExclusionsTest (line 9) | public class DepsFilterSingleRuntimeDepWithExclusionsTest {
method setUp (line 11) | @BeforeClass
method testSingleRuntimeDepWithExclusions (line 16) | @Test
FILE: springboot/deps_filter_rules/tests/dependencyset/internal_dependencies/compile_and_runtime_1/src/main/java/com/depsfilter/A.java
class A (line 3) | public class A {
method A (line 7) | public A() {
FILE: springboot/deps_filter_rules/tests/dependencyset/internal_dependencies/compile_and_runtime_1/src/main/java/com/depsfilter/B.java
class B (line 3) | public class B {
method B (line 5) | public B() {
FILE: springboot/deps_filter_rules/tests/dependencyset/internal_dependencies/compile_and_runtime_1/src/main/java/com/depsfilter/C.java
class C (line 3) | public class C {
method C (line 5) | public C() {
FILE: springboot/deps_filter_rules/tests/dependencyset/internal_dependencies/compile_and_runtime_1/src/main/java/com/depsfilter/D.java
class D (line 3) | public class D {
method D (line 5) | public D() {
FILE: springboot/deps_filter_rules/tests/dependencyset/internal_dependencies/compile_and_runtime_1/src/main/java/com/depsfilter/E.java
class E (line 3) | public class E {
method E (line 5) | public E() {
FILE: springboot/deps_filter_rules/tests/dependencyset/internal_dependencies/compile_and_runtime_1/src/main/java/com/depsfilter/F.java
class F (line 3) | public class F {
method F (line 5) | public F() {
FILE: springboot/deps_filter_rules/tests/dependencyset/internal_dependencies/compile_and_runtime_1/src/main/java/com/depsfilter/G.java
class G (line 3) | public class G {
method G (line 5) | public G() {
FILE: springboot/deps_filter_rules/tests/dependencyset/internal_dependencies/compile_and_runtime_1/src/main/java/com/depsfilter/H.java
class H (line 3) | public class H {
method H (line 6) | public H() {
FILE: springboot/deps_filter_rules/tests/dependencyset/internal_dependencies/compile_and_runtime_1/src/main/java/com/depsfilter/I.java
class I (line 3) | public class I {
method I (line 4) | public I() {
FILE: springboot/deps_filter_rules/tests/dependencyset/internal_dependencies/compile_and_runtime_2/src/main/java/com/depsfilter/A.java
class A (line 3) | public class A {
method A (line 7) | public A() {
FILE: springboot/deps_filter_rules/tests/dependencyset/internal_dependencies/compile_and_runtime_2/src/main/java/com/depsfilter/B.java
class B (line 3) | public class B {
method B (line 5) | public B() {
FILE: springboot/deps_filter_rules/tests/dependencyset/internal_dependencies/compile_and_runtime_2/src/main/java/com/depsfilter/C.java
class C (line 3) | public class C {
method C (line 5) | public C() {
FILE: springboot/deps_filter_rules/tests/dependencyset/internal_dependencies/compile_and_runtime_2/src/main/java/com/depsfilter/D.java
class D (line 3) | public class D {
method D (line 5) | public D() {
FILE: springboot/deps_filter_rules/tests/dependencyset/internal_dependencies/compile_and_runtime_2/src/main/java/com/depsfilter/E.java
class E (line 3) | public class E {
method E (line 5) | public E() {
FILE: springboot/deps_filter_rules/tests/dependencyset/internal_dependencies/compile_and_runtime_2/src/main/java/com/depsfilter/F.java
class F (line 3) | public class F {
method F (line 5) | public F() {
FILE: springboot/deps_filter_rules/tests/dependencyset/internal_dependencies/compile_and_runtime_2/src/main/java/com/depsfilter/G.java
class G (line 3) | public class G {
method G (line 5) | public G() {
FILE: springboot/deps_filter_rules/tests/dependencyset/internal_dependencies/compile_and_runtime_2/src/main/java/com/depsfilter/H.java
class H (line 3) | public class H {
method H (line 4) | public H() {
FILE: springboot/deps_filter_rules/tests/dependencyset/internal_dependencies/compile_and_runtime_2/src/main/java/com/depsfilter/I.java
class I (line 3) | public class I {
method I (line 5) | public I() {
FILE: springboot/deps_filter_rules/tests/dependencyset/internal_dependencies/compile_and_runtime_2/src/main/java/com/depsfilter/J.java
class J (line 3) | public class J {
method J (line 5) | public J() {
FILE: springboot/deps_filter_rules/tests/dependencyset/internal_dependencies/compile_and_runtime_2/src/test/java/com/depsfilter/DepsFilterEmptyExclusionsTest.java
class DepsFilterEmptyExclusionsTest (line 9) | public class DepsFilterEmptyExclusionsTest {
method testTransitivesExclusion (line 11) | @Test
FILE: springboot/deps_filter_rules/tests/dependencyset/internal_dependencies/compile_and_runtime_2/src/test/java/com/depsfilter/DepsFilterExcludeTransitiveTest.java
class DepsFilterExcludeTransitiveTest (line 9) | public class DepsFilterExcludeTransitiveTest {
method testTransitivesExclusion (line 11) | @Test
FILE: springboot/deps_filter_rules/tests/dependencyset/internal_dependencies/compile_and_runtime_2/src/test/java/com/depsfilter/DepsFilterFilteredDepsTest.java
class DepsFilterFilteredDepsTest (line 9) | public class DepsFilterFilteredDepsTest {
method testFilteredDeps (line 11) | @Test
FILE: springboot/deps_filter_rules/tests/dependencyset/internal_dependencies/compile_and_runtime_2/src/test/java/com/depsfilter/DepsFilterInterfaceImplementationTest.java
class DepsFilterInterfaceImplementationTest (line 9) | public class DepsFilterInterfaceImplementationTest {
method testInterfaceImplementationJars (line 11) | @Test
FILE: springboot/deps_filter_rules/tests/dependencyset/internal_dependencies/compile_and_runtime_2/src/test/java/com/depsfilter/DepsFilterMultipleExclusionsWithTransitiveTest.java
class DepsFilterMultipleExclusionsWithTransitiveTest (line 9) | public class DepsFilterMultipleExclusionsWithTransitiveTest {
method testMultipleExclusionsWithTransitive (line 11) | @Test
FILE: springboot/deps_filter_rules/tests/dependencyset/internal_dependencies/compile_and_runtime_2/src/test/java/com/depsfilter/DepsFilterMultipleExclusionsWithoutTransitiveTest.java
class DepsFilterMultipleExclusionsWithoutTransitiveTest (line 9) | public class DepsFilterMultipleExclusionsWithoutTransitiveTest {
method testMultipleExclusionsWithoutTransitive (line 11) | @Test
FILE: springboot/deps_filter_rules/tests/dependencyset/internal_dependencies/compile_and_runtime_2/src/test/java/com/depsfilter/DepsFilterMultiplePathsTest.java
class DepsFilterMultiplePathsTest (line 9) | public class DepsFilterMultiplePathsTest {
method testMultiplePaths (line 11) | @Test
FILE: springboot/deps_filter_rules/tests/dependencyset/internal_dependencies/compile_and_runtime_2/src/test/java/com/depsfilter/DepsFilterPathBasedExclusionsTest.java
class DepsFilterPathBasedExclusionsTest (line 9) | public class DepsFilterPathBasedExclusionsTest {
method testPathBasedExclusions (line 11) | @Test
FILE: springboot/deps_filter_rules/tests/dependencyset/internal_dependencies/compile_and_runtime_2/src/test/java/com/depsfilter/DepsFilterTestHelper.java
class DepsFilterTestHelper (line 10) | public class DepsFilterTestHelper {
method computeClasspathDependencies (line 16) | public static List<String> computeClasspathDependencies() {
method getTestDeps (line 31) | public static List<String> getTestDeps() {
method getRuntimeDepsListBeforeExclusions (line 46) | public static List<String> getRuntimeDepsListBeforeExclusions() {
method getCompleteRuntimeDepsList (line 66) | public static List<String> getCompleteRuntimeDepsList() {
FILE: springboot/deps_filter_rules/tests/dependencyset/internal_dependencies/compile_time_only/src/main/java/com/depsfilter/A.java
class A (line 3) | public class A {
method A (line 7) | public A() {
FILE: springboot/deps_filter_rules/tests/dependencyset/internal_dependencies/compile_time_only/src/main/java/com/depsfilter/B.java
class B (line 3) | public class B {
method B (line 5) | public B() {
FILE: springboot/deps_filter_rules/tests/dependencyset/internal_dependencies/compile_time_only/src/main/java/com/depsfilter/C.java
class C (line 3) | public class C {
method C (line 5) | public C() {
FILE: springboot/deps_filter_rules/tests/dependencyset/internal_dependencies/compile_time_only/src/main/java/com/depsfilter/D.java
class D (line 3) | public class D {
method D (line 5) | public D() {
FILE: springboot/deps_filter_rules/tests/dependencyset/internal_dependencies/compile_time_only/src/main/java/com/depsfilter/E.java
class E (line 3) | public class E {
method E (line 5) | public E() {
FILE: springboot/deps_filter_rules/tests/dependencyset/internal_dependencies/compile_time_only/src/main/java/com/depsfilter/F.java
class F (line 3) | public class F {
method F (line 5) | public F() {
FILE: springboot/deps_filter_rules/tests/dependencyset/internal_dependencies/compile_time_only/src/main/java/com/depsfilter/G.java
class G (line 3) | public class G {
method G (line 5) | public G() {
FILE: springboot/deps_filter_rules/tests/dependencyset/internal_dependencies/compile_time_only/src/main/java/com/depsfilter/H.java
class H (line 3) | public class H {
method H (line 6) | public H() {
FILE: springboot/deps_filter_rules/tests/dependencyset/internal_dependencies/compile_time_only/src/main/java/com/depsfilter/I.java
class I (line 3) | public class I {
method I (line 5) | public I() {
FILE: springboot/deps_filter_rules/tests/dependencyset/internal_dependencies/runtime_only/src/main/java/com/depsfilter/A.java
class A (line 3) | public class A {
method A (line 4) | public A() {
FILE: springboot/deps_filter_rules/tests/dependencyset/internal_dependencies/runtime_only/src/main/java/com/depsfilter/B.java
class B (line 3) | public class B {
method B (line 4) | public B() {
FILE: springboot/deps_filter_rules/tests/dependencyset/internal_dependencies/runtime_only/src/main/java/com/depsfilter/C.java
class C (line 3) | public class C {
method C (line 4) | public C() {
FILE: springboot/deps_filter_rules/tests/dependencyset/internal_dependencies/runtime_only/src/main/java/com/depsfilter/D.java
class D (line 3) | public class D {
method D (line 4) | public D() {
FILE: springboot/deps_filter_rules/tests/dependencyset/internal_dependencies/runtime_only/src/main/java/com/depsfilter/E.java
class E (line 3) | public class E {
method E (line 4) | public E() {
FILE: springboot/deps_filter_rules/tests/dependencyset/internal_dependencies/runtime_only/src/main/java/com/depsfilter/F.java
class F (line 3) | public class F {
method F (line 4) | public F() {
FILE: springboot/deps_filter_rules/tests/dependencyset/internal_dependencies/runtime_only/src/main/java/com/depsfilter/G.java
class G (line 3) | public class G {
method G (line 4) | public G() {
FILE: springboot/deps_filter_rules/tests/dependencyset/internal_dependencies/runtime_only/src/main/java/com/depsfilter/H.java
class H (line 3) | public class H {
method H (line 4) | public H() {
FILE: springboot/deps_filter_rules/tests/dependencyset/internal_dependencies/runtime_only/src/main/java/com/depsfilter/I.java
class I (line 3) | public class I {
method I (line 4) | public I() {
FILE: springboot/deps_filter_rules/tests/depsfilter/external_dependencies/compile_and_runtime/src/test/java/com/depsfilter/DepsFilterCaseSensitivePatternMatchingTest.java
class DepsFilterCaseSensitivePatternMatchingTest (line 9) | public class DepsFilterCaseSensitivePatternMatchingTest {
method setUp (line 11) | @BeforeClass
method testCaseSensitivePatternMatching (line 16) | @Test
FILE: springboot/deps_filter_rules/tests/depsfilter/external_dependencies/compile_and_runtime/src/test/java/com/depsfilter/DepsFilterCompileDepsOnlyTest.java
class DepsFilterCompileDepsOnlyTest (line 9) | public class DepsFilterCompileDepsOnlyTest {
method setUp (line 11) | @BeforeClass
method testCompileDepsOnly (line 16) | @Test
FILE: springboot/deps_filter_rules/tests/depsfilter/external_dependencies/compile_and_runtime/src/test/java/com/depsfilter/DepsFilterEmptyExclusionsTest.java
class DepsFilterEmptyExclusionsTest (line 9) | public class DepsFilterEmptyExclusionsTest {
method setUp (line 11) | @BeforeClass
method testTransitivesExclusion (line 16) | @Test
FILE: springboot/deps_filter_rules/tests/depsfilter/external_dependencies/compile_and_runtime/src/test/java/com/depsfilter/DepsFilterExcludeTransitiveTest.java
class DepsFilterExcludeTransitiveTest (line 9) | public class DepsFilterExcludeTransitiveTest {
method setUp (line 11) | @BeforeClass
method testTransitivesExclusion (line 16) | @Test
FILE: springboot/deps_filter_rules/tests/depsfilter/external_dependencies/compile_and_runtime/src/test/java/com/depsfilter/DepsFilterLabelExclusionsTest.java
class DepsFilterLabelExclusionsTest (line 10) | public class DepsFilterLabelExclusionsTest {
method setUp (line 12) | @BeforeClass
method testLabelExclusions (line 17) | @Test
FILE: springboot/deps_filter_rules/tests/depsfilter/external_dependencies/compile_and_runtime/src/test/java/com/depsfilter/DepsFilterMultipleExclusionsWithTransitivesTest.java
class DepsFilterMultipleExclusionsWithTransitivesTest (line 9) | public class DepsFilterMultipleExclusionsWithTransitivesTest {
method setUp (line 11) | @BeforeClass
method testMultipleExclusionsWithTransitives (line 16) | @Test
FILE: springboot/deps_filter_rules/tests/depsfilter/external_dependencies/compile_and_runtime/src/test/java/com/depsfilter/DepsFilterMultipleExclusionsWithoutTransitivesTest.java
class DepsFilterMultipleExclusionsWithoutTransitivesTest (line 9) | public class DepsFilterMultipleExclusionsWithoutTransitivesTest {
method setUp (line 11) | @BeforeClass
method testMultipleExclusionsWithoutTransitives (line 16) | @Test
FILE: springboot/deps_filter_rules/tests/depsfilter/external_dependencies/compile_and_runtime/src/test/java/com/depsfilter/DepsFilterNoFilteringTest.java
class DepsFilterNoFilteringTest (line 9) | public class DepsFilterNoFilteringTest {
method setUp (line 11) | @BeforeClass
method testNoFiltering (line 16) | @Test
FILE: springboot/deps_filter_rules/tests/depsfilter/external_dependencies/compile_and_runtime/src/test/java/com/depsfilter/DepsFilterOneCompileOneRuntimeDepTest.java
class DepsFilterOneCompileOneRuntimeDepTest (line 9) | public class DepsFilterOneCompileOneRuntimeDepTest {
method setUp (line 11) | @BeforeClass
method testOneCompileOneRuntimeDep (line 16) | @Test
FILE: springboot/deps_filter_rules/tests/depsfilter/external_dependencies/compile_and_runtime/src/test/java/com/depsfilter/DepsFilterPathBasedExclusionsComprehensiveTest.java
class DepsFilterPathBasedExclusionsComprehensiveTest (line 9) | public class DepsFilterPathBasedExclusionsComprehensiveTest {
method setUp (line 11) | @BeforeClass
method testPathBasedExclusionsComprehensive (line 16) | @Test
FILE: springboot/deps_filter_rules/tests/depsfilter/external_dependencies/compile_and_runtime/src/test/java/com/depsfilter/DepsFilterPathExclusionsTest.java
class DepsFilterPathExclusionsTest (line 9) | public class DepsFilterPathExclusionsTest {
method setUp (line 11) | @BeforeClass
method testPathExclusions (line 16) | @Test
FILE: springboot/deps_filter_rules/tests/depsfilter/external_dependencies/compile_and_runtime/src/test/java/com/depsfilter/DepsFilterPathExclusionsWithTransitivesTest.java
class DepsFilterPathExclusionsWithTransitivesTest (line 9) | public class DepsFilterPathExclusionsWithTransitivesTest {
method setUp (line 11) | @BeforeClass
method testPathExclusionsWithTransitives (line 16) | @Test
FILE: springboot/deps_filter_rules/tests/depsfilter/external_dependencies/compile_and_runtime/src/test/java/com/depsfilter/DepsFilterPathPatternsWithSpecialCharactersTest.java
class DepsFilterPathPatternsWithSpecialCharactersTest (line 9) | public class DepsFilterPathPatternsWithSpecialCharactersTest {
method setUp (line 11) | @BeforeClass
method testPathPatternsWithSpecialCharacters (line 16) | @Test
FILE: springboot/deps_filter_rules/tests/depsfilter/external_dependencies/compile_and_runtime/src/test/java/com/depsfilter/DepsFilterRuntimeDepsOnlyTest.java
class DepsFilterRuntimeDepsOnlyTest (line 9) | public class DepsFilterRuntimeDepsOnlyTest {
method setUp (line 11) | @BeforeClass
method testRuntimeDepsOnly (line 16) | @Test
FILE: springboot/deps_filter_rules/tests/depsfilter/external_dependencies/compile_and_runtime/src/test/java/com/depsfilter/DepsFilterSingleDepWithExclusionsTest.java
class DepsFilterSingleDepWithExclusionsTest (line 9) | public class DepsFilterSingleDepWithExclusionsTest {
method setUp (line 11) | @BeforeClass
method testSingleDepWithExclusions (line 16) | @Test
FILE: springboot/deps_filter_rules/tests/depsfilter/external_dependencies/compile_and_runtime/src/test/java/com/depsfilter/DepsFilterSingleRuntimeDepWithExclusionsTest.java
class DepsFilterSingleRuntimeDepWithExclusionsTest (line 9) | public class DepsFilterSingleRuntimeDepWithExclusionsTest {
method setUp (line 11) | @BeforeClass
method testSingleRuntimeDepWithExclusions (line 16) | @Test
FILE: springboot/deps_filter_rules/tests/depsfilter/external_dependencies/compile_and_runtime_through_java_library/src/main/java/com/depsfilter/A.java
class A (line 3) | public class A {
method A (line 5) | public A() {
FILE: springboot/deps_filter_rules/tests/depsfilter/external_dependencies/compile_and_runtime_through_java_library/src/test/java/com/depsfilter/DepsFilterCaseSensitivePatternMatchingTest.java
class DepsFilterCaseSensitivePatternMatchingTest (line 9) | public class DepsFilterCaseSensitivePatternMatchingTest {
method setUp (line 11) | @BeforeClass
method testCaseSensitivePatternMatching (line 16) | @Test
FILE: springboot/deps_filter_rules/tests/depsfilter/external_dependencies/compile_and_runtime_through_java_library/src/test/java/com/depsfilter/DepsFilterCompileDepsOnlyTest.java
class DepsFilterCompileDepsOnlyTest (line 9) | public class DepsFilterCompileDepsOnlyTest {
method setUp (line 11) | @BeforeClass
method testCompileDepsOnly (line 16) | @Test
FILE: springboot/deps_filter_rules/tests/depsfilter/external_dependencies/compile_and_runtime_through_java_library/src/test/java/com/depsfilter/DepsFilterEmptyExclusionsTest.java
class DepsFilterEmptyExclusionsTest (line 9) | public class DepsFilterEmptyExclusionsTest {
method setUp (line 11) | @BeforeClass
method testEmptyExclusions (line 16) | @Test
FILE: springboot/deps_filter_rules/tests/depsfilter/external_dependencies/compile_and_runtime_through_java_library/src/test/java/com/depsfilter/DepsFilterExcludeTransitiveTest.java
class DepsFilterExcludeTransitiveTest (line 9) | public class DepsFilterExcludeTransitiveTest {
method setUp (line 11) | @BeforeClass
method testExcludeTransitive (line 16) | @Test
FILE: springboot/deps_filter_rules/tests/depsfilter/external_dependencies/compile_and_runtime_through_java_library/src/test/java/com/depsfilter/DepsFilterLabelExclusionsTest.java
class DepsFilterLabelExclusionsTest (line 10) | public class DepsFilterLabelExclusionsTest {
method setUp (line 12) | @BeforeClass
method testLabelExclusions (line 17) | @Test
FILE: springboot/deps_filter_rules/tests/depsfilter/external_dependencies/compile_and_runtime_through_java_library/src/test/java/com/depsfilter/DepsFilterMultipleExclusionsWithTransitivesTest.java
class DepsFilterMultipleExclusionsWithTransitivesTest (line 9) | public class DepsFilterMultipleExclusionsWithTransitivesTest {
method setUp (line 11) | @BeforeClass
method testMultipleExclusionsWithTransitives (line 16) | @Test
FILE: springboot/deps_filter_rules/tests/depsfilter/external_dependencies/compile_and_runtime_through_java_library/src/test/java/com/depsfilter/DepsFilterMultipleExclusionsWithoutTransitivesTest.java
class DepsFilterMultipleExclusionsWithoutTransitivesTest (line 9) | public class DepsFilterMultipleExclusionsWithoutTransitivesTest {
method setUp (line 11) | @BeforeClass
method testMultipleExclusionsWithoutTransitives (line 16) | @Test
FILE: springboot/deps_filter_rules/tests/depsfilter/external_dependencies/compile_and_runtime_through_java_library/src/test/java/com/depsfilter/DepsFilterNoFilteringTest.java
class DepsFilterNoFilteringTest (line 9) | public class DepsFilterNoFilteringTest {
method setUp (line 11) | @BeforeClass
method testNoFiltering (line 16) | @Test
FILE: springboot/deps_filter_rules/tests/depsfilter/external_dependencies/compile_and_runtime_through_java_library/src/test/java/com/depsfilter/DepsFilterOneCompileOneRuntimeDepTest.java
class DepsFilterOneCompileOneRuntimeDepTest (line 9) | public class DepsFilterOneCompileOneRuntimeDepTest {
method setUp (line 11) | @BeforeClass
method testOneCompileOneRuntimeDep (line 16) | @Test
FILE: springboot/deps_filter_rules/tests/depsfilter/external_dependencies/compile_and_runtime_through_java_library/src/test/java/com/depsfilter/DepsFilterPathBasedExclusionsComprehensiveTest.java
class DepsFilterPathBasedExclusionsComprehensiveTest (line 9) | public class DepsFilterPathBasedExclusionsComprehensiveTest {
method setUp (line 11) | @BeforeClass
method testPathBasedExclusionsComprehensive (line 16) | @Test
FILE: springboot/deps_filter_rules/tests/depsfilter/external_dependencies/compile_and_runtime_through_java_library/src/test/java/com/depsfilter/DepsFilterPathExclusionsTest.java
class DepsFilterPathExclusionsTest (line 9) | public class DepsFilterPathExclusionsTest {
method setUp (line 11) | @BeforeClass
method testPathExclusions (line 16) | @Test
FILE: springboot/deps_filter_rules/tests/depsfilter/external_dependencies/compile_and_runtime_through_java_library/src/test/java/com/depsfilter/DepsFilterPathExclusionsWithTransitivesTest.java
class DepsFilterPathExclusionsWithTransitivesTest (line 9) | public class DepsFilterPathExclusionsWithTransitivesTest {
method setUp (line 11) | @BeforeClass
method testPathExclusionsWithTransitives (line 16) | @Test
FILE: springboot/deps_filter_rules/tests/depsfilter/external_dependencies/compile_and_runtime_through_java_library/src/test/java/com/depsfilter/DepsFilterPathPatternsWithSpecialCharactersTest.java
class DepsFilterPathPatternsWithSpecialCharactersTest (line 9) | public class DepsFilterPathPatternsWithSpecialCharactersTest {
method setUp (line 11) | @BeforeClass
method testPathPatternsWithSpecialCharacters (line 16) | @Test
FILE: springboot/deps_filter_rules/tests/depsfilter/external_dependencies/compile_and_runtime_through_java_library/src/test/java/com/depsfilter/DepsFilterRuntimeDepsOnlyATest.java
class DepsFilterRuntimeDepsOnlyATest (line 9) | public class DepsFilterRuntimeDepsOnlyATest {
method setUp (line 11) | @BeforeClass
method testRuntimeDepsOnly (line 16) | @Test
FILE: springboot/deps_filter_rules/tests/depsfilter/external_dependencies/compile_and_runtime_through_java_library/src/test/java/com/depsfilter/DepsFilterRuntimeDepsOnlyBTest.java
class DepsFilterRuntimeDepsOnlyBTest (line 9) | public class DepsFilterRuntimeDepsOnlyBTest {
method setUp (line 11) | @BeforeClass
method testRuntimeDepsOnly (line 16) | @Test
FILE: springboot/deps_filter_rules/tests/depsfilter/external_dependencies/compile_and_runtime_through_java_library/src/test/java/com/depsfilter/DepsFilterSingleDepWithExclusionsTest.java
class DepsFilterSingleDepWithExclusionsTest (line 9) | public class DepsFilterSingleDepWithExclusionsTest {
method setUp (line 11) | @BeforeClass
method testSingleDepWithExclusions (line 16) | @Test
FILE: springboot/deps_filter_rules/tests/depsfilter/external_dependencies/compile_and_runtime_through_java_library/src/test/java/com/depsfilter/DepsFilterSingleRuntimeDepWithExclusionsATest.java
class DepsFilterSingleRuntimeDepWithExclusionsATest (line 9) | public class DepsFilterSingleRuntimeDepWithExclusionsATest {
method setUp (line 11) | @BeforeClass
method testSingleRuntimeDepWithExclusions (line 16) | @Test
FILE: springboot/deps_filter_rules/tests/depsfilter/external_dependencies/compile_and_runtime_through_java_library/src/test/java/com/depsfilter/DepsFilterSingleRuntimeDepWithExclusionsBTest.java
class DepsFilterSingleRuntimeDepWithExclusionsBTest (line 9) | public class DepsFilterSingleRuntimeDepWithExclusionsBTest {
method setUp (line 11) | @BeforeClass
method testSingleRuntimeDepWithExclusions (line 16) | @Test
FILE: springboot/deps_filter_rules/tests/depsfilter/internal_dependencies/compile_and_runtime_1/src/main/java/com/depsfilter/A.java
class A (line 3) | public class A {
method A (line 7) | public A() {
FILE: springboot/deps_filter_rules/tests/depsfilter/internal_dependencies/compile_and_runtime_1/src/main/java/com/depsfilter/B.java
class B (line 3) | public class B {
method B (line 5) | public B() {
FILE: springboot/deps_filter_rules/tests/depsfilter/internal_dependencies/compile_and_runtime_1/src/main/java/com/depsfilter/C.java
class C (line 3) | public class C {
method C (line 5) | public C() {
FILE: springboot/deps_filter_rules/tests/depsfilter/internal_dependencies/compile_and_runtime_1/src/main/java/com/depsfilter/D.java
class D (line 3) | public class D {
method D (line 5) | public D() {
FILE: springboot/deps_filter_rules/tests/depsfilter/internal_dependencies/compile_and_runtime_1/src/main/java/com/depsfilter/E.java
class E (line 3) | public class E {
method E (line 5) | public E() {
FILE: springboot/deps_filter_rules/tests/depsfilter/internal_dependencies/compile_and_runtime_1/src/main/java/com/depsfilter/F.java
class F (line 3) | public class F {
method F (line 5) | public F() {
FILE: springboot/deps_filter_rules/tests/depsfilter/internal_dependencies/compile_and_runtime_1/src/main/java/com/depsfilter/G.java
class G (line 3) | public class G {
method G (line 5) | public G() {
FILE: springboot/deps_filter_rules/tests/depsfilter/internal_dependencies/compile_and_runtime_1/src/main/java/com/depsfilter/H.java
class H (line 3) | public class H {
method H (line 6) | public H() {
FILE: springboot/deps_filter_rules/tests/depsfilter/internal_dependencies/compile_and_runtime_2/src/main/java/com/depsfilter/A.java
class A (line 3) | public class A {
method A (line 7) | public A() {
FILE: springboot/deps_filter_rules/tests/depsfilter/internal_dependencies/compile_and_runtime_2/src/main/java/com/depsfilter/B.java
class B (line 3) | public class B {
method B (line 5) | public B() {
FILE: springboot/deps_filter_rules/tests/depsfilter/internal_dependencies/compile_and_runtime_2/src/main/java/com/depsfilter/C.java
class C (line 3) | public class C {
method C (line 5) | public C() {
FILE: springboot/deps_filter_rules/tests/depsfilter/internal_dependencies/compile_and_runtime_2/src/main/java/com/depsfilter/D.java
class D (line 3) | public class D {
method D (line 5) | public D() {
FILE: springboot/deps_filter_rules/tests/depsfilter/internal_dependencies/compile_and_runtime_2/src/main/java/com/depsfilter/E.java
class E (line 3) | public class E {
method E (line 5) | public E() {
FILE: springboot/deps_filter_rules/tests/depsfilter/internal_dependencies/compile_and_runtime_2/src/main/java/com/depsfilter/F.java
class F (line 3) | public class F {
method F (line 5) | public F() {
FILE: springboot/deps_filter_rules/tests/depsfilter/internal_dependencies/compile_and_runtime_2/src/main/java/com/depsfilter/G.java
class G (line 3) | public class G {
method G (line 5) | public G() {
FILE: springboot/deps_filter_rules/tests/depsfilter/internal_dependencies/compile_and_runtime_2/src/main/java/com/depsfilter/H.java
class H (line 3) | public class H {
method H (line 4) | public H() {
FILE: springboot/deps_filter_rules/tests/depsfilter/internal_dependencies/compile_and_runtime_2/src/main/java/com/depsfilter/I.java
class I (line 3) | public class I {
method I (line 5) | public I() {
FILE: springboot/deps_filter_rules/tests/depsfilter/internal_dependencies/compile_and_runtime_2/src/main/java/com/depsfilter/J.java
class J (line 3) | public class J {
method J (line 5) | public J() {
FILE: springboot/deps_filter_rules/tests/depsfilter/internal_dependencies/compile_and_runtime_2/src/test/java/com/depsfilter/DepsFilterEmptyExclusionsTest.java
class DepsFilterEmptyExclusionsTest (line 9) | public class DepsFilterEmptyExclusionsTest {
method testTransitivesExclusion (line 11) | @Test
FILE: springboot/deps_filter_rules/tests/depsfilter/internal_dependencies/compile_and_runtime_2/src/test/java/com/depsfilter/DepsFilterExcludeTransitiveTest.java
class DepsFilterExcludeTransitiveTest (line 9) | public class DepsFilterExcludeTransitiveTest {
method testTransitivesExclusion (line 11) | @Test
FILE: springboot/deps_filter_rules/tests/depsfilter/internal_dependencies/compile_and_runtime_2/src/test/java/com/depsfilter/DepsFilterFilteredDepsTest.java
class DepsFilterFilteredDepsTest (line 9) | public class DepsFilterFilteredDepsTest {
method testFilteredDeps (line 11) | @Test
FILE: springboot/deps_filter_rules/tests/depsfilter/internal_dependencies/compile_and_runtime_2/src/test/java/com/depsfilter/DepsFilterInterfaceImplementationTest.java
class DepsFilterInterfaceImplementationTest (line 9) | public class DepsFilterInterfaceImplementationTest {
method testInterfaceImplementationJars (line 11) | @Test
FILE: springboot/deps_filter_rules/tests/depsfilter/internal_dependencies/compile_and_runtime_2/src/test/java/com/depsfilter/DepsFilterMultipleExclusionsWithTransitiveTest.java
class DepsFilterMultipleExclusionsWithTransitiveTest (line 9) | public class DepsFilterMultipleExclusionsWithTransitiveTest {
method testMultipleExclusionsWithTransitive (line 11) | @Test
FILE: springboot/deps_filter_rules/tests/depsfilter/internal_dependencies/compile_and_runtime_2/src/test/java/com/depsfilter/DepsFilterMultipleExclusionsWithoutTransitiveTest.java
class DepsFilterMultipleExclusionsWithoutTransitiveTest (line 9) | public class DepsFilterMultipleExclusionsWithoutTransitiveTest {
method testMultipleExclusionsWithoutTransitive (line 11) | @Test
FILE: springboot/deps_filter_rules/tests/depsfilter/internal_dependencies/compile_and_runtime_2/src/test/java/com/depsfilter/DepsFilterMultiplePathsTest.java
class DepsFilterMultiplePathsTest (line 9) | public class DepsFilterMultiplePathsTest {
method testMultiplePaths (line 11) | @Test
FILE: springboot/deps_filter_rules/tests/depsfilter/internal_dependencies/compile_and_runtime_2/src/test/java/com/depsfilter/DepsFilterPathBasedExclusionsTest.java
class DepsFilterPathBasedExclusionsTest (line 9) | public class DepsFilterPathBasedExclusionsTest {
method testPathBasedExclusions (line 11) | @Test
FILE: springboot/deps_filter_rules/tests/depsfilter/internal_dependencies/compile_and_runtime_2/src/test/java/com/depsfilter/DepsFilterTestHelper.java
class DepsFilterTestHelper (line 10) | public class DepsFilterTestHelper {
method computeClasspathDependencies (line 16) | public static List<String> computeClasspathDependencies() {
method getTestDeps (line 31) | public static List<String> getTestDeps() {
method getRuntimeDepsListBeforeExclusions (line 46) | public static List<String> getRuntimeDepsListBeforeExclusions() {
method getCompleteRuntimeDepsList (line 66) | public static List<String> getCompleteRuntimeDepsList() {
FILE: springboot/deps_filter_rules/tests/depsfilter/internal_dependencies/compile_time_only/src/main/java/com/depsfilter/A.java
class A (line 3) | public class A {
method A (line 7) | public A() {
FILE: springboot/deps_filter_rules/tests/depsfilter/internal_dependencies/compile_time_only/src/main/java/com/depsfilter/B.java
class B (line 3) | public class B {
method B (line 5) | public B() {
FILE: springboot/deps_filter_rules/tests/depsfilter/internal_dependencies/compile_time_only/src/main/java/com/depsfilter/C.java
class C (line 3) | public class C {
method C (line 5) | public C() {
FILE: springboot/deps_filter_rules/tests/depsfilter/internal_dependencies/compile_time_only/src/main/java/com/depsfilter/D.java
class D (line 3) | public class D {
method D (line 5) | public D() {
FILE: springboot/deps_filter_rules/tests/depsfilter/internal_dependencies/compile_time_only/src/main/java/com/depsfilter/E.java
class E (line 3) | public class E {
method E (line 5) | public E() {
FILE: springboot/deps_filter_rules/tests/depsfilter/internal_dependencies/compile_time_only/src/main/java/com/depsfilter/F.java
class F (line 3) | public class F {
method F (line 5) | public F() {
FILE: springboot/deps_filter_rules/tests/depsfilter/internal_dependencies/compile_time_only/src/main/java/com/depsfilter/G.java
class G (line 3) | public class G {
method G (line 5) | public G() {
FILE: springboot/deps_filter_rules/tests/depsfilter/internal_dependencies/compile_time_only/src/main/java/com/depsfilter/H.java
class H (line 3) | public class H {
method H (line 6) | public H() {
FILE: springboot/deps_filter_rules/tests/depsfilter/internal_dependencies/runtime_only/src/main/java/com/depsfilter/A.java
class A (line 3) | public class A {
method A (line 4) | public A() {
FILE: springboot/deps_filter_rules/tests/depsfilter/internal_dependencies/runtime_only/src/main/java/com/depsfilter/B.java
class B (line 3) | public class B {
method B (line 4) | public B() {
FILE: springboot/deps_filter_rules/tests/depsfilter/internal_dependencies/runtime_only/src/main/java/com/depsfilter/C.java
class C (line 3) | public class C {
method C (line 4) | public C() {
FILE: springboot/deps_filter_rules/tests/depsfilter/internal_dependencies/runtime_only/src/main/java/com/depsfilter/D.java
class D (line 3) | public class D {
method D (line 4) | public D() {
FILE: springboot/deps_filter_rules/tests/depsfilter/internal_dependencies/runtime_only/src/main/java/com/depsfilter/E.java
class E (line 3) | public class E {
method E (line 4) | public E() {
FILE: springboot/deps_filter_rules/tests/depsfilter/internal_dependencies/runtime_only/src/main/java/com/depsfilter/F.java
class F (line 3) | public class F {
method F (line 4) | public F() {
FILE: springboot/deps_filter_rules/tests/depsfilter/internal_dependencies/runtime_only/src/main/java/com/depsfilter/G.java
class G (line 3) | public class G {
method G (line 4) | public G() {
FILE: springboot/deps_filter_rules/tests/depsfilter/internal_dependencies/runtime_only/src/main/java/com/depsfilter/H.java
class H (line 3) | public class H {
method H (line 4) | public H() {
FILE: springboot/deps_filter_rules/tests/test_utils/src/test/java/com/depsfilter/DependencyGraphAnalyzer.java
class DependencyGraphAnalyzer (line 7) | public class DependencyGraphAnalyzer {
method parseDependencyGraph (line 13) | public void parseDependencyGraph(String graphOutput) {
method isJarLabel (line 44) | private boolean isJarLabel(String label) {
method isTargetLabel (line 48) | private boolean isTargetLabel(String label) {
method buildLabelToRuntimeMapping (line 52) | private void buildLabelToRuntimeMapping() {
method convertLabelToRuntimeName (line 61) | private String convertLabelToRuntimeName(String label) {
method computeExpectedRuntimeJars (line 81) | public Set<String> computeExpectedRuntimeJars(
method addDependencyAndTransitives (line 152) | private void addDependencyAndTransitives(
method getTransitiveDependencies (line 179) | private Set<String> getTransitiveDependencies(String label) {
method dfs (line 186) | private void dfs(String node, Set<String> transitives, Set<String> vis...
method isExcludedByPattern (line 205) | private boolean isExcludedByPattern(String label, Set<String> patterns) {
method getLabelToRuntimeMapping (line 219) | public Map<String, String> getLabelToRuntimeMapping() {
method getDependencyGraph (line 223) | public Map<String, Set<String>> getDependencyGraph() {
method findReachableJarLabels (line 227) | private void findReachableJarLabels(String node, Set<String> jarLabels...
FILE: springboot/deps_filter_rules/tests/test_utils/src/test/java/com/depsfilter/DependencyGraphTestConfig.java
class DependencyGraphTestConfig (line 8) | public class DependencyGraphTestConfig {
method initialize (line 27) | public static void initialize() {
method getAnalyzer (line 42) | public static DependencyGraphAnalyzer getAnalyzer() {
method getExpectedJarsForNoFiltering (line 49) | public static Set<String> getExpectedJarsForNoFiltering() {
method getExpectedJarsForNoFilteringFiltered (line 59) | public static Set<String> getExpectedJarsForNoFilteringFiltered() {
method getExpectedJarsForLabelExclusions (line 70) | public static Set<String> getExpectedJarsForLabelExclusions(Set<String...
method getExpectedJarsForLabelExclusionsFiltered (line 80) | public static Set<String> getExpectedJarsForLabelExclusionsFiltered(Se...
method getExpectedJarsForPathExclusions (line 91) | public static Set<String> getExpectedJarsForPathExclusions(Set<String>...
method getExpectedJarsForPathExclusionsFiltered (line 101) | public static Set<String> getExpectedJarsForPathExclusionsFiltered(Set...
method getExpectedJarsForMultipleExclusions (line 112) | public static Set<String> getExpectedJarsForMultipleExclusions(
method getExpectedJarsForMultipleExclusionsFiltered (line 125) | public static Set<String> getExpectedJarsForMultipleExclusionsFiltered(
method getStandardDeps (line 139) | public static List<String> getStandardDeps() {
method getStandardRuntimeDeps (line 143) | public static List<String> getStandardRuntimeDeps() {
method getExpectedJarsForCustomDeps (line 147) | public static Set<String> getExpectedJarsForCustomDeps(
method getExpectedJarsForCustomDepsFiltered (line 162) | public static Set<String> getExpectedJarsForCustomDepsFiltered(
FILE: springboot/deps_filter_rules/tests/test_utils/src/test/java/com/depsfilter/DepsFilterTestHelper.java
class DepsFilterTestHelper (line 6) | public class DepsFilterTestHelper {
method computeClasspathDependencies (line 8) | public static List<String> computeClasspathDependencies() {
method getTestDeps (line 18) | public static List<String> getTestDeps() {
FILE: springboot/deps_filter_rules_legacy/src/test/java/com/depsfilter/DepsFilterWithTransitivesExclusionTest.java
class DepsFilterWithTransitivesExclusionTest (line 9) | public class DepsFilterWithTransitivesExclusionTest {
method testTransitivesExclusion (line 18) | @Test
method getExcludedTransitives (line 85) | private List<String> getExcludedTransitives() {
method getNonExcludedTransitives (line 97) | private List<String> getNonExcludedTransitives() {
method computeClasspathDependencies (line 106) | private List<String> computeClasspathDependencies() {
method initialTestSetup (line 116) | private void initialTestSetup() {
FILE: springboot/deps_filter_rules_legacy/src/test/java/com/depsfilter/DepsFilterWithoutTransitivesExclusionTest.java
class DepsFilterWithoutTransitivesExclusionTest (line 11) | public class DepsFilterWithoutTransitivesExclusionTest {
method testTransitivesExclusion (line 20) | @Test
method getTransitiveDeps (line 84) | private List<String> getTransitiveDeps() {
method computeClasspathDependencies (line 96) | private List<String> computeClasspathDependencies() {
method initialTestSetup (line 106) | private void initialTestSetup() {
FILE: springboot/deps_filter_rules_legacy/src/test/java/com/depsfilter/TransitiveDepsFilterCaseA.java
class TransitiveDepsFilterCaseA (line 11) | public class TransitiveDepsFilterCaseA {
method testTransitivesExclusion (line 18) | @Test
method getTransitiveDeps (line 71) | private List<String> getTransitiveDeps() {
method computeClasspathDependencies (line 83) | private List<String> computeClasspathDependencies() {
method initialTestSetup (line 93) | private void initialTestSetup() {
FILE: springboot/deps_filter_rules_legacy/src/test/java/com/depsfilter/TransitiveDepsFilterCaseB.java
class TransitiveDepsFilterCaseB (line 11) | public class TransitiveDepsFilterCaseB {
method testTransitivesExclusion (line 18) | @Test
method getExcludedTransitives (line 83) | private List<String> getExcludedTransitives() {
method getNonExcludedTransitives (line 97) | private List<String> getNonExcludedTransitives() {
method computeClasspathDependencies (line 107) | private List<String> computeClasspathDependencies() {
method initialTestSetup (line 117) | private void initialTestSetup() {
FILE: springboot/deps_filter_rules_legacy/src/test/java/com/depsfilter/TransitiveDepsFilterCaseC.java
class TransitiveDepsFilterCaseC (line 11) | public class TransitiveDepsFilterCaseC {
method testTransitivesExclusion (line 18) | @Test
method getExcludedTransitives (line 81) | private List<String> getExcludedTransitives() {
method getNonExcludedTransitives (line 95) | private List<String> getNonExcludedTransitives() {
method computeClasspathDependencies (line 107) | private List<String> computeClasspathDependencies() {
method initialTestSetup (line 117) | private void initialTestSetup() {
FILE: springboot/deps_filter_rules_legacy/src/test/java/com/depsfilter/TransitiveDepsFilterCaseD.java
class TransitiveDepsFilterCaseD (line 11) | public class TransitiveDepsFilterCaseD {
method testTransitivesExclusion (line 18) | @Test
method getTransitiveDeps (line 67) | private List<String> getTransitiveDeps() {
method computeClasspathDependencies (line 80) | private List<String> computeClasspathDependencies() {
method initialTestSetup (line 90) | private void initialTestSetup() {
FILE: springboot/detect_javax_classes.py
function _check_for_javax_classes (line 16) | def _check_for_javax_classes(springbootzip_filepath, ignorelisted_jars, ...
function _parse_ignorelisted_jars_file (line 105) | def _parse_ignorelisted_jars_file(ignorelist_file):
function _write_result_to_output_file (line 132) | def _write_result_to_output_file(output_filepath, result):
function run_with_ignorelist (line 138) | def run_with_ignorelist(springbootzip_filepath, ignorelisted_jars, outpu...
function run (line 147) | def run(springbootzip_filepath, ignorelist_file, output_filepath):
FILE: springboot/src/main/java/com/salesforce/rulesspring/cli/SpringBootInspector.java
class SpringBootInspector (line 11) | public class SpringBootInspector {
method main (line 13) | public static void main(String[] args) throws Exception {
method usage (line 60) | protected static void usage() {
method parseArgs (line 78) | protected static Command parseArgs(String[] args) {
method parseOptionalArgs (line 106) | protected static void parseOptionalArgs(String[] args, int index, Comm...
class Command (line 122) | public static class Command {
FILE: springboot/src/main/java/com/salesforce/rulesspring/index/IndexFileType.java
type IndexFileType (line 3) | public enum IndexFileType {
FILE: springboot/src/main/java/com/salesforce/rulesspring/index/IndexOfFiles.java
class IndexOfFiles (line 9) | public class IndexOfFiles {
method IndexOfFiles (line 29) | public IndexOfFiles(String jarPath) {
method IndexOfFiles (line 33) | public IndexOfFiles(IndexedFile parentIndex, String jarPath) {
method addIndexEntry (line 39) | public void addIndexEntry(IndexedFile indexEntry) {
method getJarPath (line 56) | public String getJarPath() {
method getParentIndex (line 60) | public IndexedFile getParentIndex() {
method getLibraries (line 64) | public List<IndexedFile> getLibraries() {
method getClasses (line 68) | public List<IndexedFile> getClasses() {
method getResources (line 72) | public List<IndexedFile> getResources() {
FILE: springboot/src/main/java/com/salesforce/rulesspring/index/IndexedFile.java
class IndexedFile (line 10) | public class IndexedFile {
method parseZipEntry (line 28) | static IndexedFile parseZipEntry(IndexedFile parentLibrary, ZipEntry z...
class FullPathComparator (line 61) | public static class FullPathComparator implements Comparator<IndexedFi...
method compare (line 62) | @Override
class FilenameComparator (line 68) | public static class FilenameComparator implements Comparator<IndexedFi...
method compare (line 69) | @Override
FILE: springboot/src/main/java/com/salesforce/rulesspring/index/SpringBootIndexReporter.java
class SpringBootIndexReporter (line 12) | public class SpringBootIndexReporter {
method SpringBootIndexReporter (line 27) | public SpringBootIndexReporter() {
method generateReport (line 31) | public String generateReport(IndexOfFiles index) {
method generateReport (line 35) | public String generateReport(IndexOfFiles index, String options) {
method parseOptions (line 68) | protected void parseOptions(String options) {
method processList (line 83) | protected void processList(List<IndexedFile> list, String headingLabel...
FILE: springboot/src/main/java/com/salesforce/rulesspring/index/SpringBootJarIndexer.java
class SpringBootJarIndexer (line 13) | public class SpringBootJarIndexer {
method SpringBootJarIndexer (line 17) | public SpringBootJarIndexer(File jarFile) {
method indexJar (line 26) | public IndexOfFiles indexJar(boolean recursive) throws IOException {
method indexJar (line 50) | protected IndexOfFiles indexJar(IndexedFile parentLibrary, ZipEntry ne...
FILE: springboot/src/test/java/com/salesforce/rulesspring/index/SpringBootJarIndexerTest.java
class SpringBootJarIndexerTest (line 3) | public class SpringBootJarIndexerTest {
FILE: springboot/tests/check_dupe_classes_test.py
class TestVerifyDupeClasses (line 20) | class TestVerifyDupeClasses(unittest.TestCase):
method setUp (line 22) | def setUp(self):
method tearDown (line 27) | def tearDown(self):
method test_single_jar_with_two_unique_class (line 30) | def test_single_jar_with_two_unique_class(self):
method test_two_jars_with_duplicate_class__same_content (line 44) | def test_two_jars_with_duplicate_class__same_content(self):
method test_two_jars_with_duplicate_class__different_content (line 62) | def test_two_jars_with_duplicate_class__different_content(self):
method test_two_jars_with_duplicate_class_allowlisted__different_content (line 80) | def test_two_jars_with_duplicate_class_allowlisted__different_content(...
method _create_jar (line 98) | def _create_jar(self, name, jar_dir, classes_dir):
method _create_springboot_jar (line 104) | def _create_springboot_jar(self, name, innerjar_dir):
method _create_fake_class (line 110) | def _create_fake_class(self, name, root_classes_dir, package, content):
method _write_index_file (line 120) | def _write_index_file(self, jar_files):
method _write_allowlist_file (line 129) | def _write_allowlist_file(self):
method _run (line 136) | def _run(self, cmd, cwd=None):
Condensed preview — 311 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (1,581K chars).
[
{
"path": ".aspect/bazelrc/README.md",
"chars": 120,
"preview": "## Aspect bazelrc Presets\n\nSee:\n- [Aspect Presets](https://github.com/bazel-contrib/bazel-lib/tree/main/.aspect/bazelrc)"
},
{
"path": ".aspect/bazelrc/automatic_updates.md",
"chars": 1001,
"preview": "## Automatic updates\n\nA convenient way to automatically keep your vendored copy up-to-date is to use the `write_aspect_b"
},
{
"path": ".aspect/bazelrc/bazel6.bazelrc",
"chars": 3012,
"preview": "# Speed up all builds by not checking if external repository files have been modified.\n# Docs: https://github.com/bazelb"
},
{
"path": ".aspect/bazelrc/bazel7.bazelrc",
"chars": 1078,
"preview": "# Speed up all builds by not checking if external repository files have been modified.\n# Docs: https://github.com/bazelb"
},
{
"path": ".aspect/bazelrc/bazel8.bazelrc",
"chars": 40,
"preview": "# No Bazel 8 specific flag presets yet.\n"
},
{
"path": ".aspect/bazelrc/ci.bazelrc",
"chars": 3462,
"preview": "# Set this flag to enable re-tries of failed tests on CI.\n# When any test target fails, try one or more times. This appl"
},
{
"path": ".aspect/bazelrc/convenience.bazelrc",
"chars": 1595,
"preview": "# Attempt to build & test every target whose prerequisites were successfully built.\n# Docs: https://bazel.build/docs/use"
},
{
"path": ".aspect/bazelrc/correctness.bazelrc",
"chars": 4276,
"preview": "# Do not upload locally executed action results to the remote cache.\n# This should be the default for local builds so lo"
},
{
"path": ".aspect/bazelrc/debug.bazelrc",
"chars": 767,
"preview": "############################################################\n# Use `bazel test --config=debug` to enable these settings "
},
{
"path": ".aspect/bazelrc/intro.md",
"chars": 196,
"preview": "# Aspect bazelrc presets\n\nThe `.bazelrc` files found here are the source-of-truth for our recommended Bazel presets.\n\nTh"
},
{
"path": ".aspect/bazelrc/java.bazelrc",
"chars": 1291,
"preview": "# Aspect recommended Bazel flags when using rules_java and rules_jvm_external\n\n# Pin java versions to desired language l"
},
{
"path": ".aspect/bazelrc/javascript.bazelrc",
"chars": 801,
"preview": "# Aspect recommended Bazel flags when using Aspect's JavaScript rules: https://github.com/aspect-build/rules_js\n# Docs f"
},
{
"path": ".aspect/bazelrc/performance.bazelrc",
"chars": 1598,
"preview": "# Directories used by sandboxed non-worker execution may be reused to avoid unnecessary setup costs.\n# Save time on Sand"
},
{
"path": ".aspect/bazelrc/usage.md",
"chars": 1455,
"preview": "## Using Aspect bazelrc presets in your project\n\nThe `.bazelrc` file can get large, fast.\nSome settings don't apply ever"
},
{
"path": ".bazelrc",
"chars": 1647,
"preview": "#\n# Copyright (c) 2017-2024, salesforce.com, inc.\n# All rights reserved.\n# Licensed under the BSD 3-Clause license.\n# Fo"
},
{
"path": ".bazelversion",
"chars": 6,
"preview": "7.4.1\n"
},
{
"path": ".gitignore",
"chars": 733,
"preview": "#\n# Copyright (c) 2017-2021, salesforce.com, inc.\n# All rights reserved.\n# Licensed under the BSD 3-Clause license.\n# Fo"
},
{
"path": "BUILD",
"chars": 910,
"preview": "#\n# Copyright (c) 2017-2024, salesforce.com, inc.\n# All rights reserved.\n# Licensed under the BSD 3-Clause license.\n# Fo"
},
{
"path": "CODEOWNERS",
"chars": 140,
"preview": "# Comment line immediately above ownership line is reserved for related gus information. Please be careful while editing"
},
{
"path": "CODE_OF_CONDUCT.md",
"chars": 5154,
"preview": "# Salesforce Open Source Community Code of Conduct\n\n## About the Code of Conduct\n\nEquality is a core value at Salesforce"
},
{
"path": "LICENSE.txt",
"chars": 582,
"preview": "Copyright (c) 2017-2024, Salesforce\nAll rights reserved.\n\nLicensed under the Apache License, Version 2.0 (the \"License\")"
},
{
"path": "MODULE.bazel",
"chars": 4181,
"preview": "module(\n name = \"rules_spring\",\n version = \"2.6.3\",\n compatibility_level = 2,\n repo_name = \"rules_spring\",\n)"
},
{
"path": "README.md",
"chars": 4498,
"preview": "## Salesforce Spring Rules for Bazel\n\nThis repository contains the [Spring Boot](https://spring.io/guides/gs/spring-boot"
},
{
"path": "REPO.bazel",
"chars": 55,
"preview": "repo(\n default_package_metadata = [\"//:license\"],\n)\n"
},
{
"path": "SECURITY.md",
"chars": 400,
"preview": "## Security\n\nPlease report any security issue to [security@salesforce.com](mailto:security@salesforce.com)\nas soon as it"
},
{
"path": "examples/README.md",
"chars": 734,
"preview": "## Bazel Spring Boot Rule Examples\n\nNavigate into our examples directories:\n\n- [Hello World](helloworld): bare bones exa"
},
{
"path": "examples/demoapp/BUILD",
"chars": 7903,
"preview": "#\n# Copyright (c) 2017-2024, salesforce.com, inc.\n# All rights reserved.\n# Licensed under the BSD 3-Clause license.\n# Fo"
},
{
"path": "examples/demoapp/README.md",
"chars": 595,
"preview": "## Demo App Spring Boot Example\n\n\nThis example shows how to use many of the features of the Spring Boot rule for Bazel.\n"
},
{
"path": "examples/demoapp/application-dev.properties",
"chars": 54,
"preview": "demoapp.config.rootdirectory=loaded (via dev profile)\n"
},
{
"path": "examples/demoapp/application.properties",
"chars": 36,
"preview": "demoapp.config.rootdirectory=loaded\n"
},
{
"path": "examples/demoapp/author.txt",
"chars": 11,
"preview": "Salesforce\n"
},
{
"path": "examples/demoapp/config/application.properties",
"chars": 40,
"preview": "demoapp.config.configsubdirectory=loaded"
},
{
"path": "examples/demoapp/custom_bazelrun_script.sh",
"chars": 4664,
"preview": "#!/bin/bash\n\n# Copyright (c) 2021-2024, salesforce.com, inc.\n# All rights reserved.\n# Licensed under the BSD 3-Clause li"
},
{
"path": "examples/demoapp/demoapp_classpath.idx",
"chars": 32,
"preview": "- \"liblib1.jar\"\n- \"liblib2.jar\"\n"
},
{
"path": "examples/demoapp/demoapp_dupeclass_allowlist.txt",
"chars": 255,
"preview": "#\n# Copyright (c) 2019-2024, salesforce.com, inc.\n# All rights reserved.\n# Licensed under the BSD 3-Clause license.\n# Fo"
},
{
"path": "examples/demoapp/example_data.txt",
"chars": 8,
"preview": "x=0\ny=0\n"
},
{
"path": "examples/demoapp/generate-build-info.bzl",
"chars": 488,
"preview": "# This macro runs a shell script to implant build variables into a properties file,\n# which is in turn consumed by Sprin"
},
{
"path": "examples/demoapp/generate-build-info.sh",
"chars": 661,
"preview": "#!/bin/bash\nset -e\n\n# This script is invoked by generate-build-info.bzl, which is in turn invoked by\n# the BUILD file. C"
},
{
"path": "examples/demoapp/info.txt",
"chars": 132,
"preview": "This springboot jar was built by Bazel rules_spring.\n\nIt is copied into the toplevel directory of the springboot jar as "
},
{
"path": "examples/demoapp/libs/lib1/BUILD",
"chars": 671,
"preview": "#\n# Copyright (c) 2020-2021, salesforce.com, inc.\n# All rights reserved.\n# Licensed under the BSD 3-Clause license.\n# Fo"
},
{
"path": "examples/demoapp/libs/lib1/src/main/java/com/bazel/demo/IntentionalDupedClass.java",
"chars": 362,
"preview": "/*\n * Copyright (c) 2019-2021, salesforce.com, inc.\n * All rights reserved.\n * Licensed under the BSD 3-Clause license.\n"
},
{
"path": "examples/demoapp/libs/lib1/src/test/java/com/bazel/demo/IntentionalDupedClassTest.java",
"chars": 543,
"preview": "/*\n * Copyright (c) 2019-2021, salesforce.com, inc.\n * All rights reserved.\n * Licensed under the BSD 3-Clause license.\n"
},
{
"path": "examples/demoapp/libs/lib2/BUILD",
"chars": 671,
"preview": "#\n# Copyright (c) 2020-2021, salesforce.com, inc.\n# All rights reserved.\n# Licensed under the BSD 3-Clause license.\n# Fo"
},
{
"path": "examples/demoapp/libs/lib2/src/main/java/com/bazel/demo/IntentionalDupedClass.java",
"chars": 362,
"preview": "/*\n * Copyright (c) 2019-2021, salesforce.com, inc.\n * All rights reserved.\n * Licensed under the BSD 3-Clause license.\n"
},
{
"path": "examples/demoapp/libs/lib2/src/test/java/com/bazel/demo/IntentionalDupedClassTest.java",
"chars": 543,
"preview": "/*\n * Copyright (c) 2019-2021, salesforce.com, inc.\n * All rights reserved.\n * Licensed under the BSD 3-Clause license.\n"
},
{
"path": "examples/demoapp/libs/lib3_neverlink/BUILD",
"chars": 733,
"preview": "#\n# Copyright (c) 2020-2024, salesforce.com, inc.\n# All rights reserved.\n# Licensed under the BSD 3-Clause license.\n# Fo"
},
{
"path": "examples/demoapp/libs/lib3_neverlink/README.md",
"chars": 953,
"preview": "## Neverlink Lib\n\nThis example *java_library* has *neverlink* set to true.\n\n```\nBoolean; default is False\n\nWhether this "
},
{
"path": "examples/demoapp/libs/lib3_neverlink/src/main/java/com/bazel/demo/NeverLinkedClass.java",
"chars": 357,
"preview": "/*\n * Copyright (c) 2019-2021, salesforce.com, inc.\n * All rights reserved.\n * Licensed under the BSD 3-Clause license.\n"
},
{
"path": "examples/demoapp/libs/lib3_neverlink/src/test/java/com/bazel/demo/NeverLinkTest.java",
"chars": 772,
"preview": "/*\n * Copyright (c) 2019-2024, salesforce.com, inc.\n * All rights reserved.\n * Licensed under the BSD 3-Clause license.\n"
},
{
"path": "examples/demoapp/remote_debug.sh",
"chars": 182,
"preview": "# Remote attach debugging of the demoapp executable jar\n\njava -Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server="
},
{
"path": "examples/demoapp/src/main/java/com/sample/SampleAutoConfiguration.java",
"chars": 2998,
"preview": "package com.sample;\n\nimport jakarta.annotation.PostConstruct;\nimport org.springframework.beans.factory.annotation.Autowi"
},
{
"path": "examples/demoapp/src/main/java/com/sample/SampleMain.java",
"chars": 1437,
"preview": "/*\n * Copyright (c) 2019-2021, salesforce.com, inc.\n * All rights reserved.\n * Licensed under the BSD 3-Clause license.\n"
},
{
"path": "examples/demoapp/src/main/java/com/sample/SampleRest.java",
"chars": 511,
"preview": "/*\n * Copyright (c) 2019-2021, salesforce.com, inc.\n * All rights reserved.\n * Licensed under the BSD 3-Clause license.\n"
},
{
"path": "examples/demoapp/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports",
"chars": 34,
"preview": "com.sample.SampleAutoConfiguration"
},
{
"path": "examples/demoapp/src/main/resources/application.properties",
"chars": 417,
"preview": "#\n# Copyright (c) 2017-2021, salesforce.com, inc.\n# All rights reserved.\n# Licensed under the BSD 3-Clause license.\n# Fo"
},
{
"path": "examples/demoapp/src/test/java/com/salesforce/rules_spring/PackagingTest.java",
"chars": 3914,
"preview": "/*\n * Copyright (c) 2021, salesforce.com, inc.\n * All rights reserved.\n * Licensed under the BSD 3-Clause license.\n * Fo"
},
{
"path": "examples/demoapp/src/test/java/com/sample/SampleRestFuncTest.java",
"chars": 1129,
"preview": "/*\n * Copyright (c) 2021, salesforce.com, inc.\n * All rights reserved.\n * Licensed under the BSD 3-Clause license.\n * Fo"
},
{
"path": "examples/demoapp/src/test/java/com/sample/SampleRestUnitTest.java",
"chars": 595,
"preview": "/*\n * Copyright (c) 2021, salesforce.com, inc.\n * All rights reserved.\n * Licensed under the BSD 3-Clause license.\n * Fo"
},
{
"path": "examples/demoapp/src/test/resources/test.properties",
"chars": 18,
"preview": "anyprop=somevalue\n"
},
{
"path": "examples/demoapp/src_root/main/java/com/sample/SampleRootClass.java",
"chars": 324,
"preview": "/*\n * Copyright (c) 2019-2021, salesforce.com, inc.\n * All rights reserved.\n * Licensed under the BSD 3-Clause license.\n"
},
{
"path": "examples/helloworld/BUILD",
"chars": 2556,
"preview": "#\n# Copyright (c) 2017-2021, salesforce.com, inc.\n# All rights reserved.\n# Licensed under the BSD 3-Clause license.\n# Fo"
},
{
"path": "examples/helloworld/README.md",
"chars": 311,
"preview": "## Hello World Spring Boot Example\n\n\nThis example shows a simple Spring Boot application packaged with Bazel.\n\nTo build:"
},
{
"path": "examples/helloworld/libs/lib1/BUILD",
"chars": 671,
"preview": "#\n# Copyright (c) 2020-2021, salesforce.com, inc.\n# All rights reserved.\n# Licensed under the BSD 3-Clause license.\n# Fo"
},
{
"path": "examples/helloworld/libs/lib1/src/main/java/com/bazel/demo/IntentionalDupedClass.java",
"chars": 362,
"preview": "/*\n * Copyright (c) 2019-2021, salesforce.com, inc.\n * All rights reserved.\n * Licensed under the BSD 3-Clause license.\n"
},
{
"path": "examples/helloworld/libs/lib1/src/test/java/com/bazel/demo/IntentionalDupedClassTest.java",
"chars": 544,
"preview": "/*\n * Copyright (c) 2019-2021, salesforce.com, inc.\n * All rights reserved.\n * Licensed under the BSD 3-Clause license.\n"
},
{
"path": "examples/helloworld/libs/lib2/BUILD",
"chars": 671,
"preview": "#\n# Copyright (c) 2020-2021, salesforce.com, inc.\n# All rights reserved.\n# Licensed under the BSD 3-Clause license.\n# Fo"
},
{
"path": "examples/helloworld/libs/lib2/src/main/java/com/bazel/demo/IntentionalDupedClass.java",
"chars": 362,
"preview": "/*\n * Copyright (c) 2019-2021, salesforce.com, inc.\n * All rights reserved.\n * Licensed under the BSD 3-Clause license.\n"
},
{
"path": "examples/helloworld/libs/lib2/src/test/java/com/bazel/demo/IntentionalDupedClassTest.java",
"chars": 544,
"preview": "/*\n * Copyright (c) 2019-2021, salesforce.com, inc.\n * All rights reserved.\n * Licensed under the BSD 3-Clause license.\n"
},
{
"path": "examples/helloworld/remote_debug.sh",
"chars": 191,
"preview": "# Remote attach debugging of the helloworld executable jar\n\njava -Xdebug -Xrunjdwp:transport=dt_socket,address=8000,serv"
},
{
"path": "examples/helloworld/src/main/java/com/sample/SampleAutoConfiguration.java",
"chars": 202,
"preview": "package com.sample;\n\nimport org.springframework.context.annotation.Bean;\n\npublic class SampleAutoConfiguration {\n @Be"
},
{
"path": "examples/helloworld/src/main/java/com/sample/SampleMain.java",
"chars": 817,
"preview": "/*\n * Copyright (c) 2019-2021, salesforce.com, inc.\n * All rights reserved.\n * Licensed under the BSD 3-Clause license.\n"
},
{
"path": "examples/helloworld/src/main/java/com/sample/SampleRest.java",
"chars": 514,
"preview": "/*\n * Copyright (c) 2019-2021, salesforce.com, inc.\n * All rights reserved.\n * Licensed under the BSD 3-Clause license.\n"
},
{
"path": "examples/helloworld/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports",
"chars": 34,
"preview": "com.sample.SampleAutoConfiguration"
},
{
"path": "examples/helloworld/src/main/resources/application.properties",
"chars": 386,
"preview": "#\n# Copyright (c) 2017-2021, salesforce.com, inc.\n# All rights reserved.\n# Licensed under the BSD 3-Clause license.\n# Fo"
},
{
"path": "examples/helloworld/src/test/java/com/sample/SampleRestFuncTest.java",
"chars": 1129,
"preview": "/*\n * Copyright (c) 2021, salesforce.com, inc.\n * All rights reserved.\n * Licensed under the BSD 3-Clause license.\n * Fo"
},
{
"path": "examples/helloworld/src/test/java/com/sample/SampleRestUnitTest.java",
"chars": 596,
"preview": "/*\n * Copyright (c) 2021, salesforce.com, inc.\n * All rights reserved.\n * Licensed under the BSD 3-Clause license.\n * Fo"
},
{
"path": "examples/helloworld/src/test/resources/test.properties",
"chars": 18,
"preview": "anyprop=somevalue\n"
},
{
"path": "examples/kotlinapp/README.md",
"chars": 341,
"preview": "## Kotlin Example for Bazel Spring Boot\n\nTo avoid cluttering the WORKSPACE file for everyone, the Kotlin example is publ"
},
{
"path": "makerelease.sh",
"chars": 3395,
"preview": "#\n# Copyright (c) 2017-2024, salesforce.com, inc.\n# All rights reserved.\n# Licensed under the BSD 3-Clause license.\n# Fo"
},
{
"path": "maven_install.json",
"chars": 188829,
"preview": "{\n \"__AUTOGENERATED_FILE_DO_NOT_MODIFY_THIS_FILE_MANUALLY\": \"THERE_IS_NO_DATA_ONLY_ZUUL\",\n \"__INPUT_ARTIFACTS_HASH\": 2"
},
{
"path": "springboot/BUILD",
"chars": 2145,
"preview": "#\n# Copyright (c) 2017-2021, salesforce.com, inc.\n# All rights reserved.\n# Licensed under the BSD 3-Clause license.\n# Fo"
},
{
"path": "springboot/README.md",
"chars": 6487,
"preview": "## SpringBoot Rule\n\nThis implements a Bazel rule for packaging a Spring Boot application as an executable jar file from "
},
{
"path": "springboot/addin_end.txt",
"chars": 54,
"preview": "Marker file that indicates the end of the addin list.\n"
},
{
"path": "springboot/attributes.md",
"chars": 8724,
"preview": "## Springboot() Attributes\n\nThis doc explains conventions and reference for the rule attributes.\n\n### Standard Spring Bo"
},
{
"path": "springboot/bazelrun.md",
"chars": 10352,
"preview": "## Customizing Bazel Run\n\nAs shown in the [README](README.md), you can launch the Spring Boot application directly from "
},
{
"path": "springboot/check_dupe_classes.py",
"chars": 8464,
"preview": "#\n# Copyright (c) 2019-2021, salesforce.com, inc.\n# All rights reserved.\n# Licensed under the BSD 3-Clause license.\n# Fo"
},
{
"path": "springboot/cli.md",
"chars": 2407,
"preview": "## SpringBoot Jar CLI\n\nIn addition to the Bazel rule, this package also contains a CLI for inspecting Spring Boot jars a"
},
{
"path": "springboot/default_bazelrun_script.sh",
"chars": 4755,
"preview": "#!/bin/bash\n\n# Copyright (c) 2021-2024, salesforce.com, inc.\n# All rights reserved.\n# Licensed under the BSD 3-Clause li"
},
{
"path": "springboot/deps_filter_rules/BUILD",
"chars": 0,
"preview": ""
},
{
"path": "springboot/deps_filter_rules/README.md",
"chars": 8514,
"preview": "# Dependencies Filter\n\nA Bazel rule that filters compile-time and runtime dependencies in Java projects, ensuring only t"
},
{
"path": "springboot/deps_filter_rules/dependencyset.bzl",
"chars": 959,
"preview": "load(\"//springboot/deps_filter_rules:deps_filter.bzl\", \"deps_filter\")\n\ndef dependencyset(name, items, deps_exclude_label"
},
{
"path": "springboot/deps_filter_rules/dependencyset.md",
"chars": 4216,
"preview": "# dependencyset Macro\n\nA wrapper around `deps_filter` that scales dependency filtering across your entire monorepo. Enfo"
},
{
"path": "springboot/deps_filter_rules/deps_filter.bzl",
"chars": 12996,
"preview": "load(\"@bazel_tools//tools/jdk:toolchain_utils.bzl\", \"find_java_toolchain\")\n\ndef _filter_deps(deps_list, excludes, ctx, i"
},
{
"path": "springboot/deps_filter_rules/tests/README.md",
"chars": 4219,
"preview": "# Testing Overview\n\nThis directory contains comprehensive tests for the `deps_filter` Bazel rule and `dependencyset` mac"
},
{
"path": "springboot/deps_filter_rules/tests/dependencyset/external_dependencies/compile_and_runtime/BUILD",
"chars": 20519,
"preview": "load(\"//springboot/deps_filter_rules:dependencyset.bzl\", \"dependencyset\")\nload(\n \"//springboot/deps_filter_rules/test"
},
{
"path": "springboot/deps_filter_rules/tests/dependencyset/external_dependencies/compile_and_runtime/compile_and_runtime_test.bzl",
"chars": 37943,
"preview": "load(\"@bazel_skylib//lib:unittest.bzl\", \"asserts\", \"unittest\")\nload(\"//springboot/deps_filter_rules:deps_filter.bzl\", \"d"
},
{
"path": "springboot/deps_filter_rules/tests/dependencyset/external_dependencies/compile_and_runtime/src/main/java/com/depsfilter/A.java",
"chars": 92,
"preview": "package com.depsfilter;\n\npublic class A {\n int a;\n public A() {\n a = 1;\n }\n}"
},
{
"path": "springboot/deps_filter_rules/tests/dependencyset/external_dependencies/compile_and_runtime/src/test/java/com/depsfilter/DepsFilterCaseSensitivePatternMatchingTest.java",
"chars": 1230,
"preview": "package com.depsfilter;\n\nimport static org.assertj.core.api.Assertions.assertThat;\n\nimport java.util.Set;\nimport org.jun"
},
{
"path": "springboot/deps_filter_rules/tests/dependencyset/external_dependencies/compile_and_runtime/src/test/java/com/depsfilter/DepsFilterCompileDepsOnlyTest.java",
"chars": 1815,
"preview": "package com.depsfilter;\n\nimport static org.assertj.core.api.Assertions.assertThat;\n\nimport java.util.Set;\nimport org.jun"
},
{
"path": "springboot/deps_filter_rules/tests/dependencyset/external_dependencies/compile_and_runtime/src/test/java/com/depsfilter/DepsFilterEmptyExclusionsTest.java",
"chars": 1051,
"preview": "package com.depsfilter;\n\nimport static org.assertj.core.api.Assertions.assertThat;\n\nimport java.util.Set;\nimport org.jun"
},
{
"path": "springboot/deps_filter_rules/tests/dependencyset/external_dependencies/compile_and_runtime/src/test/java/com/depsfilter/DepsFilterExcludeTransitiveTest.java",
"chars": 1324,
"preview": "package com.depsfilter;\n\nimport static org.assertj.core.api.Assertions.assertThat;\n\nimport java.util.Set;\nimport org.jun"
},
{
"path": "springboot/deps_filter_rules/tests/dependencyset/external_dependencies/compile_and_runtime/src/test/java/com/depsfilter/DepsFilterLabelExclusionsTest.java",
"chars": 1317,
"preview": "package com.depsfilter;\n\nimport static org.assertj.core.api.Assertions.assertThat;\n\nimport java.util.Set;\nimport java.ut"
},
{
"path": "springboot/deps_filter_rules/tests/dependencyset/external_dependencies/compile_and_runtime/src/test/java/com/depsfilter/DepsFilterMultipleExclusionsWithTransitivesTest.java",
"chars": 1444,
"preview": "package com.depsfilter;\n\nimport static org.assertj.core.api.Assertions.assertThat;\n\nimport java.util.Set;\nimport org.jun"
},
{
"path": "springboot/deps_filter_rules/tests/dependencyset/external_dependencies/compile_and_runtime/src/test/java/com/depsfilter/DepsFilterMultipleExclusionsWithoutTransitivesTest.java",
"chars": 1456,
"preview": "package com.depsfilter;\n\nimport static org.assertj.core.api.Assertions.assertThat;\n\nimport java.util.Set;\nimport org.jun"
},
{
"path": "springboot/deps_filter_rules/tests/dependencyset/external_dependencies/compile_and_runtime/src/test/java/com/depsfilter/DepsFilterNoFilteringTest.java",
"chars": 1031,
"preview": "package com.depsfilter;\n\nimport static org.assertj.core.api.Assertions.assertThat;\n\nimport java.util.Set;\nimport org.jun"
},
{
"path": "springboot/deps_filter_rules/tests/dependencyset/external_dependencies/compile_and_runtime/src/test/java/com/depsfilter/DepsFilterOneCompileOneRuntimeDepTest.java",
"chars": 1569,
"preview": "package com.depsfilter;\n\nimport static org.assertj.core.api.Assertions.assertThat;\n\nimport java.util.Set;\nimport org.jun"
},
{
"path": "springboot/deps_filter_rules/tests/dependencyset/external_dependencies/compile_and_runtime/src/test/java/com/depsfilter/DepsFilterPathBasedExclusionsComprehensiveTest.java",
"chars": 1247,
"preview": "package com.depsfilter;\n\nimport static org.assertj.core.api.Assertions.assertThat;\n\nimport java.util.Set;\nimport org.jun"
},
{
"path": "springboot/deps_filter_rules/tests/dependencyset/external_dependencies/compile_and_runtime/src/test/java/com/depsfilter/DepsFilterPathExclusionsTest.java",
"chars": 1167,
"preview": "package com.depsfilter;\n\nimport static org.assertj.core.api.Assertions.assertThat;\n\nimport java.util.Set;\nimport org.jun"
},
{
"path": "springboot/deps_filter_rules/tests/dependencyset/external_dependencies/compile_and_runtime/src/test/java/com/depsfilter/DepsFilterPathExclusionsWithTransitivesTest.java",
"chars": 1236,
"preview": "package com.depsfilter;\n\nimport static org.assertj.core.api.Assertions.assertThat;\n\nimport java.util.Set;\nimport org.jun"
},
{
"path": "springboot/deps_filter_rules/tests/dependencyset/external_dependencies/compile_and_runtime/src/test/java/com/depsfilter/DepsFilterPathPatternsWithSpecialCharactersTest.java",
"chars": 1246,
"preview": "package com.depsfilter;\n\nimport static org.assertj.core.api.Assertions.assertThat;\n\nimport java.util.Set;\nimport org.jun"
},
{
"path": "springboot/deps_filter_rules/tests/dependencyset/external_dependencies/compile_and_runtime/src/test/java/com/depsfilter/DepsFilterRuntimeDepsOnlyTest.java",
"chars": 1664,
"preview": "package com.depsfilter;\n\nimport static org.assertj.core.api.Assertions.assertThat;\n\nimport java.util.Set;\nimport org.jun"
},
{
"path": "springboot/deps_filter_rules/tests/dependencyset/external_dependencies/compile_and_runtime/src/test/java/com/depsfilter/DepsFilterSingleDepWithExclusionsTest.java",
"chars": 1501,
"preview": "package com.depsfilter;\n\nimport static org.assertj.core.api.Assertions.assertThat;\n\nimport java.util.Set;\nimport org.jun"
},
{
"path": "springboot/deps_filter_rules/tests/dependencyset/external_dependencies/compile_and_runtime/src/test/java/com/depsfilter/DepsFilterSingleRuntimeDepWithExclusionsTest.java",
"chars": 1524,
"preview": "package com.depsfilter;\n\nimport static org.assertj.core.api.Assertions.assertThat;\n\nimport java.util.Set;\nimport org.jun"
},
{
"path": "springboot/deps_filter_rules/tests/dependencyset/internal_dependencies/compile_and_runtime_1/BUILD",
"chars": 8608,
"preview": "load(\"//springboot/deps_filter_rules:dependencyset.bzl\", \"dependencyset\")\nload(\n \"//springboot/deps_filter_rules/test"
},
{
"path": "springboot/deps_filter_rules/tests/dependencyset/internal_dependencies/compile_and_runtime_1/compile_and_runtime_test.bzl",
"chars": 20585,
"preview": "load(\"@bazel_skylib//lib:unittest.bzl\", \"asserts\", \"unittest\")\nload(\"//springboot/deps_filter_rules/tests/test_utils:ver"
},
{
"path": "springboot/deps_filter_rules/tests/dependencyset/internal_dependencies/compile_and_runtime_1/src/main/java/com/depsfilter/A.java",
"chars": 198,
"preview": "package com.depsfilter;\n\npublic class A {\n int a;\n private B b;\n // E is a runtime dependency, so no compile-ti"
},
{
"path": "springboot/deps_filter_rules/tests/dependencyset/internal_dependencies/compile_and_runtime_1/src/main/java/com/depsfilter/B.java",
"chars": 104,
"preview": "package com.depsfilter;\n\npublic class B {\n private C c;\n public B() {\n c = new C();\n }\n}"
},
{
"path": "springboot/deps_filter_rules/tests/dependencyset/internal_dependencies/compile_and_runtime_1/src/main/java/com/depsfilter/C.java",
"chars": 174,
"preview": "package com.depsfilter;\n\npublic class C {\n // D is a runtime dependency, so no compile-time reference here\n public"
},
{
"path": "springboot/deps_filter_rules/tests/dependencyset/internal_dependencies/compile_and_runtime_1/src/main/java/com/depsfilter/D.java",
"chars": 109,
"preview": "package com.depsfilter;\n\npublic class D {\n private int value;\n public D() {\n value = 4;\n }\n} "
},
{
"path": "springboot/deps_filter_rules/tests/dependencyset/internal_dependencies/compile_and_runtime_1/src/main/java/com/depsfilter/E.java",
"chars": 105,
"preview": "package com.depsfilter;\n\npublic class E {\n private F f;\n public E() {\n f = new F();\n }\n} "
},
{
"path": "springboot/deps_filter_rules/tests/dependencyset/internal_dependencies/compile_and_runtime_1/src/main/java/com/depsfilter/F.java",
"chars": 105,
"preview": "package com.depsfilter;\n\npublic class F {\n private C c;\n public F() {\n c = new C();\n }\n} "
},
{
"path": "springboot/deps_filter_rules/tests/dependencyset/internal_dependencies/compile_and_runtime_1/src/main/java/com/depsfilter/G.java",
"chars": 105,
"preview": "package com.depsfilter;\n\npublic class G {\n private F f;\n public G() {\n f = new F();\n }\n} "
},
{
"path": "springboot/deps_filter_rules/tests/dependencyset/internal_dependencies/compile_and_runtime_1/src/main/java/com/depsfilter/H.java",
"chars": 173,
"preview": "package com.depsfilter;\n\npublic class H {\n private A a;\n // G is a runtime dependency, so no compile-time referenc"
},
{
"path": "springboot/deps_filter_rules/tests/dependencyset/internal_dependencies/compile_and_runtime_1/src/main/java/com/depsfilter/I.java",
"chars": 86,
"preview": "package com.depsfilter;\n\npublic class I {\n public I() {\n int i = 1;\n }\n} "
},
{
"path": "springboot/deps_filter_rules/tests/dependencyset/internal_dependencies/compile_and_runtime_2/BUILD",
"chars": 11754,
"preview": "load(\"//springboot/deps_filter_rules:dependencyset.bzl\", \"dependencyset\")\nload(\n \"//springboot/deps_filter_rules/test"
},
{
"path": "springboot/deps_filter_rules/tests/dependencyset/internal_dependencies/compile_and_runtime_2/compile_and_runtime_test.bzl",
"chars": 23920,
"preview": "load(\"@bazel_skylib//lib:unittest.bzl\", \"asserts\", \"unittest\")\nload(\"//springboot/deps_filter_rules/tests/test_utils:ver"
},
{
"path": "springboot/deps_filter_rules/tests/dependencyset/internal_dependencies/compile_and_runtime_2/src/main/java/com/depsfilter/A.java",
"chars": 198,
"preview": "package com.depsfilter;\n\npublic class A {\n int a;\n private B b;\n // E is a runtime dependency, so no compile-ti"
},
{
"path": "springboot/deps_filter_rules/tests/dependencyset/internal_dependencies/compile_and_runtime_2/src/main/java/com/depsfilter/B.java",
"chars": 104,
"preview": "package com.depsfilter;\n\npublic class B {\n private C c;\n public B() {\n c = new C();\n }\n}"
},
{
"path": "springboot/deps_filter_rules/tests/dependencyset/internal_dependencies/compile_and_runtime_2/src/main/java/com/depsfilter/C.java",
"chars": 174,
"preview": "package com.depsfilter;\n\npublic class C {\n // D is a runtime dependency, so no compile-time reference here\n public"
},
{
"path": "springboot/deps_filter_rules/tests/dependencyset/internal_dependencies/compile_and_runtime_2/src/main/java/com/depsfilter/D.java",
"chars": 109,
"preview": "package com.depsfilter;\n\npublic class D {\n private int value;\n public D() {\n value = 4;\n }\n} "
},
{
"path": "springboot/deps_filter_rules/tests/dependencyset/internal_dependencies/compile_and_runtime_2/src/main/java/com/depsfilter/E.java",
"chars": 105,
"preview": "package com.depsfilter;\n\npublic class E {\n private F f;\n public E() {\n f = new F();\n }\n} "
},
{
"path": "springboot/deps_filter_rules/tests/dependencyset/internal_dependencies/compile_and_runtime_2/src/main/java/com/depsfilter/F.java",
"chars": 105,
"preview": "package com.depsfilter;\n\npublic class F {\n private C c;\n public F() {\n c = new C();\n }\n} "
},
{
"path": "springboot/deps_filter_rules/tests/dependencyset/internal_dependencies/compile_and_runtime_2/src/main/java/com/depsfilter/G.java",
"chars": 105,
"preview": "package com.depsfilter;\n\npublic class G {\n private F f;\n public G() {\n f = new F();\n }\n} "
},
{
"path": "springboot/deps_filter_rules/tests/dependencyset/internal_dependencies/compile_and_runtime_2/src/main/java/com/depsfilter/H.java",
"chars": 86,
"preview": "package com.depsfilter;\n\npublic class H {\n public H() {\n int h = 1;\n }\n} "
},
{
"path": "springboot/deps_filter_rules/tests/dependencyset/internal_dependencies/compile_and_runtime_2/src/main/java/com/depsfilter/I.java",
"chars": 103,
"preview": "package com.depsfilter;\n\npublic class I {\n private F;\n public I() {\n F = new F();\n }\n} "
},
{
"path": "springboot/deps_filter_rules/tests/dependencyset/internal_dependencies/compile_and_runtime_2/src/main/java/com/depsfilter/J.java",
"chars": 105,
"preview": "package com.depsfilter;\n\npublic class J {\n private B b;\n public J() {\n b = new B();\n }\n} "
},
{
"path": "springboot/deps_filter_rules/tests/dependencyset/internal_dependencies/compile_and_runtime_2/src/test/java/com/depsfilter/DepsFilterEmptyExclusionsTest.java",
"chars": 1334,
"preview": "package com.depsfilter;\n\nimport static org.assertj.core.api.Assertions.assertThat;\n\nimport java.util.ArrayList;\nimport j"
},
{
"path": "springboot/deps_filter_rules/tests/dependencyset/internal_dependencies/compile_and_runtime_2/src/test/java/com/depsfilter/DepsFilterExcludeTransitiveTest.java",
"chars": 1921,
"preview": "package com.depsfilter;\n\nimport static org.assertj.core.api.Assertions.assertThat;\n\nimport java.util.ArrayList;\nimport j"
},
{
"path": "springboot/deps_filter_rules/tests/dependencyset/internal_dependencies/compile_and_runtime_2/src/test/java/com/depsfilter/DepsFilterFilteredDepsTest.java",
"chars": 2256,
"preview": "package com.depsfilter;\n\nimport static org.assertj.core.api.Assertions.assertThat;\n\nimport java.util.ArrayList;\nimport j"
},
{
"path": "springboot/deps_filter_rules/tests/dependencyset/internal_dependencies/compile_and_runtime_2/src/test/java/com/depsfilter/DepsFilterInterfaceImplementationTest.java",
"chars": 2368,
"preview": "package com.depsfilter;\n\nimport static org.assertj.core.api.Assertions.assertThat;\n\nimport java.util.ArrayList;\nimport j"
},
{
"path": "springboot/deps_filter_rules/tests/dependencyset/internal_dependencies/compile_and_runtime_2/src/test/java/com/depsfilter/DepsFilterMultipleExclusionsWithTransitiveTest.java",
"chars": 2099,
"preview": "package com.depsfilter;\n\nimport static org.assertj.core.api.Assertions.assertThat;\n\nimport java.util.ArrayList;\nimport j"
},
{
"path": "springboot/deps_filter_rules/tests/dependencyset/internal_dependencies/compile_and_runtime_2/src/test/java/com/depsfilter/DepsFilterMultipleExclusionsWithoutTransitiveTest.java",
"chars": 2356,
"preview": "package com.depsfilter;\n\nimport static org.assertj.core.api.Assertions.assertThat;\n\nimport java.util.ArrayList;\nimport j"
},
{
"path": "springboot/deps_filter_rules/tests/dependencyset/internal_dependencies/compile_and_runtime_2/src/test/java/com/depsfilter/DepsFilterMultiplePathsTest.java",
"chars": 2242,
"preview": "package com.depsfilter;\n\nimport static org.assertj.core.api.Assertions.assertThat;\n\nimport java.util.ArrayList;\nimport j"
},
{
"path": "springboot/deps_filter_rules/tests/dependencyset/internal_dependencies/compile_and_runtime_2/src/test/java/com/depsfilter/DepsFilterPathBasedExclusionsTest.java",
"chars": 2274,
"preview": "package com.depsfilter;\n\nimport static org.assertj.core.api.Assertions.assertThat;\n\nimport java.util.ArrayList;\nimport j"
},
{
"path": "springboot/deps_filter_rules/tests/dependencyset/internal_dependencies/compile_and_runtime_2/src/test/java/com/depsfilter/DepsFilterTestHelper.java",
"chars": 3773,
"preview": "package com.depsfilter;\n\nimport java.util.ArrayList;\nimport java.util.List;\n\n/**\n * Helper class containing common funct"
},
{
"path": "springboot/deps_filter_rules/tests/dependencyset/internal_dependencies/compile_time_only/BUILD",
"chars": 6543,
"preview": "load(\"//springboot/deps_filter_rules:deps_filter.bzl\", \"deps_filter\")\nload(\"//springboot/deps_filter_rules:dependencyset"
},
{
"path": "springboot/deps_filter_rules/tests/dependencyset/internal_dependencies/compile_time_only/compile_time_only_test.bzl",
"chars": 17811,
"preview": "load(\"@bazel_skylib//lib:unittest.bzl\", \"asserts\", \"unittest\")\nload(\"//springboot/deps_filter_rules/tests/test_utils:ver"
},
{
"path": "springboot/deps_filter_rules/tests/dependencyset/internal_dependencies/compile_time_only/src/main/java/com/depsfilter/A.java",
"chars": 168,
"preview": "package com.depsfilter;\n\npublic class A {\n int a;\n private B b;\n private E e;\n public A() {\n a = 1;\n "
},
{
"path": "springboot/deps_filter_rules/tests/dependencyset/internal_dependencies/compile_time_only/src/main/java/com/depsfilter/B.java",
"chars": 104,
"preview": "package com.depsfilter;\n\npublic class B {\n private C c;\n public B() {\n c = new C();\n }\n}"
},
{
"path": "springboot/deps_filter_rules/tests/dependencyset/internal_dependencies/compile_time_only/src/main/java/com/depsfilter/C.java",
"chars": 104,
"preview": "package com.depsfilter;\n\npublic class C {\n private D d;\n public C() {\n d = new D();\n }\n}"
},
{
"path": "springboot/deps_filter_rules/tests/dependencyset/internal_dependencies/compile_time_only/src/main/java/com/depsfilter/D.java",
"chars": 109,
"preview": "package com.depsfilter;\n\npublic class D {\n private int value;\n public D() {\n value = 4;\n }\n} "
},
{
"path": "springboot/deps_filter_rules/tests/dependencyset/internal_dependencies/compile_time_only/src/main/java/com/depsfilter/E.java",
"chars": 105,
"preview": "package com.depsfilter;\n\npublic class E {\n private F f;\n public E() {\n f = new F();\n }\n} "
},
{
"path": "springboot/deps_filter_rules/tests/dependencyset/internal_dependencies/compile_time_only/src/main/java/com/depsfilter/F.java",
"chars": 105,
"preview": "package com.depsfilter;\n\npublic class F {\n private C c;\n public F() {\n c = new C();\n }\n} "
},
{
"path": "springboot/deps_filter_rules/tests/dependencyset/internal_dependencies/compile_time_only/src/main/java/com/depsfilter/G.java",
"chars": 105,
"preview": "package com.depsfilter;\n\npublic class G {\n private F f;\n public G() {\n f = new F();\n }\n} "
},
{
"path": "springboot/deps_filter_rules/tests/dependencyset/internal_dependencies/compile_time_only/src/main/java/com/depsfilter/H.java",
"chars": 143,
"preview": "package com.depsfilter;\n\npublic class H {\n private A a;\n private I i;\n public H() {\n a = new A();\n "
},
{
"path": "springboot/deps_filter_rules/tests/dependencyset/internal_dependencies/compile_time_only/src/main/java/com/depsfilter/I.java",
"chars": 105,
"preview": "package com.depsfilter;\n\npublic class I {\n private G g;\n public I() {\n g = new G();\n }\n} "
},
{
"path": "springboot/deps_filter_rules/tests/dependencyset/internal_dependencies/runtime_only/BUILD",
"chars": 6893,
"preview": "load(\"//springboot/deps_filter_rules:dependencyset.bzl\", \"dependencyset\")\nload(\n \"//springboot/deps_filter_rules/test"
},
{
"path": "springboot/deps_filter_rules/tests/dependencyset/internal_dependencies/runtime_only/runtime_only_test.bzl",
"chars": 17036,
"preview": "load(\"@bazel_skylib//lib:unittest.bzl\", \"asserts\", \"unittest\")\nload(\"//springboot/deps_filter_rules/tests/test_utils:ver"
},
{
"path": "springboot/deps_filter_rules/tests/dependencyset/internal_dependencies/runtime_only/src/main/java/com/depsfilter/A.java",
"chars": 85,
"preview": "package com.depsfilter;\n\npublic class A {\n public A() {\n int a = 1;\n }\n}"
},
{
"path": "springboot/deps_filter_rules/tests/dependencyset/internal_dependencies/runtime_only/src/main/java/com/depsfilter/B.java",
"chars": 85,
"preview": "package com.depsfilter;\n\npublic class B {\n public B() {\n int b = 1;\n }\n}"
},
{
"path": "springboot/deps_filter_rules/tests/dependencyset/internal_dependencies/runtime_only/src/main/java/com/depsfilter/C.java",
"chars": 85,
"preview": "package com.depsfilter;\n\npublic class C {\n public C() {\n int c = 1;\n }\n}"
},
{
"path": "springboot/deps_filter_rules/tests/dependencyset/internal_dependencies/runtime_only/src/main/java/com/depsfilter/D.java",
"chars": 86,
"preview": "package com.depsfilter;\n\npublic class D {\n public D() {\n int d = 1;\n }\n} "
},
{
"path": "springboot/deps_filter_rules/tests/dependencyset/internal_dependencies/runtime_only/src/main/java/com/depsfilter/E.java",
"chars": 86,
"preview": "package com.depsfilter;\n\npublic class E {\n public E() {\n int e = 1;\n }\n} "
},
{
"path": "springboot/deps_filter_rules/tests/dependencyset/internal_dependencies/runtime_only/src/main/java/com/depsfilter/F.java",
"chars": 86,
"preview": "package com.depsfilter;\n\npublic class F {\n public F() {\n int f = 1;\n }\n} "
},
{
"path": "springboot/deps_filter_rules/tests/dependencyset/internal_dependencies/runtime_only/src/main/java/com/depsfilter/G.java",
"chars": 86,
"preview": "package com.depsfilter;\n\npublic class G {\n public G() {\n int g = 1;\n }\n} "
},
{
"path": "springboot/deps_filter_rules/tests/dependencyset/internal_dependencies/runtime_only/src/main/java/com/depsfilter/H.java",
"chars": 86,
"preview": "package com.depsfilter;\n\npublic class H {\n public H() {\n int h = 1;\n }\n} "
},
{
"path": "springboot/deps_filter_rules/tests/dependencyset/internal_dependencies/runtime_only/src/main/java/com/depsfilter/I.java",
"chars": 86,
"preview": "package com.depsfilter;\n\npublic class I {\n public I() {\n int i = 1;\n }\n} "
},
{
"path": "springboot/deps_filter_rules/tests/depsfilter/external_dependencies/compile_and_runtime/BUILD",
"chars": 14153,
"preview": "load(\"//springboot/deps_filter_rules:deps_filter.bzl\", \"deps_filter\")\nload(\n \"//springboot/deps_filter_rules/tests/de"
},
{
"path": "springboot/deps_filter_rules/tests/depsfilter/external_dependencies/compile_and_runtime/compile_and_runtime_test.bzl",
"chars": 37604,
"preview": "load(\"@bazel_skylib//lib:unittest.bzl\", \"asserts\", \"unittest\")\nload(\"//springboot/deps_filter_rules/tests/test_utils:ver"
},
{
"path": "springboot/deps_filter_rules/tests/depsfilter/external_dependencies/compile_and_runtime/src/test/java/com/depsfilter/DepsFilterCaseSensitivePatternMatchingTest.java",
"chars": 1053,
"preview": "package com.depsfilter;\n\nimport static org.assertj.core.api.Assertions.assertThat;\n\nimport java.util.Set;\nimport org.jun"
},
{
"path": "springboot/deps_filter_rules/tests/depsfilter/external_dependencies/compile_and_runtime/src/test/java/com/depsfilter/DepsFilterCompileDepsOnlyTest.java",
"chars": 1643,
"preview": "package com.depsfilter;\n\nimport static org.assertj.core.api.Assertions.assertThat;\n\nimport java.util.Set;\nimport org.jun"
},
{
"path": "springboot/deps_filter_rules/tests/depsfilter/external_dependencies/compile_and_runtime/src/test/java/com/depsfilter/DepsFilterEmptyExclusionsTest.java",
"chars": 883,
"preview": "package com.depsfilter;\n\nimport static org.assertj.core.api.Assertions.assertThat;\n\nimport java.util.Set;\nimport org.jun"
},
{
"path": "springboot/deps_filter_rules/tests/depsfilter/external_dependencies/compile_and_runtime/src/test/java/com/depsfilter/DepsFilterExcludeTransitiveTest.java",
"chars": 1131,
"preview": "package com.depsfilter;\n\nimport static org.assertj.core.api.Assertions.assertThat;\n\nimport java.util.Set;\nimport org.jun"
},
{
"path": "springboot/deps_filter_rules/tests/depsfilter/external_dependencies/compile_and_runtime/src/test/java/com/depsfilter/DepsFilterLabelExclusionsTest.java",
"chars": 1149,
"preview": "package com.depsfilter;\n\nimport static org.assertj.core.api.Assertions.assertThat;\n\nimport java.util.Set;\nimport java.ut"
},
{
"path": "springboot/deps_filter_rules/tests/depsfilter/external_dependencies/compile_and_runtime/src/test/java/com/depsfilter/DepsFilterMultipleExclusionsWithTransitivesTest.java",
"chars": 1253,
"preview": "package com.depsfilter;\n\nimport static org.assertj.core.api.Assertions.assertThat;\n\nimport java.util.Set;\nimport org.jun"
},
{
"path": "springboot/deps_filter_rules/tests/depsfilter/external_dependencies/compile_and_runtime/src/test/java/com/depsfilter/DepsFilterMultipleExclusionsWithoutTransitivesTest.java",
"chars": 1262,
"preview": "package com.depsfilter;\n\nimport static org.assertj.core.api.Assertions.assertThat;\n\nimport java.util.Set;\nimport org.jun"
},
{
"path": "springboot/deps_filter_rules/tests/depsfilter/external_dependencies/compile_and_runtime/src/test/java/com/depsfilter/DepsFilterNoFilteringTest.java",
"chars": 873,
"preview": "package com.depsfilter;\n\nimport static org.assertj.core.api.Assertions.assertThat;\n\nimport java.util.Set;\nimport org.jun"
},
{
"path": "springboot/deps_filter_rules/tests/depsfilter/external_dependencies/compile_and_runtime/src/test/java/com/depsfilter/DepsFilterOneCompileOneRuntimeDepTest.java",
"chars": 1395,
"preview": "package com.depsfilter;\n\nimport static org.assertj.core.api.Assertions.assertThat;\n\nimport java.util.Set;\nimport org.jun"
},
{
"path": "springboot/deps_filter_rules/tests/depsfilter/external_dependencies/compile_and_runtime/src/test/java/com/depsfilter/DepsFilterPathBasedExclusionsComprehensiveTest.java",
"chars": 1065,
"preview": "package com.depsfilter;\n\nimport static org.assertj.core.api.Assertions.assertThat;\n\nimport java.util.Set;\nimport org.jun"
},
{
"path": "springboot/deps_filter_rules/tests/depsfilter/external_dependencies/compile_and_runtime/src/test/java/com/depsfilter/DepsFilterPathExclusionsTest.java",
"chars": 1000,
"preview": "package com.depsfilter;\n\nimport static org.assertj.core.api.Assertions.assertThat;\n\nimport java.util.Set;\nimport org.jun"
},
{
"path": "springboot/deps_filter_rules/tests/depsfilter/external_dependencies/compile_and_runtime/src/test/java/com/depsfilter/DepsFilterPathExclusionsWithTransitivesTest.java",
"chars": 1044,
"preview": "package com.depsfilter;\n\nimport static org.assertj.core.api.Assertions.assertThat;\n\nimport java.util.Set;\nimport org.jun"
},
{
"path": "springboot/deps_filter_rules/tests/depsfilter/external_dependencies/compile_and_runtime/src/test/java/com/depsfilter/DepsFilterPathPatternsWithSpecialCharactersTest.java",
"chars": 1062,
"preview": "package com.depsfilter;\n\nimport static org.assertj.core.api.Assertions.assertThat;\n\nimport java.util.Set;\nimport org.jun"
},
{
"path": "springboot/deps_filter_rules/tests/depsfilter/external_dependencies/compile_and_runtime/src/test/java/com/depsfilter/DepsFilterRuntimeDepsOnlyTest.java",
"chars": 1500,
"preview": "package com.depsfilter;\n\nimport static org.assertj.core.api.Assertions.assertThat;\n\nimport java.util.Set;\nimport org.jun"
},
{
"path": "springboot/deps_filter_rules/tests/depsfilter/external_dependencies/compile_and_runtime/src/test/java/com/depsfilter/DepsFilterSingleDepWithExclusionsTest.java",
"chars": 1328,
"preview": "package com.depsfilter;\n\nimport static org.assertj.core.api.Assertions.assertThat;\n\nimport java.util.Set;\nimport org.jun"
},
{
"path": "springboot/deps_filter_rules/tests/depsfilter/external_dependencies/compile_and_runtime/src/test/java/com/depsfilter/DepsFilterSingleRuntimeDepWithExclusionsTest.java",
"chars": 1343,
"preview": "package com.depsfilter;\n\nimport static org.assertj.core.api.Assertions.assertThat;\n\nimport java.util.Set;\nimport org.jun"
},
{
"path": "springboot/deps_filter_rules/tests/depsfilter/external_dependencies/compile_and_runtime_through_java_library/BUILD",
"chars": 16724,
"preview": "load(\"//springboot/deps_filter_rules:deps_filter.bzl\", \"deps_filter\")\nload(\n \"//springboot/deps_filter_rules/tests/de"
},
{
"path": "springboot/deps_filter_rules/tests/depsfilter/external_dependencies/compile_and_runtime_through_java_library/compile_and_runtime_test.bzl",
"chars": 42562,
"preview": "load(\"@bazel_skylib//lib:unittest.bzl\", \"asserts\", \"unittest\")\nload(\"//springboot/deps_filter_rules/tests/test_utils:ver"
},
{
"path": "springboot/deps_filter_rules/tests/depsfilter/external_dependencies/compile_and_runtime_through_java_library/src/main/java/com/depsfilter/A.java",
"chars": 92,
"preview": "package com.depsfilter;\n\npublic class A {\n int a;\n public A() {\n a = 1;\n }\n}"
},
{
"path": "springboot/deps_filter_rules/tests/depsfilter/external_dependencies/compile_and_runtime_through_java_library/src/test/java/com/depsfilter/DepsFilterCaseSensitivePatternMatchingTest.java",
"chars": 1262,
"preview": "package com.depsfilter;\n\nimport static org.assertj.core.api.Assertions.assertThat;\n\nimport java.util.Set;\nimport org.jun"
},
{
"path": "springboot/deps_filter_rules/tests/depsfilter/external_dependencies/compile_and_runtime_through_java_library/src/test/java/com/depsfilter/DepsFilterCompileDepsOnlyTest.java",
"chars": 1835,
"preview": "package com.depsfilter;\n\nimport static org.assertj.core.api.Assertions.assertThat;\n\nimport java.util.Set;\nimport org.jun"
},
{
"path": "springboot/deps_filter_rules/tests/depsfilter/external_dependencies/compile_and_runtime_through_java_library/src/test/java/com/depsfilter/DepsFilterEmptyExclusionsTest.java",
"chars": 1094,
"preview": "package com.depsfilter;\n\nimport static org.assertj.core.api.Assertions.assertThat;\n\nimport java.util.Set;\nimport org.jun"
},
{
"path": "springboot/deps_filter_rules/tests/depsfilter/external_dependencies/compile_and_runtime_through_java_library/src/test/java/com/depsfilter/DepsFilterExcludeTransitiveTest.java",
"chars": 1337,
"preview": "package com.depsfilter;\n\nimport static org.assertj.core.api.Assertions.assertThat;\n\nimport java.util.Set;\nimport org.jun"
},
{
"path": "springboot/deps_filter_rules/tests/depsfilter/external_dependencies/compile_and_runtime_through_java_library/src/test/java/com/depsfilter/DepsFilterLabelExclusionsTest.java",
"chars": 1358,
"preview": "package com.depsfilter;\n\nimport static org.assertj.core.api.Assertions.assertThat;\n\nimport java.util.Set;\nimport java.ut"
},
{
"path": "springboot/deps_filter_rules/tests/depsfilter/external_dependencies/compile_and_runtime_through_java_library/src/test/java/com/depsfilter/DepsFilterMultipleExclusionsWithTransitivesTest.java",
"chars": 1462,
"preview": "package com.depsfilter;\n\nimport static org.assertj.core.api.Assertions.assertThat;\n\nimport java.util.Set;\nimport org.jun"
},
{
"path": "springboot/deps_filter_rules/tests/depsfilter/external_dependencies/compile_and_runtime_through_java_library/src/test/java/com/depsfilter/DepsFilterMultipleExclusionsWithoutTransitivesTest.java",
"chars": 1472,
"preview": "package com.depsfilter;\n\nimport static org.assertj.core.api.Assertions.assertThat;\n\nimport java.util.Set;\nimport org.jun"
},
{
"path": "springboot/deps_filter_rules/tests/depsfilter/external_dependencies/compile_and_runtime_through_java_library/src/test/java/com/depsfilter/DepsFilterNoFilteringTest.java",
"chars": 1082,
"preview": "package com.depsfilter;\n\nimport static org.assertj.core.api.Assertions.assertThat;\n\nimport java.util.Set;\nimport org.jun"
},
{
"path": "springboot/deps_filter_rules/tests/depsfilter/external_dependencies/compile_and_runtime_through_java_library/src/test/java/com/depsfilter/DepsFilterOneCompileOneRuntimeDepTest.java",
"chars": 1661,
"preview": "package com.depsfilter;\n\nimport static org.assertj.core.api.Assertions.assertThat;\n\nimport java.util.Set;\nimport org.jun"
},
{
"path": "springboot/deps_filter_rules/tests/depsfilter/external_dependencies/compile_and_runtime_through_java_library/src/test/java/com/depsfilter/DepsFilterPathBasedExclusionsComprehensiveTest.java",
"chars": 1274,
"preview": "package com.depsfilter;\n\nimport static org.assertj.core.api.Assertions.assertThat;\n\nimport java.util.Set;\nimport org.jun"
},
{
"path": "springboot/deps_filter_rules/tests/depsfilter/external_dependencies/compile_and_runtime_through_java_library/src/test/java/com/depsfilter/DepsFilterPathExclusionsTest.java",
"chars": 1209,
"preview": "package com.depsfilter;\n\nimport static org.assertj.core.api.Assertions.assertThat;\n\nimport java.util.Set;\nimport org.jun"
},
{
"path": "springboot/deps_filter_rules/tests/depsfilter/external_dependencies/compile_and_runtime_through_java_library/src/test/java/com/depsfilter/DepsFilterPathExclusionsWithTransitivesTest.java",
"chars": 1253,
"preview": "package com.depsfilter;\n\nimport static org.assertj.core.api.Assertions.assertThat;\n\nimport java.util.Set;\nimport org.jun"
}
]
// ... and 111 more files (download for full content)
About this extraction
This page contains the full source code of the salesforce/rules_spring GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 311 files (1.4 MB), approximately 387.6k tokens, and a symbol index with 511 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.