dependabot-core 0.84.1 → 0.85.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0b2e7f8d9069bc5cfb9da1e817372e30d84adf0284743e7559a8f54d2cd32006
4
- data.tar.gz: 20aff40625a00ecbcaf2cafa23a2393905bcb862da2e776f55e338c37e3a7e65
3
+ metadata.gz: f56e8c0f198f3f66454b6f05ebbc30f455c49aba8f0da9052b392b2b1b61d084
4
+ data.tar.gz: f7f3831108f7d86a3435f144dbc9d44ced3a04a43800084c1f6c4d1180be1778
5
5
  SHA512:
6
- metadata.gz: 2a7f3ae3620e4b95300fdd31fee462af0e10c384387b30a469f2efee8467ec610f1e1349f9984ecc033634b7e7669d33588b46ab057fb08b0836b44393cd87ba
7
- data.tar.gz: e8cc4d65365d2cc9292686ba2f095e82ec251d360d1b61461abe6a8e71e3f3e4afeb0c8627274339db4b50621103d19d86cadb12db73f2b3005dda7a4a8256e9
6
+ metadata.gz: 41c9aa7701bb168005b318eab7ee9f3ebd431066f252d6e5c0a9ca600822d780bad7d420d338857e763d9e65eed1a80259c2fc271f733e9b308cf61add8d6f41
7
+ data.tar.gz: 2c49b78e5e135cf85b073910781c8368f85f305abfd54a341d1592a95ba776d007e5700fc0ff8e7e075be5be50edf63018542efc4564435fd8e43897a920ec99
@@ -1,3 +1,7 @@
1
+ ## v0.85.0, 14 December 2018
2
+
3
+ - Move Maven into separate gem
4
+
1
5
  ## v0.84.1, 14 December 2018
2
6
 
3
7
  - Add php72-memcached to Dockerfile
@@ -2,7 +2,6 @@
2
2
 
3
3
  require "dependabot/file_fetchers/ruby/bundler"
4
4
  require "dependabot/file_fetchers/java_script/npm_and_yarn"
5
- require "dependabot/file_fetchers/java/maven"
6
5
  require "dependabot/file_fetchers/php/composer"
7
6
  require "dependabot/file_fetchers/elixir/hex"
8
7
  require "dependabot/file_fetchers/go/dep"
