buildr 1.4.2-x86-mswin32 → 1.4.3-x86-mswin32
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 +29 -3
- data/LICENSE +0 -0
- data/NOTICE +0 -0
- data/_jbuildr +2 -0
- data/addon/buildr/antlr.rb +0 -0
- data/addon/buildr/cobertura.rb +0 -0
- data/addon/buildr/drb.rb +0 -0
- data/addon/buildr/emma.rb +0 -0
- data/addon/buildr/javacc.rb +0 -0
- data/addon/buildr/jdepend.rb +0 -0
- data/addon/buildr/jetty.rb +0 -0
- data/addon/buildr/jibx.rb +0 -0
- data/addon/buildr/nailgun.rb +0 -0
- data/addon/buildr/org/apache/buildr/BuildrNail.java +0 -0
- data/addon/buildr/org/apache/buildr/JettyWrapper.java +0 -0
- data/addon/buildr/xmlbeans.rb +0 -0
- data/buildr.gemspec +1 -1
- data/doc/_config.yml +0 -0
- data/doc/_layouts/preface.html +0 -0
- data/doc/css/syntax.css +0 -0
- data/doc/extending.textile +0 -0
- data/doc/images/asf-logo.gif +0 -0
- data/doc/images/buildr-hires.png +0 -0
- data/doc/images/buildr.png +0 -0
- data/doc/images/favicon.png +0 -0
- data/doc/images/growl-icon.tiff +0 -0
- data/doc/images/note.png +0 -0
- data/doc/images/project-structure.png +0 -0
- data/doc/images/tip.png +0 -0
- data/doc/images/zbuildr.png +0 -0
- data/doc/images/zbuildr.tif +0 -0
- data/doc/index.textile +14 -15
- data/doc/mailing_lists.textile +0 -0
- data/doc/more_stuff.textile +54 -1
- data/doc/releasing.textile +17 -16
- data/doc/settings_profiles.textile +13 -13
- data/lib/buildr.rb +1 -0
- data/lib/buildr/core.rb +1 -0
- data/lib/buildr/core/application.rb +8 -3
- data/lib/buildr/core/checks.rb +0 -0
- data/lib/buildr/core/doc.rb +15 -4
- data/lib/buildr/core/environment.rb +0 -0
- data/lib/buildr/core/generate.rb +0 -0
- data/lib/buildr/core/help.rb +0 -0
- data/lib/buildr/core/progressbar.rb +0 -0
- data/lib/buildr/core/run.rb +43 -0
- data/lib/buildr/core/util.rb +21 -3
- data/lib/buildr/ide.rb +0 -0
- data/lib/buildr/ide/idea.ipr.template +0 -0
- data/lib/buildr/ide/idea.rb +0 -0
- data/lib/buildr/ide/idea7x.ipr.template +0 -0
- data/lib/buildr/java/doc.rb +16 -0
- data/lib/buildr/java/packaging.rb +9 -4
- data/lib/buildr/packaging.rb +0 -0
- data/lib/buildr/packaging/archive.rb +4 -4
- data/lib/buildr/packaging/artifact.rb +16 -15
- data/lib/buildr/packaging/artifact_search.rb +0 -0
- data/lib/buildr/packaging/gems.rb +0 -0
- data/lib/buildr/packaging/package.rb +1 -1
- data/lib/buildr/packaging/version_requirement.rb +0 -0
- data/lib/buildr/packaging/ziptask.rb +6 -4
- data/lib/buildr/resources/buildr.icns +0 -0
- data/lib/buildr/run.rb +202 -0
- data/lib/buildr/scala/doc.rb +18 -0
- data/lib/buildr/scala/tests.rb +3 -0
- data/lib/buildr/shell.rb +1 -1
- data/lib/buildr/version.rb +1 -1
- data/rakelib/doc.rake +23 -5
- data/rakelib/release.rake +0 -0
- data/rakelib/setup.rake +2 -2
- data/rakelib/stage.rake +3 -3
- data/spec/addon/drb_spec.rb +0 -0
- data/spec/core/application_spec.rb +65 -27
- data/spec/core/doc_spec.rb +195 -0
- data/spec/core/run_spec.rb +92 -0
- data/spec/java/compiler_spec.rb +0 -194
- data/spec/java/doc_spec.rb +56 -0
- data/spec/java/packaging_spec.rb +30 -14
- data/spec/java/run_spec.rb +78 -0
- data/spec/packaging/archive_spec.rb +20 -5
- data/spec/packaging/artifact_spec.rb +23 -14
- data/spec/packaging/packaging_helper.rb +0 -0
- data/spec/scala/doc_spec.rb +68 -0
- metadata +151 -143
data/lib/buildr/scala/doc.rb
CHANGED
@@ -18,6 +18,20 @@ require 'buildr/scala/compiler' # ensure Scala dependencies are ready
|
|
18
18
|
|
19
19
|
module Buildr
|
20
20
|
module Doc
|
21
|
+
|
22
|
+
module ScaladocDefaults
|
23
|
+
include Extension
|
24
|
+
|
25
|
+
# Default scaladoc -doc-title to project's comment or name
|
26
|
+
after_define(:scaladoc => :doc) do |project|
|
27
|
+
if project.doc.engine? Scaladoc
|
28
|
+
options = project.doc.options
|
29
|
+
key = Scala.compatible_28? ? "doc-title".to_sym : :windowtitle
|
30
|
+
options[key] = (project.comment || project.name) unless options[key]
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
21
35
|
class Scaladoc < Base
|
22
36
|
specify :language => :scala, :source_ext => 'scala'
|
23
37
|
|
@@ -100,6 +114,10 @@ module Buildr
|
|
100
114
|
end
|
101
115
|
end
|
102
116
|
end
|
117
|
+
|
118
|
+
class Project
|
119
|
+
include ScaladocDefaults
|
120
|
+
end
|
103
121
|
end
|
104
122
|
|
105
123
|
Buildr::Doc.engines << Buildr::Doc::Scaladoc
|
data/lib/buildr/scala/tests.rb
CHANGED
@@ -112,6 +112,9 @@ module Buildr::Scala
|
|
112
112
|
reportFile = File.join(reportDir, "TEST-#{suite}.txt")
|
113
113
|
taskdef = Buildr.artifacts(self.class.dependencies).each(&:invoke).map(&:to_s)
|
114
114
|
Buildr.ant('scalatest') do |ant|
|
115
|
+
# ScalaTestTask was deprecated in 1.2, in favor of ScalaTestAntTask
|
116
|
+
classname = (ScalaTest.version =~ /1\.[01]/) ? \
|
117
|
+
'org.scalatest.tools.ScalaTestTask' : 'org.scalatest.tools.ScalaTestAntTask'
|
115
118
|
ant.taskdef :name=>'scalatest', :classname=>'org.scalatest.tools.ScalaTestTask',
|
116
119
|
:classpath=>taskdef.join(File::PATH_SEPARATOR)
|
117
120
|
ant.scalatest :runpath=>dependencies.join(File::PATH_SEPARATOR) do
|
data/lib/buildr/shell.rb
CHANGED
@@ -77,7 +77,7 @@ module Buildr
|
|
77
77
|
module JavaRebel
|
78
78
|
def rebel_home
|
79
79
|
unless @rebel_home
|
80
|
-
@rebel_home = ENV['REBEL_HOME']
|
80
|
+
@rebel_home = ENV['REBEL_HOME'] || ENV['JREBEL'] || ENV['JREBEL_HOME']
|
81
81
|
|
82
82
|
if @rebel_home and File.directory? @rebel_home
|
83
83
|
@rebel_home += File::SEPARATOR + 'jrebel.jar'
|
data/lib/buildr/version.rb
CHANGED
data/rakelib/doc.rake
CHANGED
@@ -25,6 +25,13 @@ end
|
|
25
25
|
|
26
26
|
require 'rake/rdoctask'
|
27
27
|
|
28
|
+
desc "Creates a symlink to rake's lib directory to support combined rdoc generation"
|
29
|
+
file "rake/lib" do
|
30
|
+
rake_path = $LOAD_PATH.find { |p| File.exist? File.join(p, "rake.rb") }
|
31
|
+
mkdir_p "rake"
|
32
|
+
File.symlink(rake_path, "rake/lib")
|
33
|
+
end
|
34
|
+
|
28
35
|
desc "Generate RDoc documentation in rdoc/"
|
29
36
|
Rake::RDocTask.new :rdoc do |rdoc|
|
30
37
|
rdoc.rdoc_dir = 'rdoc'
|
@@ -32,18 +39,28 @@ Rake::RDocTask.new :rdoc do |rdoc|
|
|
32
39
|
rdoc.options = spec.rdoc_options.clone
|
33
40
|
rdoc.rdoc_files.include('lib/**/*.rb')
|
34
41
|
rdoc.rdoc_files.include spec.extra_rdoc_files
|
35
|
-
end
|
36
42
|
|
43
|
+
# include rake source for better inheritance rdoc
|
44
|
+
rdoc.rdoc_files.include('rake/lib/**.rb')
|
45
|
+
end
|
46
|
+
task :rdoc => ["rake/lib"]
|
37
47
|
|
38
48
|
begin
|
39
49
|
require 'jekylltask'
|
40
50
|
module TocFilter
|
41
51
|
def toc(input)
|
42
|
-
|
43
|
-
|
52
|
+
output = "<ol class=\"toc\">"
|
53
|
+
input.scan(/<(h2)(?:>|\s+(.*?)>)([^<]*)<\/\1\s*>/mi).each do |entry|
|
54
|
+
id = (entry[1][/^id=(['"])(.*)\1$/, 2] rescue nil)
|
44
55
|
title = entry[2].gsub(/<(\w*).*?>(.*?)<\/\1\s*>/m, '\2').strip
|
45
|
-
|
46
|
-
|
56
|
+
if id
|
57
|
+
output << %{<li><a href="##{id}">#{title}</a></li>}
|
58
|
+
else
|
59
|
+
output << %{<li>#{title}</li>}
|
60
|
+
end
|
61
|
+
end
|
62
|
+
output << "</ol>"
|
63
|
+
output
|
47
64
|
end
|
48
65
|
end
|
49
66
|
Liquid::Template.register_filter(TocFilter)
|
@@ -58,6 +75,7 @@ rescue LoadError
|
|
58
75
|
puts "Buildr uses the jekyll gem to generate the Web site. You can install it by running rake doc:setup"
|
59
76
|
task 'doc:setup' do
|
60
77
|
install_gem 'jekyll', :version=>'0.6.2'
|
78
|
+
install_gem 'jekylltask', :version=>'1.0.2'
|
61
79
|
if `pygmentize -V`.empty?
|
62
80
|
args = %w{easy_install Pygments}
|
63
81
|
args.unshift 'sudo' unless Config::CONFIG['host_os'] =~ /windows/
|
data/rakelib/release.rake
CHANGED
File without changes
|
data/rakelib/setup.rake
CHANGED
@@ -36,7 +36,7 @@ def install_gem(name, options = {})
|
|
36
36
|
args << 'sudo' << 'env' << "JAVA_HOME=#{ENV['JAVA_HOME']}" if sudo_needed? and RAKE_SUDO
|
37
37
|
args << rb_bin << '-S' << 'gem' << 'install' << name
|
38
38
|
|
39
|
-
if (
|
39
|
+
if (dep.respond_to? :requirement)
|
40
40
|
args << '--version' << dep.requirement.to_s
|
41
41
|
else
|
42
42
|
# Dependency.version_requirements deprecated in rubygems 1.3.6
|
@@ -56,7 +56,7 @@ desc "If you're building from sources, run this task first to setup the necessar
|
|
56
56
|
task :setup do
|
57
57
|
missing = spec.dependencies.select { |dep| Gem::SourceIndex.from_installed_gems.search(dep).empty? }
|
58
58
|
missing.each do |dep|
|
59
|
-
if (
|
59
|
+
if (dep.respond_to? :requirement)
|
60
60
|
install_gem dep.name, :version=>dep.requirement
|
61
61
|
else
|
62
62
|
# Dependency.version_requirements deprecated in rubygems 1.3.6
|
data/rakelib/stage.rake
CHANGED
@@ -30,7 +30,7 @@ task :prepare do |task, args|
|
|
30
30
|
lambda do
|
31
31
|
puts "Checking there are no local changes ... "
|
32
32
|
svn = `svn status`
|
33
|
-
fail "Cannot release unless all local changes are in SVN:\n#{svn}" unless svn.empty?
|
33
|
+
#fail "Cannot release unless all local changes are in SVN:\n#{svn}" unless svn.empty?
|
34
34
|
git = `git status`
|
35
35
|
fail "Cannot release unless all local changes are in Git:\n#{git}" if git[/^#\t/]
|
36
36
|
puts "[X] There are no local changes, everything is in source control"
|
@@ -41,7 +41,7 @@ task :prepare do |task, args|
|
|
41
41
|
puts "Checking that CHANGELOG indicates most recent version and today's date ... "
|
42
42
|
expecting = "#{spec.version} (#{Time.now.strftime('%Y-%m-%d')})"
|
43
43
|
header = File.readlines('CHANGELOG').first.chomp
|
44
|
-
fail "Expecting CHANGELOG to start with #{expecting}, but found #{header} instead" unless expecting == header
|
44
|
+
#fail "Expecting CHANGELOG to start with #{expecting}, but found #{header} instead" unless expecting == header
|
45
45
|
puts "[x] CHANGELOG indicates most recent version and today's date"
|
46
46
|
end.call
|
47
47
|
|
@@ -50,7 +50,7 @@ task :prepare do |task, args|
|
|
50
50
|
args.gpg or fail "Please run with gpg=<argument for gpg --local-user>"
|
51
51
|
gpg_ok = `gpg2 --list-keys #{args.gpg}`
|
52
52
|
if !$?.success?
|
53
|
-
gpg_ok = `gpg --list-keys #{args.gpg}`
|
53
|
+
gpg_ok = `gpg --list-keys #{args.gpg}`
|
54
54
|
gpg_cmd = 'gpg'
|
55
55
|
end
|
56
56
|
fail "No GPG user #{args.gpg}" if gpg_ok.empty?
|
data/spec/addon/drb_spec.rb
CHANGED
File without changes
|
@@ -96,6 +96,30 @@ describe Buildr::Application do
|
|
96
96
|
ARGV.push('--version')
|
97
97
|
test_exit(0) { Buildr.application.send(:handle_options) }.should show(/Buildr #{Buildr::VERSION}.*/)
|
98
98
|
end
|
99
|
+
|
100
|
+
it 'should enable tracing with --trace' do
|
101
|
+
ARGV.push('--trace')
|
102
|
+
Buildr.application.send(:handle_options)
|
103
|
+
Buildr.application.options.trace.should == true
|
104
|
+
end
|
105
|
+
|
106
|
+
it 'should enable tracing of [:foo, :bar] categories with --trace=foo,bar' do
|
107
|
+
ARGV.push('--trace=foo,bar')
|
108
|
+
Buildr.application.send(:handle_options)
|
109
|
+
Buildr.application.options.trace.should == true
|
110
|
+
Buildr.application.options.trace_categories.should == [:foo, :bar]
|
111
|
+
trace?(:foo).should == true
|
112
|
+
trace?(:not).should == false
|
113
|
+
end
|
114
|
+
|
115
|
+
it 'should enable tracing for all categories with --trace=all' do
|
116
|
+
ARGV.push('--trace=all')
|
117
|
+
Buildr.application.send(:handle_options)
|
118
|
+
Buildr.application.options.trace.should == true
|
119
|
+
Buildr.application.options.trace_all.should == true
|
120
|
+
trace?(:foo).should == true
|
121
|
+
end
|
122
|
+
|
99
123
|
end
|
100
124
|
|
101
125
|
describe 'gems' do
|
@@ -146,7 +170,7 @@ describe Buildr::Application do
|
|
146
170
|
public :load_gems
|
147
171
|
end
|
148
172
|
@spec = Gem::Specification.new do |spec|
|
149
|
-
spec.name = 'foo'
|
173
|
+
spec.name = 'buildr-foo'
|
150
174
|
spec.version = '1.2'
|
151
175
|
end
|
152
176
|
$stdout.stub!(:isatty).and_return(true)
|
@@ -163,45 +187,45 @@ describe Buildr::Application do
|
|
163
187
|
end
|
164
188
|
|
165
189
|
it 'should fail if required gem not found in remote repository' do
|
166
|
-
Buildr.application.should_receive(:listed_gems).and_return([Gem::Dependency.new('foo', '>=1.1')])
|
190
|
+
Buildr.application.should_receive(:listed_gems).and_return([Gem::Dependency.new('buildr-foo', '>=1.1')])
|
167
191
|
Gem.source_index.should_receive(:search).at_least(:once).and_return([])
|
168
192
|
lambda { Buildr.application.load_gems }.should raise_error(LoadError, /cannot be found/i)
|
169
193
|
end
|
170
194
|
|
171
195
|
it 'should fail if need to install gem and not running in interactive mode' do
|
172
|
-
Buildr.application.should_receive(:listed_gems).and_return([Gem::Dependency.new('foo', '>=1.1')])
|
196
|
+
Buildr.application.should_receive(:listed_gems).and_return([Gem::Dependency.new('buildr-foo', '>=1.1')])
|
173
197
|
Gem.source_index.should_receive(:search).and_return([@spec])
|
174
198
|
$stdout.should_receive(:isatty).and_return(false)
|
175
199
|
lambda { Buildr.application.load_gems }.should raise_error(LoadError, /this build requires the gems/i)
|
176
200
|
end
|
177
201
|
|
178
202
|
it 'should ask permission before installing required gems' do
|
179
|
-
Buildr.application.should_receive(:listed_gems).and_return([Gem::Dependency.new('foo', '>=1.1')])
|
203
|
+
Buildr.application.should_receive(:listed_gems).and_return([Gem::Dependency.new('buildr-foo', '>=1.1')])
|
180
204
|
Gem.source_index.should_receive(:search).and_return([@spec])
|
181
205
|
$terminal.should_receive(:agree).with(/install/, true)
|
182
206
|
lambda { Buildr.application.load_gems }.should raise_error
|
183
207
|
end
|
184
208
|
|
185
209
|
it 'should fail if permission not granted to install gem' do
|
186
|
-
Buildr.application.should_receive(:listed_gems).and_return([Gem::Dependency.new('foo', '>=1.1')])
|
210
|
+
Buildr.application.should_receive(:listed_gems).and_return([Gem::Dependency.new('buildr-foo', '>=1.1')])
|
187
211
|
Gem.source_index.should_receive(:search).and_return([@spec])
|
188
212
|
$terminal.should_receive(:agree).and_return(false)
|
189
213
|
lambda { Buildr.application.load_gems }.should raise_error(LoadError, /cannot build without/i)
|
190
214
|
end
|
191
215
|
|
192
216
|
it 'should install gem if permission granted' do
|
193
|
-
Buildr.application.should_receive(:listed_gems).and_return([Gem::Dependency.new('foo', '>=1.1')])
|
217
|
+
Buildr.application.should_receive(:listed_gems).and_return([Gem::Dependency.new('buildr-foo', '>=1.1')])
|
194
218
|
Gem.source_index.should_receive(:search).and_return([@spec])
|
195
219
|
$terminal.should_receive(:agree).and_return(true)
|
196
220
|
Util.should_receive(:ruby) do |*args|
|
197
|
-
args.should include('install', 'foo', '-v', '1.2')
|
221
|
+
args.should include('install', 'buildr-foo', '-v', '1.2')
|
198
222
|
end
|
199
223
|
Buildr.application.should_receive(:gem).and_return(false)
|
200
224
|
Buildr.application.load_gems
|
201
225
|
end
|
202
226
|
|
203
227
|
it 'should reload gem cache after installing required gems' do
|
204
|
-
Buildr.application.should_receive(:listed_gems).and_return([Gem::Dependency.new('foo', '>=1.1')])
|
228
|
+
Buildr.application.should_receive(:listed_gems).and_return([Gem::Dependency.new('buildr-foo', '>=1.1')])
|
205
229
|
Gem.source_index.should_receive(:search).and_return([@spec])
|
206
230
|
$terminal.should_receive(:agree).and_return(true)
|
207
231
|
Util.should_receive(:ruby)
|
@@ -217,37 +241,41 @@ describe Buildr::Application do
|
|
217
241
|
end
|
218
242
|
|
219
243
|
it 'should load newly installed gems' do
|
220
|
-
Buildr.application.should_receive(:listed_gems).and_return([Gem::Dependency.new('foo', '>=1.1')])
|
244
|
+
Buildr.application.should_receive(:listed_gems).and_return([Gem::Dependency.new('buildr-foo', '>=1.1')])
|
221
245
|
Gem.source_index.should_receive(:search).and_return([@spec])
|
222
246
|
$terminal.should_receive(:agree).and_return(true)
|
223
247
|
Util.should_receive(:ruby)
|
224
|
-
Buildr.application.should_receive(:gem).with('foo', @spec.version.to_s)
|
248
|
+
Buildr.application.should_receive(:gem).with('buildr-foo', @spec.version.to_s)
|
225
249
|
Buildr.application.load_gems
|
226
250
|
end
|
227
251
|
|
228
252
|
it 'should default to >=0 version requirement if not specified' do
|
229
|
-
write 'build.yaml', 'gems: foo'
|
230
|
-
|
231
|
-
Gem.source_index.should_receive(:search).with(Gem::Dependency.new('foo', '>=0')).and_return([])
|
232
|
-
lambda { Buildr.application.load_gems }.should raise_error
|
253
|
+
write 'build.yaml', 'gems: buildr-foo'
|
254
|
+
should_attempt_to_load_dependency(Gem::Dependency.new('buildr-foo', '>= 0'))
|
233
255
|
end
|
234
256
|
|
235
257
|
it 'should parse exact version requirement' do
|
236
|
-
write 'build.yaml', 'gems: foo 2.5'
|
237
|
-
|
238
|
-
lambda { Buildr.application.load_gems }.should raise_error
|
258
|
+
write 'build.yaml', 'gems: buildr-foo 2.5'
|
259
|
+
should_attempt_to_load_dependency(Gem::Dependency.new('buildr-foo', '=2.5'))
|
239
260
|
end
|
240
261
|
|
241
262
|
it 'should parse range version requirement' do
|
242
|
-
write 'build.yaml', 'gems: foo ~>2.3'
|
243
|
-
|
244
|
-
lambda { Buildr.application.load_gems }.should raise_error
|
263
|
+
write 'build.yaml', 'gems: buildr-foo ~>2.3'
|
264
|
+
should_attempt_to_load_dependency(Gem::Dependency.new('buildr-foo', '~>2.3'))
|
245
265
|
end
|
246
266
|
|
247
267
|
it 'should parse multiple version requirements' do
|
248
|
-
write 'build.yaml', 'gems: foo >=2.0 !=2.1'
|
249
|
-
|
250
|
-
|
268
|
+
write 'build.yaml', 'gems: buildr-foo >=2.0 !=2.1'
|
269
|
+
should_attempt_to_load_dependency(Gem::Dependency.new('buildr-foo', ['>=2.0', '!=2.1']))
|
270
|
+
end
|
271
|
+
|
272
|
+
def should_attempt_to_load_dependency(dep)
|
273
|
+
Gem.source_index.should_receive(:search).with(dep).and_return([])
|
274
|
+
lambda { Buildr.application.load_gems }.should raise_missing_gem_error(dep)
|
275
|
+
end
|
276
|
+
|
277
|
+
def raise_missing_gem_error(dep)
|
278
|
+
raise_error(Gem::LoadError, /Build requires the gems #{dep.name} #{dep.requirement}, which cannot be found in local or remote repository./)
|
251
279
|
end
|
252
280
|
end
|
253
281
|
|
@@ -537,13 +565,23 @@ describe Buildr, 'settings' do
|
|
537
565
|
|
538
566
|
it 'should have the same timestamp as build.rb in home dir if the latter is newer (until version 1.6)' do
|
539
567
|
Buildr::VERSION.should < '1.6'
|
540
|
-
|
541
|
-
Buildr.application.send :load_tasks
|
542
|
-
Buildr.application.buildfile.timestamp.should be_close(@buildfile_time + 5, 1)
|
568
|
+
buildfile_should_have_same_timestamp_as 'home/buildr.rb'
|
543
569
|
end
|
544
570
|
|
545
571
|
it 'should have the same timestamp as build.rb in home dir if the latter is newer' do
|
546
|
-
|
572
|
+
buildfile_should_have_same_timestamp_as 'home/.buildr/buildr.rb'
|
573
|
+
end
|
574
|
+
|
575
|
+
it 'should have the same timestamp as .buildr.rb in buildfile dir if the latter is newer' do
|
576
|
+
buildfile_should_have_same_timestamp_as '.buildr.rb'
|
577
|
+
end
|
578
|
+
|
579
|
+
it 'should have the same timestamp as _buildr.rb in buildfile dir if the latter is newer' do
|
580
|
+
buildfile_should_have_same_timestamp_as '_buildr.rb'
|
581
|
+
end
|
582
|
+
|
583
|
+
def buildfile_should_have_same_timestamp_as(file)
|
584
|
+
write file; File.utime(@buildfile_time + 5, @buildfile_time + 5, file)
|
547
585
|
Buildr.application.send :load_tasks
|
548
586
|
Buildr.application.buildfile.timestamp.should be_close(@buildfile_time + 5, 1)
|
549
587
|
end
|
@@ -0,0 +1,195 @@
|
|
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
|
+
|
17
|
+
require File.expand_path(File.join(File.dirname(__FILE__), '..', 'spec_helpers'))
|
18
|
+
|
19
|
+
|
20
|
+
describe Project, '#doc' do
|
21
|
+
def sources
|
22
|
+
@sources ||= (1..3).map { |i| "Test#{i}" }.
|
23
|
+
each { |name| write "src/main/java/foo/#{name}.java", "package foo; public class #{name}{}" }.
|
24
|
+
map { |name| "src/main/java/foo/#{name}.java" }
|
25
|
+
end
|
26
|
+
|
27
|
+
it 'should return the project\'s Javadoc task' do
|
28
|
+
define('foo') { compile.using(:javac) }
|
29
|
+
project('foo').doc.name.should eql('foo:doc')
|
30
|
+
end
|
31
|
+
|
32
|
+
it 'should return a DocTask' do
|
33
|
+
define('foo') { compile.using(:javac) }
|
34
|
+
project('foo').doc.should be_kind_of(Doc::DocTask)
|
35
|
+
end
|
36
|
+
|
37
|
+
it 'should set target directory to target/doc' do
|
38
|
+
define 'foo' do
|
39
|
+
compile.using(:javac)
|
40
|
+
doc.target.to_s.should point_to_path('target/doc')
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
it 'should create file task for target directory' do
|
45
|
+
define 'foo' do
|
46
|
+
compile.using(:javac)
|
47
|
+
doc.should_receive(:invoke_prerequisites)
|
48
|
+
end
|
49
|
+
project('foo').file('target/doc').invoke
|
50
|
+
end
|
51
|
+
|
52
|
+
it 'should respond to into() and return self' do
|
53
|
+
define 'foo' do
|
54
|
+
compile.using(:javac)
|
55
|
+
doc.into('docs').should be(doc)
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
it 'should respond to into() and change target directory' do
|
60
|
+
define 'foo' do
|
61
|
+
compile.using(:javac)
|
62
|
+
doc.into('docs')
|
63
|
+
doc.should_receive(:invoke_prerequisites)
|
64
|
+
end
|
65
|
+
file('docs').invoke
|
66
|
+
end
|
67
|
+
|
68
|
+
it 'should respond to from() and return self' do
|
69
|
+
task = nil
|
70
|
+
define('foo') do
|
71
|
+
compile.using(:javac)
|
72
|
+
task = doc.from('srcs')
|
73
|
+
end
|
74
|
+
task.should be(project('foo').doc)
|
75
|
+
end
|
76
|
+
|
77
|
+
it 'should respond to from() and add sources' do
|
78
|
+
define 'foo' do
|
79
|
+
compile.using(:javac)
|
80
|
+
doc.from('srcs').should be(doc)
|
81
|
+
end
|
82
|
+
end
|
83
|
+
|
84
|
+
it 'should respond to from() and add file task' do
|
85
|
+
define 'foo' do
|
86
|
+
compile.using(:javac)
|
87
|
+
doc.from('srcs').should be(doc)
|
88
|
+
end
|
89
|
+
project('foo').doc.source_files.first.should point_to_path('srcs')
|
90
|
+
end
|
91
|
+
|
92
|
+
it 'should respond to from() and add project\'s sources and dependencies' do
|
93
|
+
write 'bar/src/main/java/Test.java'
|
94
|
+
define 'foo' do
|
95
|
+
compile.using(:javac)
|
96
|
+
define('bar') { compile.using(:javac).with 'group:id:jar:1.0' }
|
97
|
+
doc.from project('foo:bar')
|
98
|
+
end
|
99
|
+
project('foo').doc.source_files.first.should point_to_path('bar/src/main/java/Test.java')
|
100
|
+
project('foo').doc.classpath.map(&:to_spec).should include('group:id:jar:1.0')
|
101
|
+
end
|
102
|
+
|
103
|
+
it 'should generate docs from project' do
|
104
|
+
sources
|
105
|
+
define('foo') { compile.using(:javac) }
|
106
|
+
project('foo').doc.source_files.sort.should == sources.sort.map { |f| File.expand_path(f) }
|
107
|
+
end
|
108
|
+
|
109
|
+
it 'should include compile dependencies' do
|
110
|
+
define('foo') { compile.using(:javac).with 'group:id:jar:1.0' }
|
111
|
+
project('foo').doc.classpath.map(&:to_spec).should include('group:id:jar:1.0')
|
112
|
+
end
|
113
|
+
|
114
|
+
it 'should respond to include() and return self' do
|
115
|
+
define 'foo' do
|
116
|
+
compile.using(:javac)
|
117
|
+
doc.include('srcs').should be(doc)
|
118
|
+
end
|
119
|
+
end
|
120
|
+
|
121
|
+
it 'should respond to include() and add files' do
|
122
|
+
included = sources.first
|
123
|
+
define 'foo' do
|
124
|
+
compile.using(:javac)
|
125
|
+
doc.include included
|
126
|
+
end
|
127
|
+
project('foo').doc.source_files.should include(included)
|
128
|
+
end
|
129
|
+
|
130
|
+
it 'should respond to exclude() and return self' do
|
131
|
+
define 'foo' do
|
132
|
+
compile.using(:javac)
|
133
|
+
doc.exclude('srcs').should be(doc)
|
134
|
+
end
|
135
|
+
end
|
136
|
+
|
137
|
+
it 'should respond to exclude() and ignore files' do
|
138
|
+
excluded = sources.first
|
139
|
+
define 'foo' do
|
140
|
+
compile.using(:javac)
|
141
|
+
doc.exclude excluded
|
142
|
+
end
|
143
|
+
sources
|
144
|
+
project('foo').doc.source_files.sort.should == sources[1..-1].map { |f| File.expand_path(f) }
|
145
|
+
end
|
146
|
+
|
147
|
+
it 'should respond to using() and return self' do
|
148
|
+
define 'foo' do
|
149
|
+
compile.using(:javac)
|
150
|
+
doc.using(:foo=>'Fooing').should be(doc)
|
151
|
+
end
|
152
|
+
end
|
153
|
+
|
154
|
+
it 'should respond to using() and accept options' do
|
155
|
+
define 'foo' do
|
156
|
+
compile.using(:javac)
|
157
|
+
doc.using :foo=>'Fooing'
|
158
|
+
end
|
159
|
+
project('foo').doc.options[:foo].should eql('Fooing')
|
160
|
+
end
|
161
|
+
|
162
|
+
it 'should produce documentation' do
|
163
|
+
sources
|
164
|
+
define('foo') { compile.using(:javac) }
|
165
|
+
project('foo').doc.invoke
|
166
|
+
(1..3).map { |i| "target/doc/foo/Test#{i}.html" }.each { |f| file(f).should exist }
|
167
|
+
end
|
168
|
+
|
169
|
+
it 'should fail on error' do
|
170
|
+
write 'Test.java', 'class Test {}'
|
171
|
+
define 'foo' do
|
172
|
+
compile.using(:javac)
|
173
|
+
doc.include 'Test.java'
|
174
|
+
end
|
175
|
+
lambda { project('foo').doc.invoke }.should raise_error(RuntimeError, /Failed to generate Javadocs/)
|
176
|
+
end
|
177
|
+
|
178
|
+
it 'should be local task' do
|
179
|
+
define 'foo' do
|
180
|
+
define('bar') { compile.using(:javac) }
|
181
|
+
end
|
182
|
+
project('foo:bar').doc.should_receive(:invoke_prerequisites)
|
183
|
+
in_original_dir(project('foo:bar').base_dir) { task('doc').invoke }
|
184
|
+
end
|
185
|
+
|
186
|
+
it 'should not recurse' do
|
187
|
+
define 'foo' do
|
188
|
+
compile.using(:javac)
|
189
|
+
define('bar') { compile.using(:javac) }
|
190
|
+
end
|
191
|
+
project('foo:bar').doc.should_not_receive(:invoke_prerequisites)
|
192
|
+
project('foo').doc.invoke
|
193
|
+
end
|
194
|
+
end
|
195
|
+
|