jbundler 0.7.4 → 0.8.0.pre

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.
@@ -1,138 +0,0 @@
1
- load File.expand_path(File.join('spec', 'setup.rb'))
2
- require 'jbundler/classpath_file'
3
- require 'maven/tools/jarfile'
4
- require 'jbundler/gemfile_lock'
5
-
6
- describe JBundler::ClasspathFile do
7
-
8
- let(:workdir) { File.join('pkg', 'tmp') }
9
- let(:jfile) { File.join(workdir, 'jarfile') }
10
- let(:gfile_lock) { File.join(workdir, 'gemfile.lock') }
11
- let(:jfile_lock) { jfile + ".lock"}
12
- let(:cpfile) { File.join(workdir, 'cp.rb') }
13
- let(:jarfile) { Maven::Tools::Jarfile.new(jfile) }
14
- let(:gemfile_lock) { JBundler::GemfileLock.new(jarfile, gfile_lock) }
15
- subject { JBundler::ClasspathFile.new(cpfile) }
16
-
17
- before do
18
- FileUtils.mkdir_p(workdir)
19
- Dir[File.join(workdir, '*')].each { |f| FileUtils.rm_f f }
20
- end
21
-
22
- it 'needs no update when all files are missing' do
23
- subject.needs_update?(jarfile, gemfile_lock).must_equal false
24
- end
25
-
26
- it 'needs update when only gemfile' do
27
- FileUtils.touch gfile_lock
28
- subject.needs_update?(jarfile, gemfile_lock).must_equal true
29
- end
30
-
31
- it 'needs update when only jarfile' do
32
- FileUtils.touch jfile
33
- subject.needs_update?(jarfile, gemfile_lock).must_equal true
34
- end
35
-
36
- it 'needs update when jarfilelock is missing' do
37
- FileUtils.touch gfile_lock
38
- FileUtils.touch jfile
39
- FileUtils.touch cpfile
40
- subject.needs_update?(jarfile, gemfile_lock).must_equal true
41
- end
42
-
43
- it 'needs no update when classpath file is the youngest' do
44
- FileUtils.touch jfile
45
- FileUtils.touch jfile_lock
46
- FileUtils.touch cpfile
47
- subject.needs_update?(jarfile, gemfile_lock).must_equal false
48
- end
49
-
50
- it 'needs update when jar file is the youngest' do
51
- FileUtils.touch gfile_lock
52
- FileUtils.touch jfile_lock
53
- FileUtils.touch cpfile
54
- sleep 1
55
- FileUtils.touch jfile
56
- subject.needs_update?(jarfile, gemfile_lock).must_equal true
57
- end
58
-
59
- it 'needs update when jar lockfile is the youngest' do
60
- FileUtils.touch gfile_lock
61
- FileUtils.touch jfile
62
- FileUtils.touch cpfile
63
- sleep 1
64
- FileUtils.touch jfile_lock
65
- subject.needs_update?(jarfile, gemfile_lock).must_equal true
66
- end
67
-
68
- it 'needs update when gem lockfile is the youngest' do
69
- FileUtils.touch jfile
70
- FileUtils.touch cpfile
71
- FileUtils.touch jfile_lock
72
- sleep 1
73
- FileUtils.touch gfile_lock
74
- subject.needs_update?(jarfile, gemfile_lock).must_equal true
75
- end
76
-
77
- it 'generates a classpath ruby file without localrepo' do
78
- subject.generate("a:b:c:d:f:".split(File::PATH_SEPARATOR) )
79
- File.read(cpfile).must_equal <<-EOF
80
- JBUNDLER_JRUBY_CLASSPATH = []
81
- JBUNDLER_JRUBY_CLASSPATH.freeze
82
- JBUNDLER_TEST_CLASSPATH = []
83
- JBUNDLER_TEST_CLASSPATH.freeze
84
- JBUNDLER_CLASSPATH = []
85
- JBUNDLER_CLASSPATH << 'a'
86
- JBUNDLER_CLASSPATH << 'b'
87
- JBUNDLER_CLASSPATH << 'c'
88
- JBUNDLER_CLASSPATH << 'd'
89
- JBUNDLER_CLASSPATH << 'f'
90
- JBUNDLER_CLASSPATH.freeze
91
- EOF
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
138
- end
data/spec/config_spec.rb DELETED
@@ -1,180 +0,0 @@
1
- load File.expand_path(File.join('spec', 'setup.rb'))
2
- require 'jbundler/config'
3
- require 'fileutils'
4
-
5
- describe JBundler::Config do
6
-
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
17
- ENV.keys.each do |k|
18
- ENV.delete( k ) if k.to_s.match /^(J?)BUNDLE/
19
- ENV.delete( k ) if k.to_s.match /^JARS/
20
- end
21
- if defined? JRUBY_VERSION
22
- java.lang.System.properties.keys.each do |k|
23
- java.lang.System.properties.delete( k ) if k.to_s.match /^(j?)bundle/
24
- end
25
- end
26
- end
27
-
28
- it 'has following defaults without home and without local config' do
29
- ENV['HOME'] = '.'
30
-
31
- FileUtils.cd( 'spec' ) do
32
- c = JBundler::Config.new
33
- c.verbose.must_equal nil
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' )
37
- c.skip.must_equal nil
38
- c.settings.must_equal "./.m2/settings.xml"
39
- c.offline.must_equal false
40
- c.work_dir.must_equal File.join( basedir, 'pkg' )
41
- c.vendor_dir.must_equal File.join( basedir, 'vendor/jars' )
42
- end
43
- end
44
-
45
- it 'has following defaults without home and with local config' do
46
- ENV['HOME'] = '.'
47
- FileUtils.cd( project ) do
48
- c = JBundler::Config.new
49
- c.verbose.must_equal true
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' )
53
- c.skip.must_equal false
54
- c.settings.must_equal File.join( project_dir, 'settings.xml' )
55
- c.offline.must_equal true
56
- c.work_dir.must_equal File.join( project_dir, 'pkg' )
57
- c.vendor_dir.must_equal File.join( project_dir, 'vendor/myjars' )
58
- end
59
- end
60
-
61
- it 'has following defaults with home and without local config' do
62
- ENV['HOME'] = File.join( 'home' )
63
-
64
- FileUtils.cd( spec ) do
65
- c = JBundler::Config.new
66
-
67
- c.verbose.must_equal false
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' )
71
- c.skip.must_equal true
72
- c.settings.must_equal File.join( spec_dir, 'Settings.xml' )
73
- c.offline.must_equal false
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' )
76
- end
77
- end
78
-
79
- it 'has following defaults with home and with local config' do
80
- ENV['HOME'] = File.expand_path( File.join( 'spec', 'home' ) )
81
-
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
99
- c = JBundler::Config.new
100
-
101
- c.verbose.must_equal true
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' )
105
- c.skip.must_equal false
106
- c.settings.must_equal File.join( project_dir, 'settings.xml' )
107
- c.offline.must_equal true
108
- c.work_dir.must_equal File.join( project_dir, 'pkg' )
109
- c.vendor_dir.must_equal File.join( project_dir, 'vendor/myjars' )
110
- end
111
- end
112
-
113
- describe 'ENV and java.lang.System.properties' do
114
- before do
115
- ENV[ 'JBUNDLE_VERBOSE' ] = 'true'
116
- ENV[ 'JBUNDLE_LOCAL_REPOSITORY' ] = 'local_repository'
117
- ENV[ 'JBUNDLE_JARFILE' ] = 'JarFile'
118
- ENV[ 'BUNDLE_GEMFILE' ] = 'GemFile'
119
- ENV[ 'JBUNDLE_SETTINGS' ] = 'Settings.xml'
120
- ENV[ 'JBUNDLE_SKIP' ] = 'false'
121
- ENV[ 'JBUNDLE_OFFLINE' ] = 'true'
122
- ENV[ 'JBUNDLE_WORK_DIR' ] = 'pkg/work'
123
- ENV[ 'JBUNDLE_VENDOR_DIR' ] = 'vendor/localjars'
124
- end
125
-
126
- [ 'spec', 'spec/home' ].each do |home|
127
-
128
- [ 'spec', 'spec/project' ].each do |dir|
129
-
130
- it "uses ENV with home #{home} and local dir #{dir}" do
131
- ENV['HOME'] = eval "\"#{File.expand_path( home )}\""
132
-
133
- FileUtils.cd eval "\"#{dir}\"" do
134
- pdir = eval "#{File.basename( dir )}_dir"
135
- Jars.reset
136
- c = JBundler::Config.new
137
- c.verbose.must_equal true
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' )
141
- c.skip.must_equal false
142
- c.settings.must_equal File.join( pdir, 'Settings.xml' )
143
- c.offline.must_equal true
144
- c.work_dir.must_equal File.join( pdir, 'pkg/work' )
145
- c.vendor_dir.must_equal File.join( pdir, 'vendor/localjars' )
146
- end
147
- end
148
-
149
- it "uses java.lang.System.properties with home #{home} and local dir #{dir}" do
150
- ENV['HOME'] = eval "\"#{File.expand_path( home )}\""
151
-
152
- java.lang.System.set_property 'jbundle.verbose', 'false'
153
- java.lang.System.set_property 'jbundle.local.repository', 'local_repo'
154
- java.lang.System.set_property 'jbundle.jarfile', 'Jar_File'
155
- java.lang.System.set_property 'bundle.gemfile', 'Gem_File'
156
- java.lang.System.set_property 'jbundle.settings', 'settings.xml'
157
- java.lang.System.set_property 'jbundle.skip', 'true'
158
- java.lang.System.set_property 'jbundle.offline', 'false'
159
- java.lang.System.set_property 'jbundle.work.dir', 'target/work'
160
- java.lang.System.set_property 'jbundle.vendor.dir', 'vendor/local_jars'
161
-
162
- FileUtils.cd eval "\"#{dir}\"" do
163
- pdir = eval "#{File.basename( dir )}_dir"
164
- c = JBundler::Config.new
165
- c.verbose.must_equal false
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' )
169
- c.skip.must_equal true
170
- c.settings.must_equal File.join( pdir, 'settings.xml' )
171
- c.offline.must_equal false
172
- c.work_dir.must_equal File.join( pdir, 'target/work' )
173
- c.vendor_dir.must_equal File.join( pdir, 'vendor/local_jars' )
174
- end
175
- end
176
- end
177
- end
178
- end
179
- end
180
-
data/spec/pom_spec.rb DELETED
@@ -1,30 +0,0 @@
1
- load File.expand_path(File.join('spec', 'setup.rb'))
2
- require 'jbundler/pom'
3
-
4
- describe JBundler::Pom do
5
-
6
- it 'should create jar pom without deps' do
7
- pom = JBundler::Pom.new("first", "1", [])
8
- File.read(pom.file).must_equal "<?xml version=\"1.0\" ?><project><modelVersion>4.0.0</modelVersion><groupId>ruby.bundler</groupId><artifactId>first</artifactId><version>1</version><dependencies></dependencies></project>"
9
- pom.coordinate.must_equal "ruby.bundler:first:jar:1"
10
- end
11
-
12
- it 'should create pom-pom without deps' do
13
- pom = JBundler::Pom.new("first", "1", [], 'pom')
14
- File.read(pom.file).must_equal "<?xml version=\"1.0\" ?><project><modelVersion>4.0.0</modelVersion><groupId>ruby.bundler</groupId><artifactId>first</artifactId><version>1</version><packaging>pom</packaging><dependencies></dependencies></project>"
15
- pom.coordinate.must_equal "ruby.bundler:first:pom:1"
16
- end
17
-
18
- it 'should create jar pom without deps' do
19
- pom = JBundler::Pom.new("second", "1", ["jar \"org.jruby:jruby-core\", '~>1.7.0'"])
20
- File.read(pom.file).must_equal "<?xml version=\"1.0\" ?><project><modelVersion>4.0.0</modelVersion><groupId>ruby.bundler</groupId><artifactId>second</artifactId><version>1</version><dependencies><dependency><groupId>org.jruby</groupId><artifactId>jruby-core</artifactId><version>[1.7.0,1.7.99999]</version></dependency></dependencies></project>"
21
- pom.coordinate.must_equal "ruby.bundler:second:jar:1"
22
- end
23
-
24
- it 'should respect classifiers' do
25
- pom = JBundler::Pom.new("third", "1", ["jar \"org.jruby:jruby-core\", '~>1.7.0'", "pom \"f:g:jdk15\", \">1.2\", \"<=2.0\""])
26
- File.read(pom.file).must_equal "<?xml version=\"1.0\" ?><project><modelVersion>4.0.0</modelVersion><groupId>ruby.bundler</groupId><artifactId>third</artifactId><version>1</version><dependencies><dependency><groupId>org.jruby</groupId><artifactId>jruby-core</artifactId><version>[1.7.0,1.7.99999]</version></dependency><dependency><groupId>f</groupId><artifactId>g</artifactId><version>(1.2,2.0]</version><type>pom</type><classifier>jdk15</classifier></dependency></dependencies></project>"
27
- pom.coordinate.must_equal "ruby.bundler:third:jar:1"
28
- end
29
-
30
- end
File without changes
File without changes
data/spec/setup.rb DELETED
@@ -1,16 +0,0 @@
1
- # single spec setup
2
- $LOAD_PATH.unshift File.join( File.dirname( File.expand_path( File.dirname( __FILE__ ) ) ),
3
- 'lib' )
4
-
5
- # TODO somehow needed here for executable_spec
6
- require 'maven/tools/coordinate'
7
-
8
- begin
9
- require 'minitest'
10
- rescue LoadError
11
- end
12
- require 'minitest/autorun'
13
-
14
- # supress warnings
15
- require 'stringio'
16
- $stderr = StringIO.new
data/spec/vendor_spec.rb DELETED
@@ -1,60 +0,0 @@
1
- load File.expand_path(File.join('spec', 'setup.rb'))
2
- require 'jbundler/classpath_file'
3
- require 'jbundler/vendor'
4
- require 'maven/tools/jarfile'
5
- require 'jbundler/gemfile_lock'
6
-
7
- JBUNDLER_CLASSPATH = []
8
- describe JBundler::Vendor do
9
-
10
- let( :workdir ) { File.join('pkg', 'tmp') }
11
- let( :vdir ) { File.join(workdir, 'jars') }
12
- let( :jfile ) { File.join(workdir, 'jarfile') }
13
- let( :gfile_lock ) { File.join(workdir, 'gemfile.lock') }
14
- let( :jfile_lock ) { jfile + ".lock"}
15
- let( :cpfile ) { File.join(workdir, 'cp.rb') }
16
- let( :jarfile ) { Maven::Tools::Jarfile.new(jfile) }
17
- let( :gemfile_lock ) { JBundler::GemfileLock.new(jarfile, gfile_lock) }
18
- let( :cp ) { JBundler::ClasspathFile.new(cpfile) }
19
- let( :jars ) { [ '1.jar', '2.jar' ] }
20
- subject { JBundler::Vendor.new( vdir ) }
21
-
22
- before do
23
- FileUtils.mkdir_p(workdir)
24
- Dir[File.join(workdir, '*')].each { |f| FileUtils.rm_f f }
25
- FileUtils.rm_rf(vdir)
26
- FileUtils.mkdir_p(vdir)
27
- jars.each do |f|
28
- FileUtils.touch( File.join( workdir, f ) )
29
- end
30
- end
31
-
32
- it 'is not vendored' do
33
- subject.vendored?.must_equal false
34
- subject.require_jars.must_equal true
35
- FileUtils.rm_rf( vdir )
36
- subject.vendored?.must_equal false
37
- end
38
-
39
- it 'should copy jars on setup and delete them on clear' do
40
- ::JBUNDLER_CLASSPATH = Dir[ File.join( workdir, "*.jar" )]
41
- def cp.require_classpath
42
- [ '1.jar', '2.jar' ]
43
- end
44
-
45
- subject.setup( cp )
46
-
47
- j = Dir[ File.join( vdir, '*' ) ].collect do |f|
48
- File.basename( f )
49
- end
50
- j.sort.must_equal jars.sort
51
-
52
- subject.vendored?.must_equal true
53
-
54
- subject.require_jars.must_equal true
55
-
56
- subject.clear
57
- Dir[ File.join( vdir, '*' ) ].must_equal []
58
- end
59
-
60
- end