jbundler 0.5.5 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
data/lib/jbundler/pom.rb CHANGED
@@ -58,7 +58,65 @@ module JBundler
58
58
  end
59
59
 
60
60
  GROUP_ID = 'ruby.bundler'
61
-
61
+
62
+ def start_write_pom( out, name, version, packaging )
63
+ outputFactory = XMLOutputFactory.newFactory()
64
+ xmlStreamWriter = outputFactory.createXMLStreamWriter( out )
65
+
66
+ xmlStreamWriter.writeStartDocument
67
+ xmlStreamWriter.writeStartElement("project")
68
+
69
+ writeElement(xmlStreamWriter,"modelVersion","4.0.0")
70
+ writeElement(xmlStreamWriter,"groupId", GROUP_ID)
71
+ writeElement(xmlStreamWriter,"artifactId", name)
72
+ writeElement(xmlStreamWriter,"version", version.to_s.to_java)
73
+ writeElement(xmlStreamWriter,"packaging", packaging) if packaging
74
+ xmlStreamWriter
75
+ end
76
+
77
+ def to_classifier_version( coords )
78
+ if coords.size == 4
79
+ [ nil, coords[3] ]
80
+ else
81
+ [ coords[3], coords[4] ]
82
+ end
83
+ end
84
+
85
+ def write_dep( xmlStreamWriter, coord )
86
+ coords = coord.split(/:/)
87
+ group_id = coords[0]
88
+ artifact_id = coords[1]
89
+ extension = coords[2]
90
+ classifier, version = to_classifier_version( coords )
91
+
92
+ xmlStreamWriter.writeStartElement("dependency".to_java)
93
+ writeElement(xmlStreamWriter,"groupId", group_id)
94
+ writeElement(xmlStreamWriter,"artifactId", artifact_id)
95
+ writeElement(xmlStreamWriter,"version", version)
96
+
97
+ writeElement(xmlStreamWriter,"type", extension) if extension != 'jar'
98
+ writeElement(xmlStreamWriter,"classifier", classifier) if classifier
99
+ xmlStreamWriter.writeEndElement #dependency
100
+ end
101
+
102
+ def write_dependencies( xmlStreamWriter, deps )
103
+ xmlStreamWriter.writeStartElement("dependencies".to_java)
104
+
105
+ deps.each do |line|
106
+ coord = to_coordinate(line)
107
+ write_dep( xmlStreamWriter, coord ) if coord
108
+ end
109
+
110
+ xmlStreamWriter.writeEndElement #dependencies
111
+ end
112
+
113
+ def end_write_pom( xmlStreamWriter )
114
+ xmlStreamWriter.writeEndElement #project
115
+
116
+ xmlStreamWriter.writeEndDocument
117
+ xmlStreamWriter.close
118
+ end
119
+
62
120
  public
63
121
 
64
122
  def coordinate
@@ -80,50 +138,15 @@ module JBundler
80
138
 
81
139
  @file = File.join(temp_dir, 'pom.xml')
82
140
 
83
- out = java.io.BufferedOutputStream.new(java.io.FileOutputStream.new(@file.to_java))
84
- outputFactory = XMLOutputFactory.newFactory()
85
- xmlStreamWriter = outputFactory.createXMLStreamWriter(out)
86
- xmlStreamWriter.writeStartDocument
87
- xmlStreamWriter.writeStartElement("project")
88
-
89
- writeElement(xmlStreamWriter,"modelVersion","4.0.0")
90
- writeElement(xmlStreamWriter,"groupId", GROUP_ID)
91
- writeElement(xmlStreamWriter,"artifactId", name)
92
- writeElement(xmlStreamWriter,"version", version.to_s.to_java)
93
- writeElement(xmlStreamWriter,"packaging", packaging) if packaging
94
-
95
- xmlStreamWriter.writeStartElement("dependencies".to_java)
96
-
97
- deps.each do |line|
98
- if coord = to_coordinate(line)
99
- coords = coord.split(/:/)
100
- group_id = coords[0]
101
- artifact_id = coords[1]
102
- extension = coords[2]
103
- classifier = nil
104
- if coords.size == 4
105
- version = coords[3]
106
- else
107
- classifier = coords[3]
108
- version = coords[4]
109
- end
110
-
111
- xmlStreamWriter.writeStartElement("dependency".to_java)
112
- writeElement(xmlStreamWriter,"groupId", group_id)
113
- writeElement(xmlStreamWriter,"artifactId", artifact_id)
114
- writeElement(xmlStreamWriter,"version", version)
115
-
116
- writeElement(xmlStreamWriter,"type", extension) if extension != 'jar'
117
- writeElement(xmlStreamWriter,"classifier", classifier) if classifier
118
- xmlStreamWriter.writeEndElement #dependency
119
- end
120
- end
121
- xmlStreamWriter.writeEndElement #dependencies
141
+ out = java.io.BufferedOutputStream.new( java.io.FileOutputStream.new( @file.to_java ) )
142
+
143
+ xmlStreamWriter = start_write_pom( out, name, version, packaging )
122
144
 
