buildr 1.4.9 → 1.4.10

Sign up to get free protection for your applications and to get access to all the features.
data/bin/buildr CHANGED
@@ -15,5 +15,6 @@
15
15
  # the License.
16
16
 
17
17
  require 'rubygems'
18
+ require 'bundler/setup'
18
19
  require 'buildr'
19
20
  Buildr.application.run
@@ -66,7 +66,7 @@ for those one-off tasks, with a language that's a joy to use.
66
66
  spec.add_dependency 'rubyforge', '2.0.4'
67
67
  spec.add_dependency 'hoe', '3.1.0'
68
68
  spec.add_dependency 'rjb', '1.4.2' if ($platform.to_s == 'x86-mswin32' || $platform.to_s == 'ruby')
69
- spec.add_dependency 'atoulme-Antwrap', '~> 0.7.2'
69
+ spec.add_dependency 'atoulme-Antwrap', '~> 0.7.4'
70
70
  spec.add_dependency 'diff-lcs', '1.1.3'
71
71
  spec.add_dependency 'rspec-expectations', '2.11.3'
72
72
  spec.add_dependency 'rspec-mocks', '2.11.3'
@@ -74,7 +74,8 @@ for those one-off tasks, with a language that's a joy to use.
74
74
  spec.add_dependency 'rspec', '2.11.0'
75
75
  spec.add_dependency 'xml-simple', '1.1.1'
76
76
  spec.add_dependency 'minitar', '0.5.3'
77
- spec.add_dependency 'jruby-openssl', '>= 0.7' if $platform.to_s == 'java'
77
+ spec.add_dependency 'jruby-openssl', '~> 0.8.2' if $platform.to_s == 'java'
78
+ spec.add_dependency 'bundler'
78
79
 
79
80
  # Unable to get this consistently working under jruby on windows
80
81
  unless $platform.to_s == 'java'
@@ -89,7 +90,6 @@ for those one-off tasks, with a language that's a joy to use.
89
90
 
90
91
  # NOTE: Must update all-in-one.rake if this is updated
91
92
  spec.add_development_dependency 'ffi-ncurses', '0.4.0' if $platform.to_s == 'java'
92
- spec.add_development_dependency 'bundler'
93
93
  spec.add_development_dependency 'win32console' if $platform.to_s == 'x86-mswin32'
94
94
  # Ideally we would depend on psych when the platform has >= 1.9.2 support and jruby platform version > 1.6.6
95
95
  #spec.add_development_dependency 'psych' if RUBY_VERSION >= '1.9.2'
@@ -20,16 +20,28 @@ The source code is included in both source and binary distribution, the Gem dist
20
20
 
