jbundler 0.5.5 → 0.6.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +27 -16
- data/Gemfile.lock~ +32 -18
- data/bin/jbundle +21 -31
- data/lib/jbundler.jar +0 -0
- data/lib/jbundler.rb +54 -46
- data/lib/jbundler/aether.rb +1 -1
- data/lib/jbundler/classpath_file.rb +39 -10
- data/lib/jbundler/cli.rb +75 -49
- data/lib/jbundler/config.rb +84 -33
- data/lib/jbundler/configurator.rb +1 -0
- data/lib/jbundler/context.rb +34 -0
- data/lib/jbundler/{lock_down_pom.rb → dependency_pom.rb} +12 -8
- data/lib/jbundler/executable_pom.rb +6 -13
- data/lib/jbundler/gemfile_lock.rb +4 -0
- data/lib/jbundler/jruby_complete.rb +44 -0
- data/lib/jbundler/jruby_complete_pom.rb +31 -0
- data/lib/jbundler/lock_down.rb +101 -68
- data/lib/jbundler/pom.rb +66 -43
- data/lib/jbundler/pom_runner.rb +71 -0
- data/lib/jbundler/show.rb +31 -21
- data/lib/jbundler/tree.rb +8 -4
- data/lib/jbundler/vendor.rb +19 -10
- data/spec/classpath_file_spec.rb +47 -3
- data/spec/config_spec.rb +70 -43
- data/spec/setup.rb +4 -0
- data/spec/vendor_spec.rb +3 -3
- metadata +25 -8
- data/lib/jbundler/tree_pom.rb +0 -19
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
|
-
|
85
|
-
xmlStreamWriter =
|
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
|
145
|
+
write_dependencies( xmlStreamWriter, deps )
|
146
|
+
|
147
|
+
end_write_pom( xmlStreamWriter )
|
124
148
|
|
125
|
-
|
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
|
-
@
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
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__ ),
|
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
|
-
|
22
|
+
tree = File.join( File.expand_path( @config.work_dir ),
|
23
|
+
'tree.txt' )
|
24
|
+
m.property( 'jbundler.outputFile', tree )
|
22
25
|
|
23
|
-
|
24
|
-
|
26
|
+
m.exec( 'dependency:tree' )
|
27
|
+
|
28
|
+
puts File.read( tree )
|
25
29
|
end
|
26
30
|
end
|
27
31
|
end
|
data/lib/jbundler/vendor.rb
CHANGED
@@ -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
|
-
|
14
|
-
|
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
|
|
data/spec/classpath_file_spec.rb
CHANGED
@@ -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
|
-
|
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
|
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
|
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(
|
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(
|
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
|
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
|