123
- xmlStreamWriter.writeEndElement #project
145
+ write_dependencies( xmlStreamWriter, deps )
146
+
147
+ end_write_pom( xmlStreamWriter )
124
148
 
125
- xmlStreamWriter.writeEndDocument
126
- xmlStreamWriter.close
149
+ ensure
127
150
  out.close
128
151
  end
129
152
 
@@ -0,0 +1,71 @@
1
+ require 'maven/ruby/maven'
2
+ module JBundler
3
+
4
+ class PomRunner
5
+
6
+ def initialize( config )
7
+ @config = config
8
+ end
9
+
10
+ def method_missing( m, *args )
11
+ result = @config[ m ] || @config[ m.to_s ]
12
+ result.nil? ? super : result
13
+ end
14
+
15
+ def maven_new
16
+ m = Maven::Ruby::Maven.new
17
+ m.property( 'base.dir', File.expand_path( basedir ) )
18
+ m.property( 'work.dir', File.expand_path( workdir ) ) if workdir
19
+ m.property( 'verbose', debug || verbose )
20
+ if debug
21
+ m.options[ '-X' ] = nil
22
+ elsif verbose
23
+ m.options[ '-e' ] = nil
24
+ else
25
+ m.options[ '-q' ] = nil
26
+ end
27
+ m.verbose = debug
28
+ m
29
+ end
30
+ private :maven_new
31
+
32
+ def maven
33
+ @m ||= maven_new
34
+ end
35
+
36
+ def basedir
37
+ File.expand_path( '.' )
38
+ end
39
+
40
+ def workdir
41
+ @config[ 'workdir' ]
42
+ end
43
+
44
+ def work_dir
45
+ # needs default here
46
+ workdir || 'pkg'
47
+ end
48
+
49
+ def debug
50
+ @config[ 'debug' ] || false
51
+ end
52
+
53
+ def verbose
54
+ @config[ 'verbose' ] || false
55
+ end
56
+
57
+ def clean?
58
+ @config[ 'clean' ] || false
59
+ end
60
+
61
+ def pom_file
62
+ raise 'overwrite this method'
63
+ end
64
+
65
+ def exec( *args )
66
+ maven.options[ '-f' ] ||= pom_file
67
+ args.unshift :clean if clean?
68
+ maven.exec( *args )
69
+ end
70
+ end
71
+ end
data/lib/jbundler/show.rb CHANGED
@@ -13,30 +13,40 @@ module JBundler
13
13
  @classpath_file = JBundler::ClasspathFile.new( @config.classpath_file )
14
14
  end
15
15
 
16
- def do_it( debug = false )
17
- jarfile = Maven::Tools::Jarfile.new( @config.jarfile )
18
- vendor = JBundler::Vendor.new( @config.vendor_dir )
19
- gemfile_lock = JBundler::GemfileLock.new( jarfile,
20
- @config.gemfile_lock )
21
- end
22
-
23
16
  def show_classpath
24
- @classpath_file.require_classpath
25
- warn "jruby core classpath:"
26
- JBUNDLER_JRUBY_CLASSPATH.each do |path|
27
- warn "\t#{path}"
28
- end
29
- warn "jbundler runtime classpath:"
30
- JBUNDLER_CLASSPATH.each do |path|
31
- warn "\t#{path}"
32
- end
33
- warn "jbundler test classpath:"
34
- if JBUNDLER_TEST_CLASSPATH.empty?
35
- warn "\t--- empty ---"
36
- else
37
- JBUNDLER_TEST_CLASSPATH.each do |path|
17
+ return if ! @config.verbose
18
+ vendor = JBundler::Vendor.new(@config.vendor_dir)
19
+ if vendor.vendored?
20
+ vendor.require_jars
21
+ warn "complete classpath:"
22
+ $CLASSPATH.each do |path|
38
23
  warn "\t#{path}"
39
24
  end
