buildr 1.4.25-x86-mswin32 → 1.5.0.dev2-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 (92) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG +50 -0
  3. data/NOTICE +1 -1
  4. data/README.rdoc +1 -1
  5. data/addon/buildr/bnd.rb +0 -6
  6. data/addon/buildr/custom_pom.rb +6 -0
  7. data/addon/buildr/org/apache/buildr/BuildrNail$Main.class +0 -0
  8. data/addon/buildr/org/apache/buildr/BuildrNail.class +0 -0
  9. data/addon/buildr/org/apache/buildr/JettyWrapper$1.class +0 -0
  10. data/addon/buildr/org/apache/buildr/JettyWrapper$BuildrHandler.class +0 -0
  11. data/addon/buildr/org/apache/buildr/JettyWrapper.class +0 -0
  12. data/addon/buildr/wsgen.rb +27 -27
  13. data/buildr.buildfile +1 -1
  14. data/buildr.gemspec +13 -9
  15. data/doc/_config.yml +3 -1
  16. data/doc/_layouts/default.html +1 -1
  17. data/doc/artifacts.textile +42 -0
  18. data/doc/download.textile +18 -6
  19. data/doc/languages.textile +15 -1
  20. data/doc/packaging.textile +1 -1
  21. data/doc/preface.textile +1 -1
  22. data/doc/projects.textile +13 -0
  23. data/doc/releasing.textile +14 -0
  24. data/doc/settings_profiles.textile +4 -0
  25. data/lib/buildr.rb +1 -0
  26. data/lib/buildr/core/application.rb +2 -3
  27. data/lib/buildr/core/build.rb +21 -34
  28. data/lib/buildr/core/compile.rb +0 -12
  29. data/lib/buildr/core/filter.rb +7 -0
  30. data/lib/buildr/core/generate.rb +1 -0
  31. data/lib/buildr/core/project.rb +14 -4
  32. data/lib/buildr/core/test.rb +2 -4
  33. data/lib/buildr/core/transports.rb +2 -0
  34. data/lib/buildr/groovy/bdd.rb +0 -7
  35. data/lib/buildr/ide/eclipse.rb +3 -3
  36. data/lib/buildr/java/ant.rb +0 -6
  37. data/lib/buildr/java/bdd.rb +0 -7
  38. data/lib/buildr/java/commands.rb +1 -1
  39. data/lib/buildr/java/deprecated.rb +0 -60
  40. data/lib/buildr/java/ecj.rb +16 -3
  41. data/lib/buildr/java/jruby.rb +19 -1
  42. data/lib/buildr/java/packaging.rb +4 -8
  43. data/lib/buildr/java/pom.rb +17 -12
  44. data/lib/buildr/java/rjb.rb +21 -3
  45. data/lib/buildr/java/tests.rb +0 -21
  46. data/lib/buildr/packaging/archive.rb +1 -1
  47. data/lib/buildr/packaging/artifact.rb +132 -3
  48. data/lib/buildr/packaging/zip.rb +32 -29
  49. data/lib/buildr/packaging/ziptask.rb +7 -5
  50. data/lib/buildr/scala.rb +0 -1
  51. data/lib/buildr/scala/bdd.rb +28 -122
  52. data/lib/buildr/scala/compiler.rb +24 -10
  53. data/lib/buildr/scala/doc.rb +0 -1
  54. data/lib/buildr/scala/org/apache/buildr/Specs2Runner.class +0 -0
  55. data/lib/buildr/scala/org/apache/buildr/Specs2Runner.java +4 -3
  56. data/lib/buildr/scala/org/apache/buildr/ZincRunner.class +0 -0
  57. data/lib/buildr/scala/org/apache/buildr/ZincRunner.java +37 -0
  58. data/lib/buildr/scala/tests.rb +18 -26
  59. data/lib/buildr/version.rb +1 -1
  60. data/spec/addon/bnd_spec.rb +5 -5
  61. data/spec/addon/custom_pom_spec.rb +38 -32
  62. data/spec/addon/jaxb_xjc_spec.rb +0 -4
  63. data/spec/core/application_spec.rb +4 -5
  64. data/spec/core/build_spec.rb +10 -51
  65. data/spec/core/common_spec.rb +7 -0
  66. data/spec/core/compile_spec.rb +0 -6
  67. data/spec/core/console_spec.rb +1 -1
  68. data/spec/core/generate_from_eclipse_spec.rb +22 -8
  69. data/spec/core/project_spec.rb +34 -70
  70. data/spec/core/test_spec.rb +6 -9
  71. data/spec/core/transport_spec.rb +16 -7
  72. data/spec/groovy/compiler_spec.rb +2 -2
  73. data/spec/java/ant_spec.rb +0 -5
  74. data/spec/java/compiler_spec.rb +4 -4
  75. data/spec/java/ecj_spec.rb +244 -45
  76. data/spec/java/java_spec.rb +7 -9
  77. data/spec/java/packaging_spec.rb +23 -23
  78. data/spec/java/pom_spec.rb +37 -0
  79. data/spec/java/tests_spec.rb +0 -5
  80. data/spec/packaging/archive_spec.rb +1 -1
  81. data/spec/packaging/artifact_spec.rb +129 -7
  82. data/spec/packaging/packaging_spec.rb +1 -1
  83. data/spec/sandbox.rb +2 -2
  84. data/spec/scala/bdd_spec.rb +0 -101
  85. data/spec/scala/compiler_spec.rb +20 -16
  86. data/spec/scala/doc_spec.rb +0 -11
  87. data/spec/scala/tests_spec.rb +6 -15
  88. data/spec/spec_helpers.rb +1 -1
  89. data/spec/xpath_matchers.rb +2 -1
  90. metadata +64 -22
  91. data/addon/buildr/cobertura.rb +0 -21
  92. data/addon/buildr/emma.rb +0 -21
