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
@@ -15,7 +15,6 @@
15
15
 
16
16
 
17
17
  require File.join(File.dirname(__FILE__), '../spec_helpers')
18
- require 'buildr/scala'
19
18
 
20
19
  # TODO's
21
20
  # -test passing System props
@@ -26,6 +25,12 @@ require 'buildr/scala'
26
25
 
27
26
 
28
27
  describe Buildr::Scala::ScalaTest do
28
+
29
+ before(:each) do
30
+ # Force Scala 2.7.7 for specs; don't want to rely on SCALA_HOME
31
+ Buildr.settings.build['scala.version'] = "2.7.7"
32
+ end
33
+
29
34
  it 'should be the default test framework when test cases are in Scala' do
30
35
  write 'src/test/scala/com/example/MySuite.scala', <<-SCALA
31
36
  package com.example
@@ -113,7 +118,7 @@ describe Buildr::Scala::ScalaTest do
113
118
  val sum = 1 + 1
114
119
  assert(sum === 2)
115
120
  }
116
-
121
+
117
122
  class InnerSuite extends FunSuite {
118
123
  test("addition") {
119
124
  val sum = 1 + 1
@@ -161,6 +166,21 @@ describe Buildr::Scala::ScalaTest do
161
166
  project('foo').test.failed_tests.should include('FailingSuite')
162
167
  end
163
168
 
169
+ it 'should report to reports/scalatest/TEST-TestSuiteName.xml' do
170
+ write 'src/test/scala/PassingSuite.scala', <<-SCALA
171
+ class PassingSuite extends org.scalatest.FunSuite {
172
+ test("passing") {
173
+ assert(true)
174
+ }
175
+ }
176
+ SCALA
177
+ define 'foo' do
178
+ test.report_to.should be(file('reports/scalatest'))
179
+ end
180
+ project('foo').test.invoke
181
+ project('foo').file('reports/scalatest/TEST-PassingSuite.xml').should exist
182
+ end
183
+
164
184
  it 'should report to reports/scalatest/TEST-TestSuiteName.txt' do
165
185
  write 'src/test/scala/PassingSuite.scala', <<-SCALA
166
186
  class PassingSuite extends org.scalatest.FunSuite {
@@ -180,15 +200,16 @@ describe Buildr::Scala::ScalaTest do
180
200
  write 'src/test/scala/PropertyTestSuite.scala', <<-SCALA
181
201
  import org.scalatest._
182
202
  class PropertyTestSuite extends FunSuite {
183
- var properties = Map[String, Any]()
203
+ var configMap = Map[String, Any]()
184
204
  test("testProperty") {
185
- assert(properties("name") === "value")
205
+ assert(configMap("name") === "value")
186
206
  }
187
-
207
+
188
208
  protected override def runTests(testName: Option[String], reporter: Reporter, stopper: Stopper,
189
- includes: Set[String], excludes: Set[String], properties: Map[String, Any]) {
190
- this.properties = properties;
191
- super.runTests(testName, reporter, stopper, includes, excludes, properties)
209
+ filter: Filter, configMap: Map[String, Any],
210
+ distributor: Option[Distributor], tracker: Tracker) {
211
+ this.configMap = configMap
212
+ super.runTests(testName, reporter, stopper, filter, configMap, distributor, tracker)
192
213
  }
193
214
  }
194
215
  SCALA
@@ -198,54 +219,55 @@ describe Buildr::Scala::ScalaTest do
198
219
 
199
220
  it 'should run with ScalaCheck automatic test case generation' do
200
221
  write 'src/test/scala/MySuite.scala', <<-SCALA
201
- import org.scalatest.prop.PropSuite
222
+ import org.scalatest.FunSuite
223
+ import org.scalatest.prop.Checkers
202
224
  import org.scalacheck.Arbitrary._
203
225
  import org.scalacheck.Prop._
204
-
205
- class MySuite extends PropSuite {
206
-
226
+
227
+ class MySuite extends FunSuite with Checkers {
228
+
207
229
  test("list concatenation") {
208
230
  val x = List(1, 2, 3)
209
231
  val y = List(4, 5, 6)
210
232
  assert(x ::: y === List(1, 2, 3, 4, 5, 6))
211
233
  check((a: List[Int], b: List[Int]) => a.size + b.size == (a ::: b).size)
212
234
  }
213
-
214
- test(
215
- "list concatenation using a test method",
216
- (a: List[Int], b: List[Int]) => a.size + b.size == (a ::: b).size
217
- )
235
+
236
+ test("list concatenation using a test method") {
237
+ check((a: List[Int], b: List[Int]) => a.size + b.size == (a ::: b).size)
238
+ }
218
239
  }
219
240
  SCALA
220
241
  define('foo')
221
242
  project('foo').test.invoke
222
243
  project('foo').test.passed_tests.should include('MySuite')
223
244
  end
224
-
245
+
225
246
  it 'should fail if ScalaCheck test case fails' do
226
247
  write 'src/test/scala/StringSuite.scala', <<-SCALA
227
- import org.scalatest.prop.PropSuite
248
+ import org.scalatest.FunSuite
249
+ import org.scalatest.prop.Checkers
228
250
  import org.scalacheck.Arbitrary._
229
251
  import org.scalacheck.Prop._
230
252
 
231
- class StringSuite extends PropSuite {
253
+ class StringSuite extends FunSuite with Checkers {
232
254
  test("startsWith") {
233
255
  check( (a: String, b: String) => (a+b).startsWith(a) )
234
256
  }
235
-
257
+
236
258
  test("endsWith") {
237
259
  check( (a: String, b: String) => (a+b).endsWith(b) )
238
260
  }
239
-
261
+
240
262
  // Is this really always true?
241
263
  test("concat") {
242
264
  check( (a: String, b: String) => (a+b).length > a.length && (a+b).length > b.length )
243
265
  }
244
-
266
+
245
267
  test("substring2") {
246
268
  check( (a: String, b: String) => (a+b).substring(a.length) == b )
247
269
  }
248
-
270
+
249
271
  test("substring3") {
250
272
  check( (a: String, b: String, c: String) =>
251
273
  (a+b+c).substring(a.length, a.length+b.length) == b )
data/spec/spec_helpers.rb CHANGED
@@ -22,8 +22,9 @@ unless defined?(SpecHelpers)
22
22
 
23
23
  # For testing we use the gem requirements specified on the buildr.gemspec
24
24
  spec = Gem::Specification.load(File.expand_path('../buildr.gemspec', File.dirname(__FILE__)))
25
- spec.dependencies.each { |dep| gem dep.name, dep.version_requirements.to_s }
26
-
25
+ # Dependency.version_requirements deprecated in rubygems 1.3.6
26
+ spec.dependencies.each { |dep| gem dep.name, (dep.respond_to?(:requirement) ? dep.requirement.to_s : dep.version_requirements.to_s) }
27
+
27
28
  # Make sure to load from these paths first, we don't want to load any
28
29
  # code from Gem library.
29
30
  $LOAD_PATH.unshift File.expand_path('../lib', File.dirname(__FILE__)),
@@ -40,7 +41,7 @@ unless defined?(SpecHelpers)
40
41
 
41
42
  # Give a chance for plugins to do a few things before requiring the sandbox.
42
43
  include SandboxHook if defined?(SandboxHook)
43
-
44
+
44
45
  require File.expand_path('sandbox', File.dirname(__FILE__))
45
46
 
46
47
  module SpecHelpers
@@ -56,7 +57,7 @@ unless defined?(SpecHelpers)
56
57
  end
57
58
  end
58
59
  end
59
-
60
+
60
61
  class << Buildr.application
61
62
  alias :deprecated_without_capture :deprecated
62
63
  def deprecated(message)
@@ -118,6 +119,23 @@ unless defined?(SpecHelpers)
118
119
  MessageWithSeverityMatcher.new :puts, message
119
120
  end
120
121
 
122
+ # Yields a block that should try exiting the application.
123
+ # Accepts
124
+ #
125
+ # For example:
126
+ # test_exit(1) { puts "Hello" ; exit(1) }.should show("Hello")
127
+ #
128
+ def test_exit(status = nil)
129
+ return lambda {
130
+ begin
131
+ yield
132
+ raise "Exit was not called!"
133
+ rescue SystemExit => e
134
+ raise "Exit status incorrect! Expected: #{status}, got #{e.status}" if status && (e.status != status)
135
+ end
136
+ }
137
+ end
138
+
121
139
  class ::Rake::Task
122
140
  alias :execute_without_a_record :execute
123
141
  def execute(args)
@@ -151,7 +169,7 @@ unless defined?(SpecHelpers)
151
169
  "Expected the tasks #{expected} to not run, but they all ran."
152
170
  else
153
171
  "Expected the tasks #{expected} to not run, and all but #{remaining} ran."
154
- end
172
+ end
155
173
  end
156
174
 
157
175
  def but_not(*tasks)
@@ -226,7 +244,7 @@ unless defined?(SpecHelpers)
226
244
  "URI with path matching #{@expression}"
227
245
  end
228
246
  end
229
-
247
+
230
248
  # Matches a parsed URI's path against the given regular expression
231
249
  def uri(re)
232
250
  UriPathMatcher.new(re)
@@ -256,16 +274,16 @@ unless defined?(SpecHelpers)
256
274
  AbsolutePathMatcher.new(path)
257
275
  end
258
276
 
259
-
277
+
260
278
  # Value covered by range. For example:
261
279
  # (1..5).should cover(3)
262
280
  def cover(value)
263
281
  simple_matcher :cover do |given|
264
- value >= given.min && value <= given.max
282
+ value >= given.min && value <= given.max
265
283
  end
266
284
  end
267
285
 
268
-
286
+
269
287
  def suppress_stdout
270
288
  stdout = $stdout
271
289
  $stdout = StringIO.new
@@ -308,7 +326,7 @@ unless defined?(SpecHelpers)
308
326
  yield
309
327
  ensure
310
328
  Buildr.application.instance_eval { @original_dir = original_dir }
311
- end
329
+ end
312
330
  end
313
331
 
314
332
 
@@ -20,8 +20,8 @@ describe Buildr::VersionRequirement, '.create' do
20
20
  def create(str)
21
21
  Buildr::VersionRequirement.create(str)
22
22
  end
23
-
24
- it 'should complain on invalid input' do
23
+
24
+ it 'should complain on invalid input' do
25
25
  lambda { create }.should raise_error(Exception)
26
26
  lambda { create('%') }.should raise_error(Exception, /invalid character/)
27
27
  lambda { create('1#{0}') }.should raise_error(Exception, /invalid character/)
@@ -30,16 +30,16 @@ describe Buildr::VersionRequirement, '.create' do
30
30
  lambda { create('1.0') }.should_not raise_error(Exception)
31
31
  lambda { create('1.0rc3') }.should_not raise_error(Exception)
32
32
  end
33
-
33
+
34
34
  it 'should allow versions using hyphen' do
35
35
  lambda { create('1.0-rc3') }.should_not raise_error(Exception)
36
36
  end
37
37
 
38
- it 'should create a single version requirement' do
38
+ it 'should create a single version requirement' do
39
39
  create('1.0').should_not be_composed
40
40
  end
41
41
 
42
- it 'should create a composed version requirement' do
42
+ it 'should create a composed version requirement' do
43
43
  create('1.0 | 2.1').should be_composed
44
44
  end
45
45
  end
@@ -61,13 +61,13 @@ describe Buildr::VersionRequirement, '#satisfied_by?' do
61
61
  should_satisfy '=1.0', %w(1 1.0), %w(1.1 0.1)
62
62
  should_satisfy '= 1.0', %w(1 1.0), %w(1.1 0.1)
63
63
  should_satisfy '!= 1.0', %w(0.9 1.1 2), %w(1 1.0 1.0.0)
64
-
64
+
65
65
  should_satisfy '>1.0', %w(1.0.1), %w(1 1.0 0.1)
66
66
  should_satisfy '>=1.0', %w(1.0.1 1 1.0), %w(0.9)
67
67
 
68
68
  should_satisfy '<1.0', %w(0.9 0.9.9), %w(1 1.0 1.1 2)
69
69
  should_satisfy '<=1.0', %w(0.9 0.9.9 1 1.0), %w(1.1 2)
70
-
70
+
71
71
  should_satisfy '~> 1.2.3', %w(1.2.3 1.2.3.4 1.2.4), %w(1.2.1 0.9 1.4 2)
72
72
  end
73
73
 
@@ -91,7 +91,7 @@ describe Buildr::VersionRequirement, '#satisfied_by?' do
91
91
  it 'should assume logic and if missing operator between expressions' do
92
92
  should_satisfy '>1.5 <2.0', %w(1.6 1.9), %w(1.5 2 2.0)
93
93
  end
94
-
94
+
95
95
  it 'should allow combining logic operators' do
96
96
  should_satisfy '>1.0 | <2.0 | =3.0', %w(1.5 3.0 1 2 4)
97
97
  should_satisfy '>1.0 & <2.0 | =3.0', %w(1.3 3.0), %w(1 2)
@@ -99,7 +99,7 @@ describe Buildr::VersionRequirement, '#satisfied_by?' do
99
99
  should_satisfy '~>1.1 | ~>1.3 | ~>1.5 | 2.0', %w(2 1.5.6 1.1.2 1.1.3), %w(1.0.9 0.5 2.2.1)
100
100
  should_satisfy 'not(2) | 1', %w(1 3), %w(2)
101
101
  end
102
-
102
+
103
103
  it 'should allow using parens to group logic expressions' do
104
104
  should_satisfy '(1.0)', %w(1 1.0), %w(0.9 1.1)
105
105
  should_satisfy '!( !(1.0) )', %w(1 1.0), %w(0.9 1.1)
@@ -110,13 +110,13 @@ end
110
110
  =end
111
111
 
112
112
  describe Buildr::VersionRequirement, '#default' do
113
- it 'should return nil if missing default requirement' do
113
+ it 'should return nil if missing default requirement' do
114
114
  Buildr::VersionRequirement.create('>1').default.should be_nil
115
115
  Buildr::VersionRequirement.create('<1').default.should be_nil
116
116
  Buildr::VersionRequirement.create('!1').default.should be_nil
117
117
  Buildr::VersionRequirement.create('!<=1').default.should be_nil
118
118
  end
119
-
119
+
120
120
  it 'should return the last version with a = requirement' do
121
121
  Buildr::VersionRequirement.create('1').default.should == '1'
122
122
  Buildr::VersionRequirement.create('=1').default.should == '1'
@@ -127,3 +127,17 @@ describe Buildr::VersionRequirement, '#default' do
127
127
  Buildr::VersionRequirement.create('1 & 2 | 3').default.should == '3'
128
128
  end
129
129
  end
130
+
131
+ describe Buildr::VersionRequirement, '#version?' do
132
+ it 'should identify valid versions' do
133
+ Buildr::VersionRequirement.version?('1').should be_true
134
+ Buildr::VersionRequirement.version?('1a').should be_true
135
+ Buildr::VersionRequirement.version?('1.0').should be_true
136
+ Buildr::VersionRequirement.version?('11.0').should be_true
137
+ Buildr::VersionRequirement.version?(' 11.0 ').should be_true
138
+ Buildr::VersionRequirement.version?('11.0-alpha').should be_true
139
+
140
+ Buildr::VersionRequirement.version?('a').should be_false
141
+ Buildr::VersionRequirement.version?('a1').should be_false
142
+ end
143
+ end