25
+ else
26
+ @classpath_file.load_classpath
27
+ warn ''
28
+ warn 'jbundler provided classpath:'
29
+ warn '----------------'
30
+ JBUNDLER_JRUBY_CLASSPATH.each do |path|
31
+ warn "#{path}"
32
+ end
33
+ warn ''
34
+ warn 'jbundler runtime classpath:'
35
+ warn '---------------------------'
36
+ JBUNDLER_CLASSPATH.each do |path|
37
+ warn "#{path}"
38
+ end
39
+ warn ''
40
+ warn 'jbundler test classpath:'
41
+ warn '------------------------'
42
+ if JBUNDLER_TEST_CLASSPATH.empty?
43
+ warn "\t--- empty ---"
44
+ else
45
+ JBUNDLER_TEST_CLASSPATH.each do |path|
46
+ warn "#{path}"
47
+ end
48
+ end
49
+ warn ''
40
50
  end
41
51
  end
42
52
  end
data/lib/jbundler/tree.rb CHANGED
@@ -10,7 +10,8 @@ module JBundler
10
10
 
11
11
  def show_it( debug = false )
12
12
  m = Maven::Ruby::Maven.new
13
- m.options[ '-f' ] = File.join( File.dirname( __FILE__ ), 'tree_pom.rb' )
13
+ m.options[ '-f' ] = File.join( File.dirname( __FILE__ ),
14
+ 'dependency_pom.rb' )
14
15
  m.options[ '-q' ] = nil unless debug
15
16
  m.verbose = debug
16
17
 
@@ -18,10 +19,13 @@ module JBundler
18
19
 
19
20
  puts '...'
20
21
 
21
- m.exec( 'org.apache.maven.plugins:maven-dependency-plugin:2.8:tree' )
22
+ tree = File.join( File.expand_path( @config.work_dir ),
23
+ 'tree.txt' )
24
+ m.property( 'jbundler.outputFile', tree )
22
25
 
23
- puts File.read( File.join( File.expand_path( @config.work_dir ),
24
- 'tree.txt' ) )
26
+ m.exec( 'dependency:tree' )
27
+
28
+ puts File.read( tree )
25
29
  end
26
30
  end
27
31
  end
@@ -1,3 +1,4 @@
1
+ require 'jar_installer'
1
2
  module JBundler
2
3
  class Vendor
3
4
 
@@ -10,8 +11,16 @@ module JBundler
10
11
  end
11
12
 
12
13
  def require_jars
13
- Dir[ File.join( @dir, '**', '*' ) ].each do |f|
14
- require f
14
+ jars = File.join( @dir, 'jbundler.rb' )
15
+ if File.exists?( jars )
16
+ $LOAD_PATH << @dir unless $LOAD_PATH.include? @dir
17
+ require jars
18
+ else
19
+ Dir[ File.join( @dir, '**', '*' ) ].each do |f|
20
+ require f
21
+ end
22
+ Jars.freeze_loading
23
+ true
15
24
  end
16
25
  end
17
26
 
@@ -22,6 +31,14 @@ module JBundler
22
31
  end
23
32
  end
24
33
 
34
+ def vendor_dependencies( deps )
35
+ require_file = File.join( @dir, 'jbundler.rb' )
36
+ Jars::JarInstaller.install_deps( deps, @dir, require_file, true ) do |f|
37
+ f.puts
38
+ f.puts 'Jars.freeze_loading'
39
+ end
40
+ end
41
+
25
42
  def setup( classpath_file )
26
43
  classpath_file.require_classpath
27
44
  FileUtils.mkdir_p( @dir )
@@ -30,14 +47,6 @@ module JBundler
30
47
  File.basename( f ) ) )
31
48
  end
32
49
  end
33
-
34
- def copy_jar( coord, file )
35
- target = File.join( *coord.sub( /:jar:/, '-') .split( /:/ ) )
36
- target_file = File.join( @dir, target ) + '.jar'
37
- FileUtils.mkdir_p( File.dirname( target_file ) )
38
- FileUtils.cp( file, target_file )
39
- puts "\t#{coord} to #{target}"
40
- end
41
50
  end
42
51
  end
43
52
 
@@ -74,8 +74,8 @@ describe JBundler::ClasspathFile do
74
74
  subject.needs_update?(jarfile, gemfile_lock).must_equal true
75
75
  end
76
76
 
77
- it 'generates a classpath ruby file' do
78
- subject.generate("a:b:c:d:f:".split(File::PATH_SEPARATOR))
77
+ it 'generates a classpath ruby file without localrepo' do
78
+ subject.generate("a:b:c:d:f:".split(File::PATH_SEPARATOR) )
79
79
  File.read(cpfile).must_equal <<-EOF
