buildr 1.3.5 → 1.4.0

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.
Files changed (151) hide show
  1. data/CHANGELOG +153 -8
  2. data/README.rdoc +1 -1
  3. data/addon/buildr/antlr.rb +5 -5
  4. data/addon/buildr/drb.rb +18 -18
  5. data/addon/buildr/hibernate.rb +18 -14
  6. data/addon/buildr/javacc.rb +4 -4
  7. data/addon/buildr/jetty.rb +5 -5
  8. data/addon/buildr/nailgun.rb +23 -23
  9. data/addon/buildr/openjpa.rb +1 -1
  10. data/addon/buildr/org/apache/buildr/BuildrNail$Main.class +0 -0
  11. data/addon/buildr/org/apache/buildr/BuildrNail.class +0 -0
  12. data/addon/buildr/org/apache/buildr/JettyWrapper$1.class +0 -0
  13. data/addon/buildr/org/apache/buildr/JettyWrapper$BuildrHandler.class +0 -0
  14. data/addon/buildr/org/apache/buildr/JettyWrapper.class +0 -0
  15. data/addon/buildr/protobuf.rb +75 -0
  16. data/addon/buildr/xmlbeans.rb +5 -5
  17. data/buildr.buildfile +2 -2
  18. data/buildr.gemspec +8 -7
  19. data/doc/_layouts/default.html +2 -2
  20. data/doc/artifacts.textile +4 -4
  21. data/doc/building.textile +35 -3
  22. data/doc/contributing.textile +5 -0
  23. data/doc/download.textile +16 -5
  24. data/doc/extending.textile +38 -12
  25. data/doc/installing.textile +6 -5
  26. data/doc/languages.textile +182 -42
  27. data/doc/more_stuff.textile +2 -2
  28. data/doc/packaging.textile +14 -15
  29. data/doc/projects.textile +7 -2
  30. data/doc/quick_start.textile +4 -4
  31. data/doc/scripts/buildr-git.rb +63 -63
  32. data/doc/scripts/gitflow.rb +21 -21
  33. data/doc/settings_profiles.textile +9 -2
  34. data/doc/testing.textile +16 -5
  35. data/etc/KEYS +38 -0
  36. data/lib/buildr/core/application.rb +33 -27
  37. data/lib/buildr/core/build.rb +41 -28
  38. data/lib/buildr/core/cc.rb +172 -0
  39. data/lib/buildr/core/checks.rb +1 -1
  40. data/lib/buildr/core/common.rb +7 -6
  41. data/lib/buildr/core/compile.rb +7 -8
  42. data/lib/buildr/core/doc.rb +263 -0
  43. data/lib/buildr/core/environment.rb +6 -6
  44. data/lib/buildr/core/filter.rb +77 -35
  45. data/lib/buildr/core/generate.rb +7 -7
  46. data/lib/buildr/core/help.rb +1 -1
  47. data/lib/buildr/core/osx.rb +6 -6
  48. data/lib/buildr/core/progressbar.rb +4 -4
  49. data/lib/buildr/core/project.rb +144 -36
  50. data/lib/buildr/core/shell.rb +34 -34
  51. data/lib/buildr/core/test.rb +89 -20
  52. data/lib/buildr/core/transports.rb +8 -7
  53. data/lib/buildr/core/util.rb +77 -23
  54. data/lib/buildr/core.rb +1 -0
  55. data/lib/buildr/groovy/bdd.rb +5 -5
  56. data/lib/buildr/groovy/compiler.rb +19 -15
  57. data/lib/buildr/groovy/shell.rb +6 -6
  58. data/lib/buildr/ide/eclipse/java.rb +3 -3
  59. data/lib/buildr/ide/eclipse/plugin.rb +8 -5
  60. data/lib/buildr/ide/eclipse/scala.rb +4 -2
  61. data/lib/buildr/ide/eclipse.rb +148 -75
  62. data/lib/buildr/ide/idea.rb +2 -2
  63. data/lib/buildr/ide/idea7x.rb +23 -4
  64. data/lib/buildr/java/ant.rb +4 -4
  65. data/lib/buildr/java/bdd.rb +51 -54
  66. data/lib/buildr/java/cobertura.rb +57 -35
  67. data/lib/buildr/java/commands.rb +14 -5
  68. data/lib/buildr/java/compiler.rb +3 -217
  69. data/lib/buildr/java/deprecated.rb +4 -4
  70. data/lib/buildr/java/doc.rb +70 -0
  71. data/lib/buildr/java/emma.rb +22 -22
  72. data/lib/buildr/java/jruby.rb +4 -4
  73. data/lib/buildr/java/jtestr_runner.rb.erb +27 -25
  74. data/lib/buildr/java/org/apache/buildr/JavaTestFilter.class +0 -0
  75. data/lib/buildr/java/org/apache/buildr/JavaTestFilter.java +8 -3
  76. data/lib/buildr/java/packaging.rb +30 -29
  77. data/lib/buildr/java/pom.rb +4 -4
  78. data/lib/buildr/java/rjb.rb +6 -6
  79. data/lib/buildr/java/test_result.rb +61 -85
  80. data/lib/buildr/java/tests.rb +44 -27
  81. data/lib/buildr/java/version_requirement.rb +8 -8
  82. data/lib/buildr/java.rb +1 -0
  83. data/lib/buildr/packaging/archive.rb +55 -22
  84. data/lib/buildr/packaging/artifact.rb +75 -36
  85. data/lib/buildr/packaging/artifact_namespace.rb +90 -78
  86. data/lib/buildr/packaging/artifact_search.rb +5 -5
  87. data/lib/buildr/packaging/gems.rb +11 -7
  88. data/lib/buildr/packaging/package.rb +10 -7
  89. data/lib/buildr/packaging/tar.rb +14 -14
  90. data/lib/buildr/packaging/version_requirement.rb +30 -10
  91. data/lib/buildr/packaging/ziptask.rb +51 -13
  92. data/lib/buildr/scala/bdd.rb +25 -20
  93. data/lib/buildr/scala/compiler.rb +87 -40
  94. data/lib/buildr/scala/doc.rb +106 -0
  95. data/lib/buildr/scala/org/apache/buildr/SpecsSingletonRunner.class +0 -0
  96. data/lib/buildr/scala/org/apache/buildr/SpecsSingletonRunner.java +57 -0
  97. data/lib/buildr/scala/shell.rb +14 -9
  98. data/lib/buildr/scala/tests.rb +33 -26
  99. data/lib/buildr/scala.rb +1 -0
  100. data/lib/buildr/shell.rb +33 -33
  101. data/lib/buildr.rb +1 -1
  102. data/rakelib/all-in-one.rake +113 -0
  103. data/rakelib/checks.rake +1 -1
  104. data/rakelib/doc.rake +7 -0
  105. data/rakelib/package.rake +1 -1
  106. data/rakelib/release.rake +9 -6
  107. data/rakelib/rspec.rake +26 -7
  108. data/rakelib/setup.rake +15 -3
  109. data/rakelib/stage.rake +18 -11
  110. data/spec/addon/drb_spec.rb +25 -25
  111. data/spec/core/application_spec.rb +111 -21
  112. data/spec/core/build_spec.rb +16 -15
  113. data/spec/core/cc_spec.rb +174 -0
  114. data/spec/core/checks_spec.rb +34 -34
  115. data/spec/core/common_spec.rb +51 -5
  116. data/spec/core/compile_spec.rb +89 -14
  117. data/spec/core/extension_spec.rb +127 -19
  118. data/spec/core/generate_spec.rb +2 -2
  119. data/spec/core/project_spec.rb +10 -10
  120. data/spec/core/test_spec.rb +144 -35
  121. data/spec/core/transport_spec.rb +8 -8
  122. data/spec/core/util_spec.rb +63 -5
  123. data/spec/groovy/bdd_spec.rb +5 -5
  124. data/spec/groovy/compiler_spec.rb +29 -18
  125. data/spec/ide/eclipse_spec.rb +185 -9
  126. data/spec/ide/idea7x_spec.rb +22 -10
  127. data/spec/java/ant_spec.rb +9 -5
  128. data/spec/java/bdd_spec.rb +29 -37
  129. data/spec/java/cobertura_spec.rb +12 -12
  130. data/spec/java/commands_spec.rb +34 -0
  131. data/spec/java/compiler_spec.rb +53 -53
  132. data/spec/java/emma_spec.rb +11 -11
  133. data/spec/java/java_spec.rb +10 -10
  134. data/spec/java/packaging_spec.rb +67 -20
  135. data/spec/java/test_coverage_helper.rb +18 -18
  136. data/spec/java/tests_spec.rb +13 -9
  137. data/spec/packaging/archive_spec.rb +187 -20
  138. data/spec/packaging/artifact_namespace_spec.rb +172 -83
  139. data/spec/packaging/artifact_spec.rb +83 -18
  140. data/spec/packaging/packaging_spec.rb +41 -14
  141. data/spec/sandbox.rb +23 -12
  142. data/spec/scala/bdd_spec.rb +13 -8
  143. data/spec/scala/compiler_spec.rb +18 -13
  144. data/spec/scala/scala.rb +3 -3
  145. data/spec/scala/tests_spec.rb +46 -24
  146. data/spec/spec_helpers.rb +28 -10
  147. data/spec/version_requirement_spec.rb +25 -11
  148. metadata +149 -133
  149. data/lib/buildr/scala/org/apache/buildr/SpecsSingletonRunner$.class +0 -0
  150. data/lib/buildr/scala/org/apache/buildr/SpecsSingletonRunner.scala +0 -35
  151. data/rakelib/stage.rake~ +0 -213