@@ -13,6 +13,8 @@
13
13
  # License for the specific language governing permissions and limitations under
14
14
  # the License.
15
15
 
16
+ require 'zip'
17
+
16
18
  if RUBY_VERSION >= '1.9.0' # Required to properly load RubyZip under Ruby 1.9
17
19
  $LOADED_FEATURES.unshift 'ftools'
18
20
  require 'fileutils'
@@ -26,29 +28,39 @@ if RUBY_VERSION >= '1.9.0' # Required to properly load RubyZip under Ruby 1.9
26
28
  end
27
29
  end
28
30
 
29
- require 'zip/zip'
30
- require 'zip/zipfilesystem'
31
-
32
31
  module Zip #:nodoc:
33
32
 
34
- class ZipCentralDirectory #:nodoc:
33
+ class CentralDirectory #:nodoc:
35
34
  # Patch to add entries in alphabetical order.
36
35
  def write_to_stream(io)
37
36
  offset = io.tell
38
- @entrySet.sort { |a,b| a.name <=> b.name }.each { |entry| entry.write_c_dir_entry(io) }
39
- write_e_o_c_d(io, offset)
37
+ @entry_set.sort { |a,b| a.name <=> b.name }.each { |entry| entry.write_c_dir_entry(io) }
38
+ eocd_offset = io.tell
39
+ cdir_size = eocd_offset - offset
40
+ write_e_o_c_d(io, offset, cdir_size)
41
+ end
42
+ end
43
+
44
+ class File
45
+
46
+ # :call-seq:
47
+ # exist() => boolean
48
+ #
49
+ # Returns true if this entry exists.
50
+ def exist?(entry_name)
51
+ !!find_entry(entry_name)
40
52
  end
41
53
  end
42
54
 
43
55
 
44
- class ZipEntry
56
+ class Entry
45
57
 
46
58
  # :call-seq:
47
59
  # exist() => boolean
48
60
  #
49
61
  # Returns true if this entry exists.
50
62
  def exist?()
51
- Zip::ZipFile.open(zipfile) { |zip| zip.file.exist?(@name) }
63
+ File.open(zipfile) { |zip| zip.exist?(@name) }
52
64
  end
