buildr 1.4.7.pre2 → 1.4.7
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.
- data/CHANGELOG +24 -2
- data/Rakefile +4 -1
- data/addon/buildr/{checkstyle.rake → checkstyle.rb} +0 -0
- data/addon/buildr/{findbugs.rake → findbugs.rb} +0 -0
- data/addon/buildr/gwt.rake +82 -0
- data/addon/buildr/{javancss.rake → javancss.rb} +0 -0
- data/addon/buildr/jdepend.rb.orig +178 -0
- data/addon/buildr/nailgun.rb +2 -2
- data/addon/buildr/{pmd.rake → pmd.rb} +3 -1
- data/addon/buildr/sonar.rb +142 -0
- data/buildr.gemspec +21 -17
- data/doc/installing.textile.orig +282 -0
- data/doc/more_stuff.textile +31 -0
- data/doc/more_stuff.textile.orig +1004 -0
- data/etc/KEYS +44 -0
- data/lib/buildr.rb +3 -3
- data/lib/buildr/core/doc.rb +9 -3
- data/lib/buildr/core/generate.rb +2 -2
- data/lib/buildr/core/run.rb +1 -1
- data/lib/buildr/core/shell.rb +1 -1
- data/lib/buildr/core/test.rb +1 -1
- data/lib/buildr/core/util.rb +2 -2
- data/lib/buildr/ide/eclipse.rb +4 -4
- data/lib/buildr/ide/idea.rb +184 -1
- data/lib/buildr/java/ant.rb +2 -3
- data/lib/buildr/java/bdd.rb +4 -4
- data/lib/buildr/java/pom.rb +5 -4
- data/lib/buildr/java/rjb.rb +1 -1
- data/lib/buildr/java/test_result.rb +4 -0
- data/lib/buildr/packaging/version_requirement.rb +1 -1
- data/lib/buildr/packaging/zip.rb +1 -1
- data/lib/buildr/run.rb +3 -2
- data/lib/buildr/scala/org/apache/buildr/Specs2Runner.class +0 -0
- data/lib/buildr/version.rb +1 -1
- data/rakelib/doc.rake +5 -5
- data/rakelib/package.rake +3 -3
- data/rakelib/rspec.rake +22 -4
- data/rakelib/stage.rake +16 -12
- data/spec/core/application_spec.rb +1 -1
- data/spec/core/cc_spec.rb +12 -4
- data/spec/core/doc_spec.rb +1 -1
- data/spec/core/run_spec.rb +17 -4
- data/spec/core/test_spec.rb +5 -3
- data/spec/ide/idea_spec.rb +2 -2
- data/spec/java/cobertura_spec.rb +4 -0
- data/spec/java/emma_spec.rb +4 -1
- data/spec/java/java_spec.rb +1 -1
- data/spec/java/pom_spec.rb +125 -0
- data/spec/packaging/archive_spec.rb +1 -1
- data/spec/packaging/artifact_spec.rb +1 -1
- data/spec/sandbox.rb +4 -0
- data/spec/spec_helpers.rb +6 -1
- data/spec/version_requirement_spec.rb +2 -0
- metadata +390 -239
data/lib/buildr/java/rjb.rb
CHANGED
@@ -74,7 +74,7 @@ module Java
|
|
74
74
|
|
75
75
|
# On OS X we know where the default JDK is. We can try to guess for other OS.
|
76
76
|
# We set JAVA_HOME early so we can use it without calling Java.load first.
|
77
|
-
ENV['JAVA_HOME'] ||= '/System/Library/Frameworks/JavaVM.framework/Home' if
|
77
|
+
ENV['JAVA_HOME'] ||= '/System/Library/Frameworks/JavaVM.framework/Home' if RbConfig::CONFIG['host_os'] =~ /darwin/i
|
78
78
|
|
79
79
|
class << self
|
80
80
|
|
@@ -13,6 +13,10 @@
|
|
13
13
|
# License for the specific language governing permissions and limitations under
|
14
14
|
# the License.
|
15
15
|
|
16
|
+
# It is necessary to require these files here as the bdd plugin directly includes this file
|
17
|
+
require 'yaml'
|
18
|
+
require 'rspec/core/formatters/base_formatter'
|
19
|
+
|
16
20
|
module Buildr #:nodoc:
|
17
21
|
module TestFramework
|
18
22
|
|
data/lib/buildr/packaging/zip.rb
CHANGED
data/lib/buildr/run.rb
CHANGED
@@ -171,8 +171,9 @@ module Buildr
|
|
171
171
|
end
|
172
172
|
|
173
173
|
after_define(:run => :test) do |project|
|
174
|
-
project.run.with project.
|
175
|
-
project.run.with project.
|
174
|
+
project.run.with project.compile.dependencies
|
175
|
+
project.run.with project.resources.target if project.resources.target
|
176
|
+
project.run.with project.compile.target if project.compile.target
|
176
177
|
end
|
177
178
|
|
178
179
|
# :call-seq:
|
Binary file
|
data/lib/buildr/version.rb
CHANGED
data/rakelib/doc.rake
CHANGED
@@ -14,8 +14,8 @@
|
|
14
14
|
# the License.
|
15
15
|
|
16
16
|
if !RUBY_PLATFORM[/java/]
|
17
|
+
gem 'rdoc'
|
17
18
|
require 'rdoc/task'
|
18
|
-
|
19
19
|
desc "Creates a symlink to rake's lib directory to support combined rdoc generation"
|
20
20
|
file "rake/lib" do
|
21
21
|
rake_path = $LOAD_PATH.find { |p| File.exist? File.join(p, "rake.rb") }
|
@@ -24,7 +24,7 @@ if !RUBY_PLATFORM[/java/]
|
|
24
24
|
end
|
25
25
|
|
26
26
|
desc "Generate RDoc documentation in rdoc/"
|
27
|
-
|
27
|
+
RDoc::Task.new :rdoc do |rdoc|
|
28
28
|
rdoc.rdoc_dir = 'rdoc'
|
29
29
|
rdoc.title = spec.name
|
30
30
|
rdoc.options = spec.rdoc_options.clone
|
@@ -66,8 +66,8 @@ if !RUBY_PLATFORM[/java/]
|
|
66
66
|
puts "Buildr uses the jekyll gem to generate the Web site. You can install it by running bundler"
|
67
67
|
end
|
68
68
|
|
69
|
-
if
|
70
|
-
puts "Buildr uses the Pygments python library. You can install it by running 'sudo easy_install Pygments'"
|
69
|
+
if 0 == system("pygmentize -V > /dev/null 2> /dev/null")
|
70
|
+
puts "Buildr uses the Pygments python library. You can install it by running 'sudo easy_install Pygments' or 'sudo apt-get install python-pygments'"
|
71
71
|
end
|
72
72
|
|
73
73
|
desc "Generate Buildr documentation as buildr.pdf"
|
@@ -79,7 +79,7 @@ if !RUBY_PLATFORM[/java/]
|
|
79
79
|
desc "Build a copy of the Web site in the ./_site"
|
80
80
|
task :site=>['_site', :rdoc, '_reports/specs.html', '_reports/coverage', 'buildr.pdf'] do
|
81
81
|
cp_r 'rdoc', '_site'
|
82
|
-
fail 'No RDocs in site directory' unless File.exist?('_site/rdoc/
|
82
|
+
fail 'No RDocs in site directory' unless File.exist?('_site/rdoc/lib/buildr_rb.html')
|
83
83
|
cp '_reports/specs.html', '_site'
|
84
84
|
cp_r '_reports/coverage', '_site'
|
85
85
|
fail 'No coverage report in site directory' unless File.exist?('_site/coverage/index.html')
|
data/rakelib/package.rake
CHANGED
@@ -25,7 +25,7 @@ end
|
|
25
25
|
desc "Install Buildr from source"
|
26
26
|
task :install=>["#{package.package_dir}/#{package.gem_spec.file_name}"] do |task|
|
27
27
|
print "Installing #{spec.name} ... "
|
28
|
-
args =
|
28
|
+
args = RbConfig::CONFIG['ruby_install_name'], '-S', 'gem', 'install', "#{package.package_dir}/#{package.gem_spec.file_name}"
|
29
29
|
args.unshift('sudo') if sudo_needed?
|
30
30
|
sh *args
|
31
31
|
puts "[x] Installed Buildr #{spec.version}"
|
@@ -34,7 +34,7 @@ end
|
|
34
34
|
desc "Uninstall previous rake install"
|
35
35
|
task :uninstall do |task|
|
36
36
|
puts "Uninstalling #{spec.name} ... "
|
37
|
-
args =
|
37
|
+
args = RbConfig::CONFIG['ruby_install_name'], '-S', 'gem', 'uninstall', spec.name, '--version', spec.version.to_s
|
38
38
|
args.unshift('sudo') if sudo_needed?
|
39
39
|
sh *args
|
40
40
|
puts "[x] Uninstalled Buildr #{spec.version}"
|
@@ -44,7 +44,7 @@ end
|
|
44
44
|
desc "Compile Java libraries used by Buildr"
|
45
45
|
task :compile do
|
46
46
|
puts "Compiling Java libraries ..."
|
47
|
-
args =
|
47
|
+
args = RbConfig::CONFIG['ruby_install_name'], File.expand_path(RUBY_PLATFORM[/java/] ? '_jbuildr' : '_buildr'), '--buildfile', 'buildr.buildfile', 'compile'
|
48
48
|
args << '--trace' if Rake.application.options.trace
|
49
49
|
sh *args
|
50
50
|
end
|
data/rakelib/rspec.rake
CHANGED
@@ -65,19 +65,37 @@ begin
|
|
65
65
|
desc 'Run all specs with CI reporter'
|
66
66
|
task :ci=>[:load_ci_reporter, :spec]
|
67
67
|
|
68
|
+
def rvm_run_in(version, command)
|
69
|
+
if !(Config::CONFIG['host_os'] =~ /mswin|win32|dos/i)
|
70
|
+
cmd_prefix = "rvm #{version} exec"
|
71
|
+
sh "rm -f Gemfile.lock; #{cmd_prefix} bundle install; #{cmd_prefix} bundle exec #{command}"
|
72
|
+
else
|
73
|
+
sh "#{version =~ /jruby/ ? "j" : ""}ruby -S #{command}"
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
68
77
|
# Useful for testing with JRuby when using Ruby and vice versa.
|
69
78
|
namespace :spec do
|
70
|
-
desc "Run all specs specifically with Ruby"
|
71
|
-
task :
|
79
|
+
desc "Run all specs specifically with Ruby 1.9"
|
80
|
+
task :ruby_1_9 do
|
72
81
|
puts "Running test suite using Ruby ..."
|
73
|
-
|
82
|
+
rvm_run_in("ruby-1.9.2-p320@buildr", "rake spec")
|
83
|
+
end
|
84
|
+
|
85
|
+
desc "Run all specs specifically with Ruby 1.8"
|
86
|
+
task :ruby_1_8 do
|
87
|
+
puts "Running test suite using Ruby ..."
|
88
|
+
rvm_run_in("ruby-1.8.7-p358@buildr", "rake spec")
|
74
89
|
end
|
75
90
|
|
76
91
|
desc "Run all specs specifically with JRuby"
|
77
92
|
task :jruby do
|
78
93
|
puts "Running test suite using JRuby ..."
|
79
|
-
|
94
|
+
rvm_run_in("jruby-1.6.7@buildr", "rake spec")
|
80
95
|
end
|
96
|
+
|
97
|
+
desc "Run all specs across various rubies"
|
98
|
+
task :all => [:jruby, :ruby_1_8, :ruby_1_9]
|
81
99
|
end
|
82
100
|
|
83
101
|
task :clobber do
|
data/rakelib/stage.rake
CHANGED
@@ -13,13 +13,15 @@
|
|
13
13
|
# License for the specific language governing permissions and limitations under
|
14
14
|
# the License.
|
15
15
|
|
16
|
-
|
16
|
+
require 'rubyforge'
|
17
17
|
require 'digest/md5'
|
18
18
|
require 'digest/sha1'
|
19
19
|
|
20
20
|
gpg_cmd = 'gpg2'
|
21
21
|
|
22
22
|
task :prepare do |task, args|
|
23
|
+
gpg_arg = args.gpg || ENV['gpg']
|
24
|
+
|
23
25
|
# Make sure we're doing a release from checked code.
|
24
26
|
lambda do
|
25
27
|
puts "Checking there are no local changes ... "
|
@@ -41,24 +43,24 @@ task :prepare do |task, args|
|
|
41
43
|
|
42
44
|
# Need GPG to sign the packages.
|
43
45
|
lambda do
|
44
|
-
|
45
|
-
gpg_ok = `gpg2 --list-keys #{
|
46
|
+
gpg_arg or fail "Please run with gpg=<argument for gpg --local-user>"
|
47
|
+
gpg_ok = `gpg2 --list-keys #{gpg_arg}` rescue nil
|
46
48
|
if !$?.success?
|
47
|
-
gpg_ok = `gpg --list-keys #{
|
49
|
+
gpg_ok = `gpg --list-keys #{gpg_arg}`
|
48
50
|
gpg_cmd = 'gpg'
|
49
51
|
end
|
50
|
-
fail "No GPG user #{
|
52
|
+
fail "No GPG user #{gpg_arg}" if gpg_ok.empty?
|
51
53
|
end.call
|
52
54
|
|
53
55
|
task(:license).invoke
|
54
56
|
|
55
57
|
# Need JRuby, Scala and Groovy installed to run all the specs.
|
56
58
|
lambda do
|
57
|
-
puts "Checking that we have
|
58
|
-
|
59
|
-
|
59
|
+
puts "Checking that we have Scala and Groovy available ... "
|
60
|
+
`scala -version`
|
61
|
+
$?.exitstatus == 1 or fail "Scala is not installed"
|
60
62
|
sh 'groovy -version'
|
61
|
-
puts "[X] We have
|
63
|
+
puts "[X] We have Scala and Groovy"
|
62
64
|
end.call
|
63
65
|
|
64
66
|
# Need Prince to generate PDF
|
@@ -77,11 +79,13 @@ task :prepare do |task, args|
|
|
77
79
|
end.call
|
78
80
|
|
79
81
|
# We will be speccing in one platform, so also spec the other one.
|
80
|
-
task(
|
82
|
+
task('spec:ruby_1_9').invoke unless RUBY_VERSION >= '1.9' && !RUBY_PLATFORM[/java/]
|
83
|
+
task('spec:ruby_1_8').invoke unless RUBY_VERSION >= '1.8.7' && !RUBY_PLATFORM[/java/]
|
84
|
+
task('spec:jruby').invoke unless RUBY_PLATFORM[/java/]
|
81
85
|
end
|
82
86
|
|
83
|
-
|
84
87
|
task :stage=>[:clobber, :prepare] do |task, args|
|
88
|
+
gpg_arg = args.gpg || ENV['gpg']
|
85
89
|
mkpath '_staged'
|
86
90
|
|
87
91
|
# Start by figuring out what has changed.
|
@@ -110,7 +114,7 @@ task :stage=>[:clobber, :prepare] do |task, args|
|
|
110
114
|
bytes = File.open(pkg, 'rb') { |file| file.read }
|
111
115
|
File.open(pkg + '.md5', 'w') { |file| file.write Digest::MD5.hexdigest(bytes) << ' ' << File.basename(pkg) }
|
112
116
|
File.open(pkg + '.sha1', 'w') { |file| file.write Digest::SHA1.hexdigest(bytes) << ' ' << File.basename(pkg) }
|
113
|
-
sh gpg_cmd, '--local-user',
|
117
|
+
sh gpg_cmd, '--local-user', gpg_arg, '--armor', '--output', pkg + '.asc', '--detach-sig', pkg, :verbose=>true
|
114
118
|
end
|
115
119
|
cp 'etc/KEYS', '_staged/dist'
|
116
120
|
puts "[X] Created and signed release packages in _staged/dist"
|
@@ -133,7 +133,7 @@ describe Buildr::Application do
|
|
133
133
|
write 'build.yaml', <<-YAML
|
134
134
|
gems:
|
135
135
|
- rake
|
136
|
-
- rspec ~> 2.
|
136
|
+
- rspec ~> 2.9.0
|
137
137
|
YAML
|
138
138
|
Buildr.application.should_receive(:listed_gems).and_return([[Gem.loaded_specs['rspec'],Gem.loaded_specs['rake']],[]])
|
139
139
|
Buildr.application.load_gems
|
data/spec/core/cc_spec.rb
CHANGED
@@ -92,21 +92,29 @@ describe Buildr::CCTask do
|
|
92
92
|
foo.cc.invoke
|
93
93
|
rescue => e
|
94
94
|
p "unexpected exception #{e.inspect}"
|
95
|
-
p e.backtrace.join("\n")
|
95
|
+
p e.backtrace.join("\n")
|
96
96
|
end
|
97
97
|
end
|
98
98
|
|
99
|
-
|
99
|
+
#Ick! Try to get the sleeping enough on each platform that the tests reliably pass
|
100
|
+
sleep 1 if RUBY_VERSION >= '1.9' && !RUBY_PLATFORM[/java/]
|
101
|
+
sleep 5 if RUBY_VERSION >= '1.8.7' && !RUBY_PLATFORM[/java/]
|
102
|
+
sleep 1 if RUBY_PLATFORM[/java/]
|
100
103
|
|
101
104
|
foo.compile.run_count.should == 1
|
102
105
|
foo.test.compile.run_count.should == 1
|
103
106
|
foo.resources.run_count.should == 1
|
104
107
|
|
105
|
-
|
108
|
+
# Wait some time as the timestamp needs to be different on files.
|
109
|
+
sleep 3 if Buildr::Util.win_os?
|
110
|
+
sleep 1 unless Buildr::Util.win_os?
|
106
111
|
|
107
112
|
touch File.join(Dir.pwd, 'src/main/java/Example.java')
|
108
113
|
|
109
|
-
|
114
|
+
#Ick! Try to get the sleeping enough on each platform that the tests reliably pass
|
115
|
+
sleep 1 if RUBY_VERSION >= '1.9' && !RUBY_PLATFORM[/java/]
|
116
|
+
sleep 5 if RUBY_VERSION >= '1.8.7' && !RUBY_PLATFORM[/java/]
|
117
|
+
sleep 1 if RUBY_PLATFORM[/java/]
|
110
118
|
|
111
119
|
foo.compile.run_count.should == 2
|
112
120
|
foo.test.compile.run_count.should == 2
|
data/spec/core/doc_spec.rb
CHANGED
@@ -124,7 +124,7 @@ describe Project, '#doc' do
|
|
124
124
|
compile.using(:javac)
|
125
125
|
doc.include included
|
126
126
|
end
|
127
|
-
project('foo').doc.source_files.should include(included)
|
127
|
+
project('foo').doc.source_files.should include(File.expand_path(included))
|
128
128
|
end
|
129
129
|
|
130
130
|
it 'should respond to exclude() and return self' do
|
data/spec/core/run_spec.rb
CHANGED
@@ -27,13 +27,20 @@ describe Project, :run do
|
|
27
27
|
project('foo').run.should be_kind_of(Run::RunTask)
|
28
28
|
end
|
29
29
|
|
30
|
-
it 'should include compile
|
30
|
+
it 'should include compile dependencies' do
|
31
31
|
define('foo') do
|
32
32
|
compile.using(:javac).with 'group:compile:jar:1.0'
|
33
33
|
test.compile.using(:javac).with 'group:test:jar:1.0'
|
34
34
|
end
|
35
35
|
project('foo').run.classpath.should include(artifact('group:compile:jar:1.0'))
|
36
|
-
|
36
|
+
end
|
37
|
+
|
38
|
+
it 'should not include test dependencies' do
|
39
|
+
define('foo') do
|
40
|
+
compile.using(:javac).with 'group:compile:jar:1.0'
|
41
|
+
test.compile.using(:javac).with 'group:test:jar:1.0'
|
42
|
+
end
|
43
|
+
project('foo').run.classpath.should_not include(artifact('group:test:jar:1.0'))
|
37
44
|
end
|
38
45
|
|
39
46
|
it 'should respond to using() and return self' do
|
@@ -63,11 +70,17 @@ describe Project, :run do
|
|
63
70
|
end
|
64
71
|
project('foo').run.runner.should be_a(Run::JavaRunner)
|
65
72
|
end
|
73
|
+
|
74
|
+
it "should run with the project resources" do
|
75
|
+
write 'src/main/java/Test.java', 'class Test {}'
|
76
|
+
write 'src/main/resources/test.properties', ''
|
77
|
+
define 'foo'
|
78
|
+
project('foo').run.classpath.should include project('foo').resources.target
|
79
|
+
end
|
66
80
|
|
67
|
-
it 'should depend on project''s compile
|
81
|
+
it 'should depend on project''s compile task' do
|
68
82
|
define 'foo'
|
69
83
|
project('foo').run.prerequisites.should include(project('foo').compile)
|
70
|
-
project('foo').run.prerequisites.should include(project('foo').test)
|
71
84
|
end
|
72
85
|
|
73
86
|
it 'should be local task' do
|
data/spec/core/test_spec.rb
CHANGED
@@ -747,9 +747,11 @@ describe Rake::Task, 'test' do
|
|
747
747
|
end
|
748
748
|
|
749
749
|
it 'should stop at first failure' do
|
750
|
-
define('
|
751
|
-
|
752
|
-
|
750
|
+
define('myproject') do
|
751
|
+
define('foo') { test { fail } }
|
752
|
+
define('bar') { test { fail } }
|
753
|
+
end
|
754
|
+
lambda { task('test').invoke rescue nil }.should run_tasks('myproject:bar:test').but_not('myproject:foo:test')
|
753
755
|
end
|
754
756
|
|
755
757
|
it 'should ignore failure if options.test is :all' do
|
data/spec/ide/idea_spec.rb
CHANGED
@@ -331,7 +331,7 @@ describe Buildr::IntellijIdea do
|
|
331
331
|
|
332
332
|
xml.RunnerSettings(:RunnerId => "Run")
|
333
333
|
xml.ConfigurationWrapper(:RunnerId => "Run")
|
334
|
-
xml.method
|
334
|
+
xml.tag! :method
|
335
335
|
end
|
336
336
|
ipr.add_configuration("Run Planner.html", "GWT.ConfigurationType", "GWT Configuration") do |xml|
|
337
337
|
xml.module(:name => project.iml.id)
|
@@ -341,7 +341,7 @@ describe Buildr::IntellijIdea do
|
|
341
341
|
|
342
342
|
xml.RunnerSettings(:RunnerId => "Run")
|
343
343
|
xml.ConfigurationWrapper(:RunnerId => "Run")
|
344
|
-
xml.method
|
344
|
+
xml.tag! :method
|
345
345
|
end
|
346
346
|
end
|
347
347
|
invoke_generate_task
|
data/spec/java/cobertura_spec.rb
CHANGED
@@ -15,6 +15,8 @@
|
|
15
15
|
|
16
16
|
|
17
17
|
require File.expand_path(File.join(File.dirname(__FILE__), 'test_coverage_helper'))
|
18
|
+
if ENV_JAVA['java.version'] < "1.7"
|
19
|
+
|
18
20
|
Sandbox.require_optional_extension 'buildr/java/cobertura'
|
19
21
|
artifacts(Buildr::Cobertura::dependencies).map(&:invoke)
|
20
22
|
|
@@ -110,3 +112,5 @@ JAVA
|
|
110
112
|
end
|
111
113
|
end
|
112
114
|
end
|
115
|
+
|
116
|
+
end
|
data/spec/java/emma_spec.rb
CHANGED
@@ -13,8 +13,9 @@
|
|
13
13
|
# License for the specific language governing permissions and limitations under
|
14
14
|
# the License.
|
15
15
|
|
16
|
-
|
17
16
|
require File.expand_path(File.join(File.dirname(__FILE__), 'test_coverage_helper'))
|
17
|
+
if ENV_JAVA['java.version'] < "1.7"
|
18
|
+
|
18
19
|
Sandbox.require_optional_extension 'buildr/java/emma'
|
19
20
|
artifacts(Buildr::Emma::dependencies).map(&:invoke)
|
20
21
|
|
@@ -119,3 +120,5 @@ describe Buildr::Emma do
|
|
119
120
|
end
|
120
121
|
end
|
121
122
|
end
|
123
|
+
|
124
|
+
end
|
data/spec/java/java_spec.rb
CHANGED
@@ -22,7 +22,7 @@ unless RUBY_PLATFORM =~ /java/
|
|
22
22
|
before do
|
23
23
|
@old_home, ENV['JAVA_HOME'] = ENV['JAVA_HOME'], nil
|
24
24
|
@old_env_java = Object.module_eval { remove_const :ENV_JAVA }
|
25
|
-
|
25
|
+
RbConfig::CONFIG.should_receive(:[]).with('host_os').and_return('darwin0.9')
|
26
26
|
end
|
27
27
|
|
28
28
|
it 'should point to default JVM' do
|
@@ -0,0 +1,125 @@
|
|
1
|
+
# Licensed to the Apache Software Foundation (ASF) under one or more
|
2
|
+
# contributor license agreements. See the NOTICE file distributed with this
|
3
|
+
# work for additional information regarding copyright ownership. The ASF
|
4
|
+
# licenses this file to you under the Apache License, Version 2.0 (the
|
5
|
+
# "License"); you may not use this file except in compliance with the License.
|
6
|
+
# You may obtain a copy of the License at
|
7
|
+
#
|
8
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
9
|
+
#
|
10
|
+
# Unless required by applicable law or agreed to in writing, software
|
11
|
+
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
12
|
+
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
13
|
+
# License for the specific language governing permissions and limitations under
|
14
|
+
# the License.
|
15
|
+
|
16
|
+
require File.expand_path(File.join(File.dirname(__FILE__), '..', 'spec_helpers'))
|
17
|
+
require 'fileutils'
|
18
|
+
|
19
|
+
describe Buildr::POM do
|
20
|
+
before do
|
21
|
+
repositories.remote = 'http://example.com'
|
22
|
+
@app = 'group:pomapp:jar:1.0'
|
23
|
+
write artifact(@app).pom.to_s, <<-XML
|
24
|
+
<project>
|
25
|
+
<artifactId>pomapp</artifactId>
|
26
|
+
<groupId>group</groupId>
|
27
|
+
<dependencies>
|
28
|
+
<dependency>
|
29
|
+
<artifactId>library</artifactId>
|
30
|
+
<groupId>org.example</groupId>
|
31
|
+
<version>1.1</version>
|
32
|
+
<scope>runtime</scope>
|
33
|
+
<exclusions>
|
34
|
+
<exclusion>
|
35
|
+
<groupId>javax.mail</groupId>
|
36
|
+
<artifactId>mail</artifactId>
|
37
|
+
</exclusion>
|
38
|
+
</exclusions>
|
39
|
+
</dependency>
|
40
|
+
</dependencies>
|
41
|
+
</project>
|
42
|
+
XML
|
43
|
+
@library = 'org.example:library:jar:1.1'
|
44
|
+
write artifact(@library).pom.to_s, <<-XML
|
45
|
+
<project>
|
46
|
+
<artifactId>pomapp</artifactId>
|
47
|
+
<groupId>group</groupId>
|
48
|
+
<dependencies>
|
49
|
+
<dependency>
|
50
|
+
<artifactId>mail</artifactId>
|
51
|
+
<groupId>javax.mail</groupId>
|
52
|
+
<version>1.0</version>
|
53
|
+
</dependency>
|
54
|
+
<dependency>
|
55
|
+
<artifactId>foo</artifactId>
|
56
|
+
<groupId>org.example</groupId>
|
57
|
+
<version>2.0</version>
|
58
|
+
</dependency>
|
59
|
+
</dependencies>
|
60
|
+
</project>
|
61
|
+
XML
|
62
|
+
end
|
63
|
+
|
64
|
+
it 'should respect exclusions when computing transitive dependencies' do
|
65
|
+
pom = POM.load(artifact(@app).pom)
|
66
|
+
specs = [ 'org.example:library:jar:1.1', 'org.example:foo:jar:2.0' ]
|
67
|
+
pom.dependencies.should eql(specs)
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
71
|
+
describe Buildr::POM do
|
72
|
+
before do
|
73
|
+
repositories.remote = 'http://example.com'
|
74
|
+
@app = 'group:app:jar:1.0'
|
75
|
+
write artifact(@app).pom.to_s, <<-XML
|
76
|
+
<project>
|
77
|
+
<properties>
|
78
|
+
<a.version>${b.version}</a.version>
|
79
|
+
<b.version>1.1</b.version>
|
80
|
+
</properties>
|
81
|
+
<artifactId>app</artifactId>
|
82
|
+
<groupId>group</groupId>
|
83
|
+
<dependencies>
|
84
|
+
<dependency>
|
85
|
+
<artifactId>library</artifactId>
|
86
|
+
<groupId>org.example</groupId>
|
87
|
+
<version>${a.version}</version>
|
88
|
+
<scope>runtime</scope>
|
89
|
+
<exclusions>
|
90
|
+
<exclusion>
|
91
|
+
<groupId>javax.mail</groupId>
|
92
|
+
<artifactId>mail</artifactId>
|
93
|
+
</exclusion>
|
94
|
+
</exclusions>
|
95
|
+
</dependency>
|
96
|
+
</dependencies>
|
97
|
+
</project>
|
98
|
+
XML
|
99
|
+
@library = 'org.example:library:jar:1.1'
|
100
|
+
write artifact(@library).pom.to_s, <<-XML
|
101
|
+
<project>
|
102
|
+
<artifactId>app</artifactId>
|
103
|
+
<groupId>group</groupId>
|
104
|
+
<dependencies>
|
105
|
+
<dependency>
|
106
|
+
<artifactId>mail</artifactId>
|
107
|
+
<groupId>javax.mail</groupId>
|
108
|
+
<version>1.0</version>
|
109
|
+
</dependency>
|
110
|
+
<dependency>
|
111
|
+
<artifactId>foo</artifactId>
|
112
|
+
<groupId>org.example</groupId>
|
113
|
+
<version>2.0</version>
|
114
|
+
</dependency>
|
115
|
+
</dependencies>
|
116
|
+
</project>
|
117
|
+
XML
|
118
|
+
end
|
119
|
+
|
120
|
+
it 'should respect exclusions when computing transitive dependencies when the pom includes properties' do
|
121
|
+
pom = POM.load(artifact(@app).pom)
|
122
|
+
specs = {"a.version"=>"1.1", "b.version"=>"1.1", "project.groupId"=>"group", "pom.groupId"=>"group", "groupId"=>"group", "project.artifactId"=>"app", "pom.artifactId"=>"app", "artifactId"=>"app"}
|
123
|
+
pom.properties.should eql(specs)
|
124
|
+
end
|
125
|
+
end
|