@@ -18,17 +18,31 @@ require File.join(File.dirname(__FILE__), '../spec_helpers')
18
18
 
19
19
 
20
20
  describe Extension do
21
-
21
+
22
+ before do
23
+ @saved_modules = Project.class_eval { @extension_modules }.dup
24
+ @saved_callbacks = Project.class_eval { @global_callbacks }.dup
25
+ end
26
+
27
+ after do
28
+ modules = @saved_modules
29
+ callbacks = @saved_callbacks
30
+ Project.class_eval do
31
+ @global_callbacks = callbacks
32
+ @extension_modules = modules
33
+ end
34
+ end
35
+
22
36
  it 'should call Extension.first_time during include' do
23
37
  TestExtension.should_receive(:first_time_called).once
24
38
  class Buildr::Project
25
39
  include TestExtension
26
40
  end
27
41
  end
28
-
42
+
29
43
  it 'should call before_define and after_define in order when project is defined' do
30
44
  begin
31
- TestExtension.initialized do |extension|
45
+ TestExtension.callback do |extension|
32
46
  extension.should_receive(:before_define_called).once.ordered
33
47
  extension.should_receive(:after_define_called).once.ordered
34
48
  end
@@ -37,14 +51,14 @@ describe Extension do
37
51
  end
38
52
  define('foo')