80
80
  JBUNDLER_JRUBY_CLASSPATH = []
81
81
  JBUNDLER_JRUBY_CLASSPATH.freeze
@@ -88,7 +88,51 @@ JBUNDLER_CLASSPATH << 'c'
88
88
  JBUNDLER_CLASSPATH << 'd'
89
89
  JBUNDLER_CLASSPATH << 'f'
90
90
  JBUNDLER_CLASSPATH.freeze
91
- JBUNDLER_CLASSPATH.each { |c| require c }
92
91
  EOF
93
92
  end
93
+
94
+ it 'generates a classpath ruby file with localrepo' do
95
+ subject.generate("a:b:c:d:f:".split(File::PATH_SEPARATOR), [], [], '/tmp')
96
+ File.read(cpfile).must_equal <<-EOF
97
+ require 'jar_dependencies'
98
+ JBUNDLER_LOCAL_REPO = Jars.home
99
+ JBUNDLER_JRUBY_CLASSPATH = []
100
+ JBUNDLER_JRUBY_CLASSPATH.freeze
101
+ JBUNDLER_TEST_CLASSPATH = []
102
+ JBUNDLER_TEST_CLASSPATH.freeze
103
+ JBUNDLER_CLASSPATH = []
104
+ JBUNDLER_CLASSPATH << (JBUNDLER_LOCAL_REPO + 'a')
105
+ JBUNDLER_CLASSPATH << (JBUNDLER_LOCAL_REPO + 'b')
106
+ JBUNDLER_CLASSPATH << (JBUNDLER_LOCAL_REPO + 'c')
107
+ JBUNDLER_CLASSPATH << (JBUNDLER_LOCAL_REPO + 'd')
108
+ JBUNDLER_CLASSPATH << (JBUNDLER_LOCAL_REPO + 'f')
109
+ JBUNDLER_CLASSPATH.freeze
110
+ EOF
111
+ end
112
+
113
+ it 'require classpath using default with generated localrepo' do
114
+ ENV[ 'JARS_HOME' ] = '/tmp'
115
+ Jars.reset
116
+ subject.generate("/a:/b:/c:/d:/f:".split(File::PATH_SEPARATOR), [], [], '/tmp')
117
+ begin
118
+ subject.require_classpath
119
+ rescue LoadError
120
+ # there are no files to require
121
+ end
122
+ JBUNDLER_CLASSPATH.must_equal ["/tmp/a", "/tmp/b", "/tmp/c", "/tmp/d", "/tmp/f"]
123
+ end
124
+
125
+ it 'require classpath with generated localrepo' do
126
+ ENV[ 'JARS_HOME' ] = '/tmp'
127
+ subject.generate("/a:/b:/c:/d:/f:".split(File::PATH_SEPARATOR), [], [], '/tmp')
128
+
129
+ begin
130
+ Jars.reset
131
+ ENV[ 'JARS_HOME' ] = '/temp'
132
+ subject.require_classpath
133
+ rescue LoadError
134
+ # there are no files to require
135
+ end
136
+ JBUNDLER_CLASSPATH.must_equal ["/temp/a", "/temp/b", "/temp/c", "/temp/d", "/temp/f"]
137
+ end
94
138
  end
data/spec/config_spec.rb CHANGED
@@ -4,9 +4,19 @@ require 'fileutils'
4
4
 
5
5
  describe JBundler::Config do
6
6
 
7
- before do
7
+ let( :basedir ){ File.dirname( File.dirname( File.expand_path( __FILE__ ) ) ) }
8
+ let( :spec ){ 'spec' }
9
+ let( :spec_dir ){ File.join( basedir, spec ) }
10
+ let( :project ){ File.join( spec, 'project' ) }
11
+ let( :project_dir ) { File.join( basedir, project ) }
12
+
13
+ before do
14
+ # in case we have relative path __FILE__
15
+ basedir
16
+ Jars.reset
8
17
  ENV.keys.each do |k|
9
18
  ENV.delete( k ) if k.to_s.match /^(J?)BUNDLE/
19
+ ENV.delete( k ) if k.to_s.match /^JARS/
10
20
  end
11
21
  if defined? JRUBY_VERSION
12
22
  java.lang.System.properties.keys.each do |k|
@@ -21,68 +31,82 @@ describe JBundler::Config do
21
31
  FileUtils.cd( 'spec' ) do
