ruby-maven 3.0.3.0.28.4.1 → 3.0.3.0.28.5

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.
Binary file
@@ -0,0 +1,161 @@
1
+ require 'fileutils'
2
+ require 'ruby-maven'
3
+ module Maven
4
+ class CucumberSteps
5
+
6
+ def initialize(options = {})
7
+ @options = {:ruby_version => RUBY_VERSION }
8
+ @options[:jruby_version] = JRUBY_VERSION if defined? JRUBY_VERSION
9
+
10
+ @options.merge!(options || {})
11
+ end
12
+
13
+ def rmvn
14
+ @rmvn ||= Maven::RubyMaven.new
15
+ end
16
+
17
+ def copy_tests(tests)
18
+ FileUtils.mkdir_p(@app_directory)
19
+ FileUtils.cp_r(File.join('templates', "tests-#{tests}", "."),
20
+ File.join(@app_directory, 'test'),
21
+ :remove_destination => true)
22
+ end
23
+
24
+ def copy_specs(specs)
25
+ FileUtils.mkdir_p(@app_directory)
26
+ FileUtils.cp_r(File.join('templates', "specs-#{specs}", "."),
27
+ File.join(@app_directory, 'spec'),
28
+ :remove_destination => true)
29
+ end
30
+
31
+ def copy_files(files)
32
+ FileUtils.mkdir_p(@app_directory)
33
+ FileUtils.cp_r(File.join('templates', "files-#{files}", "."),
34
+ @app_directory,
35
+ :remove_destination => true)
36
+ end
37
+
38
+ def create_rails_application(template)
39
+ name = template.sub(/.template$/, '')
40
+ @app_directory = File.join('target', name)
41
+
42
+ # rails version from gemspec
43
+ gemspec = File.read(Dir.glob("*.gemspec")[0])
44
+ rails_version = gemspec.split("\n").detect { |l| l =~ /development_dep.*rails/ }.sub(/'$/, '').sub(/.*'/, '')
45
+
46
+ rmvn.options['-Dplugin.version'] = @options[:plugin_version] if @options[:plugin_version]
47
+ rmvn.options['-Djruby.version'] = @options[:jruby_version] if @options[:jruby_version]
48
+ if @options[:ruby_version]
49
+ rversion = @options[:ruby_version] =~ /^1.8./ ? '--1.8': '--1.9'
50
+ rmvn.options['-Djruby.switches'] = rversion
51
+ end
52
+
53
+ rmvn.options['-Drails.version'] = rails_version
54
+ rmvn.options['-Dgem.home'] = ENV['GEM_HOME']
55
+ rmvn.options['-Dgem.path'] = ENV['GEM_PATH']
56
+ rmvn.options['-o'] = nil
57
+
58
+ FileUtils.rm_rf(@app_directory)
59
+
60
+ template_file = File.expand_path("templates/#{template}")
61
+ rmvn.exec("rails", "new", @app_directory, "-f", '--', '-e', "-Dtemplate=#{template_file}")
62
+ end
63
+
64
+ def given_template(template)
65
+ create_rails_application(template)
66
+ end
67
+
68
+ def given_template_and_tests(template, tests)
69
+ create_rails_application(template)
70
+ copy_tests(tests)
71
+ end
72
+
73
+ def given_template_and_specs(template, specs)
74
+ create_rails_application(template)
75
+ copy_specs(specs)
76
+ end
77
+
78
+ def given_template_and_files(template, files)
79
+ create_rails_application(template)
80
+ copy_files(files)
81
+ end
82
+
83
+ def given_application(name)
84
+ @app_directory = File.join('target', name)
85
+ end
86
+
87
+ def given_application_and_tests(name, tests)
88
+ @app_directory = File.join('target', name)
89
+ copy_tests(tests)
90
+ end
91
+
92
+ def given_application_and_specs(name, specs)
93
+ @app_directory = File.join('target', name)
94
+ copy_specs(specs)
95
+ end
96
+
97
+ def given_application_and_files(name, files)
98
+ @app_directory = File.join('target', name)
99
+ copy_files(files)
100
+ end
101
+
102
+ def execute(args)
103
+ rmvn.options['-l'] = "output.log"
104
+ rmvn.exec_in(@app_directory, args.split(' '))
105
+ end
106
+
107
+ def expected_output(expected)
108
+ result = File.read(File.join(@app_directory, "output.log"))
109
+ expected.split(/\"?\s+and\s+\"?/).each do |exp|
110
+ puts exp
111
+ yield(result =~ /.*#{exp}.*/)
112
+ end
113
+ end
114
+ end
115
+ end
116
+
117
+
118
+ steps = Maven::CucumberSteps.new(:plugin_version => '0.28.5-SNAPSHOT')
119
+
120
+ Given /^I create new rails application with template "(.*)"$/ do |template|
121
+ steps.given_template(template)
122
+ end
123
+
124
+ Given /^I create new rails application with template "(.*)" and "(.*)" tests$/ do |template, tests|
125
+ steps.given_template_and_tests(template, tests)
126
+ end
127
+
128
+ Given /^I create new rails application with template "(.*)" and "(.*)" specs$/ do |template, specs|
129
+ steps.given_template_and_specs(template, specs)
130
+ end
131
+
132
+ Given /^I create new rails application with template "(.*)" and "(.*)" files$/ do |template, files|
133
+ steps.given_template_and_files(template, files)
134
+ end
135
+
136
+ Given /^me an existing rails application "(.*)"$/ do |name|
137
+ steps.given_application(name)
138
+ end
139
+
140
+ Given /^me an existing rails application "(.*)" and "(.*)" tests$/ do |name, tests|
141
+ steps.given_application_and_tests(name, tests)
142
+ end
143
+
144
+ Given /^me an existing rails application "(.*)" and "(.*)" specs$/ do |name, specs|
145
+ steps.given_application_and_specs(name, specs)
146
+ end
147
+
148
+ Given /^me an existing rails application "(.*)" and "(.*)" files$/ do |name, files|
149
+ steps.given_application_and_files(name, files)
150
+ end
151
+
152
+ And /^I execute \"(.*)\"$/ do |args|
153
+ steps.execute(args)
154
+ end
155
+
156
+ Then /^the output should contain \"(.*)\"$/ do |expected|
157
+ steps.expected_output(expected) do |exp|
158
+ exp.should_not be_nil
159
+ end
160
+ end
161
+
@@ -46,9 +46,9 @@ module Maven
46
46
  else
47
47
  spec = ::Gem::Specification.load(specfile)
48
48
  loaded_files << File.expand_path(specfile)
49
+ @gemspec = specfile
49
50
  end
50
51
  raise "file not found '#{specfile}'" unless spec
51
- @is_gemspec = loaded_files.size == 0
52
52
  artifact_id spec.name
53
53
  version spec.version
54
54
  name spec.summary || "#{self.artifact_id} - gem"
@@ -65,6 +65,7 @@ module Maven
65
65
  end
66
66
 
67
67
  config = {}
68
+ add_param(config, "gemspec", @gemspec) if loaded_files.size == 1
68
69
  add_param(config, "autorequire", spec.autorequire)
69
70
  add_param(config, "defaultExecutable", spec.default_executable)
70
71
  add_param(config, "testFiles", spec.test_files)
@@ -113,7 +114,8 @@ module Maven
113
114
  end
114
115
 
115
116
  versions = dep.requirement.requirements.collect do |req|
116
- req.to_s
117
+ # use this construct to get the same result in 1.8.x and 1.9.x
118
+ req.collect{ |i| i.to_s }.join
117
119
  end
118
120
  gem(dep.name, versions).scope = scope
119
121
  end
@@ -173,22 +175,6 @@ module Maven
173
175
 
174
176
  repository("rubygems-prereleases").url = "http://rubygems-proxy.torquebox.org/prereleases" if has_prerelease && !repository("rubygems-prereleases").url
175
177
 
176
- if !jar?("org.jruby:jruby-complete") && !jar?("org.jruby:jruby-core") && versions[:jruby_version]
177
- minor = versions[:jruby_version].sub(/[0-9]*\./, '').sub(/\..*/, '')
178
-
179
- #TODO once jruby-core pom is working !!!
180
- if minor.to_i > 55 #TODO fix minor minimum version
181
- jar("org.jruby:jruby-core", versions[:jruby_version])
182
- jar("org.jruby:jruby-stdlib", versions[:jruby_version])
183
- # override deps which works
184
- jar("jline:jline", '0.9.94') if versions[:jruby_version] =~ /1.6.[1-2]/
185
- jar("org.jruby.extras:jffi", '1.0.8', 'native') if versions[:jruby_version] =~ /1.6.[0-2]/
186
- jar("org.jruby.extras:jaffl", '0.5.10') if versions[:jruby_version] =~ /1.6.[0-2]/
187
- else
188
- jar("org.jruby:jruby-complete", versions[:jruby_version])
189
- end
190
- end
191
-
192
178
  # TODO go through all plugins to find out any SNAPSHOT version !!
193
179
  if versions[:jruby_plugins] =~ /-SNAPSHOT$/ || properties['jruby.plugins.version'] =~ /-SNAPSHOT$/
194
180
  plugin_repository("sonatype-snapshots") do |nexus|
@@ -339,7 +325,7 @@ module Maven
339
325
  end
340
326
  end
341
327
  end
342
- if dep && !@is_gemspec
328
+ if dep && !@gemspec
343
329
  project = self
344
330
 
345
331
  # first collect the missing deps it any
@@ -11,7 +11,8 @@ module Maven
11
11
  proj.to_xml
12
12
  end
13
13
 
14
- def read_gemfile(filename, plugin_version = nil, jruby_version = nil)
14
+ # the dummy allows to have all three methods the same argument list
15
+ def read_gemfile(filename, plugin_version = nil, dummy = nil)
15
16
  dir = File.dirname(filename)
16
17
  proj =
17
18
  if File.exists? File.join( dir, 'config', 'application.rb' )
@@ -21,16 +22,17 @@ module Maven
21
22
  end
22
23
  proj.load(filename.to_s)
23
24
  proj.load(File.join(File.dirname(filename.to_s), 'Mavenfile'))
24
- proj.add_defaults(versions(plugin_version, jruby_version))
25
+ proj.add_defaults(versions(plugin_version, nil))
25
26
  proj.dump_loaded_file_list
26
27
  proj.to_xml
27
28
  end
28
29
 
29
- def read_gemspec(filename, plugin_version = nil, jruby_version = nil)
30
+ # the dummy allows to have all three methods the same argument list
31
+ def read_gemspec(filename, plugin_version = nil, dummy = nil)
30
32
  proj = Maven::Tools::GemProject.new
31
33
  proj.load_gemspec(filename.to_s)
32
34
  proj.load(File.join(File.dirname(filename.to_s), 'Mavenfile'))
33
- proj.add_defaults(versions(plugin_version, jruby_version))
35
+ proj.add_defaults(versions(plugin_version, nil))
34
36
  proj.dump_loaded_file_list
35
37
  proj.to_xml
36
38
  end
@@ -28,6 +28,22 @@ module Maven
28
28
  versions[:jruby_rack] = '1.1.0.dev'
29
29
  end
30
30
 
31
+ if !jar?("org.jruby:jruby-complete") && !jar?("org.jruby:jruby-core") && versions[:jruby_version]
32
+ minor = versions[:jruby_version].sub(/[0-9]*\./, '').sub(/\..*/, '')
33
+
34
+ #TODO once jruby-core pom is working !!!
35
+ if minor.to_i > 55 #TODO fix minor minimum version
36
+ jar("org.jruby:jruby-core", versions[:jruby_version])
37
+ jar("org.jruby:jruby-stdlib", versions[:jruby_version])
38
+ # override deps which works
39
+ jar("jline:jline", '0.9.94') if versions[:jruby_version] =~ /1.6.[1-2]/
40
+ jar("org.jruby.extras:jffi", '1.0.8', 'native') if versions[:jruby_version] =~ /1.6.[0-2]/
41
+ jar("org.jruby.extras:jaffl", '0.5.10') if versions[:jruby_version] =~ /1.6.[0-2]/
42
+ else
43
+ jar("org.jruby:jruby-complete", versions[:jruby_version])
44
+ end
45
+ end
46
+
31
47
  jar("org.jruby.rack:jruby-rack", versions[:jruby_rack]) unless jar?("org.jruby.rack:jruby-rack")
32
48
 
33
49
  self.properties = {
@@ -4,7 +4,7 @@
4
4
  :jetty_plugin => "7.5.1.v20110908",
5
5
  :jruby_rack => "1.0.10",
6
6
  :war_plugin => "2.1.1",
7
- :jruby_plugins => "0.28.4",
7
+ :jruby_plugins => "0.28.5",
8
8
  :jruby_version => "1.6.4",
9
9
  }.freeze
10
10
  end
@@ -0,0 +1 @@
1
+ require 'ruby_maven'
@@ -16,7 +16,7 @@ module Maven
16
16
  :cucumber => [:test],
17
17
  :rspec => [:test],
18
18
  :runit => [:test],
19
- :bundler => [:install]
19
+ :bundler => [:install, :update]
20
20
  }
21
21
  ALIASES = {
22
22
  :ruby => :jruby,
@@ -71,10 +71,11 @@ module Maven
71
71
  version = args.detect do |a|
72
72
  a =~ /^-Dplugin.version=/
73
73
  end
74
+ version ||= options['-Dplugin.version']
74
75
 
75
76
  if version
76
77
  args.delete(version)
77
- version = version.sub(/^-Dplugin.version=/, ':')
78
+ version = ":" + version.sub(/^-Dplugin.version=/, '')
78
79
  end
79
80
  aa = if index = args.index("--")
80
81
  args[(index + 1)..-1]
@@ -193,7 +194,8 @@ module Maven
193
194
  a = generate_pom(*a)
194
195
  puts a.join ' '
195
196
  if defined? JRUBY_VERSION
196
- launch_jruby(a)
197
+ # TODO use a setup like maven_gemify from jruby to launch maven
198
+ launch_java(a)
197
199
  else
198
200
  launch_java(a)
199
201
  end
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: ruby-maven
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 3.0.3.0.28.4.1
5
+ version: 3.0.3.0.28.5
6
6
  platform: ruby
7
7
  authors:
8
8
  - mkristian
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2011-09-27 00:00:00 +05:30
13
+ date: 2011-10-13 00:00:00 +05:30
14
14
  default_executable:
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
@@ -63,6 +63,7 @@ files:
63
63
  - lib/maven-aether-provider-3.0.3.jar
64
64
  - lib/plexus-component-annotations-1.5.5.jar
65
65
  - lib/wagon-http-shared-1.0-beta-7.jar
66
+ - lib/ruby-maven-3.0.3.0.28.5.jar
66
67
  - lib/maven-model-builder-3.0.3.jar
67
68
  - lib/maven-repository-metadata-3.0.3.jar
68
69
  - lib/maven-model-3.0.3.jar
@@ -86,6 +87,8 @@ files:
86
87
  - lib/plexus-sec-dispatcher-1.3.jar
87
88
  - lib/ext/README.txt
88
89
  - lib/ruby/ruby_maven.rb
90
+ - lib/ruby/ruby-maven.rb
91
+ - lib/ruby/maven/cucumber_steps.rb
89
92
  - lib/ruby/maven/tools/execute_in_phase.rb
90
93
  - lib/ruby/maven/tools/rails_project.rb
91
94
  - lib/ruby/maven/tools/gem_project.rb