buildr 1.3.5 → 1.4.0

Sign up to get free protection for your applications and to get access to all the features.
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', ''