39
53
  ensure
40
- TestExtension.initialized { |ignore| }
54
+ TestExtension.callback { |ignore| }
41
55
  end
42
56
  end
43
57
 
44
58
  it 'should call before_define and after_define for each project defined' do
45
59
  begin
46
60
  extensions = 0
47
- TestExtension.initialized do |extension|
61
+ TestExtension.callback do |extension|
48
62
  extensions += 1
49
63
  extension.should_receive(:before_define_called).once.ordered
50
64
  extension.should_receive(:after_define_called).once.ordered
@@ -55,39 +69,133 @@ describe Extension do
55
69
  define('foo')
56
70
  define('bar')
57
71
  extensions.should equal(2)
58
- ensure
59
- TestExtension.initialized { |ignore| }
72
+ ensure
73
+ TestExtension.callback { |ignore| }
74
+ end
75
+ end
76
+
77
+ it 'should call before_define callbacks in dependency order' do
78
+ class Buildr::Project
79
+ include ExtensionOneTwo
80
+ include ExtensionThreeFour
81
+ end
82
+ define('foo')
83
+ project('foo').before_order.should == [ :one, :two, :three, :four ]
84
+ project('foo').after_order.should == [ :four, :three, :two, :one ]
85
+ end
86
+
87
+ it 'should call before_define callbacks when extending project' do
88
+ define('foo') do
89
+ extend ExtensionOneTwo
90
+ extend ExtensionThreeFour
60
91
  end