22
32
  c = JBundler::Config.new
23
33
  c.verbose.must_equal nil
24
- c.local_repository.must_equal nil
25
- c.jarfile.must_equal 'Jarfile'
26
- c.gemfile.must_equal 'Gemfile'
34
+ c.local_repository.must_equal './.m2/repository'
35
+ c.jarfile.must_equal File.join( basedir, 'Jarfile' )
36
+ c.gemfile.must_equal File.join( basedir, 'Gemfile' )
27
37
  c.skip.must_equal nil
28
- c.settings.must_equal nil
38
+ c.settings.must_equal "./.m2/settings.xml"
29
39
  c.offline.must_equal false
30
- c.work_dir.must_equal 'pkg'
31
- c.vendor_dir.must_equal 'vendor/jars'
40
+ c.work_dir.must_equal File.join( basedir, 'pkg' )
41
+ c.vendor_dir.must_equal File.join( basedir, 'vendor/jars' )
32
42
  end
33
43
  end
34
44
 
35
45
  it 'has following defaults without home and with local config' do
36
46
  ENV['HOME'] = '.'
37
-
38
- FileUtils.cd( File.join( 'spec', 'project' ) ) do
47
+ FileUtils.cd( project ) do
39
48
  c = JBundler::Config.new
40
-
41
49
  c.verbose.must_equal true
42
- c.local_repository.must_equal 'local'
43
- c.jarfile.must_equal 'Jar_file'
44
- c.gemfile.must_equal 'gemfile'
50
+ c.local_repository.must_equal File.join( project_dir, 'local' )
51
+ c.jarfile.must_equal File.join( project_dir, 'Jar_file' )
52
+ c.gemfile.must_equal File.join( project_dir, 'gemfile' )
45
53
  c.skip.must_equal false
46
- c.settings.must_equal 'settings.xml'
54
+ c.settings.must_equal File.join( project_dir, 'settings.xml' )
47
55
  c.offline.must_equal true
48
- c.work_dir.must_equal 'pkg'
49
- c.vendor_dir.must_equal 'vendor/myjars'
56
+ c.work_dir.must_equal File.join( project_dir, 'pkg' )
57
+ c.vendor_dir.must_equal File.join( project_dir, 'vendor/myjars' )
50
58
  end
51
59
  end
52
60
 
53
61
  it 'has following defaults with home and without local config' do
54
62
  ENV['HOME'] = File.join( 'home' )
55
63
 
56
- FileUtils.cd( 'spec' ) do
64
+ FileUtils.cd( spec ) do
57
65
  c = JBundler::Config.new
58
66
 
59
67
  c.verbose.must_equal false
60
- c.local_repository.must_equal 'localrepo'
61
- c.jarfile.must_equal 'jarfile'
62
- c.gemfile.must_equal 'Gem_file'
68
+ c.local_repository.must_equal File.join( spec_dir, 'localrepo' )
69
+ c.jarfile.must_equal File.join( spec_dir, 'jarfile' )
70
+ c.gemfile.must_equal File.join( spec_dir, 'Gem_file' )
63
71
  c.skip.must_equal true
64
- c.settings.must_equal 'Settings.xml'
72
+ c.settings.must_equal File.join( spec_dir, 'Settings.xml' )
65
73
  c.offline.must_equal false
66
- c.work_dir.must_equal 'target/pkg'
67
- c.vendor_dir.must_equal 'vendor/my_jars'
74
+ c.work_dir.must_equal File.join( spec_dir, 'target/pkg' )
75
+ c.vendor_dir.must_equal File.join( spec_dir, 'vendor/my_jars' )
68
76
  end
69
77
  end
70
78
 
71
79
  it 'has following defaults with home and with local config' do
72
80
  ENV['HOME'] = File.expand_path( File.join( 'spec', 'home' ) )
73
81
 
74
- FileUtils.cd( File.join( 'spec', 'project' ) ) do
82
+ FileUtils.cd( project ) do
83
+ c = JBundler::Config.new
84
+
85
+ c.verbose.must_equal true
86
+ c.local_repository.must_equal File.join( project_dir, 'local' )
87
+ c.jarfile.must_equal File.join( project_dir, 'Jar_file' )
88
+ c.gemfile.must_equal File.join( project_dir, 'gemfile' )
89
+ c.skip.must_equal false
90
+ c.settings.must_equal File.join( project_dir, 'settings.xml' )
91
+ c.offline.must_equal true
92
+ c.work_dir.must_equal File.join( project_dir, 'pkg' )
93
+ c.vendor_dir.must_equal File.join( project_dir, 'vendor/myjars' )
94
+ end
95
+ end
96
+
97
+ it 'has following defaults with local config starting from nested child directory' do
98
+ FileUtils.cd( File.join( project, 'some', 'more' ) ) do
75
99
  c = JBundler::Config.new
