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.
- data/CHANGELOG +153 -8
- data/README.rdoc +1 -1
- data/addon/buildr/antlr.rb +5 -5
- data/addon/buildr/drb.rb +18 -18
- data/addon/buildr/hibernate.rb +18 -14
- data/addon/buildr/javacc.rb +4 -4
- data/addon/buildr/jetty.rb +5 -5
- data/addon/buildr/nailgun.rb +23 -23
- data/addon/buildr/openjpa.rb +1 -1
- data/addon/buildr/org/apache/buildr/BuildrNail$Main.class +0 -0
- data/addon/buildr/org/apache/buildr/BuildrNail.class +0 -0
- data/addon/buildr/org/apache/buildr/JettyWrapper$1.class +0 -0
- data/addon/buildr/org/apache/buildr/JettyWrapper$BuildrHandler.class +0 -0
- data/addon/buildr/org/apache/buildr/JettyWrapper.class +0 -0
- data/addon/buildr/protobuf.rb +75 -0
- data/addon/buildr/xmlbeans.rb +5 -5
- data/buildr.buildfile +2 -2
- data/buildr.gemspec +8 -7
- data/doc/_layouts/default.html +2 -2
- data/doc/artifacts.textile +4 -4
- data/doc/building.textile +35 -3
- data/doc/contributing.textile +5 -0
- data/doc/download.textile +16 -5
- data/doc/extending.textile +38 -12
- data/doc/installing.textile +6 -5
- data/doc/languages.textile +182 -42
- data/doc/more_stuff.textile +2 -2
- data/doc/packaging.textile +14 -15
- data/doc/projects.textile +7 -2
- data/doc/quick_start.textile +4 -4
- data/doc/scripts/buildr-git.rb +63 -63
- data/doc/scripts/gitflow.rb +21 -21
- data/doc/settings_profiles.textile +9 -2
- data/doc/testing.textile +16 -5
- data/etc/KEYS +38 -0
- data/lib/buildr.rb +1 -1
- data/lib/buildr/core.rb +1 -0
- data/lib/buildr/core/application.rb +33 -27
- data/lib/buildr/core/build.rb +41 -28
- data/lib/buildr/core/cc.rb +172 -0
- data/lib/buildr/core/checks.rb +1 -1
- data/lib/buildr/core/common.rb +7 -6
- data/lib/buildr/core/compile.rb +7 -8
- data/lib/buildr/core/doc.rb +263 -0
- data/lib/buildr/core/environment.rb +6 -6
- data/lib/buildr/core/filter.rb +77 -35
- data/lib/buildr/core/generate.rb +7 -7
- data/lib/buildr/core/help.rb +1 -1
- data/lib/buildr/core/osx.rb +6 -6
- data/lib/buildr/core/progressbar.rb +4 -4
- data/lib/buildr/core/project.rb +144 -36
- data/lib/buildr/core/shell.rb +34 -34
- data/lib/buildr/core/test.rb +89 -20
- data/lib/buildr/core/transports.rb +8 -7
- data/lib/buildr/core/util.rb +77 -23
- data/lib/buildr/groovy/bdd.rb +5 -5
- data/lib/buildr/groovy/compiler.rb +19 -15
- data/lib/buildr/groovy/shell.rb +6 -6
- data/lib/buildr/ide/eclipse.rb +148 -75
- data/lib/buildr/ide/eclipse/java.rb +3 -3
- data/lib/buildr/ide/eclipse/plugin.rb +8 -5
- data/lib/buildr/ide/eclipse/scala.rb +4 -2
- data/lib/buildr/ide/idea.rb +2 -2
- data/lib/buildr/ide/idea7x.rb +23 -4
- data/lib/buildr/java.rb +1 -0
- data/lib/buildr/java/ant.rb +4 -4
- data/lib/buildr/java/bdd.rb +51 -54
- data/lib/buildr/java/cobertura.rb +57 -35
- data/lib/buildr/java/commands.rb +14 -5
- data/lib/buildr/java/compiler.rb +3 -217
- data/lib/buildr/java/deprecated.rb +4 -4
- data/lib/buildr/java/doc.rb +70 -0
- data/lib/buildr/java/emma.rb +22 -22
- data/lib/buildr/java/jruby.rb +4 -4
- data/lib/buildr/java/jtestr_runner.rb.erb +27 -25
- data/lib/buildr/java/org/apache/buildr/JavaTestFilter.class +0 -0
- data/lib/buildr/java/org/apache/buildr/JavaTestFilter.java +8 -3
- data/lib/buildr/java/packaging.rb +30 -29
- data/lib/buildr/java/pom.rb +4 -4
- data/lib/buildr/java/rjb.rb +6 -6
- data/lib/buildr/java/test_result.rb +61 -85
- data/lib/buildr/java/tests.rb +44 -27
- data/lib/buildr/java/version_requirement.rb +8 -8
- data/lib/buildr/packaging/archive.rb +55 -22
- data/lib/buildr/packaging/artifact.rb +75 -36
- data/lib/buildr/packaging/artifact_namespace.rb +90 -78
- data/lib/buildr/packaging/artifact_search.rb +5 -5
- data/lib/buildr/packaging/gems.rb +11 -7
- data/lib/buildr/packaging/package.rb +10 -7
- data/lib/buildr/packaging/tar.rb +14 -14
- data/lib/buildr/packaging/version_requirement.rb +30 -10
- data/lib/buildr/packaging/ziptask.rb +51 -13
- data/lib/buildr/scala.rb +1 -0
- data/lib/buildr/scala/bdd.rb +25 -20
- data/lib/buildr/scala/compiler.rb +87 -40
- data/lib/buildr/scala/doc.rb +106 -0
- data/lib/buildr/scala/org/apache/buildr/SpecsSingletonRunner.class +0 -0
- data/lib/buildr/scala/org/apache/buildr/SpecsSingletonRunner.java +57 -0
- data/lib/buildr/scala/shell.rb +14 -9
- data/lib/buildr/scala/tests.rb +33 -26
- data/lib/buildr/shell.rb +33 -33
- data/rakelib/all-in-one.rake +113 -0
- data/rakelib/checks.rake +1 -1
- data/rakelib/doc.rake +7 -0
- data/rakelib/package.rake +1 -1
- data/rakelib/release.rake +9 -6
- data/rakelib/rspec.rake +26 -7
- data/rakelib/setup.rake +15 -3
- data/rakelib/stage.rake +18 -11
- data/spec/addon/drb_spec.rb +25 -25
- data/spec/core/application_spec.rb +111 -21
- data/spec/core/build_spec.rb +16 -15
- data/spec/core/cc_spec.rb +174 -0
- data/spec/core/checks_spec.rb +34 -34
- data/spec/core/common_spec.rb +51 -5
- data/spec/core/compile_spec.rb +89 -14
- data/spec/core/extension_spec.rb +127 -19
- data/spec/core/generate_spec.rb +2 -2
- data/spec/core/project_spec.rb +10 -10
- data/spec/core/test_spec.rb +144 -35
- data/spec/core/transport_spec.rb +8 -8
- data/spec/core/util_spec.rb +63 -5
- data/spec/groovy/bdd_spec.rb +5 -5
- data/spec/groovy/compiler_spec.rb +29 -18
- data/spec/ide/eclipse_spec.rb +185 -9
- data/spec/ide/idea7x_spec.rb +22 -10
- data/spec/java/ant_spec.rb +9 -5
- data/spec/java/bdd_spec.rb +29 -37
- data/spec/java/cobertura_spec.rb +12 -12
- data/spec/java/commands_spec.rb +34 -0
- data/spec/java/compiler_spec.rb +53 -53
- data/spec/java/emma_spec.rb +11 -11
- data/spec/java/java_spec.rb +10 -10
- data/spec/java/packaging_spec.rb +67 -20
- data/spec/java/test_coverage_helper.rb +18 -18
- data/spec/java/tests_spec.rb +13 -9
- data/spec/packaging/archive_spec.rb +187 -20
- data/spec/packaging/artifact_namespace_spec.rb +172 -83
- data/spec/packaging/artifact_spec.rb +83 -18
- data/spec/packaging/packaging_spec.rb +41 -14
- data/spec/sandbox.rb +23 -12
- data/spec/scala/bdd_spec.rb +13 -8
- data/spec/scala/compiler_spec.rb +18 -13
- data/spec/scala/scala.rb +3 -3
- data/spec/scala/tests_spec.rb +46 -24
- data/spec/spec_helpers.rb +28 -10
- data/spec/version_requirement_spec.rb +25 -11
- metadata +149 -133
- data/lib/buildr/scala/org/apache/buildr/SpecsSingletonRunner$.class +0 -0
- data/lib/buildr/scala/org/apache/buildr/SpecsSingletonRunner.scala +0 -35
- data/rakelib/stage.rake~ +0 -213
@@ -19,30 +19,52 @@ require 'buildr/core/compile'
|
|
19
19
|
require 'buildr/packaging'
|
20
20
|
|
21
21
|
module Buildr::Scala
|
22
|
-
DEFAULT_VERSION = '2.7.
|
23
|
-
|
22
|
+
DEFAULT_VERSION = '2.7.7' # currently the latest (Oct 31, 2009)
|
23
|
+
|
24
24
|
class << self
|
25
|
-
|
26
|
-
# Retrieves the Scala version string from the
|
27
|
-
# standard library or nil if Scala is not
|
28
|
-
# available.
|
25
|
+
|
29
26
|
def version_str
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
27
|
+
warn "Use of Scala.version_str is deprecated. Use Scala.version instead"
|
28
|
+
version
|
29
|
+
end
|
30
|
+
|
31
|
+
def installed_version
|
32
|
+
unless @installed_version
|
33
|
+
@installed_version = if Scalac.installed?
|
34
|
+
begin
|
35
|
+
# try to read the value from the properties file
|
36
|
+
props = Zip::ZipFile.open(File.expand_path('lib/scala-library.jar', Scalac.scala_home)) do |zipfile|
|
37
|
+
zipfile.read 'library.properties'
|
38
|
+
end
|
39
|
+
|
40
|
+
version_str = props.match(/version\.number\s*=\s*([^\s]+)/).to_a[1]
|
41
|
+
|
42
|
+
if version_str
|
43
|
+
md = version_str.match(/\d+\.\d[\d\.]*/) or
|
44
|
+
fail "Unable to parse Scala version: #{version_str}"
|
45
|
+
|
46
|
+
md[0].sub(/.$/, "") # remove trailing dot, if any
|
47
|
+
end
|
48
|
+
rescue => e
|
49
|
+
warn "Unable to parse library.properties in $SCALA_HOME/lib/scala-library.jar: #{e}"
|
50
|
+
nil
|
51
|
+
end
|
52
|
+
end
|
35
53
|
end
|
54
|
+
|
55
|
+
@installed_version
|
36
56
|
end
|
37
|
-
|
57
|
+
|
38
58
|
def version
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
59
|
+
Buildr.settings.build['scala.version'] || installed_version || DEFAULT_VERSION
|
60
|
+
end
|
61
|
+
|
62
|
+
def compatible_28?
|
63
|
+
major, minor = version.match(/^(\d)\.(\d)/).to_a[1,2]
|
64
|
+
if major && minor
|
65
|
+
(major.to_i == 2 && minor.to_i >= 8) || (major.to_i > 2)
|
44
66
|
else
|
45
|
-
|
67
|
+
false
|
46
68
|
end
|
47
69
|
end
|
48
70
|
end
|
@@ -60,7 +82,7 @@ module Buildr::Scala
|
|
60
82
|
# * :debug -- Generate debugging info.
|
61
83
|
# * :other -- Array of options to pass to the Scalac compiler as is, e.g. -Xprint-types
|
62
84
|
class Scalac < Buildr::Compiler::Base
|
63
|
-
|
85
|
+
|
64
86
|
# The scalac compiler jars are added to classpath at load time,
|
65
87
|
# if you want to customize artifact versions, you must set them on the
|
66
88
|
#
|
@@ -69,27 +91,36 @@ module Buildr::Scala
|
|
69
91
|
# namespace before this file is required. This is of course, only
|
70
92
|
# if SCALA_HOME is not set or invalid.
|
71
93
|
REQUIRES = ArtifactNamespace.for(self) do |ns|
|
72
|
-
|
73
|
-
ns.
|
94
|
+
version = Buildr.settings.build['scala.version'] || DEFAULT_VERSION
|
95
|
+
ns.library! 'org.scala-lang:scala-library:jar:>=' + version
|
96
|
+
ns.compiler! 'org.scala-lang:scala-compiler:jar:>=' + version
|
74
97
|
end
|
75
|
-
|
98
|
+
|
76
99
|
class << self
|
77
100
|
def scala_home
|
78
101
|
env_home = ENV['SCALA_HOME']
|
79
|
-
|
102
|
+
|
80
103
|
@home ||= (if !env_home.nil? && File.exists?(env_home + '/lib/scala-library.jar') && File.exists?(env_home + '/lib/scala-compiler.jar')
|
81
104
|
env_home
|
82
105
|
else
|
83
106
|
nil
|
84
107
|
end)
|
85
108
|
end
|
86
|
-
|
109
|
+
|
87
110
|
def installed?
|
88
111
|
!scala_home.nil?
|
89
112
|
end
|
90
113
|
|
114
|
+
def use_installed?
|
115
|
+
if installed? && Buildr.settings.build['scala.version']
|
116
|
+
Buildr.settings.build['scala.version'] == Scala.installed_version
|
117
|
+
else
|
118
|
+
Buildr.settings.build['scala.version'].nil? && installed?
|
119
|
+
end
|
120
|
+
end
|
121
|
+
|
91
122
|
def dependencies
|
92
|
-
if
|
123
|
+
if use_installed?
|
93
124
|
['scala-library', 'scala-compiler'].map { |s| File.expand_path("lib/#{s}.jar", scala_home) }
|
94
125
|
else
|
95
126
|
REQUIRES.artifacts.map(&:to_s)
|
@@ -97,23 +128,24 @@ module Buildr::Scala
|
|
97
128
|
end
|
98
129
|
|
99
130
|
def use_fsc
|
100
|
-
|
131
|
+
use_installed? && ENV["USE_FSC"] =~ /^(yes|on|true)$/i
|
101
132
|
end
|
102
|
-
|
133
|
+
|
103
134
|
def applies_to?(project, task) #:nodoc:
|
104
135
|
paths = task.sources + [sources].flatten.map { |src| Array(project.path_to(:source, task.usage, src.to_sym)) }
|
105
136
|
paths.flatten!
|
106
|
-
|
137
|
+
|
107
138
|
# Just select if we find .scala files
|
108
139
|
paths.any? { |path| !Dir["#{path}/**/*.scala"].empty? }
|
109
140
|
end
|
110
141
|
end
|
111
|
-
|
142
|
+
|
112
143
|
Javac = Buildr::Compiler::Javac
|
113
144
|
|
114
145
|
OPTIONS = [:warnings, :deprecation, :optimise, :target, :debug, :other, :javac]
|
115
|
-
|
116
|
-
|
146
|
+
|
147
|
+
# Lazy evaluation to allow change in buildfile
|
148
|
+
Java.classpath << lambda { dependencies }
|
117
149
|
|
118
150
|
specify :language=>:scala, :sources => [:scala, :java], :source_ext => [:scala, :java],
|
119
151
|
:target=>'classes', :target_ext=>'class', :packaging=>:jar
|
@@ -124,25 +156,41 @@ module Buildr::Scala
|
|
124
156
|
options[:warnings] = verbose if options[:warnings].nil?
|
125
157
|
options[:deprecation] ||= false
|
126
158
|
options[:optimise] ||= false
|
159
|
+
options[:make] ||= :transitivenocp if Scala.compatible_28?
|
127
160
|
options[:javac] ||= {}
|
128
|
-
|
161
|
+
|
129
162
|
@java = Javac.new(project, options[:javac])
|
130
163
|
end
|
131
164
|
|
132
165
|
def compile(sources, target, dependencies) #:nodoc:
|
133
|
-
check_options
|
166
|
+
check_options(options, OPTIONS + (Scala.compatible_28? ? [:make] : []))
|
167
|
+
|
168
|
+
java_sources = java_sources(sources)
|
169
|
+
enable_dep_tracing = Scala.compatible_28? && java_sources.empty?
|
170
|
+
|
171
|
+
dependencies.unshift target if enable_dep_tracing
|
134
172
|
|
135
173
|
cmd_args = []
|
136
|
-
cmd_args << '-classpath' <<
|
174
|
+
cmd_args << '-classpath' << dependencies.join(File::PATH_SEPARATOR)
|
137
175
|
source_paths = sources.select { |source| File.directory?(source) }
|
138
176
|
cmd_args << '-sourcepath' << source_paths.join(File::PATH_SEPARATOR) unless source_paths.empty?
|
139
177
|
cmd_args << '-d' << File.expand_path(target)
|
140
178
|
cmd_args += scalac_args
|
179
|
+
|
180
|
+
if enable_dep_tracing
|
181
|
+
dep_dir = File.expand_path(target)
|
182
|
+
Dir.mkdir dep_dir unless File.exists? dep_dir
|
183
|
+
|
184
|
+
cmd_args << '-make:' + options[:make].to_s
|
185
|
+
cmd_args << '-dependencyfile'
|
186
|
+
cmd_args << File.expand_path('.scala-deps', dep_dir)
|
187
|
+
end
|
188
|
+
|
141
189
|
cmd_args += files_from_sources(sources)
|
142
190
|
|
143
191
|
unless Buildr.application.options.dryrun
|
144
192
|
trace((['scalac'] + cmd_args).join(' '))
|
145
|
-
|
193
|
+
|
146
194
|
if Scalac.use_fsc
|
147
195
|
system(([File.expand_path('bin/fsc', Scalac.scala_home)] + cmd_args).join(' ')) or
|
148
196
|
fail 'Failed to compile, see errors above'
|
@@ -151,15 +199,14 @@ module Buildr::Scala
|
|
151
199
|
begin
|
152
200
|
Java.scala.tools.nsc.Main.process(cmd_args.to_java(Java.java.lang.String))
|
153
201
|
rescue => e
|
154
|
-
fail "Scala compiler crashed:\n#{e.inspect}"
|
202
|
+
fail "Scala compiler crashed:\n#{e.inspect}"
|
155
203
|
end
|
156
204
|
fail 'Failed to compile, see errors above' if Java.scala.tools.nsc.Main.reporter.hasErrors
|
157
205
|
end
|
158
|
-
|
159
|
-
java_sources = java_sources(sources)
|
206
|
+
|
160
207
|
unless java_sources.empty?
|
161
208
|
trace 'Compiling mixed Java/Scala sources'
|
162
|
-
|
209
|
+
|
163
210
|
# TODO includes scala-compiler.jar
|
164
211
|
deps = dependencies + Scalac.dependencies + [ File.expand_path(target) ]
|
165
212
|
@java.compile(java_sources, target, deps)
|
@@ -187,7 +234,7 @@ module Buildr::Scala
|
|
187
234
|
end
|
188
235
|
|
189
236
|
end
|
190
|
-
|
237
|
+
|
191
238
|
end
|
192
239
|
|
193
240
|
# Scala compiler comes first, ahead of Javac, this allows it to pick
|
@@ -0,0 +1,106 @@
|
|
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
|
+
require 'buildr/core/doc'
|
17
|
+
require 'buildr/scala/compiler' # ensure Scala dependencies are ready
|
18
|
+
|
19
|
+
module Buildr
|
20
|
+
module Doc
|
21
|
+
class Scaladoc < Base
|
22
|
+
specify :language => :scala, :source_ext => 'scala'
|
23
|
+
|
24
|
+
def generate(sources, target, options = {})
|
25
|
+
cmd_args = [ '-d', target, Buildr.application.options.trace ? '-verbose' : '' ]
|
26
|
+
options.reject { |key, value| [:sourcepath, :classpath].include?(key) }.
|
27
|
+
each { |key, value| value.invoke if value.respond_to?(:invoke) }.
|
28
|
+
each do |key, value|
|
29
|
+
case value
|
30
|
+
when true, nil
|
31
|
+
cmd_args << "-#{key}"
|
32
|
+
when false
|
33
|
+
cmd_args << "-no#{key}"
|
34
|
+
when Hash
|
35
|
+
value.each { |k,v| cmd_args << "-#{key}" << k.to_s << v.to_s }
|
36
|
+
else
|
37
|
+
cmd_args += Array(value).map { |item| ["-#{key}", item.to_s] }.flatten
|
38
|
+
end
|
39
|
+
end
|
40
|
+
[:sourcepath, :classpath].each do |option|
|
41
|
+
Array(options[option]).flatten.tap do |paths|
|
42
|
+
cmd_args << "-#{option}" << paths.flatten.map(&:to_s).join(File::PATH_SEPARATOR) unless paths.empty?
|
43
|
+
end
|
44
|
+
end
|
45
|
+
cmd_args += sources.flatten.uniq
|
46
|
+
unless Buildr.application.options.dryrun
|
47
|
+
info "Generating Scaladoc for #{project.name}"
|
48
|
+
trace (['scaladoc'] + cmd_args).join(' ')
|
49
|
+
Java.load
|
50
|
+
Java.scala.tools.nsc.ScalaDoc.main(cmd_args.to_java(Java.java.lang.String)) == 0 or
|
51
|
+
fail 'Failed to generate Scaladocs, see errors above'
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
class VScaladoc < Base
|
57
|
+
VERSION = '1.2-SNAPSHOT'
|
58
|
+
Buildr.repositories.remote << 'http://scala-tools.org/repo-snapshots'
|
59
|
+
|
60
|
+
class << self
|
61
|
+
def dependencies
|
62
|
+
[ "org.scala-tools:vscaladoc:jar:#{VERSION}" ]
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
Java.classpath << dependencies
|
67
|
+
|
68
|
+
specify :language => :scala, :source_ext => 'scala'
|
69
|
+
|
70
|
+
def generate(sources, target, options = {})
|
71
|
+
cmd_args = [ '-d', target, (Buildr.application.options.trace ? '-verbose' : ''),
|
72
|
+
'-sourcepath', project.compile.sources.join(File::PATH_SEPARATOR) ]
|
73
|
+
options.reject { |key, value| [:sourcepath, :classpath].include?(key) }.
|
74
|
+
each { |key, value| value.invoke if value.respond_to?(:invoke) }.
|
75
|
+
each do |key, value|
|
76
|
+
case value
|
77
|
+
when true, nil
|
78
|
+
cmd_args << "-#{key}"
|
79
|
+
when false
|
80
|
+
cmd_args << "-no#{key}"
|
81
|
+
when Hash
|
82
|
+
value.each { |k,v| cmd_args << "-#{key}" << k.to_s << v.to_s }
|
83
|
+
else
|
84
|
+
cmd_args += Array(value).map { |item| ["-#{key}", item.to_s] }.flatten
|
85
|
+
end
|
86
|
+
end
|
87
|
+
[:sourcepath, :classpath].each do |option|
|
88
|
+
Array(options[option]).flatten.tap do |paths|
|
89
|
+
cmd_args << "-#{option}" << paths.flatten.map(&:to_s).join(File::PATH_SEPARATOR) unless paths.empty?
|
90
|
+
end
|
91
|
+
end
|
92
|
+
cmd_args += sources.flatten.uniq
|
93
|
+
unless Buildr.application.options.dryrun
|
94
|
+
info "Generating VScaladoc for #{project.name}"
|
95
|
+
trace (['vscaladoc'] + cmd_args).join(' ')
|
96
|
+
Java.load
|
97
|
+
Java.org.scala_tools.vscaladoc.Main.main(cmd_args.to_java(Java.java.lang.String)) == 0 or
|
98
|
+
fail 'Failed to generate VScaladocs, see errors above'
|
99
|
+
end
|
100
|
+
end
|
101
|
+
end
|
102
|
+
end
|
103
|
+
end
|
104
|
+
|
105
|
+
Buildr::Doc.engines << Buildr::Doc::Scaladoc
|
106
|
+
Buildr::Doc.engines << Buildr::Doc::VScaladoc
|
Binary file
|
@@ -0,0 +1,57 @@
|
|
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
|
14
|
+
* under the License.
|
15
|
+
*/
|
16
|
+
|
17
|
+
package org.apache.buildr;
|
18
|
+
|
19
|
+
import java.lang.reflect.Field;
|
20
|
+
import java.lang.reflect.Method;
|
21
|
+
import java.net.URL;
|
22
|
+
import java.net.URLClassLoader;
|
23
|
+
import java.io.File;
|
24
|
+
|
25
|
+
/**
|
26
|
+
* @author Daniel Spiewak
|
27
|
+
*/
|
28
|
+
public class SpecsSingletonRunner {
|
29
|
+
// Incompatible with JVM 1.4 target
|
30
|
+
// @throws(classOf[Throwable])
|
31
|
+
public static void main(String[] args) {
|
32
|
+
boolean colors = (args.length > 1 && args[1].equals("-c"));
|
33
|
+
String spec = colors ? args[2] : args[1];
|
34
|
+
|
35
|
+
run(args[0], colors, spec);
|
36
|
+
}
|
37
|
+
|
38
|
+
// Incompatible with JVM 1.4 target
|
39
|
+
// @throws(classOf[Throwable])
|
40
|
+
static void run(String path, boolean colors, String spec) {
|
41
|
+
try {
|
42
|
+
File parent = new File(path);
|
43
|
+
URL specURL = new File(parent, spec.replace('.', '/') + ".class").toURL();
|
44
|
+
URLClassLoader loader = new URLClassLoader(new URL[] { specURL }, Thread.currentThread().getContextClassLoader());
|
45
|
+
|
46
|
+
Class clazz = loader.loadClass(spec);
|
47
|
+
Object instance = clazz.getField("MODULE$").get(null);
|
48
|
+
|
49
|
+
Method main = clazz.getMethod("main", String[].class);
|
50
|
+
|
51
|
+
String[] args = colors ? new String[] { "-c" } : new String[] {};
|
52
|
+
main.invoke(instance, new Object[] { args });
|
53
|
+
} catch (Exception e) {
|
54
|
+
throw new RuntimeException(e);
|
55
|
+
}
|
56
|
+
}
|
57
|
+
}
|
data/lib/buildr/scala/shell.rb
CHANGED
@@ -21,30 +21,35 @@ module Buildr
|
|
21
21
|
module Scala
|
22
22
|
class ScalaShell < Buildr::Shell::Base
|
23
23
|
include Buildr::Shell::JavaRebel
|
24
|
-
|
24
|
+
|
25
25
|
class << self
|
26
26
|
def lang
|
27
27
|
:scala
|
28
28
|
end
|
29
|
-
|
29
|
+
|
30
30
|
def to_sym
|
31
31
|
:scala
|
32
32
|
end
|
33
33
|
end
|
34
|
-
|
34
|
+
|
35
35
|
def launch
|
36
|
-
cp = project.compile.dependencies +
|
36
|
+
cp = project.compile.dependencies +
|
37
37
|
Scalac.dependencies +
|
38
38
|
[project.path_to(:target, :classes)]
|
39
|
-
|
39
|
+
|
40
40
|
props = {
|
41
|
-
'env.classpath' => cp.join(File::PATH_SEPARATOR),
|
42
41
|
'scala.home' => Scalac.scala_home
|
43
42
|
}
|
44
|
-
|
45
|
-
|
43
|
+
|
44
|
+
jline = [File.expand_path("lib/jline.jar", Scalac.scala_home)].find_all do |f|
|
45
|
+
File.exist? f
|
46
|
+
end
|
47
|
+
|
48
|
+
Java::Commands.java 'scala.tools.nsc.MainGenericRunner',
|
49
|
+
'-cp', cp.join(File::PATH_SEPARATOR),
|
50
|
+
{
|
46
51
|
:properties => props.merge(rebel_props(project)),
|
47
|
-
:classpath =>
|
52
|
+
:classpath => Scalac.dependencies + jline,
|
48
53
|
:java_args => rebel_args
|
49
54
|
}
|
50
55
|
end
|
data/lib/buildr/scala/tests.rb
CHANGED
@@ -23,16 +23,20 @@ require 'buildr/java/tests'
|
|
23
23
|
module Buildr::Scala
|
24
24
|
# Scala::Check is available when using Scala::Test or Scala::Specs
|
25
25
|
module Check
|
26
|
-
VERSION = '1.
|
27
|
-
|
26
|
+
VERSION = '1.6'
|
27
|
+
|
28
28
|
class << self
|
29
29
|
def version
|
30
30
|
Buildr.settings.build['scala.check'] || VERSION
|
31
31
|
end
|
32
|
-
|
32
|
+
|
33
|
+
def classifier
|
34
|
+
Buildr.settings.build['scala.check.classifier'] || ""
|
35
|
+
end
|
36
|
+
|
33
37
|
def dependencies
|
34
|
-
["org.scala-tools.testing:scalacheck:jar:#{version}"]
|
35
|
-
end
|
38
|
+
["org.scala-tools.testing:scalacheck:jar:#{classifier}:#{version}"]
|
39
|
+
end
|
36
40
|
|
37
41
|
private
|
38
42
|
def const_missing(const)
|
@@ -42,8 +46,8 @@ module Buildr::Scala
|
|
42
46
|
end
|
43
47
|
end
|
44
48
|
end
|
45
|
-
|
46
|
-
|
49
|
+
|
50
|
+
|
47
51
|
# ScalaTest framework, the default test framework for Scala tests.
|
48
52
|
#
|
49
53
|
# Support the following options:
|
@@ -52,36 +56,36 @@ module Buildr::Scala
|
|
52
56
|
# * :java_args -- Arguments passed as is to the JVM.
|
53
57
|
class ScalaTest < Buildr::TestFramework::Java
|
54
58
|
|
55
|
-
VERSION = '0.
|
59
|
+
VERSION = '1.0.1'
|
56
60
|
|
57
61
|
class << self
|
58
62
|
def version
|
59
63
|
Buildr.settings.build['scala.test'] || VERSION
|
60
64
|
end
|
61
|
-
|
65
|
+
|
62
66
|
def dependencies
|
63
|
-
["org.
|
67
|
+
["org.scalatest:scalatest:jar:#{version}"] + Check.dependencies +
|
64
68
|
JMock.dependencies + JUnit.dependencies
|
65
|
-
end
|
69
|
+
end
|
66
70
|
|
67
71
|
def applies_to?(project) #:nodoc:
|
68
72
|
!Dir[project.path_to(:source, :test, :scala, '**/*.scala')].empty?
|
69
|
-
end
|
70
|
-
|
73
|
+
end
|
74
|
+
|
71
75
|
private
|
72
76
|
def const_missing(const)
|
73
77
|
return super unless const == :REQUIRES # TODO: remove in 1.5
|
74
78
|
Buildr.application.deprecated "Please use Scala::Test.dependencies/.version instead of ScalaTest::REQUIRES/VERSION"
|
75
79
|
dependencies
|
76
80
|
end
|
77
|
-
end
|
81
|
+
end
|
78
82
|
|
79
83
|
# annotation-based group inclusion
|
80
84
|
attr_accessor :group_includes
|
81
|
-
|
85
|
+
|
82
86
|
# annotation-based group exclusion
|
83
87
|
attr_accessor :group_excludes
|
84
|
-
|
88
|
+
|
85
89
|
def initialize(test_task, options)
|
86
90
|
super
|
87
91
|
@group_includes = []
|
@@ -100,7 +104,8 @@ module Buildr::Scala
|
|
100
104
|
scalatest.each do |suite|
|
101
105
|
info "ScalaTest #{suite.inspect}"
|
102
106
|
# Use Ant to execute the ScalaTest task, gives us performance and reporting.
|
103
|
-
|
107
|
+
reportDir = task.report_to.to_s
|
108
|
+
reportFile = File.join(reportDir, "TEST-#{suite}.txt")
|
104
109
|
taskdef = Buildr.artifacts(self.class.dependencies).each(&:invoke).map(&:to_s)
|
105
110
|
Buildr.ant('scalatest') do |ant|
|
106
111
|
ant.taskdef :name=>'scalatest', :classname=>'org.scalatest.tools.ScalaTestTask',
|
@@ -109,42 +114,44 @@ module Buildr::Scala
|
|
109
114
|
ant.suite :classname=>suite
|
110
115
|
ant.reporter :type=>'stdout', :config=>reporter_options
|
111
116
|
ant.reporter :type=>'file', :filename=> reportFile, :config=>reporter_options
|
117
|
+
ant.reporter :type=>(ScalaTest.version == "1.0") ? "xml" : "junitxml",
|
118
|
+
:directory=> reportDir, :config=>reporter_options
|
112
119
|
# TODO: This should be name=>value pairs!
|
113
120
|
#ant.includes group_includes.join(" ") if group_includes
|
114
121
|
#ant.excludes group_excludes.join(" ") if group_excludes
|
115
|
-
(options[:properties] || []).each { |name, value| ant.
|
122
|
+
(options[:properties] || []).each { |name, value| ant.config :name=>name, :value=>value }
|
116
123
|
end
|
117
124
|
end
|
118
|
-
|
125
|
+
|
119
126
|
# Parse for failures, errors, etc.
|
120
127
|
# This is a bit of a pain right now because ScalaTest doesn't flush its
|
121
|
-
# output synchronously before the Ant test finishes so we have to loop
|
122
|
-
# and wait for an indication that the test run was completed.
|
128
|
+
# output synchronously before the Ant test finishes so we have to loop
|
129
|
+
# and wait for an indication that the test run was completed.
|
123
130
|
failed = false
|
124
131
|
completed = false
|
125
132
|
wait = 0
|
126
133
|
while (!completed) do
|
127
134
|
File.open(reportFile, "r") do |input|
|
128
135
|
while (line = input.gets) do
|
129
|
-
failed = (line =~ /(TESTS? FAILED
|
130
|
-
completed |= (line =~ /Run completed
|
136
|
+
failed = (line =~ /(TESTS? FAILED)|(RUN STOPPED)|(RUN ABORTED)/) unless failed
|
137
|
+
completed |= (line =~ /Run completed/)
|
131
138
|
break if (failed)
|
132
139
|
end
|
133
140
|
end
|
134
141
|
wait += 1
|
135
|
-
break if (failed || wait > 10)
|
142
|
+
break if (failed || wait > 10)
|
136
143
|
unless completed
|
137
144
|
sleep(1)
|
138
145
|
end
|
139
146
|
end
|
140
147
|
success << suite if (completed && !failed)
|
141
148
|
end
|
142
|
-
|
149
|
+
|
143
150
|
success
|
144
151
|
end # run
|
145
152
|
|
146
153
|
end # ScalaTest
|
147
|
-
|
154
|
+
|
148
155
|
end
|
149
156
|
|
150
157
|
|