92
+ project('foo').before_order.should == [ :two, :one, :four, :three ]
93
+ project('foo').after_order.should == [ :four, :three, :two, :one ]
94
+ end
95
+
96
+ it 'should raise error when including if callback dependencies cannot be satisfied' do
97
+ class Buildr::Project
98
+ include ExtensionOneTwo # missing ExtensionThreeFour
99
+ end
100
+ lambda { define('foo') }.should raise_error
101
+ end
102
+
103
+ it 'should raise error when extending if callback dependencies cannot be satisfied' do
104
+ lambda {
105
+ define('foo') do |project|
106
+ extend ExtensionOneTwo # missing ExtensionThreeFour
107
+ end
108
+ }.should raise_error
109
+ end
110
+
111
+ it 'should ignore dependencies when extending project' do
112
+ define('bar') do |project|
113
+ extend ExtensionThreeFour # missing ExtensionOneTwo
114
+ end
115
+ project('bar').before_order.should == [:four, :three]
116
+ project('bar').after_order.should == [:four, :three]
61
117
  end
62
118
  end
63
119
 
64
120
  module TestExtension
65
121
  include Extension
66
-
122
+
67
123
  def initialize(*args)
68
- # callback is used to obtain extension instance created by buildr
69
- @@initialized.call(self) if @@initialized
70
124
  super
125
+ # callback is used to obtain extension instance created by buildr
126
+ @@callback.call(self) if @@callback
71
127
  end
72
-
73
- def TestExtension.initialized(&block)
74
- @@initialized = block
128
+
129
+ def self.callback(&block)
130
+ @@callback = block
75
131
  end
76
-
132
+
77
133
  first_time do
78
- TestExtension.first_time_called()
134
+ self.first_time_called()
79
135
  end
80
-
136
+
81
137
  before_define do |project|
82
138
  project.before_define_called()
83
139
  end
84
-
140
+
85
141
  after_define do |project|
86
142
  project.after_define_called()
87
143
  end
88
144
 
89
- def TestExtension.first_time_called()
145
+ def self.first_time_called()
146
+ end
147
+
148
+ end
149
+
150
+ module BeforeAfter
151
+ def before_order
152
+ @before_order ||= []
153
+ end
154
+
155
+ def after_order
156
+ @after_order ||= []
157
+ end
158
+ end
159
+
160
+ module ExtensionOneTwo
161
+ include Extension, BeforeAfter
162
+
163
+ before_define(:two => :one) do |project|
164
+ project.before_order << :two
165
+ end
166
+
167
+ before_define(:one) do |project|
168
+ project.before_order << :one
169
+ end
170
+
171
+ after_define(:one => :two) do |project|
172
+ project.after_order << :one
173
+ end
174
+
175
+ after_define(:two => :three) do |project|
176
+ project.after_order << :two
177
+ end
178
+ end
179
+
180
+ module ExtensionThreeFour
181
+ include Extension, BeforeAfter
182
+
183
+ before_define(:three => :two)
184
+
185
+ before_define(:four => :three) do |project|
186
+ project.before_order << :four
187
+ end
188
+
189
+ before_define(:three) do |project|
190
+ project.before_order << :three
191
+ end
192
+
193
+ after_define(:three => :four) do |project|
194
+ project.after_order << :three
195
+ end
196
+
197
+ after_define(:four) do |project|
198
+ project.after_order << :four
90
199
  end
91
-
92
200
  end
93
201
 
@@ -18,13 +18,13 @@ require File.join(File.dirname(__FILE__), '../spec_helpers')
18
18
 
19
19
 
20
20
  describe Buildr::Generate do
21
-
21
+
22
22
  describe 'Generated buildfile' do
