buildr 1.3.5-x86-mswin32 → 1.4.0-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.
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.rb +1 -1
  37. data/lib/buildr/core.rb +1 -0
  38. data/lib/buildr/core/application.rb +33 -27
  39. data/lib/buildr/core/build.rb +41 -28
  40. data/lib/buildr/core/cc.rb +172 -0
  41. data/lib/buildr/core/checks.rb +1 -1
  42. data/lib/buildr/core/common.rb +7 -6
  43. data/lib/buildr/core/compile.rb +7 -8
  44. data/lib/buildr/core/doc.rb +263 -0
  45. data/lib/buildr/core/environment.rb +6 -6
  46. data/lib/buildr/core/filter.rb +77 -35
  47. data/lib/buildr/core/generate.rb +7 -7
  48. data/lib/buildr/core/help.rb +1 -1
  49. data/lib/buildr/core/osx.rb +6 -6
  50. data/lib/buildr/core/progressbar.rb +4 -4
  51. data/lib/buildr/core/project.rb +144 -36
  52. data/lib/buildr/core/shell.rb +34 -34
  53. data/lib/buildr/core/test.rb +89 -20
  54. data/lib/buildr/core/transports.rb +8 -7
  55. data/lib/buildr/core/util.rb +77 -23
  56. data/lib/buildr/groovy/bdd.rb +5 -5
  57. data/lib/buildr/groovy/compiler.rb +19 -15
  58. data/lib/buildr/groovy/shell.rb +6 -6
  59. data/lib/buildr/ide/eclipse.rb +148 -75
  60. data/lib/buildr/ide/eclipse/java.rb +3 -3
  61. data/lib/buildr/ide/eclipse/plugin.rb +8 -5
  62. data/lib/buildr/ide/eclipse/scala.rb +4 -2
  63. data/lib/buildr/ide/idea.rb +2 -2
  64. data/lib/buildr/ide/idea7x.rb +23 -4
  65. data/lib/buildr/java.rb +1 -0
  66. data/lib/buildr/java/ant.rb +4 -4
  67. data/lib/buildr/java/bdd.rb +51 -54
  68. data/lib/buildr/java/cobertura.rb +57 -35
  69. data/lib/buildr/java/commands.rb +14 -5
  70. data/lib/buildr/java/compiler.rb +3 -217
  71. data/lib/buildr/java/deprecated.rb +4 -4
  72. data/lib/buildr/java/doc.rb +70 -0
  73. data/lib/buildr/java/emma.rb +22 -22
  74. data/lib/buildr/java/jruby.rb +4 -4
  75. data/lib/buildr/java/jtestr_runner.rb.erb +27 -25
  76. data/lib/buildr/java/org/apache/buildr/JavaTestFilter.class +0 -0
  77. data/lib/buildr/java/org/apache/buildr/JavaTestFilter.java +8 -3
  78. data/lib/buildr/java/packaging.rb +30 -29
  79. data/lib/buildr/java/pom.rb +4 -4
  80. data/lib/buildr/java/rjb.rb +6 -6
  81. data/lib/buildr/java/test_result.rb +61 -85
  82. data/lib/buildr/java/tests.rb +44 -27
  83. data/lib/buildr/java/version_requirement.rb +8 -8
  84. data/lib/buildr/packaging/archive.rb +55 -22
  85. data/lib/buildr/packaging/artifact.rb +75 -36
  86. data/lib/buildr/packaging/artifact_namespace.rb +90 -78
  87. data/lib/buildr/packaging/artifact_search.rb +5 -5
  88. data/lib/buildr/packaging/gems.rb +11 -7
  89. data/lib/buildr/packaging/package.rb +10 -7
  90. data/lib/buildr/packaging/tar.rb +14 -14
  91. data/lib/buildr/packaging/version_requirement.rb +30 -10
  92. data/lib/buildr/packaging/ziptask.rb +51 -13
  93. data/lib/buildr/scala.rb +1 -0
  94. data/lib/buildr/scala/bdd.rb +25 -20
  95. data/lib/buildr/scala/compiler.rb +87 -40
  96. data/lib/buildr/scala/doc.rb +106 -0
  97. data/lib/buildr/scala/org/apache/buildr/SpecsSingletonRunner.class +0 -0
  98. data/lib/buildr/scala/org/apache/buildr/SpecsSingletonRunner.java +57 -0
  99. data/lib/buildr/scala/shell.rb +14 -9
  100. data/lib/buildr/scala/tests.rb +33 -26
  101. data/lib/buildr/shell.rb +33 -33
  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