53
65
 
54
66
  # :call-seq:
@@ -56,7 +68,7 @@ module Zip #:nodoc:
56
68
  #
57
69
  # Returns true if this entry is empty.
58
70
  def empty?()
59
- Zip::ZipFile.open(zipfile) { |zip| zip.file.read(@name) }.empty?
71
+ File.open(zipfile) { |zip| zip.read(@name) }.empty?
60
72
  end
61
73
 
62
74
  # :call-seq:
@@ -65,7 +77,7 @@ module Zip #:nodoc:
65
77
  # Returns true if this ZIP file entry matches against all the arguments. An argument may be
66
78
  # a string or regular expression.
67
79
  def contain?(*patterns)
68
- content = Zip::ZipFile.open(zipfile) { |zip| zip.file.read(@name) }
80
+ content = File.open(zipfile) { |zip| zip.read(@name) }
69
81
  patterns.map { |pattern| Regexp === pattern ? pattern : Regexp.new(Regexp.escape(pattern.to_s)) }.
70
82
  all? { |pattern| content =~ pattern }
71
83
  end
@@ -89,7 +101,7 @@ module Zip #:nodoc:
89
101
  raise ZipInternalError, "unknown file type #{self.inspect}"
90
102
  end
91
103
 
92
- @externalFileAttributes = (ft << 12 | (@unix_perms & 07777)) << 16
104
+ @external_file_attributes = (ft << 12 | (@unix_perms & 07777)) << 16
93
105
  end
94
106
 
95
107
  io <<
@@ -105,12 +117,12 @@ module Zip #:nodoc:
105
117
  @compressed_size,
106
118
  @size,
107
119
  @name ? @name.length : 0,
108
- @extra ? @extra.c_dir_length : 0,
120
+ @extra ? @extra.c_dir_size : 0,
109
121
  @comment ? comment.to_s.length : 0,
110
122
  0, # disk number start
111
- @internalFileAttributes, # file type (binary=0, text=1)
112
- @externalFileAttributes, # native filesystem attributes
113
- @localHeaderOffset,
123
+ @internal_file_attributes, # file type (binary=0, text=1)
124
+ @external_file_attributes, # native filesystem attributes
125
+ @local_header_offset,
114
126
  @name,
115
127
  @extra,
116
128
  @comment
@@ -142,7 +154,7 @@ module Zip #:nodoc:
142
154
  raise ZipInternalError, "unknown file type #{self.inspect}"
143
155
  end
144
156
 
145
- @externalFileAttributes = (ft << 12 | (@unix_perms & 07777)) << 16
157
+ @external_file_attributes = (ft << 12 | (@unix_perms & 07777)) << 16
146
158
  end
147
159
 
148
160
  io <<
@@ -158,12 +170,12 @@ module Zip #:nodoc:
158
170
  @compressed_size,
159
171
  @size,
160
172
  @name ? @name.length : 0,
161
- @extra ? @extra.c_dir_length : 0,
173
+ @extra ? @extra.c_dir_size : 0,
162
174
  @comment ? @comment.length : 0,
163
175
  0, # disk number start
164
- @internalFileAttributes, # file type (binary=0, text=1)
165
- @externalFileAttributes, # native filesystem attributes
166
- @localHeaderOffset,
176
+ @internal_file_attributes, # file type (binary=0, text=1)
177
+ @external_file_attributes, # native filesystem attributes
178
+ @local_header_offset,
167
179
  @name,
168
180
  @extra,
169
181
  @comment].pack('VCCvvvvvVVVvvvvvVV')
@@ -174,13 +186,4 @@ module Zip #:nodoc:
174
186
 
175
187
  end
176
188
  end
177
-
178
- class ZipEntrySet
179
- alias_method :original_push, :"<<"
180
- alias_method :push, :"<<"
181
-
182
- def <<(entry)
183
- original_push(entry) if entry != nil
184
- end
185
- end
186
189
  end
@@ -42,17 +42,17 @@ module Buildr #:nodoc:
42
42
  # for example:
