buildr 1.3.5-x86-mswin32 → 1.4.0-x86-mswin32
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
|