21
21
  h2(#dist). Binaries and Source Code
22
22
 
23
+ h3. buildr 1.4.9 (2012-11-08)
24
+
25
+ |_. Package |_. MD5 Checksum |_. PGP |
26
+ | "buildr-1.4.9-java.gem":http://www.apache.org/dyn/closer.cgi/buildr/1.4.9/buildr-1.4.9-java.gem | "5ef4ce3e4b44049842f16db642d6d4d4":http://www.apache.org/dist/buildr/1.4.9/buildr-1.4.9-java.gem.md5 | "Sig":http://www.apache.org/dist/buildr/1.4.9/buildr-1.4.9-java.gem.asc |
27
+ | "buildr-1.4.9-x86-mswin32.gem":http://www.apache.org/dyn/closer.cgi/buildr/1.4.9/buildr-1.4.9-x86-mswin32.gem | "24f6f063eea5c7d1aa60fedb4ec5f85e":http://www.apache.org/dist/buildr/1.4.9/buildr-1.4.9-x86-mswin32.gem.md5 | "Sig":http://www.apache.org/dist/buildr/1.4.9/buildr-1.4.9-x86-mswin32.gem.asc |
28
+ | "buildr-1.4.9.gem":http://www.apache.org/dyn/closer.cgi/buildr/1.4.9/buildr-1.4.9.gem | "e028943fa3342964c40b8a0bf1477b45":http://www.apache.org/dist/buildr/1.4.9/buildr-1.4.9.gem.md5 | "Sig":http://www.apache.org/dist/buildr/1.4.9/buildr-1.4.9.gem.asc |
29
+ | "buildr-1.4.9.tgz":http://www.apache.org/dyn/closer.cgi/buildr/1.4.9/buildr-1.4.9.tgz | "8c4b43b79d4f446cfd713d994451a76e":http://www.apache.org/dist/buildr/1.4.9/buildr-1.4.9.tgz.md5 | "Sig":http://www.apache.org/dist/buildr/1.4.9/buildr-1.4.9.tgz.asc |
30
+ | "buildr-1.4.9.zip":http://www.apache.org/dyn/closer.cgi/buildr/1.4.9/buildr-1.4.9.zip | "d879312ac99d46a66d816df119d71e17":http://www.apache.org/dist/buildr/1.4.9/buildr-1.4.9.zip.md5 | "Sig":http://www.apache.org/dist/buildr/1.4.9/buildr-1.4.9.zip.asc |
31
+
32
+ p>. ("Release signing keys":http://www.apache.org/dist/buildr/1.4.9/KEYS)
33
+
34
+
23
35
  h3. buildr 1.4.8 (2012-11-01)
24
36
 
25
37
  |_. Package |_. MD5 Checksum |_. PGP |
26
- | "buildr-1.4.8-java.gem":http://www.apache.org/dyn/closer.cgi/buildr/1.4.8/buildr-1.4.8-java.gem | "68679f89f7e0f90bb4446965d1184e0a":http://www.apache.org/dist/buildr/1.4.8/buildr-1.4.8-java.gem.md5 | "Sig":http://www.apache.org/dist/buildr/1.4.8/buildr-1.4.8-java.gem.asc |
27
- | "buildr-1.4.8-x86-mswin32.gem":http://www.apache.org/dyn/closer.cgi/buildr/1.4.8/buildr-1.4.8-x86-mswin32.gem | "40abdb4c2ff2bb7232822198e6882ee0":http://www.apache.org/dist/buildr/1.4.8/buildr-1.4.8-x86-mswin32.gem.md5 | "Sig":http://www.apache.org/dist/buildr/1.4.8/buildr-1.4.8-x86-mswin32.gem.asc |
28
- | "buildr-1.4.8.gem":http://www.apache.org/dyn/closer.cgi/buildr/1.4.8/buildr-1.4.8.gem | "0e92c281a59d3fc475f1a0184200a70f":http://www.apache.org/dist/buildr/1.4.8/buildr-1.4.8.gem.md5 | "Sig":http://www.apache.org/dist/buildr/1.4.8/buildr-1.4.8.gem.asc |
29
- | "buildr-1.4.8.tgz":http://www.apache.org/dyn/closer.cgi/buildr/1.4.8/buildr-1.4.8.tgz | "f19029a7dba62917978b42652328bf6c":http://www.apache.org/dist/buildr/1.4.8/buildr-1.4.8.tgz.md5 | "Sig":http://www.apache.org/dist/buildr/1.4.8/buildr-1.4.8.tgz.asc |
30
- | "buildr-1.4.8.zip":http://www.apache.org/dyn/closer.cgi/buildr/1.4.8/buildr-1.4.8.zip | "8a484f5ec930eba0b93fe9079fd41079":http://www.apache.org/dist/buildr/1.4.8/buildr-1.4.8.zip.md5 | "Sig":http://www.apache.org/dist/buildr/1.4.8/buildr-1.4.8.zip.asc |
38
+ | "buildr-1.4.8-java.gem":http://archive.apache.org/dist/buildr/1.4.8/buildr-1.4.8-java.gem | "68679f89f7e0f90bb4446965d1184e0a":http://archive.apache.org/dist/buildr/1.4.8/buildr-1.4.8-java.gem.md5 | "Sig":http://archive.apache.org/dist/buildr/1.4.8/buildr-1.4.8-java.gem.asc |
39
+ | "buildr-1.4.8-x86-mswin32.gem":http://archive.apache.org/dist/buildr/1.4.8/buildr-1.4.8-x86-mswin32.gem | "40abdb4c2ff2bb7232822198e6882ee0":http://archive.apache.org/dist/buildr/1.4.8/buildr-1.4.8-x86-mswin32.gem.md5 | "Sig":http://archive.apache.org/dist/buildr/1.4.8/buildr-1.4.8-x86-mswin32.gem.asc |
40
+ | "buildr-1.4.8.gem":http://archive.apache.org/dist/buildr/1.4.8/buildr-1.4.8.gem | "0e92c281a59d3fc475f1a0184200a70f":http://archive.apache.org/dist/buildr/1.4.8/buildr-1.4.8.gem.md5 | "Sig":http://archive.apache.org/dist/buildr/1.4.8/buildr-1.4.8.gem.asc |
41
+ | "buildr-1.4.8.tgz":http://archive.apache.org/dist/buildr/1.4.8/buildr-1.4.8.tgz | "f19029a7dba62917978b42652328bf6c":http://archive.apache.org/dist/buildr/1.4.8/buildr-1.4.8.tgz.md5 | "Sig":http://archive.apache.org/dist/buildr/1.4.8/buildr-1.4.8.tgz.asc |
42
+ | "buildr-1.4.8.zip":http://archive.apache.org/dist/buildr/1.4.8/buildr-1.4.8.zip | "8a484f5ec930eba0b93fe9079fd41079":http://archive.apache.org/dist/buildr/1.4.8/buildr-1.4.8.zip.md5 | "Sig":http://archive.apache.org/dist/buildr/1.4.8/buildr-1.4.8.zip.asc |
31
43
 
32
- p>. ("Release signing keys":http://www.apache.org/dist/buildr/1.4.8/KEYS)
44
+ p>. ("Release signing keys":http://archive.apache.org/dist/buildr/1.4.8/KEYS)
33
45
 
34
46
 
35
47
  h3. buildr 1.4.7 (2012-05-29)
@@ -46,7 +46,14 @@ So let's get started. You can "read the documentation online":quick_start.html,
46
46
 
47
47
  h2(#news). What's New
48
48
 
49
- Highlights from Buildr 1.4.8 (Nov 11th, 2012)
49
+ Highlights from Buildr 1.4.9 (Nov 8th, 2012)
50
+
51
+ * Fixed: Fixed the interaction with the FileUtils classes. The last release
52
+ introduced a non-deterministic bug that sometimes caused logging
53
+ preferences to be ignored and the install method to be
54
+ inadvertently overwritten.
55
+
56
+ Highlights from Buildr 1.4.8 (Nov 1st, 2012)
50
57
 
51
58
  * Change: Revert to importing non-verbose FileUtils utility methods to match buildr 1.4.6 release and earlier.
52
59
  * Added: Experimental support for jacoco code coverage tool.
data/etc/KEYS CHANGED
@@ -231,3 +231,90 @@ ApsiYNbEfoq0U4Fj3PFsWXMHngom5lNWLlVSpn7zvhAIwpXY/Np3YFx5BVchCDBG
231
231
  IAU=
232
232
  =dNyx
233
233
  -----END PGP PUBLIC KEY BLOCK-----
234
+ pub 4096R/D6969DDE 2013-02-10 [expires: 2015-02-10]
235
+ uid Peter Donald <peter@realityforge.org>
236
+ sub 4096R/FC72F8B1 2013-02-10 [expires: 2015-02-10]
237
+ -----BEGIN PGP PUBLIC KEY BLOCK-----
238
+ Version: GnuPG v1.4.12 (Darwin)
239
+ Comment: GPGTools - http://gpgtools.org
240
+
241
+ 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
318
+ vNcZccHdEbAhg06FGA6u16Jc
319
+ =Kl2l
320
+ -----END PGP PUBLIC KEY BLOCK-----
@@ -91,7 +91,7 @@ module Buildr
91
91
  def load_from(name, path = nil)
92
92
  unless path
93
93
  fail "Internal error: attempting to access local setting before buildfile located" unless @application.rakefile
94
- path = File.dirname(@application.rakefile)
94
+ path = File.expand_path(File.dirname(@application.rakefile))
95
95
  end
96
96
  file_name = ['yaml', 'yml'].map { |ext| File.join(path, "#{name}.#{ext}") }.find { |fn| File.exist?(fn) }
97
97
  return {} unless file_name
@@ -483,7 +483,7 @@ module Buildr
483
483
  files = [ File.exist?(new) ? new : old, 'buildr.rb' ].select { |file| File.exist?(file) }
484
484
  files += [ File.expand_path('buildr.rake', ENV['HOME']), File.expand_path('buildr.rake') ].
485
485
  select { |file| File.exist?(file) }.each { |file| warn "Please use '#{file.ext('rb')}' instead of '#{file}'" }
486
- files += (options.rakelib || []).collect { |rlib| Dir["#{rlib}/*.rake"] }.flatten
486
+ files += (options.rakelib || []).collect { |rlib| Dir["#{File.expand_path(rlib)}/*.rake"] }.flatten
487
487
 
488
488
  # Load .buildr/_buildr.rb same directory as buildfile
489
489
  %w{.buildr.rb _buildr.rb}.each do |f|
@@ -492,6 +492,7 @@ module Buildr
492
492
  end
493
493
 
494
494
  files.each do |file|
495
+ file = File.expand_path(file)
495
496
  unless $LOADED_FEATURES.include?(file)
496
497
  load file
497
498
  $LOADED_FEATURES << file
@@ -90,14 +90,14 @@ module Buildr
90
90
 
91
91
  def create_component(name, attrs = {})
92
92
  target = StringIO.new
93
- Builder::XmlMarkup.new(:target => target, :indent => 2).component(attrs.merge({:name => name})) do |xml|
93
+ Builder::XmlMarkup.new(:target => target, :indent => 2).component({:name => name}.merge(attrs)) do |xml|
94
94
  yield xml if block_given?
95
95
  end
96
96
  Buildr::IntellijIdea.new_document(target.string).root
97
97
  end
98
98
 
99
99
  def components
100
- @components ||= self.default_components.compact
100
+ @components ||= []
101
101
  end
102
102
 
103
103
  def create_composite_component(name, components)
@@ -135,7 +135,15 @@ module Buildr
135
135
  inject_component(doc, element)
136
136
  end
137
137
  end
138
- inject_components(doc, self.components)
138
+ inject_components(doc, self.default_components.compact + self.components)
139
+
140
+ # Sort the components in the same order the idea sorts them
141
+ sorted = doc.root.get_elements('//component').sort { |s1, s2| s1.attribute('name').value <=> s2.attribute('name').value }
142
+ doc = base_document
143
+ sorted.each do |element|
144
+ doc.root.add_element element
145
+ end
146
+
139
147
  doc
140
148
  end
141
149
 
@@ -161,6 +169,7 @@ module Buildr
161
169
  attr_accessor :type
162
170
  attr_accessor :group
163
171
  attr_reader :facets
172
+ attr_writer :jdk_version
164
173
 
165
174
  def initialize
166
175
  super()
@@ -174,6 +183,10 @@ module Buildr
174
183
  @buildr_project = buildr_project
175
184
  end
176
185
 
186
+ def jdk_version
187
+ @jdk_version || buildr_project.compile.options.source || "1.6"
188
+ end
189
+
177
190
  def extension
178
191
  "iml"
179
192
  end
@@ -474,7 +487,7 @@ module Buildr
474
487
 
475
488
  def generate_initial_order_entries(xml)
476
489
  xml.orderEntry :type => "sourceFolder", :forTests => "false"
477
- xml.orderEntry :type => "inheritedJdk"
490
+ xml.orderEntry :type => "jdk", :jdkName => jdk_version, :jdkType => "JavaSDK"
478
491
  end
479
492
 
480
493
  def generate_project_dependency(xml, other_project, export, test = false)
@@ -716,7 +729,7 @@ module Buildr
716
729
 
717
730
  def base_document
718
731
  target = StringIO.new
719
- Builder::XmlMarkup.new(:target => target).project(:version => "4", :relativePaths => "false")
732
+ Builder::XmlMarkup.new(:target => target).project(:version => "4")
720
733
  Buildr::IntellijIdea.new_document(target.string)
721
734
  end
722
735
 
@@ -725,10 +738,17 @@ module Buildr
725
738
  lambda { modules_component },
726
739
  vcs_component,
727
740
  artifacts_component,
728
- configurations_component
741
+ configurations_component,
742
+ lambda { framework_detection_exclusion_component }
729
743
  ]
730
744
  end
731
745
 
746
+ def framework_detection_exclusion_component
747
+ create_component('FrameworkDetectionExcludesConfiguration') do |xml|
748
+ xml.file :url => file_path(buildr_project._(:artifacts))
749
+ end
750
+ end
751
+
732
752
  def initial_components
733
753
  [
734
754
  lambda { project_root_manager_component },
@@ -737,12 +757,13 @@ module Buildr
737
757
  end
738
758
 
739
759
  def project_root_manager_component
740
- attribs = {"version" => "2",
741
- "assert-keyword" => "true",
742
- "jdk-15" => "true",
743
- "project-jdk-name" => self.jdk_version,
744
- "project-jdk-type" => "JavaSDK",
745
- "languageLevel" => "JDK_#{self.jdk_version.gsub('.', '_')}"}
760
+ attribs = {}
761
+ attribs["version"] = "2"
762
+ attribs["languageLevel"] = "JDK_#{self.jdk_version.gsub('.', '_')}"
763
+ attribs["assert-keyword"] = "true"
764
+ attribs["jdk-15"] = "true"
765
+ attribs["project-jdk-name"] = self.jdk_version
766
+ attribs["project-jdk-type"] = "JavaSDK"
746
767
  create_component("ProjectRootManager", attribs) do |xml|
747
768
  xml.output("url" => "file://$PROJECT_DIR$/out")
748
769
  end
@@ -33,6 +33,7 @@ module Java
33
33
  # "-o", "src/main/webapp/styles/styles-all-min.css")
34
34
  #
35
35
  # The last argument may be a Hash with additional options:
36
+ # * :dir -- The working directory from which to execute task..
36
37
  # * :classpath -- One or more file names, tasks or artifact specifications.
37
38
  # These are all expanded into artifacts, and all tasks are invoked.
38
39
  # * :java_args -- Any additional arguments to pass (e.g. -hotspot, -xms)
@@ -49,7 +50,18 @@ module Java
49
50
  name = "java #{args.first}"
50
51
  end
51
52
 
52
- cmd_args = [path_to_bin('java')]
53
+ cmd_args = []
54
+ if options[:dir]
55
+ pwd = options[:dir]
56
+ if Buildr::Util.win_os?
57
+ # Ruby uses forward slashes regardless of platform,
58
+ # unfortunately cd c:/some/path fails on Windows
59
+ cmd_args << "cd /d \"#{pwd.gsub(%r{/}, '\\')}\" && "
60
+ else
61
+ cmd_args << "cd '#{pwd}' && "
62
+ end
63
+ end
64
+ cmd_args << path_to_bin('java')
53
65
  cp = classpath_from(options)
54
66
  cmd_args << '-classpath' << cp.join(File::PATH_SEPARATOR) unless cp.empty?
55
67
  options[:properties].each { |k, v| cmd_args << "-D#{k}=#{v}" } if options[:properties]
@@ -99,15 +99,14 @@ module Buildr
99
99
  apply = managed(spec)
100
100
  spec = apply.merge(spec) if apply
101
101
 
102
+ next if options[:exclusions] && options[:exclusions].any? { |ex| dep['groupId'] == ex['groupId'] && dep['artifactId'] == ex['artifactId'] }
103
+
102
104
  # calculate transitive dependencies
103
105
  if options[:scopes].include?(spec[:scope])
104
106
  spec.delete(:scope)
105
107
 
106
108
  exclusions = dep["exclusions"].first["exclusion"] rescue nil
107
- transitive_deps = POM.load(spec).dependencies(options[:scopes_transitive] || SCOPES_TRANSITIVE)
108
- transitive_deps = transitive_deps.reject{|dep|
109
- exclusions.find {|ex| dep.index("#{ex['groupId'].first}:#{ex['artifactId'].first}:") == 0}
110
- } if exclusions
109
+ transitive_deps = POM.load(spec).dependencies(:exclusions => exclusions, :scopes => (options[:scopes_transitive] || SCOPES_TRANSITIVE) ) rescue []
111
110
 
112
111
  [Artifact.to_spec(spec)] + transitive_deps
113
112
  end
@@ -293,9 +293,10 @@ module Buildr
293
293
  # Support the following options:
294
294
  # * :properties -- Hash of properties passed to the test suite.
295
295
  # * :java_args -- Arguments passed to the JVM.
296
+ # * :args -- Arguments passed to the TestNG command line runner.
296
297
  class TestNG < TestFramework::Java
297
298
 
298
- VERSION = '5.10'
299
+ VERSION = '6.8'
299
300
 
300
301
  class << self
301
302
  def version
@@ -303,7 +304,8 @@ module Buildr
303
304
  end
304
305
 
305
306
  def dependencies
306
- ["org.testng:testng:jar:jdk15:#{version}"]+ JMock.dependencies
307
+ return ["org.testng:testng:jar:jdk15:#{version}"] + JMock.dependencies if version < "6.0"
308
+ ["org.testng:testng:jar:#{version}",'com.beust:jcommander:jar:1.27'] + JMock.dependencies
307
309
  end
308
310
 
309
311
  private
@@ -321,7 +323,10 @@ module Buildr
321
323
  end
322
324
 
323
325
  def run(tests, dependencies) #:nodoc:
324
- cmd_args = ['-log', '2', '-sourcedir', task.compile.sources.join(';'), '-suitename', task.project.id ]
326
+ cmd_args = []
327
+ cmd_args << '-suitename' << task.project.id
328
+ cmd_args << '-sourcedir' << task.compile.sources.join(';') if TestNG.version < "6.0"
329
+ cmd_args << '-log' << '2'
325
330
  cmd_args << '-d' << task.report_to.to_s
326
331
  exclude_args = options[:excludegroups] || []
327
332
  if !exclude_args.empty?
@@ -334,6 +339,8 @@ module Buildr
334
339
  # run all tests in the same suite
335
340
  cmd_args << '-testclass' << tests
336
341
 
342
+ cmd_args += options[:args] if options[:args]
343
+
337
344
  cmd_options = { :properties=>options[:properties], :java_args=>options[:java_args],
338
345
  :classpath=>dependencies, :name => "TestNG in #{task.send(:project).name}" }
339
346
 
@@ -139,14 +139,16 @@ module Buildr
139
139
  #
140
140
  # Creates POM XML for this artifact.
141
141
  def pom_xml
142
- xml = Builder::XmlMarkup.new(:indent=>2)
143
- xml.instruct!
144
- xml.project do
145
- xml.modelVersion '4.0.0'
146
- xml.groupId group
147
- xml.artifactId id
148
- xml.version version
149
- xml.classifier classifier if classifier
142
+ Proc.new do
143
+ xml = Builder::XmlMarkup.new(:indent=>2)
144
+ xml.instruct!
145
+ xml.project do
146
+ xml.modelVersion '4.0.0'
147
+ xml.groupId group
148
+ xml.artifactId id
149
+ xml.version version
150
+ xml.classifier classifier if classifier
151
+ end
150
152
  end
151
153
  end
152
154
 
@@ -372,6 +374,7 @@ module Buildr
372
374
 
373
375
  # :call-seq:
374
376
  # content(string) => self
377
+ # content(Proc) => self
375
378
  #
376
379
  # Use this when you want to install or upload an artifact from a given content, for example:
377
380
  # readme = artifact('com.example:readme:txt:1.0').content(<<-EOF
@@ -379,13 +382,17 @@ module Buildr
379
382
  # <<EOF
380
383
  # install readme
381
384
  #
382
- # If the argument is not a string, it will be converted to a string using to_s
385
+ # If the argument is a Proc the it will be called when the artifact is written out. If the result is not a proc
386
+ # and not a string, it will be converted to a string using to_s
383
387
  def content(string = nil)
384
- return @content unless string
388
+ unless string
389
+ @content = @content.call if @content.is_a?(Proc)
390
+ return @content
391
+ end
385
392
 
386
393
  unless @content
387
394
  enhance do
388
- write name, @content
395
+ write name, self.content
389
396
  end
390
397
 
391
398
  class << self