@@ -13,7 +12,6 @@ module Dependabot
13
12
  @file_fetchers = {
14
13
  "bundler" => FileFetchers::Ruby::Bundler,
15
14
  "npm_and_yarn" => FileFetchers::JavaScript::NpmAndYarn,
16
- "maven" => FileFetchers::Java::Maven,
17
15
  "composer" => FileFetchers::Php::Composer,
18
16
  "hex" => FileFetchers::Elixir::Hex,
19
17
  "dep" => FileFetchers::Go::Dep,
@@ -2,7 +2,6 @@
2
2
 
3
3
  require "dependabot/file_parsers/ruby/bundler"
4
4
  require "dependabot/file_parsers/java_script/npm_and_yarn"
5
- require "dependabot/file_parsers/java/maven"
6
5
  require "dependabot/file_parsers/php/composer"
7
6
  require "dependabot/file_parsers/elixir/hex"
8
7
  require "dependabot/file_parsers/go/dep"
@@ -13,7 +12,6 @@ module Dependabot
13
12
  @file_parsers = {
14
13
  "bundler" => FileParsers::Ruby::Bundler,
15
14
  "npm_and_yarn" => FileParsers::JavaScript::NpmAndYarn,
16
- "maven" => FileParsers::Java::Maven,
17
15
  "composer" => FileParsers::Php::Composer,
18
16
  "hex" => FileParsers::Elixir::Hex,
19
17
  "dep" => FileParsers::Go::Dep,
@@ -2,7 +2,6 @@
2
2
 
3
3
  require "dependabot/file_updaters/ruby/bundler"
4
4
  require "dependabot/file_updaters/java_script/npm_and_yarn"
5
- require "dependabot/file_updaters/java/maven"
6
5
  require "dependabot/file_updaters/php/composer"
7
6
  require "dependabot/file_updaters/elixir/hex"
8
7
  require "dependabot/file_updaters/go/dep"
@@ -13,7 +12,6 @@ module Dependabot
13
12
  @file_updaters = {
14
13
  "bundler" => FileUpdaters::Ruby::Bundler,
15
14
  "npm_and_yarn" => FileUpdaters::JavaScript::NpmAndYarn,
16
- "maven" => FileUpdaters::Java::Maven,
17
15
  "composer" => FileUpdaters::Php::Composer,
18
16
  "hex" => FileUpdaters::Elixir::Hex,
19
17
  "dep" => FileUpdaters::Go::Dep,
@@ -2,7 +2,6 @@
2
2
 
3
3
  require "dependabot/metadata_finders/ruby/bundler"
4
4
  require "dependabot/metadata_finders/java_script/npm_and_yarn"
5
- require "dependabot/metadata_finders/java/maven"
6
5
  require "dependabot/metadata_finders/php/composer"
7
6
  require "dependabot/metadata_finders/elixir/hex"
8
7
  require "dependabot/metadata_finders/go/dep"
@@ -12,7 +11,6 @@ module Dependabot
12
11
  @metadata_finders = {
13
12
  "bundler" => MetadataFinders::Ruby::Bundler,
14
13
  "npm_and_yarn" => MetadataFinders::JavaScript::NpmAndYarn,
15
- "maven" => MetadataFinders::Java::Maven,
16
14
  "composer" => MetadataFinders::Php::Composer,
17
15
  "hex" => MetadataFinders::Elixir::Hex,
18
16
  "dep" => MetadataFinders::Go::Dep,
@@ -2,7 +2,6 @@
2
2
 
3
3
  require "dependabot/update_checkers/ruby/bundler"
4
4
  require "dependabot/update_checkers/java_script/npm_and_yarn"
5
- require "dependabot/update_checkers/java/maven"
6
5
  require "dependabot/update_checkers/php/composer"
7
6
  require "dependabot/update_checkers/elixir/hex"
8
7
  require "dependabot/update_checkers/go/dep"
@@ -13,7 +12,6 @@ module Dependabot
13
12
  @update_checkers = {
14
13
  "bundler" => UpdateCheckers::Ruby::Bundler,
15
14
  "npm_and_yarn" => UpdateCheckers::JavaScript::NpmAndYarn,
16
- "maven" => UpdateCheckers::Java::Maven,
17
15
  "composer" => UpdateCheckers::Php::Composer,
18
16
  "hex" => UpdateCheckers::Elixir::Hex,
19
17
  "dep" => UpdateCheckers::Go::Dep,
@@ -1,13 +1,11 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require "dependabot/utils/elixir/version"
4
- require "dependabot/utils/java/version"
5
4
  require "dependabot/utils/java_script/version"
6
5
  require "dependabot/utils/php/version"
7
6
  require "dependabot/utils/go/version"
8
7
 
9
8
  require "dependabot/utils/elixir/requirement"
10
- require "dependabot/utils/java/requirement"
11
9
  require "dependabot/utils/java_script/requirement"
12
10
  require "dependabot/utils/php/requirement"
13
11
  require "dependabot/utils/ruby/requirement"
@@ -21,7 +19,6 @@ module Dependabot
21
19
  "bundler" => Gem::Version,
22
20
  "submodules" => Gem::Version,
23
21
  "docker" => Gem::Version,
24
- "maven" => Utils::Java::Version,
25
22
  "npm_and_yarn" => Utils::JavaScript::Version,
26
23
  "composer" => Utils::Php::Version,
27
24
  "hex" => Utils::Elixir::Version,
@@ -44,7 +41,6 @@ module Dependabot
44
41
  "bundler" => Utils::Ruby::Requirement,
45
42
  "submodules" => Utils::Ruby::Requirement,
46
43
  "docker" => Utils::Ruby::Requirement,
47
- "maven" => Utils::Java::Requirement,
48
44
  "npm_and_yarn" => Utils::JavaScript::Requirement,
49
45
  "composer" => Utils::Php::Requirement,
50
46
  "hex" => Utils::Elixir::Requirement,
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Dependabot
4
- VERSION = "0.84.1"
4
+ VERSION = "0.85.0"
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dependabot-core
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.84.1
4
+ version: 0.85.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dependabot
@@ -378,7 +378,6 @@ files:
378
378
  - lib/dependabot/file_fetchers/elixir/hex.rb
379
379
  - lib/dependabot/file_fetchers/go/dep.rb
380
380
  - lib/dependabot/file_fetchers/go/modules.rb
381
- - lib/dependabot/file_fetchers/java/maven.rb
382
381
  - lib/dependabot/file_fetchers/java_script/npm_and_yarn.rb
383
382
  - lib/dependabot/file_fetchers/java_script/npm_and_yarn/path_dependency_builder.rb
384
383
  - lib/dependabot/file_fetchers/php/composer.rb
@@ -394,9 +393,6 @@ files:
394
393
  - lib/dependabot/file_parsers/go/dep.rb
395
394
  - lib/dependabot/file_parsers/go/modules.rb
396
395
  - lib/dependabot/file_parsers/go/modules/go_mod_parser.rb
397
- - lib/dependabot/file_parsers/java/maven.rb
398
- - lib/dependabot/file_parsers/java/maven/property_value_finder.rb
399
- - lib/dependabot/file_parsers/java/maven/repositories_finder.rb
400
396
  - lib/dependabot/file_parsers/java_script/npm_and_yarn.rb
401
397
  - lib/dependabot/file_parsers/php/composer.rb
402
398
  - lib/dependabot/file_parsers/ruby/bundler.rb
@@ -416,9 +412,6 @@ files:
416
412
  - lib/dependabot/file_updaters/go/dep/manifest_updater.rb
417
413
  - lib/dependabot/file_updaters/go/modules.rb
418
414
  - lib/dependabot/file_updaters/go/modules/go_mod_updater.rb
419
- - lib/dependabot/file_updaters/java/maven.rb
420
- - lib/dependabot/file_updaters/java/maven/declaration_finder.rb
421
- - lib/dependabot/file_updaters/java/maven/property_value_updater.rb
422
415
  - lib/dependabot/file_updaters/java_script/npm_and_yarn.rb
423
416
  - lib/dependabot/file_updaters/java_script/npm_and_yarn/npm_lockfile_updater.rb
424
417
  - lib/dependabot/file_updaters/java_script/npm_and_yarn/npmrc_builder.rb
@@ -428,6 +421,7 @@ files:
428
421
  - lib/dependabot/file_updaters/php/composer.rb
429
422
  - lib/dependabot/file_updaters/php/composer/lockfile_updater.rb
430
423
  - lib/dependabot/file_updaters/php/composer/manifest_updater.rb
424
+ - lib/dependabot/file_updaters/ruby/.DS_Store
431
425
  - lib/dependabot/file_updaters/ruby/bundler.rb
432
426
  - lib/dependabot/file_updaters/ruby/bundler/gemfile_updater.rb
433
427
  - lib/dependabot/file_updaters/ruby/bundler/gemspec_dependency_name_finder.rb
@@ -447,7 +441,6 @@ files:
447
441
  - lib/dependabot/metadata_finders/base/release_finder.rb
448
442
  - lib/dependabot/metadata_finders/elixir/hex.rb
449
443
  - lib/dependabot/metadata_finders/go/dep.rb
450
- - lib/dependabot/metadata_finders/java/maven.rb
451
444
  - lib/dependabot/metadata_finders/java_script/npm_and_yarn.rb
452
445
  - lib/dependabot/metadata_finders/php/composer.rb
453
446
  - lib/dependabot/metadata_finders/ruby/bundler.rb
@@ -475,10 +468,6 @@ files:
475
468
  - lib/dependabot/update_checkers/go/dep/requirements_updater.rb
476
469
  - lib/dependabot/update_checkers/go/dep/version_resolver.rb
477
470
  - lib/dependabot/update_checkers/go/modules.rb
478
- - lib/dependabot/update_checkers/java/maven.rb
479
- - lib/dependabot/update_checkers/java/maven/property_updater.rb
480
- - lib/dependabot/update_checkers/java/maven/requirements_updater.rb
481
- - lib/dependabot/update_checkers/java/maven/version_finder.rb
482
471
  - lib/dependabot/update_checkers/java_script/npm_and_yarn.rb
483
472
  - lib/dependabot/update_checkers/java_script/npm_and_yarn/latest_version_finder.rb
484
473
  - lib/dependabot/update_checkers/java_script/npm_and_yarn/library_detector.rb
@@ -504,8 +493,6 @@ files:
504
493
  - lib/dependabot/utils/go/requirement.rb
505
494
  - lib/dependabot/utils/go/shared_helper.rb
506
495
  - lib/dependabot/utils/go/version.rb
507
- - lib/dependabot/utils/java/requirement.rb
508
- - lib/dependabot/utils/java/version.rb
509
496
  - lib/dependabot/utils/java_script/requirement.rb
510
497
  - lib/dependabot/utils/java_script/version.rb
511
498
  - lib/dependabot/utils/php/requirement.rb
@@ -532,7 +519,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
532
519
  version: 2.7.3
533
520
  requirements: []
534
521
  rubyforge_project:
535
- rubygems_version: 2.7.7
522
+ rubygems_version: 2.7.6
536
523
  signing_key:
537
524
  specification_version: 4
538
525
  summary: Automated dependency management
@@ -1,127 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "nokogiri"
4
- require "dependabot/file_fetchers/base"
5
-
6
- module Dependabot
7
- module FileFetchers
8
- module Java
9
- class Maven < Dependabot::FileFetchers::Base
10
- MODULE_SELECTOR = "project > modules > module"
11
-
12
- def self.required_files_in?(filenames)
13
- (%w(pom.xml) - filenames).empty?
14
- end
15
-
16
- def self.required_files_message
17
- "Repo must contain a pom.xml."
18
- end
19
-
20
- private
21
-
22
- def fetch_files
23
- fetched_files = []
24
- fetched_files << pom
25
- fetched_files += child_poms
26
- fetched_files += relative_path_parents(fetched_files)
27
- fetched_files.uniq
28
- end
29
-
30
- def pom
31
- @pom ||= fetch_file_from_host("pom.xml")
32
- end
33
-
34
- def child_poms
35
- recursively_fetch_child_poms(pom, fetched_filenames: ["pom.xml"])
36
- end
37
-
38
- def relative_path_parents(fetched_files)
39
- fetched_files.flat_map do |file|
40
- recursively_fetch_relative_path_parents(
41
- file,
42
- fetched_filenames: fetched_files.map(&:name)
43
- )
44
- end
45
- end
46
-
47
- def recursively_fetch_child_poms(pom, fetched_filenames:)
48
- base_path = pom.name.gsub(/pom\.xml$/, "")
49
- doc = Nokogiri::XML(pom.content)
50
-
51
- doc.css(MODULE_SELECTOR).flat_map do |module_node|
52
- relative_path = module_node.content.strip
53
- name_parts = [
54
- base_path,
55
- relative_path,
56
- relative_path.end_with?("pom.xml") ? nil : "pom.xml"
57
- ].compact.reject(&:empty?)
58
- path = Pathname.new(File.join(*name_parts)).cleanpath.to_path
59
-
60
- next [] if fetched_filenames.include?(path)
61
-
62
- child_pom = fetch_file_from_host(path)
63
- fetched_filenames += [child_pom.name]
64
- [
65
- child_pom,
66
- recursively_fetch_child_poms(
67
- child_pom,
68
- fetched_filenames: fetched_filenames
69
- )
70
- ].flatten
71
- rescue Dependabot::DependencyFileNotFound
72
- raise unless fetch_file_from_host_or_submodule(path)
73
-
74
- [] # Ignore any child submodules (since we can't update them)
75
- end
76
- end
77
-
78
- def recursively_fetch_relative_path_parents(pom, fetched_filenames:)
79
- path = parent_path_for_pom(pom)
80
-
81
- if fetched_filenames.include?(path) ||
82
- fetched_filenames.include?(path.gsub("pom.xml", "pom_parent.xml"))
83
- return []
84
- end
85
-
86
- full_path_parts =
87
- [directory.gsub(%r{^/}, ""), path].reject(&:empty?).compact
88
-
89
- full_path = Pathname.new(File.join(*full_path_parts)).
90
- cleanpath.to_path
91
-
92
- return [] if full_path.start_with?("..")
93
-
94
- parent_pom = fetch_file_from_host(path)
95
- parent_pom.support_file = true
96
- parent_pom.name = parent_pom.name.gsub("pom.xml", "pom_parent.xml")
97
-
98
- [
99
- parent_pom,
100
- recursively_fetch_relative_path_parents(
101
- parent_pom,
102
- fetched_filenames: fetched_filenames + [parent_pom.name]
103
- )
104
- ].flatten
105
- rescue Dependabot::DependencyFileNotFound
106
- []
107
- end
108
-
109
- def parent_path_for_pom(pom)
110
- doc = Nokogiri::XML(pom.content)
111
- doc.remove_namespaces!
112
-
113
- relative_parent_path =
114
- doc.at_xpath("/project/parent/relativePath")&.content&.strip || ".."
115
-
116
- name_parts = [
117
- pom.name.gsub(/pom\.xml$/, "").gsub(/pom_parent\.xml$/, ""),
118
- relative_parent_path,
119
- relative_parent_path.end_with?("pom.xml") ? nil : "pom.xml"
120
- ].compact.reject(&:empty?)
121
-
122
- Pathname.new(File.join(*name_parts)).cleanpath.to_path
123
- end
124
- end
125
- end
126
- end
127
- end
@@ -1,252 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "nokogiri"
4
-
5
- require "dependabot/dependency"
6
- require "dependabot/file_parsers/base"
7
- require "dependabot/errors"
8
-
9
- # The best Maven documentation is at:
10
- # - http://maven.apache.org/pom.html
11
- module Dependabot
12
- module FileParsers
13
- module Java
14
- class Maven < Dependabot::FileParsers::Base
15
- require "dependabot/file_parsers/base/dependency_set"
16
- require_relative "maven/property_value_finder"
17
-
18
- # The following "dependencies" are candidates for updating:
19
- # - The project's parent
20
- # - Any dependencies (incl. those in dependencyManagement or plugins)
21
- # - Any plugins (incl. those in pluginManagement)
22
- # - Any extensions
23
- DEPENDENCY_SELECTOR = "project > parent, "\
24
- "dependencies > dependency, "\
25
- "extensions > extension"
26
- PLUGIN_SELECTOR = "plugins > plugin"
27
-
28
- # Regex to get the property name from a declaration that uses a property
29
- PROPERTY_REGEX = /\$\{(?<property>.*?)\}/.freeze
30
-
31
- def parse
32
- dependency_set = DependencySet.new
33
- pomfiles.each { |pom| dependency_set += pomfile_dependencies(pom) }
34
- dependency_set.dependencies
35
- end
36
-
37
- private
38
-
39
- def pomfile_dependencies(pom)
40
- dependency_set = DependencySet.new
41
-
42
- errors = []
43
- doc = Nokogiri::XML(pom.content)
44
- doc.remove_namespaces!
45
-
46
- doc.css(DEPENDENCY_SELECTOR).each do |dependency_node|
47
- dep = dependency_from_dependency_node(pom, dependency_node)
48
- dependency_set << dep if dep
49
- rescue DependencyFileNotEvaluatable => error
50
- errors << error
51
- end
52
-
53
- doc.css(PLUGIN_SELECTOR).each do |dependency_node|
54
- dep = dependency_from_plugin_node(pom, dependency_node)
55
- dependency_set << dep if dep
56
- rescue DependencyFileNotEvaluatable => error
57
- errors << error
58
- end
59
-
60
- raise errors.first if errors.any? && dependency_set.dependencies.none?
61
-
62
- dependency_set
63
- end
64
-
65
- def dependency_from_dependency_node(pom, dependency_node)
66
- return unless (name = dependency_name(dependency_node, pom))
67
- return if internal_dependency_names.include?(name)
68
-
69
- build_dependency(pom, dependency_node, name)
70
- end
71
-
72
- def dependency_from_plugin_node(pom, dependency_node)
73
- return unless (name = plugin_name(dependency_node, pom))
74
- return if internal_dependency_names.include?(name)
75
-
76
- build_dependency(pom, dependency_node, name)
77
- end
78
-
79
- def build_dependency(pom, dependency_node, name)
80
- property_details =
81
- {
82
- property_name: version_property_name(dependency_node),
83
- property_source: property_source(dependency_node, pom)
84
- }.compact
85
-
86
- Dependency.new(
87
- name: name,
88
- version: dependency_version(pom, dependency_node),
89
- package_manager: "maven",
90
- requirements: [{
91
- requirement: dependency_requirement(pom, dependency_node),
92
- file: pom.name,
93
- groups: [],
94
- source: nil,
95
- metadata: {
96
- packaging_type: packaging_type(pom, dependency_node)
97
- }.merge(property_details)
98
- }]
99
- )
100
- end
101
-
102
- def dependency_name(dependency_node, pom)
103
- return unless dependency_node.at_xpath("./groupId")
104
- return unless dependency_node.at_xpath("./artifactId")
105
-
106
- [
107
- evaluated_value(
108
- dependency_node.at_xpath("./groupId").content.strip,
109
- pom
110
- ),
111
- evaluated_value(
112
- dependency_node.at_xpath("./artifactId").content.strip,
113
- pom
114
- )
115
- ].join(":")
116
- end
117
-
118
- def plugin_name(dependency_node, pom)
119
- return unless plugin_group_id(pom, dependency_node)
120
- return unless dependency_node.at_xpath("./artifactId")
121
-
122
- [
123
- plugin_group_id(pom, dependency_node),
124
- evaluated_value(
125
- dependency_node.at_xpath("./artifactId").content.strip,
126
- pom
127
- )
128
- ].join(":")
129
- end
130
-
131
- def plugin_group_id(pom, node)
132
- return "org.apache.maven.plugins" unless node.at_xpath("./groupId")
133
-
134
- evaluated_value(
135
- node.at_xpath("./groupId").content.strip,
136
- pom
137
- )
138
- end
139
-
140
- def dependency_version(pom, dependency_node)
141
- requirement = dependency_requirement(pom, dependency_node)
142
- return nil unless requirement
143
-
144
- # If a range is specified then we can't tell the exact version
145
- return nil if requirement.include?(",")
146
-
147
- # Remove brackets if present (and not denoting a range)
148
- requirement.gsub(/[\(\)\[\]]/, "").strip
149
- end
150
-
151
- def dependency_requirement(pom, dependency_node)
152
- return unless dependency_node.at_xpath("./version")
153
-
154
- version_content = dependency_node.at_xpath("./version").content.strip
155
- version_content = evaluated_value(version_content, pom)
156
-
157
- version_content.empty? ? nil : version_content
158
- end
159
-
160
- def packaging_type(pom, dependency_node)
161
- return "pom" if dependency_node.node_name == "parent"
162
- return "jar" unless dependency_node.at_xpath("./type")
163
-
164
- packaging_type_content = dependency_node.at_xpath("./type").
165
- content.strip
166
-
167
- evaluated_value(packaging_type_content, pom)
168
- end
169
-
170
- def version_property_name(dependency_node)
171
- return unless dependency_node.at_xpath("./version")
172
-
173
- version_content = dependency_node.at_xpath("./version").content.strip
174
-
175
- return unless version_content.match?(PROPERTY_REGEX)
176
-
177
- version_content.
178
- match(PROPERTY_REGEX).
179
- named_captures.fetch("property")
180
- end
181
-
182
- def evaluated_value(value, pom)
183
- return value unless value.match?(PROPERTY_REGEX)
184
-
185
- property_name = value.match(PROPERTY_REGEX).
186
- named_captures.fetch("property")
187
- property_value = value_for_property(property_name, pom)
188
-
189
- value.gsub(PROPERTY_REGEX, property_value)
190
- end
191
-
192
- def property_source(dependency_node, pom)
193
- property_name = version_property_name(dependency_node)
194
- return unless property_name
195
-
196
- declaring_pom =
197
- property_value_finder.
198
- property_details(property_name: property_name, callsite_pom: pom)&.
199
- fetch(:file)
200
-
201
- return declaring_pom if declaring_pom
202
-
203
- msg = "Property not found: #{property_name}"
204
- raise DependencyFileNotEvaluatable, msg
205
- end
206
-
207
- def value_for_property(property_name, pom)
208
- value =
209
- property_value_finder.
210
- property_details(property_name: property_name, callsite_pom: pom)&.
211
- fetch(:value)
212
-
213
- return value if value
214
-
215
- msg = "Property not found: #{property_name}"
216
- raise DependencyFileNotEvaluatable, msg
217
- end
218
-
219
- # Cached, since this can makes calls to the registry (to get property
220
- # values from parent POMs)
221
- def property_value_finder
222
- @property_value_finder ||=
223
- PropertyValueFinder.new(dependency_files: dependency_files)
224
- end
225
-
226
- def pomfiles
227
- # Note: this (correctly) excludes any parent POMs that were downloaded
228
- @pomfiles ||=
229
- dependency_files.select { |f| f.name.end_with?("pom.xml") }
230
- end
231
-
232
- def internal_dependency_names
233
- @internal_dependency_names ||=
234
- dependency_files.map do |pom|
235
- doc = Nokogiri::XML(pom.content)
236
- group_id = doc.at_css("project > groupId") ||
237
- doc.at_css("project > parent > groupId")
238
- artifact_id = doc.at_css("project > artifactId")
239
-
240
- next unless group_id && artifact_id
241
-
242
- [group_id.content.strip, artifact_id.content.strip].join(":")
243
- end.compact
244
- end
245
-
246
- def check_required_files
247
- raise "No pom.xml!" unless get_original_file("pom.xml")
248
- end
249
- end
250
- end
251
- end
252
- end