43
43
  # package(:jar).entry("META-INF/LICENSE").should contain(/Apache Software License/)
44
44
  def entry(entry_name)
45
- ::Zip::ZipEntry.new(name, entry_name)
45
+ ::Zip::Entry.new(name, entry_name)
46
46
  end
47
47
 
48
48
  def entries #:nodoc:
49
- @entries ||= Zip::ZipFile.open(name) { |zip| zip.entries }
49
+ @entries ||= Zip::File.open(name) { |zip| zip.entries }
50
50
  end
51
51
 
52
52
  private
53
53
 
54
54
  def create_from(file_map)
55
- Zip::ZipOutputStream.open name do |zip|
55
+ Zip::OutputStream.open name do |zip|
56
56
  seen = {}
57
57
  mkpath = lambda do |dir|
58
58
  dirname = (dir[-1..-1] =~ /\/$/) ? dir : dir + '/'
@@ -63,7 +63,9 @@ module Buildr #:nodoc:
63
63
  end
64
64
  end
65
65
 
66
- file_map.each do |path, content|
66
+ paths = file_map.keys.sort
67
+ paths.each do |path|
68
+ content = file_map[path]
67
69
  warn "Warning: Path in zipfile #{name} contains backslash: #{path}" if path =~ /\\/
68
70
  mkpath.call File.dirname(path)
69
71
  if content.respond_to?(:call)
@@ -166,7 +168,7 @@ module Buildr #:nodoc:
166
168
  end
167
169
  }
168
170
  else
169
- Zip::ZipFile.open(zip_file.to_s) do |zip|
171
+ Zip::File.open(zip_file.to_s) do |zip|
170
172
  entries = zip.collect
171
173
  @paths.each do |path, patterns|
172
174
  patterns.map(entries).each do |dest, entry|
@@ -15,7 +15,6 @@
15
15
 
16
16
 
17
17
  ENV['SCALA_HOME'] ||= '/opt/local/share/scala/' if File.exist?('/opt/local/share/scala/lib/scala-compiler.jar')
18
- Buildr.repositories.remote << 'http://oss.sonatype.org/content/repositories/releases'
19
18
 
20
19
  require 'buildr/scala/compiler'
21
20
  require 'buildr/scala/tests'
@@ -15,118 +15,6 @@
15
15
 
16
16
  module Buildr::Scala #:nodoc:
17
17
 
