jbundler 0.5.5 → 0.6.0
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.
- 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
|