You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@buildr.apache.org by to...@apache.org on 2016/08/14 06:23:14 UTC
buildr git commit: BUILDR-476 Buildr doesn't respect company
repository manager
Repository: buildr
Updated Branches:
refs/heads/master 42a016d97 -> 24724f998
BUILDR-476 Buildr doesn't respect company repository manager
Project: http://git-wip-us.apache.org/repos/asf/buildr/repo
Commit: http://git-wip-us.apache.org/repos/asf/buildr/commit/24724f99
Tree: http://git-wip-us.apache.org/repos/asf/buildr/tree/24724f99
Diff: http://git-wip-us.apache.org/repos/asf/buildr/diff/24724f99
Branch: refs/heads/master
Commit: 24724f998a6697ee3ef3ee59bebaf15da0bbb4b9
Parents: 42a016d
Author: Antoine Toulme <an...@lunar-ocean.com>
Authored: Sat Aug 13 23:23:01 2016 -0700
Committer: Antoine Toulme <an...@lunar-ocean.com>
Committed: Sat Aug 13 23:23:01 2016 -0700
----------------------------------------------------------------------
CHANGELOG | 1 +
lib/buildr/packaging/artifact.rb | 42 ++++++++++++++++++++
spec/packaging/artifact_spec.rb | 74 +++++++++++++++++++++++++++++++++++
3 files changed, 117 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/buildr/blob/24724f99/CHANGELOG
----------------------------------------------------------------------
diff --git a/CHANGELOG b/CHANGELOG
index 03e5ee5..4a49eb6 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -21,6 +21,7 @@
* Fixed: BUILDR-621 ZipTask creates zip file with entries not sorted by path causing very slow unzipping.
* Fixed: BUILDR-695 transitive doesn't support ${project.parent.version} in POM.
* Fixed: BUILDR-653 Using Eclipse compiler (ECJ)
+* Fixed: BUILDR-476 Buildr doesn't respect company repository manager
* Change: Update the custom_pom addon to generate poms with exclusions section that excludes
all transitive dependencies. This is required as buildr dependencies are not
transitive while Maven's dependencies are transitive by default.
http://git-wip-us.apache.org/repos/asf/buildr/blob/24724f99/lib/buildr/packaging/artifact.rb
----------------------------------------------------------------------
diff --git a/lib/buildr/packaging/artifact.rb b/lib/buildr/packaging/artifact.rb
index 4f18be3..90c0197 100644
--- a/lib/buildr/packaging/artifact.rb
+++ b/lib/buildr/packaging/artifact.rb
@@ -628,6 +628,44 @@ module Buildr #:nodoc:
spec = Artifact.to_hash(spec)
File.join(local, spec[:group].split('.'), spec[:id], spec[:version], Artifact.hash_to_file_name(spec))
end
+
+ # :call-seq:
+ # mirrors => Array
+ #
+ # Returns an array of all the mirror repository URLs.
+ #
+ # Mirrors override remote repositories defined in the project.
+ # The best way is to add repositories to the user settings file under '$HOME/.buildr/settings.yaml'.
+ # For example:
+ # repositories:
+ # mirrors:
+ # - http://example.com/repository
+ def mirrors
+ unless @mirrors
+ @mirrors = [Buildr.settings.user, Buildr.settings.build].inject([]) { |repos, hash|
+ repos | Array(hash['repositories'] && hash['repositories']['mirrors'])
+ }
+ end
+ @mirrors
+ end
+
+ # :call-seq:
+ # remote = Array
+ # remote = url
+ # remote = nil
+ #
+ # With a String argument, clears the array and set it to that single URL.
+ #
+ # With an Array argument, clears the array and set it to these specific URLs.
+ #
+ # With nil, clears the array.
+ def mirrors=(urls)
+ case urls
+ when nil then @mirrors = nil
+ when Array then @mirrors = urls.dup
+ else @mirrors = [urls.to_s]
+ end
+ end
# :call-seq:
# remote => Array
@@ -648,6 +686,10 @@ module Buildr #:nodoc:
# - http://example.com/repo
# - http://elsewhere.com/repo
def remote
+ unless mirrors.empty?
+ info "Remote repositories overridden by mirrors #{mirrors.map(&:to_s).join(", ")}"
+ mirrors
+ end
unless @remote
@remote = [Buildr.settings.user, Buildr.settings.build].inject([]) { |repos, hash|
repos | Array(hash['repositories'] && hash['repositories']['remote'])
http://git-wip-us.apache.org/repos/asf/buildr/blob/24724f99/spec/packaging/artifact_spec.rb
----------------------------------------------------------------------
diff --git a/spec/packaging/artifact_spec.rb b/spec/packaging/artifact_spec.rb
index b6bd84d..53f36cb 100644
--- a/spec/packaging/artifact_spec.rb
+++ b/spec/packaging/artifact_spec.rb
@@ -230,6 +230,80 @@ describe Repositories, 'remote_uri' do
end
end
+describe Repositories, 'mirrors' do
+ before do
+ Buildr.repositories.instance_eval do
+ @local = @remote = @release_to = @mirrors = nil
+ end
+
+ @repos = [ 'http://www.ibiblio.org/maven2', 'http://repo1.maven.org/maven2' ]
+ end
+
+ it 'should be empty initially' do
+ repositories.mirrors.should be_empty
+ end
+
+ it 'should be settable' do
+ repositories.mirrors = @repos.first
+ repositories.mirrors.should eql([@repos.first])
+ end
+
+ it 'should be settable from array' do
+ repositories.mirrors = @repos
+ repositories.mirrors.should eql(@repos)
+ end
+
+ it 'should add and return repositories in order' do
+ @repos.each { |url| repositories.mirrors << url }
+ repositories.mirrors.should eql(@repos)
+ end
+
+ it 'should log that it is overridding the remote repositories with the mirrors' do
+ @repos.each { |url| repositories.mirrors << url }
+ lambda { repositories.remote }.should show_info /Remote repositories overridden by mirrors /
+ end
+
+ it 'should load with all repositories specified in settings file' do
+ write 'home/.buildr/settings.yaml', <<-YAML
+ repositories:
+ mirrors:
+ - http://example.com/repository/noexist
+ remote:
+ - http://foobar.com
+ YAML
+ repositories.mirrors.should include('http://example.com/repository/noexist')
+ end
+
+ it 'should load with all repositories specified in build.yaml file' do
+ write 'build.yaml', <<-YAML
+ repositories:
+ mirrors:
+ - http://example.com/repository/noexist
+ remote:
+ - http://foobar.com
+ YAML
+ repositories.mirrors.should include('http://example.com/repository/noexist')
+ end
+
+ it 'should load with all repositories specified in settings and build.yaml files' do
+ write 'home/.buildr/settings.yaml', <<-YAML
+ repositories:
+ mirrors:
+ - http://example.com/repository/noexist
+ remote:
+ - http://foobar.com
+ YAML
+ write 'build.yaml', <<-YAML
+ repositories:
+ mirrors:
+ - http://example.com/repo2
+ remote:
+ - http://foobar.com
+ YAML
+ repositories.mirrors.should include('http://example.com/repository/noexist', 'http://example.com/repo2')
+ end
+end
+
describe Repositories, 'remote' do
before do
Buildr.repositories.instance_eval do