18
- # Specs is a Scala based BDD framework.
19
- # To use in your project:
20
- #
21
- # test.using :specs
22
- #
23
- # This framework will search in your project for:
24
- # src/spec/scala/**/*.scala
25
- class Specs < Buildr::TestFramework::JavaBDD
26
- @lang = :scala
27
- @bdd_dir = :spec
28
-
29
- VERSION = case
30
- when Buildr::Scala.version?("2.8.0")
31
- '1.6.5'
32
- when Buildr::Scala.version?("2.8.1"), Buildr::Scala.version?("2.8.2"), Buildr::Scala.version?("2.9.0")
33
- '1.6.8'
34
- else
35
- '1.6.9'
36
- end
37
-
38
- class << self
39
- def version
40
- custom = Buildr.settings.build['scala.specs']
41
- (custom =~ /:/) ? Buildr.artifact(custom).version : VERSION
42
- end
43
-
44
- def specs
45
- custom = Buildr.settings.build['scala.specs']
46
- [ (custom =~ /:/) ? custom : "org.scala-tools.testing:#{artifact}:jar:#{version}" ]
47
- end
48
-
49
- def artifact
50
- Buildr.settings.build['scala.specs.artifact'] || "specs_#{Buildr::Scala.version_without_build}"
51
- end
52
-
53
- def dependencies
54
- unless @dependencies
55
- super
56
- # Add utility classes (e.g. SpecsSingletonRunner) and other dependencies
57
- @dependencies |= [ File.join(File.dirname(__FILE__)) ] +
58
- specs +
59
- Check.dependencies + JUnit.dependencies + Scalac.dependencies
60
- end
61
- @dependencies
62
- end
63
-
64
- def applies_to?(project) #:nodoc:
65
- scala_files = Dir[project.path_to(:source, bdd_dir, lang, '**/*.scala')]
66
- return false if scala_files.empty?
67
- scala_files.detect { |f| find(f, /\s+(org\.specs\.)/) }
68
- end
69
-
70
- private
71
- def const_missing(const)
72
- return super unless const == :REQUIRES # TODO: remove in 1.5
73
- Buildr.application.deprecated "Please use Scala::Specs.dependencies/.version instead of ScalaSpecs::REQUIRES/VERSION"
74
- dependencies
75
- end
76
-
77
- def find(file, pattern)
78
- File.open(file, "r") do |infile|
79
- while (line = infile.gets)
80
- return true if line.match(pattern)
81
- end
82
- end
83
- false
84
- end
85
- end
86
-
87
- def initialize(task, options) #:nodoc:
88
- super
89
-
90
- specs = task.project.path_to(:source, :spec, :scala)
91
- task.compile.from specs if File.directory?(specs)
92
-
93
- resources = task.project.path_to(:source, :spec, :resources)
94
- task.resources.from resources if File.directory?(resources)
95
- end
96
-
97
- def tests(dependencies)
98
- candidates = filter_classes(dependencies, :interfaces => ['org.specs.Specification'])
99
-
100
- Java.load # Java is already loaded, but just in case
101
-
102
- filter = Java.org.apache.buildr.JavaTestFilter.new(dependencies.to_java(Java.java.lang.String))
103
- filter.add_fields ['MODULE$'].to_java(Java.java.lang.String)
104
- filter.filter(candidates.to_java(Java.java.lang.String)).map { |s| s[0..(s.size - 2)] }
105
- end
106
-
107
- def run(specs, dependencies) #:nodoc:
108
- cmd_options = { :properties => options[:properties],
109
- :java_args => options[:java_args],
110
- :classpath => dependencies,
111
- :name => false }
112
-
113
- runner = 'org.apache.buildr.SpecsSingletonRunner'
114
- specs.inject [] do |passed, spec|
115
- begin
116
- unless Util.win_os?
117
- Java::Commands.java(runner, task.compile.target.to_s, '-c', spec + '$', cmd_options)
118
- else
119
- Java::Commands.java(runner, task.compile.target.to_s, spec + '$', cmd_options)
120
- end
121
- rescue => e
122
- passed
123
- else
124
- passed << spec
125
- end
126
- end
127
- end
128
- end
129
-
130
18
  class Specs2 < Buildr::TestFramework::JavaBDD
131
19
  @lang = :scala
132
20
  @bdd_dir = :spec
@@ -136,8 +24,10 @@ module Buildr::Scala #:nodoc:
136
24
  '1.5'
137
25
  when Buildr::Scala.version?("2.9")
138
26
  '1.11'
27
+ when Buildr::Scala.version?("2.10")
28
+ '1.12.3'
139
29
  else
140
- '1.12.3' # default for Scala 2.10 and beyond
30
+ '3.7' # default for Scala 2.11 and beyond
141
31
  end
142
32
 
143
33
  class << self
@@ -148,7 +38,7 @@ module Buildr::Scala #:nodoc:
148
38
 
149
39
  def specs
150
40
  custom = Buildr.settings.build['scala.specs2']
151
- [ (custom =~ /:/) ? custom : "org.specs2:#{artifact}:jar:#{version}" ]
41
+ [ (custom =~ /:/) ? custom : "org.specs2:#{artifact}:pom:#{version}" ]
152
42
  end
153
43
 
154
44
  def artifact
@@ -156,14 +46,26 @@ module Buildr::Scala #:nodoc:
156
46
  when Buildr.settings.build['scala.specs2.artifact']
157
47
  Buildr.settings.build['scala.specs2.artifact']
158
48
  else