@@ -28,18 +28,18 @@ describe Buildr::Emma do
28
28
  end
29
29
 
30
30
  it_should_behave_like 'test coverage tool'
31
-
31
+
32
32
  describe 'project-specific' do
33
33
  describe 'metadata file' do
34
34
  it 'should have a default value' do
35
35
  define('foo').emma.metadata_file.should point_to_path('reports/emma/coverage.em')
36
36
  end
37
-
37
+
38
38
  it 'should be overridable' do
39
39
  define('foo') { emma.metadata_file = path_to('target/metadata.emma') }
40
40
  project('foo').emma.metadata_file.should point_to_path('target/metadata.emma')
41
41
  end
42
-
42
+
43
43
  it 'should be created during instrumentation' do
44
44
  write 'src/main/java/Foo.java', 'public class Foo {}'
45
45
  define('foo')
@@ -47,17 +47,17 @@ describe Buildr::Emma do
47
47
  file(project('foo').emma.metadata_file).should exist
48
48
  end
49
49
  end
50
-
50
+
51
51
  describe 'coverage file' do
52
52
  it 'should have a default value' do
53
53
  define('foo').emma.coverage_file.should point_to_path('reports/emma/coverage.ec')
54
54
  end
55
-
55
+
56
56
  it 'should be overridable' do
57
57
  define('foo') { emma.coverage_file = path_to('target/coverage.emma') }
58
58
  project('foo').emma.coverage_file.should point_to_path('target/coverage.emma')
59
59
  end
60
-
60
+
61
61
  it 'should be created during test' do
62
62
  write 'src/main/java/Foo.java', 'public class Foo {}'
63
63
  write_test :for=>'Foo', :in=>'src/test/java'
@@ -83,7 +83,7 @@ describe Buildr::Emma do
83
83
  task("foo:emma:instrument").invoke
84
84
  Dir.chdir('target/instrumented/classes') { Dir.glob('*').sort.should == ['Bar.class'] }
85
85
  end
86
-
86
+
87
87
  it 'should instrument classes that are included but not excluded' do
88
88
  write 'src/main/java/Baz.java', 'public class Baz {}'
89
89
  define('foo') { emma.include('Ba*').exclude('*ar') }
@@ -91,13 +91,13 @@ describe Buildr::Emma do
91
91
  Dir.chdir('target/instrumented/classes') { Dir.glob('*').sort.should == ['Baz.class'] }
92
92
  end
93
93
  end
94
-
94
+
95
95
  describe 'reports' do
96
96
  before do
97
97
  write 'src/main/java/Foo.java', 'public class Foo {}'
98
98
  write_test :for=>'Foo', :in=>'src/test/java'
99
99
  end
100
-
100
+
101
101
  describe 'in html' do
102
102
  it 'should inform the user if no coverage data' do
103
103
  rm 'src/test/java/FooTest.java'