23
23
  it 'should be a legal buildfile' do
24
24
  File.open('buildfile', 'w') { |file| file.write Generate.from_directory(Dir.pwd).join("\n") }
25
25
  lambda { Buildr.application.run }.should_not raise_error
26
26
  end
27
-
27
+
28
28
  it 'should not contain NEXT_VERSION because it was removed in buildr 1.3.3' do
29
29
  buildfile = Generate.from_directory(Dir.pwd)
30
30
  buildfile.each { |line| line.should_not include('NEXT_VERSION')}
@@ -45,7 +45,7 @@ describe Project do
45
45
  foo.should be(project('foo'))
46
46
  bar.should be(project('bar'))
47
47
  end
48
-
48
+
49
49
  it 'should show up in projects list if defined' do
50
50
  define('foo')
51
51
  projects.map(&:name).should include('foo')
@@ -206,7 +206,7 @@ describe Layout do
206
206
  @layout.expand(:foo, nil, :bar).should eql('none')
207
207
  @layout.expand(nil, :foo).should eql('foo')
208
208
  end
209
-
209
+
210
210
  it 'should return nil if path not mapped' do
211
211
  @layout[:foo].should be_nil
212
212
  end
@@ -368,7 +368,7 @@ describe Project, '#on_define' do
368
368
  define('foo') { define 'bar' }
369
369
  scopes.should eql([['foo'], ['foo', 'bar']])
370
370
  end
371
-
371
+
372
372
  it 'should be removed in version 1.5 since it was deprecated in version 1.3' do
373
373
  Buildr::VERSION.should < '1.5'
374
374
  end
@@ -418,7 +418,7 @@ describe 'Sub-project' do
418
418
  define 'foo' do
419
419
  define 'bar'
420
420
  define 'bar'
421
- end
421
+ end
422
422
  end.should raise_error
423
423
  end
424
424
 
@@ -456,7 +456,7 @@ describe 'Sub-project' do
456
456
  ordered << self.name
457
457
  define('bar') { ordered << self.name }
458
458
  define('baz') { ordered << self.name }
459
- end
459
+ end
460
460
  ordered.should eql(['foo', 'foo:bar', 'foo:baz'])
461
461
  end
462
462
 
@@ -466,7 +466,7 @@ describe 'Sub-project' do
466
466
  ordered << self.name
467
467
  define('bar') { project('foo:baz') ; ordered << self.name }
468
468
  define('baz') { ordered << self.name }
469
- end
469
+ end
470
470
  ordered.should eql(['foo', 'foo:baz', 'foo:bar'])
471
471
  end
472
472
 
@@ -475,7 +475,7 @@ describe 'Sub-project' do
475
475
  define 'foo' do
476
476
  define('bar') { project('foo:baz') }
477
477
  define('baz') { project('foo:bar') }
478
- end
478
+ end
479
479
  end.should raise_error(RuntimeError, /Circular dependency/)
480
480
  end
481
481
  end
@@ -645,7 +645,7 @@ describe Project, '#task' do
645
645
  it 'should create a regular task' do
646
646
  define('foo') { task('bar') }
647
647
  Buildr.application.lookup('foo:bar').should_not be_nil
648
- end
648
+ end
649
649
 
650
650
  it 'should return a task defined in the project' do
651
651
  define('foo') { task('bar') }
@@ -661,7 +661,7 @@ describe Project, '#task' do
661
661
  define('foo') { task('bar') }
662
662
  project('foo').task('bar').name.should eql('foo:bar')
663
663
  end
664
-
664
+
665
665
  it 'should ignore namespace if starting with color' do
666
666
  define 'foo' do
667
667
  task(':bar').name.should == 'bar'
@@ -744,7 +744,7 @@ end
744
744
 
745
745
 
746
746
  =begin
747
- describe Buildr::Generate do
747
+ describe Buildr::Generate do
748
748
  it 'should be able to create buildfile from directory structure' do
749
749
  write 'src/main/java/Foo.java', ''
750
750
  write 'one/two/src/main/java/Foo.java', ''