159
- "specs2_#{Buildr::Scala.version_without_build}"
49
+ if Buildr::Scala.version < "2.11"
50
+ "specs2_#{Buildr::Scala.version_without_build_number}"
51
+ else
52
+ "specs2_#{Buildr::Scala.version_major_minor}"
53
+ end
54
+ end
55
+ end
56
+
57
+ def type
58
+ if Buildr::Scala.version < "2.11"
59
+ "jar"
60
+ else
61
+ "pom"
160
62
  end
161
63
  end
162
64
 
163
65
  def scalaz_dependencies
164
66
  if Buildr::Scala.version?("2.8")
165
67
  []
166
- else
68
+ elsif Buildr::Scala.version < "2.11"
167
69
  default_version = "6.0.1"
168
70
  custom_version = Buildr.settings.build['scala.specs2-scalaz']
169
71
  version = (custom_version =~ /:/) ? Buildr.artifact(custom_version).version : default_version
@@ -173,6 +75,16 @@ module Buildr::Scala #:nodoc:
173
75
  custom_spec = Buildr.settings.build['scala.specs2-scalaz']
174
76
  spec = [ (custom_spec =~ /:/) ? custom_spec : "org.specs2:#{artifact}:jar:#{version}" ]
175
77
  Buildr.transitive(spec, :scopes => [nil, "compile", "runtime", "provided", "optional"], :optional => true)
78
+ else
79
+ default_version = "7.2.2"
80
+ custom_version = Buildr.settings.build['scala.specs2-scalaz']
81
+ version = (custom_version =~ /:/) ? Buildr.artifact(custom_version).version : default_version
82
+
83
+ artifact = Buildr.settings.build['scala.specs2-scalaz.artifact'] || "scalaz-core_#{Buildr::Scala.version_major_minor}"
84
+
85
+ custom_spec = Buildr.settings.build['scala.specs2-scalaz']
86
+ spec = [ (custom_spec =~ /:/) ? custom_spec : "org.scalaz:#{artifact}:jar:#{version}" ]
87
+ [Buildr.transitive(spec, :scopes => [nil, "compile", "runtime", "provided", "optional"], :optional => true), "org.scala-lang.modules:scala-xml_2.11:jar:1.0.1"]
176
88
  end
177
89
  end
178
90
 
@@ -246,10 +158,4 @@ module Buildr::Scala #:nodoc:
246
158
  end
247
159
  end
248
160
 
249
- # Backwards compatibility stuff. Remove in 1.5.
250
- module Buildr #:nodoc:
251
- ScalaSpecs = Scala::Specs
252
- end
253
-
254
- Buildr::TestFramework << Buildr::Scala::Specs
255
161
  Buildr::TestFramework << Buildr::Scala::Specs2
@@ -15,7 +15,7 @@
15
15
 
16
16
  # The Scala Module
17
17
  module Buildr::Scala
18
- DEFAULT_VERSION = '2.9.2'
18
+ DEFAULT_VERSION = '2.11.8'
19
19
 
20
20
  class << self
21
21
 
@@ -29,7 +29,7 @@ module Buildr::Scala
29
29
  @installed_version = if Scalac.installed?
30
30
  begin
31
31
  # try to read the value from the properties file
32
- props = Zip::ZipFile.open(File.expand_path('lib/scala-library.jar', Scalac.scala_home)) do |zipfile|
32
+ props = Zip::File.open(File.expand_path('lib/scala-library.jar', Scalac.scala_home)) do |zipfile|
33
33
  zipfile.read 'library.properties'
34
34
  end
35
35
 
@@ -65,6 +65,12 @@ module Buildr::Scala
65
65
  def version_without_build
66
66
  version.split('-')[0]
67
67
  end
68
+
69
+ # returns Scala version without tiny number.
70
+ # e.g. "2.11.8" => "2.11"
71
+ def version_major_minor
72
+ version.split('.')[0..1].join('.')
73
+ end
68
74
  end
69
75
 
70
76
  # Scalac compiler:
@@ -81,9 +87,9 @@ module Buildr::Scala
81
87
  # * :other -- Array of options to pass to the Scalac compiler as is, e.g. -Xprint-types