@@ -106,14 +106,14 @@ describe Buildr::Emma do
106
106
  should show_info(/No test coverage report for foo. Missing: #{project('foo').emma.coverage_file}/)
107
107
  end
108
108
  end
109
-
109
+
110
110
  describe 'in xml' do
111
111
  it 'should have an xml file' do
112
112
  define('foo')
113
113
  task('foo:emma:xml').invoke
114
114
  file(File.join(project('foo').emma.report_dir, 'coverage.xml')).should exist
115
115
  end
116
- end
116
+ end
117
117
  end
118
118
  end
119
119
  end
@@ -48,42 +48,42 @@ describe Java, '#tools_jar' do
48
48
  before do
49
49
  @old_home = ENV['JAVA_HOME']
50
50
  end
51
-
51
+
52
52
  describe 'when JAVA_HOME points to a JDK' do
53
53
  before do
54
54
  Java.instance_eval { @tools_jar = nil }
55
55
  write 'jdk/lib/tools.jar'
56
56
  ENV['JAVA_HOME'] = File.expand_path('jdk')
57
57
  end
58
-
58
+
59
59
  it 'should return the path to tools.jar' do
60
60
  Java.tools_jar.should point_to_path('jdk/lib/tools.jar')
61
61
  end
62
62
  end
63
-
63
+
64
64
  describe 'when JAVA_HOME points to a JRE inside a JDK' do
65
65
  before do
66
66
  Java.instance_eval { @tools_jar = nil }
67
67
  write 'jdk/lib/tools.jar'
68
68
  ENV['JAVA_HOME'] = File.expand_path('jdk/jre')
69
69
  end
70
-
70
+
71
71
  it 'should return the path to tools.jar' do
72
72
  Java.tools_jar.should point_to_path('jdk/lib/tools.jar')
73
73
  end
74
74
  end
75
-
75
+
76
76
  describe 'when there is no tools.jar' do
77
77
  before do
78
78
  Java.instance_eval { @tools_jar = nil }
79
79
  ENV['JAVA_HOME'] = File.expand_path('jdk')
80
80
  end
81
-
81
+
82
82
  it 'should return nil' do
83
83
  Java.tools_jar.should be_nil
84
84
  end
85
85
  end
86
-
86
+
87
87
  after do
88
88
  ENV['JAVA_HOME'] = @old_home
89
89
  end
@@ -93,13 +93,13 @@ describe Java, '#java' do
93
93
  before do
94
94
  @old_home = ENV['JAVA_HOME']
95
95
  end
96
-
96
+
97
97
  describe 'when JAVA_HOME points to an invalid JRE/JDK installation' do
98
98
  before do
99
99
  write 'jdk'
100
100
  ENV['JAVA_HOME'] = File.expand_path('jdk')
101
101
  end
102
-
102
+
103
103
  it 'should fail with an error message mentioning JAVA_HOME' do
104
104
  begin
105
105
  Java.java ['-version']
@@ -109,7 +109,7 @@ describe Java, '#java' do
109
109
  end
110
110
  end
111
111
  end
112
-
112
+
113
113
  after do
114
114
  ENV['JAVA_HOME'] = @old_home
115
115
  end
@@ -120,6 +120,16 @@ shared_examples_for 'package with manifest' do
120
120
  manifest.main['bar'].should eql('Bar')
121
121
  end
122
122
  end
123
+
124
+ it 'should close the temporary file used for packaging the MANIFEST.MF file' do
125
+ package_with_manifest 'Foo'=>1, :bar=>'Bar'
126
+ package = project('foo').package(@packaging)
127
+ package.invoke
128
+ module AccessManifestTMP
129
+ attr_reader :manifest_tmp
130
+ end
131
+ (package.dup.extend(AccessManifestTMP).manifest_tmp.closed?).should be_true
132
+ end
123
133
 
124
134
  it 'should end hash manifest with EOL' do
125
135
  package_with_manifest 'Foo'=>1, :bar=>'Bar'
@@ -187,6 +197,16 @@ shared_examples_for 'package with manifest' do
187
197
  manifest.main['Meta'].should eql('data')
188
198
  end
189
199
  end
200
+
201
+ it 'should give 644 permissions to the manifest' do
202
+ package_with_manifest [ {}, { 'Name'=>'first', :Foo=>'first', :bar=>'second' } ]
203
+ package ||= project('foo').package(@packaging)
204
+ package.invoke
205
+ Zip::ZipFile.open(package.to_s) do |zip|
206
+ permissions = format("%o", zip.file.stat('META-INF/MANIFEST.MF').mode)
207
+ permissions.should match /644$/
208
+ end
209
+ end
190
210
 
191
211
  it 'should not add manifest version twice' do
192
212
  write 'MANIFEST.MF', 'Manifest-Version: 1.9'
@@ -241,7 +261,7 @@ shared_examples_for 'package with manifest' do
241
261
  define('foo', :version => '1.0') do
242
262
  manifest['Foo'] = '1'
243
263
  package(packaging)
244
- define('bar', :version => '1.0') do
264
+ define('bar', :version => '1.0') do
245
265
  manifest['bar'] = 'Bar'
246
266
  package(:jar)
247
267
  package = packages.first
@@ -261,11 +281,11 @@ shared_examples_for 'package with manifest' do
261
281
  define('foo', :version => '1.0') do
262
282
  manifest['Foo'] = '1'
263
283
  package(packaging)
264
- define('bar', :version => '1.0') do
284
+ define('bar', :version => '1.0') do
265
285
  manifest['bar'] = 'Bar'
266
286
  package(:jar)
267
287
  end
268
- define('baz', :version => '1.0') do
288
+ define('baz', :version => '1.0') do
269
289
  manifest['baz'] = 'Baz'
270
290
  package(:jar)
271
291
  end
@@ -410,6 +430,17 @@ describe Packaging, 'jar' do
410
430
  it_should_behave_like 'package with meta_inf'
411
431
  before { @meta_inf_ignore = 'MANIFEST.MF' }
412
432
 
433
+ it 'should place the manifest as the first entry of the file' do
434
+ write 'src/main/java/Test.java', 'class Test {}'
435
+ define('foo', :version=>'1.0') { package(:jar) }
436
+ project('foo').package(:jar).invoke
437
+ Zip::ZipFile.open(project('foo').package(:jar).to_s) do |jar|
438
+ entries_to_s = jar.entries.map(&:to_s).delete_if {|entry| entry[-1,1] == "/"}
439
+ # Sometimes META-INF/ is counted as first entry, which is fair game.
440
+ (entries_to_s.first == 'META-INF/MANIFEST.MF' || entries_to_s[1] == 'META-INF/MANIFEST.MF').should be_true
441
+ end
442
+ end
443
+
413
444
  it 'should use files from compile directory if nothing included' do
414
445
  write 'src/main/java/Test.java', 'class Test {}'
415
446
  define('foo', :version=>'1.0') { package(:jar) }
@@ -454,6 +485,22 @@ describe Packaging, 'jar' do
454
485
  jar.entries.map(&:to_s).sort.should include('empty/')
455
486
  end
456
487
  end
488
+
489
+ it 'should raise error when calling with() with nil value' do
490
+ lambda {
491
+ define('foo', :version=>'1.0') { package(:jar).with(nil) }
492
+ }.should raise_error
493
+ end
494
+
495
+ it 'should exclude resources when ordered to do so' do
496
+ write 'src/main/resources/foo.xml', ''
497
+ foo = define('foo', :version => '1.0') { package(:jar).exclude('foo.xml')}
498
+ foo.package(:jar).invoke
499
+ Zip::ZipFile.open(foo.package(:jar).to_s) do |jar|
500
+ jar.entries.map(&:to_s).sort.should_not include('foo.xml')
501
+ end
502
+ end
503
+
457
504
  end
458
505
 
459
506
 
@@ -701,31 +748,31 @@ describe Packaging, 'ear' do
701
748
  end
702
749
 
703
750
  it 'should not modify original artifact for its components' do
704
- define 'one', :version => '1.0' do
751
+ define 'one', :version => '1.0' do
705
752
  write 'src/main/resources/one.txt', '1'
706
753
  package(:jar)
707
754
  end
708
-
709
- define 'two', :version => '1.0' do
755
+
756
+ define 'two', :version => '1.0' do
710
757
  write 'src/main/resources/two.txt', '2'
711
758
  package(:jar)
712
759
  end
713
-
714
- define 'foo', :version => '1.0' do
760
+
761
+ define 'foo', :version => '1.0' do
715
762
  package(:ear).add project(:one).package(:jar)
716
763
  package(:ear).add :ejb => project(:two).package(:jar)
717
764
  end
718
765
 
719
766
  inspect_ear { |files| files.should include('lib/one-1.0.jar', 'ejb/two-1.0.jar') }
720
-
767
+
721
768
  Buildr::Packaging::Java::Manifest.from_zip(project('one').package(:jar)).main['Class-Path'].should be_nil
722
769
  Buildr::Packaging::Java::Manifest.from_zip(project('two').package(:jar)).main['Class-Path'].should be_nil
723
-
770
+
724
771
  inspect_classpath 'ejb/two-1.0.jar' do |classpath|
725
772
  classpath.should include('../lib/one-1.0.jar')
726
773
  end
727
774
  end
728
-
775
+
729
776
  it 'should map JARs to /lib directory' do
730
777
  define 'foo', :version=>'1.0' do
731
778
  package(:ear) << package(:jar)
@@ -764,12 +811,12 @@ describe Packaging, 'ear' do
764
811
  package(:jar, :id => 'one')
765
812
  package(:jar, :id => 'two')
766
813
  end
767
- define 'foo', :version => '1.0' do
814
+ define 'foo', :version => '1.0' do
768
815
  package(:ear).add :lib => project('baz'),
769
816
  :war => project('bar').package(:war),
770
817
  :ejb => project('bar').package(:jar)
771
818
  end
772
- inspect_ear do |files|
819
+ inspect_ear do |files|
773
820
  files.should include(*%w{ lib/one-1.5.jar lib/two-1.5.jar war/bar-1.5.war ejb/bar-1.5.jar })
774
821
  files.should_not satisfy { files.any? { |f| f =~ /\.zip$/ } }
775
822
  end
@@ -785,10 +832,10 @@ describe Packaging, 'ear' do
785
832
  package(:war)
786
833
  package(:jar)
787
834
  end
788
- define 'foo', :version => '1.0' do
835
+ define 'foo', :version => '1.0' do
789
836
  package(:ear).add projects(:bar, :baz)
790
837
  end
791
- inspect_ear do |files|
838
+ inspect_ear do |files|
792
839
  files.should include('war/bar-1.5.war', 'lib/bar-1.5.jar', 'lib/baz-1.5.jar', 'war/baz-1.5.war')
793
840
  files.should_not satisfy { files.any? { |f| f =~ /\.zip$/ } }
794
841
  end
@@ -969,7 +1016,7 @@ describe Packaging, 'ear' do
969
1016
  end
970
1017
 
971
1018
 
972
- it 'should generate relative classpaths for top level EJB' do
1019
+ it 'should generate relative classpaths for top level EJB' do
973
1020
  define 'foo', :version => '1.0' do
974
1021
  package(:ear).add package(:jar, :id => 'one'), :path => '.'
975
1022
  package(:ear).add package(:jar, :id => 'two'), :path => 'dos'
@@ -981,7 +1028,7 @@ describe Packaging, 'ear' do
981
1028
  end
982
1029
  end
983
1030
 
984
- it 'should generate relative classpaths for second level EJB' do
1031
+ it 'should generate relative classpaths for second level EJB' do
985
1032
  define 'foo', :version => '1.0' do
986
1033
  package(:ear).add package(:jar, :id => 'one'), :path => '.'
987
1034
  package(:ear).add package(:jar, :id => 'two'), :path => 'dos'
@@ -993,7 +1040,7 @@ describe Packaging, 'ear' do
993
1040
  end
994
1041
  end
995
1042
 
996
- it 'should generate relative classpaths for nested EJB' do
1043
+ it 'should generate relative classpaths for nested EJB' do
997
1044
  define 'foo', :version => '1.0' do
998
1045
  package(:ear).add package(:jar, :id => 'one'), :path => '.'
999
1046
  package(:ear).add package(:jar, :id => 'two'), :path => 'dos'
@@ -1030,7 +1077,7 @@ describe Packaging, 'sources' do
1030
1077
 
1031
1078
  it 'should be a ZipTask' do
1032
1079
  define 'foo', :version=>'1.0' do
1033
- package(:javadoc).should be_kind_of(ZipTask)
1080
+ package(:sources).should be_kind_of(ZipTask)
1034
1081
  end
1035
1082
  end
1036
1083
  end
@@ -1074,7 +1121,7 @@ end
1074
1121
  shared_examples_for 'package_with_' do
1075
1122
 
1076
1123
  def prepare(options = {})
1077
- packager = "package_with_#{@packaging}"
1124
+ packager = "package_with_#{@packaging}"
1078
1125
  write 'src/main/java/Source.java'
1079
1126
  write 'baz/src/main/java/Source.java'
1080
1127
  define 'foo', :version=>'1.0' do
@@ -29,21 +29,21 @@ module TestCoverageHelper
29
29
  @expected_pattern = pattern
30
30
  @pattern_matcher = lambda { |filename| File.fnmatch? pattern, filename }
31
31
  end
32
-
32
+
33
33
  def matches?(directory)
34
34
  @actual_filenames = Dir[File.join(directory,'*')]
35
35
  @actual_filenames.any? &@pattern_matcher
36
36
  end
37
-
37
+
38
38
  def failure_message
39
39
  "Expected to find at least one element matching '#{@expected_pattern}' among #{@actual_filenames.inspect}, but found none"
40
40
  end
41
-
41
+
42
42
  def negative_failure_message
43
43
  "Expected to find no element matching '#{@expected_pattern}' among #{@actual_filenames.inspect}, but found matching element(s) #{@actual_filenames.select(&@pattern_matcher).inspect}"
44
44
  end
45
45
  end
46
-
46
+
47
47
  # Test if a directory contains at least one file matching a given glob pattern.
48
48
  #
49
49
  # For example, to check that a directory contains at least one HTML file:
@@ -63,7 +63,7 @@ describe 'test coverage tool', :shared=>true do
63
63
  def test_coverage_config
64
64
  project('foo').send(toolname)
65
65
  end
66
-
66
+
67
67
  describe 'project-specific' do
68
68
 
69
69
  before do
@@ -73,20 +73,20 @@ describe 'test coverage tool', :shared=>true do
73
73
 
74
74
  describe 'clean' do
75
75
  before { define('foo') }
76
-
76
+
77
77
  it 'should remove the instrumented directory' do
78
78
  mkdir_p test_coverage_config.instrumented_dir.to_s
79
79
  task('foo:clean').invoke
80
80
  file(test_coverage_config.instrumented_dir).should_not exist
81
81
  end
82
-
82
+
83
83
  it 'should remove the reporting directory' do
84
84
  mkdir_p test_coverage_config.report_dir
85
85
  task('foo:clean').invoke
86
86
  file(test_coverage_config.report_dir).should_not exist
87
87
  end
88
88
  end
89
-
89
+
90
90
  describe 'instrumented directory' do
91
91
  it 'should have a default value' do
92
92
  define('foo')
@@ -98,7 +98,7 @@ describe 'test coverage tool', :shared=>true do
98
98
  define('foo') { send(toolname).instrumented_dir = path_to('target/coverage/classes') }
99
99
  test_coverage_config.instrumented_dir.should point_to_path('target/coverage/classes')
100
100
  end
101
-
101
+
102
102
  it 'should be created during instrumentation' do
103
103
  define('foo')
104
104
  task("foo:#{toolname}:instrument").invoke
@@ -160,7 +160,7 @@ describe 'test coverage tool', :shared=>true do
160
160
  task("foo:#{toolname}:html").invoke
161
161
  test_coverage_config.report_to(:html).should have_files_matching('*.html')
162
162
  end
163
-
163
+
164
164
  it 'should contain full source code, including comments' do
165
165
  write 'src/main/java/Foo.java',
166
166
  'public class Foo { /* This comment is a TOKEN to check that test coverage reports include the source code */ }'
@@ -199,7 +199,7 @@ describe 'test coverage tool', :shared=>true do
199
199
  task("#{toolname}:html").invoke
200
200
  @tool_module.report_to(:html).should have_files_matching('*.html')
201
201
  end
202
-
202
+
203
203
  it 'should contain full source code, including comments' do
204
204
  write 'bar/src/main/java/Bar.java',
205
205
  'public class Bar { /* This comment is a TOKEN to check that test coverage reports include the source code */ }'
@@ -208,7 +208,7 @@ describe 'test coverage tool', :shared=>true do
208
208
  html_report_contents.force_encoding('ascii-8bit') if RUBY_VERSION >= '1.9'
209
209
  html_report_contents.should =~ /TOKEN/
210
210
  end
211
-
211
+
212
212
  it 'should handle gracefully a project with no source' do
213
213
  define 'baz', :base_dir=>'baz'
214
214
  task("#{toolname}:html").invoke
@@ -216,7 +216,7 @@ describe 'test coverage tool', :shared=>true do
216
216
  end
217
217
  end
218
218
  end
219
-
219
+
220
220
  describe 'clean' do
221
221
  it 'should remove the report directory' do
222
222
  define('foo')
@@ -224,31 +224,31 @@ describe 'test coverage tool', :shared=>true do
224
224
  task("#{toolname}:clean").invoke
225
225
  file(@tool_module.report_to).should_not exist
226
226
  end
227
-
227
+
228
228
  it 'should be called when calling global clean' do
229
229
  define('foo')
230
230
  lambda { task('clean').invoke }.should run_task("#{toolname}:clean")
231
231
  end
232
232
  end
233
233
  end
234
-
234
+
235
235
  describe 'project with no source' do
236
236
  it 'should not define an html report task' do
237
237
  define 'foo'
238
238
  Rake::Task.task_defined?("foo:#{toolname}:html").should be(false)
239
239
  end
240
-
240
+
241
241
  it 'should not raise an error when instrumenting' do
242
242
  define('foo')
243
243
  lambda { task("foo:#{toolname}:instrument").invoke }.should_not raise_error
244
244
  end
245
-
245
+
246
246
  it 'should not add the instrumented directory to the testing classpath' do
247
247
  define 'foo'
248
248
  depends = project('foo').test.dependencies
249
249
  depends.should_not include(test_coverage_config.instrumented_dir)
250
250
  end
251
-
251
+
252
252
  it 'should not add the test coverage tools artifacts to the testing classpath' do
253
253
  define('foo')
254
254
  @tool_module.dependencies.each { |artifact| project('foo').test.dependencies.should_not include(artifact) }