dependabot-core 0.84.1 → 0.85.0

Sign up to get free protection for your applications and to get access to all the features.
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