82
88
  class Scalac < Buildr::Compiler::Base
83
89
 
84
- DEFAULT_ZINC_VERSION = '0.1.0'
85
- DEFAULT_SBT_VERSION = '0.12.0'
86
- DEFAULT_JLINE_VERSION = '1.0'
90
+ DEFAULT_ZINC_VERSION = '0.3.12'
91
+ DEFAULT_SBT_VERSION = '0.13.12'
92
+ DEFAULT_JLINE_VERSION = '2.14.2'
87
93
 
88
94
  class << self
89
95
  def scala_home
@@ -148,6 +154,9 @@ module Buildr::Scala
148
154
  # added in Scala 2.10
149
155
  ns.reflect! 'org.scala-lang:scala-reflect:jar:>=' + version
150
156
  ns.actors! 'org.scala-lang:scala-actors:jar:>=' + version
157
+ ns.xml! 'org.scala-lang.modules:scala-xml_2.11:jar:1.0.5'
158
+ ns.parser_combinators! 'org.scala-lang.modules:scala-parser-combinators_2.11:jar:1.0.4'
159
+
151
160
  end
152
161
  end
153
162
 
@@ -174,12 +183,17 @@ module Buildr::Scala
174
183
 
175
184
  def initialize(project, options) #:nodoc:
176
185
  super
186
+ # use common options also for javac
187
+
188
+ options[:javac] ||= Buildr::Compiler::Javac::OPTIONS.inject({}) do |hash, option|
189
+ hash[option] = options[option]
190
+ hash
191
+ end
177
192
  options[:debug] = Buildr.options.debug if options[:debug].nil?
178
193
  options[:warnings] = verbose if options[:warnings].nil?
179
194
  options[:deprecation] ||= false
180
195
  options[:optimise] ||= false
181
196
  options[:make] ||= :transitivenocp if Scala.version? 2.8
182
- options[:javac] ||= {}
183
197
  @java = Javac.new(project, options[:javac])
184
198
  end
185
199
 
@@ -252,7 +266,8 @@ module Buildr::Scala
252
266
  cmd_args << '-compiler-interface' << REQUIRES.compiler_interface_sources.artifact
253
267
  cmd_args << '-scala-library' << dependencies.find { |d| d =~ /scala-library/ }
254
268
  cmd_args << '-scala-compiler' << dependencies.find { |d| d =~ /scala-compiler/ }
255
- cmd_args << '-classpath' << dependencies.join(File::PATH_SEPARATOR)
269
+ cmd_args << '-scala-extra' << dependencies.find { |d| d =~ /scala-reflect/ }
270
+ cmd_args << '-classpath' << (dependencies + [ File.join(File.dirname(__FILE__)) ]).join(File::PATH_SEPARATOR)
256
271
  source_paths = sources.select { |source| File.directory?(source) }
257
272
  cmd_args << '-Ssourcepath' << ("-S" + source_paths.join(File::PATH_SEPARATOR)) unless source_paths.empty?
258
273
  cmd_args << '-d' << File.expand_path(target)
@@ -264,10 +279,9 @@ module Buildr::Scala
264
279
  cmd_args += files_from_sources(sources)
265
280
 
266
281
  unless Buildr.application.options.dryrun
267
- trace((['com.typesafe.zinc.Main.main'] + cmd_args).join(' '))
268
-
282
+ trace((['org.apache.buildr.ZincRunner'] + cmd_args).join(' '))
269
283
  begin
270
- Java::Commands.java 'com.typesafe.zinc.Main', *(cmd_args + [{ :classpath => Scalac.dependencies}])
284
+ Java::Commands.java 'org.apache.buildr.ZincRunner', *(cmd_args + [{ :classpath => Scalac.dependencies + [ File.join(File.dirname(__FILE__)) ]}])
271
285
  rescue => e
272
286
  fail "Zinc compiler crashed:\n#{e.inspect}\n#{e.backtrace.join("\n")}"
273
287
  end