buildr 1.3.5-java → 1.4.0-java

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.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 +148 -132
  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
@@ -1,35 +0,0 @@
1
- package org.apache.buildr
2
-
3
- import java.net.{URL, URLClassLoader}
4
- import java.io.File
5
-
6
- /**
7
- * @author Daniel Spiewak
8
- */
9
- object SpecsSingletonRunner {
10
- type Spec = { def main(args: Array[String]) }
11
-
12
- // Incompatible with JVM 1.4 target
13
- // @throws(classOf[Throwable])
14
- def main(args: Array[String]) {
15
- val (colors, spec) = if (args.length > 1 && args(1) == "-c")
16
- (true, args(2))
17
- else
18
- (false, args(1))
19
-
20
- run(args(0), colors, spec)
21
- }
22
-
23
- // Incompatible with JVM 1.4 target
24
- // @throws(classOf[Throwable])
25
- def run(path: String, colors: Boolean, spec: String) = {
26
- val parent = new File(path)
27
- val specURL = new File(parent, spec.replace('.', '/') + ".class").toURL
28
- val loader = new URLClassLoader(Array(specURL), getClass.getClassLoader)
29
-
30
- val clazz = loader.loadClass(spec)
31
- val instance = clazz.getField("MODULE$").get(null).asInstanceOf[Spec]
32
-
33
- instance.main(if (colors) Array("-c") else Array())
34
- }
35
- }
data/rakelib/stage.rake~ DELETED
@@ -1,213 +0,0 @@
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 'digest/md5'
18
- require 'digest/sha1'
19
-
20
- begin # Releases upload Gems to RubyForge.
21
- require 'rubyforge'
22
- rescue LoadError
23
- task(:setup) { install_gem 'rubyforge' }
24
- end
25
-
26
-
27
- task :prepare do |task, args|
28
- # Make sure we're doing a release from checked code.
29
- lambda do
30
- puts "Checking there are no local changes ... "
31
- svn = `svn status`
32
- fail "Cannot release unless all local changes are in SVN:\n#{svn}" unless svn.empty?
33
- git = `git status`
34
- fail "Cannot release unless all local changes are in Git:\n#{git}" if git[/^#\t/]
35
- puts "[X] There are no local changes, everything is in source control"
36
- end.call
37
-
38
- # Make sure we have a valid CHANGELOG entry for this release.
39
- lambda do
40
- puts "Checking that CHANGELOG indicates most recent version and today's date ... "
41
- expecting = "#{spec.version} (#{Time.now.strftime('%Y-%m-%d')})"
42
- header = File.readlines('CHANGELOG').first.chomp
43
- fail "Expecting CHANGELOG to start with #{expecting}, but found #{header} instead" unless expecting == header
44
- puts "[x] CHANGELOG indicates most recent version and today's date"
45
- end.call
46
-
47
- # Need GPG to sign the packages.
48
- lambda do
49
- args.gpg or fail "Please run with gpg=<argument for gpg --local-user>"
50
- fail "No GPG user #{args.gpg}" if `gpg2 --list-keys #{args.gpg}`.empty?
51
- end.call
52
-
53
- task(:license).invoke
54
- task(:dependency).invoke
55
-
56
- # Need JRuby, Scala and Groovy installed to run all the specs.
57
- lambda do
58
- puts "Checking that we have JRuby, Scala and Groovy available ... "
59
- sh 'jruby --version'
60
- sh 'scala -version'
61
- sh 'groovy -version'
62
- puts "[X] We have JRuby, Scala and Groovy"
63
- end.call
64
-
65
- # Need Prince to generate PDF
66
- lambda do
67
- puts "Checking that we have prince available ... "
68
- sh 'prince --version'
69
- puts "[X] We have prince available"
70
- end.call
71
-
72
- # Need RubyForge to upload new release files.
73
- lambda do
74
- puts "[!] Make sure you have admin privileges to make a release on RubyForge"
75
- rubyforge = RubyForge.new.configure
76
- rubyforge.login
77
- rubyforge.scrape_project(spec.name)
78
- end.call
79
-
80
- # We will be speccing in one platform, so also spec the other one.
81
- task(RUBY_PLATFORM =~ /java/ ? 'spec:ruby' : 'spec:jruby').invoke # Test the *other* platform
82
- end
83
-
84
-
85
- task :stage=>['setup', 'doc:setup', :clobber, :prepare] do |task, args|
86
- mkpath '_staged'
87
-
88
- # Start by figuring out what has changed.
89
- lambda do
90
- puts "Looking for changes between this release and previous one ..."
91
- pattern = /(^(\d+\.\d+(?:\.\d+)?)\s+\(\d{4}-\d{2}-\d{2}\)\s*((:?^[^\n]+\n)*))/
92
- changes = File.read('CHANGELOG').scan(pattern).inject({}) { |hash, set| hash[set[1]] = set[2] ; hash }
93
- current = changes[spec.version.to_s]
94
- fail "No changeset found for version #{spec.version}" unless current
95
- File.open '_staged/CHANGES', 'w' do |file|
96
- file.write "#{spec.version} (#{Time.now.strftime('%Y-%m-%d')})\n"
97
- file.write current
98
- end
99
- puts "[X] Listed most recent changed in _staged/CHANGES"
100
- end.call
101
-
102
- # Create the packages (gem, tarball) and sign them. This requires user
103
- # intervention so the earlier we do it the better.
104
- lambda do
105
- puts "Creating and signing release packages ..."
106
- task(:package).invoke
107
- mkpath '_staged/dist'
108
- FileList['pkg/*.{gem,zip,tgz}'].each do |source|
109
- pkg = source.pathmap('_staged/dist/%n%x')
110
- cp source, pkg
111
- bytes = File.open(pkg, 'rb') { |file| file.read }
112
- File.open(pkg + '.md5', 'w') { |file| file.write Digest::MD5.hexdigest(bytes) << ' ' << File.basename(pkg) }
113
- File.open(pkg + '.sha1', 'w') { |file| file.write Digest::SHA1.hexdigest(bytes) << ' ' << File.basename(pkg) }
114
- sh 'gpg2', '--local-user', args.gpg, '--armor', '--output', pkg + '.asc', '--detach-sig', pkg, :verbose=>true
115
- end
116
- cp 'etc/KEYS', '_staged'
117
- puts "[X] Created and signed release packages in _staged/dist"
118
- end.call
119
-
120
- # The download page should link to the new binaries/sources, and we
121
- # want to do that before generating the site/documentation.
122
- lambda do
123
- puts "Updating download page with links to release packages ... "
124
- url = "http://www.apache.org/dist/#{spec.name}/#{spec.version}"
125
- rows = FileList['_staged/dist/*.{gem,tgz,zip}'].map { |pkg|
126
- name, md5 = File.basename(pkg), Digest::MD5.file(pkg).to_s
127
- %{| "#{name}":#{url}/#{name} | "#{md5}":#{url}/#{name}.md5 | "Sig":#{url}/#{name}.asc |}
128
- }
129
- textile = <<-TEXTILE
130
- h3. #{spec.name} #{spec.version} (#{Time.now.strftime('%Y-%m-%d')})
131
-
132
- |_. Package |_. MD5 Checksum |_. PGP |
133
- #{rows.join("\n")}
134
-
135
- p>. ("Release signing keys":#{url}/KEYS)
136
- TEXTILE
137
- file_name = 'doc/download.textile'
138
- print "Adding download links to #{file_name} ... "
139
- modified = File.read(file_name).sub(/^h2\(#dist\).*$/) { |header| "#{header}\n\n#{textile}" }
140
- File.open file_name, 'w' do |file|
141
- file.write modified
142
- end
143
- puts "[X] Updated #{file_name}"
144
- end.call
145
-
146
-
147
- # Now we can create the Web site, this includes running specs, coverage report, etc.
148
- # This will take a while, so we want to do it as last step before upload.
149
- lambda do
150
- puts "Creating new Web site"
151
- task(:site).invoke
152
- cp_r '_site', '_staged/site'
153
- puts "[X] Created new Web site in _staged/site"
154
- end.call
155
-
156
-
157
- # Move everything over to people.apache.org so we can vote on it.
158
- lambda do
159
- url = "people.apache.org:~/public_html/#{spec.name}/#{spec.version}"
160
- puts "Uploading _staged directory to #{url} ..."
161
- sh 'rsync', '--progress', '--recursive', '_staged/', url
162
- puts "[X] Uploaded _staged directory to #{url}"
163
- end.call
164
-
165
-
166
- # Prepare a release vote email. In the distant future this will also send the
167
- # email for you and vote on it.
168
- lambda do
169
- # Need to know who you are on Apache, local user may be different (see .ssh/config).
170
- whoami = `ssh people.apache.org whoami`.strip
171
- base_url = "http://people.apache.org/~#{whoami}/buildr/#{spec.version}"
172
- # Need changes for this release only.
173
- changelog = File.read('CHANGELOG').scan(/(^(\d+\.\d+(?:\.\d+)?)\s+\(\d{4}-\d{2}-\d{2}\)\s*((:?^[^\n]+\n)*))/)
174
- changes = changelog[0][2]
175
- previous_version = changelog[1][1]
176
-
177
- email = <<-EMAIL
178
- To: dev@buildr.apache.org
179
- Subject: [VOTE] Buildr #{spec.version} release
180
-
181
- We're voting on the source distributions available here:
182
- #{base_url}/dist/
183
-
184
- Specifically:
185
- #{base_url}/dist/buildr-#{spec.version}.tgz
186
- #{base_url}/dist/buildr-#{spec.version}.zip
187
-
188
- The documentation generated for this release is available here:
189
- #{base_url}/site/
190
- #{base_url}/site/buildr.pdf
191
-
192
- The official specification against which this release was tested:
193
- #{base_url}/site/specs.html
194
-
195
- Test coverage report:
196
- #{base_url}/site/coverage/index.html
197
-
198
-
199
- The following changes were made since #{previous_version}:
200
-
201
- #{changes.gsub(/^/, ' ')}
202
- EMAIL
203
- File.open 'vote-email.txt', 'w' do |file|
204
- file.write email
205
- end
206
- puts "[X] Created release vote email template in 'vote-email.txt'"
207
- puts email
208
- end.call
209
-
210
- end
211
-
212
-
213
- task(:clobber) { rm_rf '_staged' }