Skip to content

Commit d22a90c

Browse files
author
Glyn Normington
committed
Merge 51720657-move-version-resolver-to-repository to master
[Completes #51720657]
2 parents 7221793 + 29d1827 commit d22a90c

4 files changed

Lines changed: 21 additions & 21 deletions

File tree

lib/java_buildpack/repository/repository_index.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515

1616
require 'java_buildpack/repository'
1717
require 'java_buildpack/util/download_cache'
18-
require 'java_buildpack/util/version_resolver'
18+
require 'java_buildpack/repository/version_resolver'
1919

2020
module JavaBuildpack::Repository
2121

@@ -38,7 +38,7 @@ def initialize(repository_root)
3838
# @return [TokenizedVersion] the version of the file found
3939
# @return [String] the URI of the file found
4040
def find_item(version)
41-
version = JavaBuildpack::Util::VersionResolver.resolve(version, @index.keys)
41+
version = VersionResolver.resolve(version, @index.keys)
4242
uri = @index[version.to_s]
4343
return version, uri
4444
end

lib/java_buildpack/util/version_resolver.rb renamed to lib/java_buildpack/repository/version_resolver.rb

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,10 @@
1313
# See the License for the specific language governing permissions and
1414
# limitations under the License.
1515

16-
require 'java_buildpack/util'
16+
require 'java_buildpack/repository'
1717
require 'java_buildpack/util/tokenized_version'
1818

19-
module JavaBuildpack::Util
19+
module JavaBuildpack::Repository
2020

2121
# A resolver that selects values from a collection based on a set of rules governing wildcards
2222
class VersionResolver
@@ -33,7 +33,7 @@ class VersionResolver
3333
# @raise if no version can be resolved
3434
def self.resolve(candidate_version, versions)
3535
tokenized_candidate_version = safe_candidate_version candidate_version
36-
tokenized_versions = versions.map { |version| TokenizedVersion.new(version, false) }
36+
tokenized_versions = versions.map { |version| JavaBuildpack::Util::TokenizedVersion.new(version, false) }
3737

3838
version = tokenized_versions
3939
.find_all { |tokenized_version| matches? tokenized_candidate_version, tokenized_version }
@@ -45,21 +45,21 @@ def self.resolve(candidate_version, versions)
4545

4646
private
4747

48-
TOKENIZED_WILDCARD = TokenizedVersion.new('+')
48+
TOKENIZED_WILDCARD = JavaBuildpack::Util::TokenizedVersion.new('+')
4949

5050
def self.safe_candidate_version(candidate_version)
5151
if candidate_version.nil? then
5252
TOKENIZED_WILDCARD
5353
else
54-
raise "Invalid TokenizedVersion '#{candidate_version}'" unless candidate_version.is_a?(TokenizedVersion)
54+
raise "Invalid TokenizedVersion '#{candidate_version}'" unless candidate_version.is_a?(JavaBuildpack::Util::TokenizedVersion)
5555
candidate_version
5656
end
5757
end
5858

5959
def self.matches?(tokenized_candidate_version, tokenized_version)
6060
(0..3).all? do |i|
6161
tokenized_candidate_version[i].nil? ||
62-
tokenized_candidate_version[i] == TokenizedVersion::WILDCARD ||
62+
tokenized_candidate_version[i] == JavaBuildpack::Util::TokenizedVersion::WILDCARD ||
6363
tokenized_candidate_version[i] == tokenized_version[i]
6464
end
6565
end

spec/java_buildpack/repository/repository_index_spec.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ module JavaBuildpack::Repository
2727
JavaBuildpack::Util::DownloadCache.stub(:new).and_return(application_cache)
2828
application_cache.stub(:get).with('test-uri/index.yml')
2929
.and_yield(File.open('spec/fixtures/test-index.yml'))
30-
JavaBuildpack::Util::VersionResolver.stub(:resolve).with('test-version', ["resolved-version"]).and_return('resolved-version')
30+
VersionResolver.stub(:resolve).with('test-version', ["resolved-version"]).and_return('resolved-version')
3131

3232
repository_index = RepositoryIndex.new('test-uri')
3333
expect(repository_index.find_item('test-version')).to eq(['resolved-version', 'resolved-uri'])

spec/java_buildpack/util/version_resolver_spec.rb renamed to spec/java_buildpack/repository/version_resolver_spec.rb

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,9 @@
1414
# limitations under the License.
1515

1616
require 'spec_helper'
17-
require 'java_buildpack/util/version_resolver'
17+
require 'java_buildpack/repository/version_resolver'
1818

19-
module JavaBuildpack::Util
19+
module JavaBuildpack::Repository
2020

2121
describe VersionResolver do
2222

@@ -37,37 +37,37 @@ module JavaBuildpack::Util
3737

3838

3939
it 'resolves a wildcard major version' do
40-
expect(VersionResolver.resolve(TokenizedVersion.new('+'), VERSIONS).to_s).to eq('2.0.0')
40+
expect(VersionResolver.resolve(JavaBuildpack::Util::TokenizedVersion.new('+'), VERSIONS).to_s).to eq('2.0.0')
4141
end
4242

4343
it 'resolves a wildcard minor version' do
44-
expect(VersionResolver.resolve(TokenizedVersion.new('1.+'), VERSIONS).to_s).to eq('1.8.0_05')
44+
expect(VersionResolver.resolve(JavaBuildpack::Util::TokenizedVersion.new('1.+'), VERSIONS).to_s).to eq('1.8.0_05')
4545
end
4646

4747
it 'resolves a wildcard micro version' do
48-
expect(VersionResolver.resolve(TokenizedVersion.new('1.6.+'), VERSIONS).to_s).to eq('1.6.1_14')
48+
expect(VersionResolver.resolve(JavaBuildpack::Util::TokenizedVersion.new('1.6.+'), VERSIONS).to_s).to eq('1.6.1_14')
4949
end
5050

5151
it 'resolves a wildcard qualifier' do
52-
expect(VersionResolver.resolve(TokenizedVersion.new('1.6.0_+'), VERSIONS).to_s).to eq('1.6.0_27')
53-
expect(VersionResolver.resolve(TokenizedVersion.new('1.8.0_+'), VERSIONS).to_s).to eq('1.8.0_05')
52+
expect(VersionResolver.resolve(JavaBuildpack::Util::TokenizedVersion.new('1.6.0_+'), VERSIONS).to_s).to eq('1.6.0_27')
53+
expect(VersionResolver.resolve(JavaBuildpack::Util::TokenizedVersion.new('1.8.0_+'), VERSIONS).to_s).to eq('1.8.0_05')
5454
end
5555

5656
it 'resolves a non-wildcard version' do
57-
expect(VersionResolver.resolve(TokenizedVersion.new('1.6.0_26'), VERSIONS).to_s).to eq('1.6.0_26')
58-
expect(VersionResolver.resolve(TokenizedVersion.new('2.0.0'), VERSIONS).to_s).to eq('2.0.0')
57+
expect(VersionResolver.resolve(JavaBuildpack::Util::TokenizedVersion.new('1.6.0_26'), VERSIONS).to_s).to eq('1.6.0_26')
58+
expect(VersionResolver.resolve(JavaBuildpack::Util::TokenizedVersion.new('2.0.0'), VERSIONS).to_s).to eq('2.0.0')
5959
end
6060

6161
it 'resolves a non-digit qualifier' do
62-
expect(VersionResolver.resolve(TokenizedVersion.new('1.8.0_M-7'), VERSIONS).to_s).to eq('1.8.0_M-7')
62+
expect(VersionResolver.resolve(JavaBuildpack::Util::TokenizedVersion.new('1.8.0_M-7'), VERSIONS).to_s).to eq('1.8.0_M-7')
6363
end
6464

6565
it 'should raise an exception if no version can be resolved' do
66-
expect { VersionResolver.resolve(TokenizedVersion.new('2.1.0'), VERSIONS).to_s }.to raise_error
66+
expect { VersionResolver.resolve(JavaBuildpack::Util::TokenizedVersion.new('2.1.0'), VERSIONS).to_s }.to raise_error
6767
end
6868

6969
it 'should raise an exception when a wildcard is specified in the [] collection' do
70-
expect { VersionResolver.resolve(TokenizedVersion.new('1.6.0_25'), ['+']) }.to raise_error(/Invalid/)
70+
expect { VersionResolver.resolve(JavaBuildpack::Util::TokenizedVersion.new('1.6.0_25'), ['+']) }.to raise_error(/Invalid/)
7171
end
7272

7373
end

0 commit comments

Comments
 (0)