76
100
 
77
101
  c.verbose.must_equal true
78
- c.local_repository.must_equal 'local'
79
- c.jarfile.must_equal 'Jar_file'
80
- c.gemfile.must_equal 'gemfile'
102
+ c.local_repository.must_equal File.join( project_dir, 'local' )
103
+ c.jarfile.must_equal File.join( project_dir, 'Jar_file' )
104
+ c.gemfile.must_equal File.join( project_dir, 'gemfile' )
81
105
  c.skip.must_equal false
82
- c.settings.must_equal 'settings.xml'
106
+ c.settings.must_equal File.join( project_dir, 'settings.xml' )
83
107
  c.offline.must_equal true
84
- c.work_dir.must_equal 'pkg'
85
- c.vendor_dir.must_equal 'vendor/myjars'
108
+ c.work_dir.must_equal File.join( project_dir, 'pkg' )
109
+ c.vendor_dir.must_equal File.join( project_dir, 'vendor/myjars' )
86
110
  end
87
111
  end
88
112
 
@@ -107,20 +131,22 @@ describe JBundler::Config do
107
131
  ENV['HOME'] = eval "\"#{File.expand_path( home )}\""
108
132
 
109
133
  FileUtils.cd eval "\"#{dir}\"" do
134
+ pdir = eval "#{File.basename( dir )}_dir"
135
+ Jars.reset
110
136
  c = JBundler::Config.new
111
137
  c.verbose.must_equal true
112
- c.local_repository.must_equal 'local_repository'
113
- c.jarfile.must_equal 'JarFile'
114
- c.gemfile.must_equal 'GemFile'
138
+ c.local_repository.must_equal File.join( pdir, 'local_repository' )
139
+ c.jarfile.must_equal File.join( pdir, 'JarFile' )
140
+ c.gemfile.must_equal File.join( pdir, 'GemFile' )
115
141
  c.skip.must_equal false
116
- c.settings.must_equal 'Settings.xml'
142
+ c.settings.must_equal File.join( pdir, 'Settings.xml' )
117
143
  c.offline.must_equal true
118
- c.work_dir.must_equal 'pkg/work'
119
- c.vendor_dir.must_equal 'vendor/localjars'
144
+ c.work_dir.must_equal File.join( pdir, 'pkg/work' )
145
+ c.vendor_dir.must_equal File.join( pdir, 'vendor/localjars' )
120
146
  end
121
147
  end
122
148
 
123
- it 'uses java.lang.System.properties with home #{home} and local dir #{dir}' do
149
+ it "uses java.lang.System.properties with home #{home} and local dir #{dir}" do
124
150
  ENV['HOME'] = eval "\"#{File.expand_path( home )}\""
125
151
 
126
152
  java.lang.System.set_property 'jbundle.verbose', 'false'
@@ -134,16 +160,17 @@ describe JBundler::Config do
134
160
  java.lang.System.set_property 'jbundle.vendor.dir', 'vendor/local_jars'
135
161
 
136
162
  FileUtils.cd eval "\"#{dir}\"" do
163
+ pdir = eval "#{File.basename( dir )}_dir"
137
164
  c = JBundler::Config.new
138
165
  c.verbose.must_equal false
139
- c.local_repository.must_equal 'local_repo'
140
- c.jarfile.must_equal 'Jar_File'
141
- c.gemfile.must_equal 'Gem_File'
166
+ c.local_repository.must_equal File.join( pdir, 'local_repo' )
167
+ c.jarfile.must_equal File.join( pdir, 'Jar_File' )
168
+ c.gemfile.must_equal File.join( pdir, 'Gem_File' )
142
169
  c.skip.must_equal true
143
- c.settings.must_equal 'settings.xml'
170
+ c.settings.must_equal File.join( pdir, 'settings.xml' )
144
171
  c.offline.must_equal false
145
- c.work_dir.must_equal 'target/work'
146
- c.vendor_dir.must_equal 'vendor/local_jars'
172
+ c.work_dir.must_equal File.join( pdir, 'target/work' )
173
+ c.vendor_dir.must_equal File.join( pdir, 'vendor/local_jars' )
147
174
  end
148
175
  end
149
176
  end