jruby-bundler 0.9.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.
@@ -0,0 +1,180 @@
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.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, 'spec', 'Jarfile' )
36
+ c.gemfile.must_equal File.join( basedir, 'spec', 'Gemfile' )
37
+ c.skip.must_equal nil
38
+ c.settings.must_equal File.expand_path("settings.xml")
39
+ c.offline.must_equal false
40
+ c.work_dir.must_equal File.join( basedir, 'spec','pkg' )
41
+ c.vendor_dir.must_equal File.join( basedir, 'spec', '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
+ home = ENV['HOME'] = File.join( File.expand_path( '../home', __FILE__ ) )
63
+
64
+ FileUtils.cd( home ) do
65
+ c = JBundler::Config.new
66
+
67
+ c.verbose.must_equal false
68
+ c.local_repository.must_equal File.join( spec_dir, 'home', 'localrepo' )
69
+ c.jarfile.must_equal File.join( spec_dir, 'home', 'jarfile' )
70
+ c.gemfile.must_equal File.join( spec_dir, 'home', 'Gem_file' )
71
+ c.skip.must_equal true
72
+ c.settings.must_equal nil
73
+ c.offline.must_equal false
74
+ c.work_dir.must_equal File.join( spec_dir, 'home', 'target/pkg' )
75
+ c.vendor_dir.must_equal File.join( spec_dir, 'home', '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
+ FileUtils.cd eval "\"#{dir}\"" do
133
+ pdir = eval "#{File.basename( dir )}_dir"
134
+ Jars.reset
135
+ c = JBundler::Config.new
136
+ c.verbose.must_equal true
137
+ c.local_repository.must_equal File.join( pdir, 'local_repository' )
138
+ c.jarfile.must_equal File.join( pdir, 'JarFile' )
139
+ c.gemfile.must_equal File.join( pdir, 'GemFile' )
140
+ c.skip.must_equal false
141
+ # names are case insensitive
142
+ c.settings.downcase.must_equal File.join( pdir, 'Settings.xml' ).downcase
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 ADDED
@@ -0,0 +1,30 @@
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 ADDED
@@ -0,0 +1,16 @@
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
@@ -0,0 +1,60 @@
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
metadata ADDED
@@ -0,0 +1,176 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: jruby-bundler
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.9.5
5
+ platform: ruby
6
+ authors:
7
+ - Christian Meier
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2024-12-17 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: maven-tools
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.1'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.1'
27
+ - !ruby/object:Gem::Dependency
28
+ name: ruby-maven
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '3.3'
34
+ - - ">="
35
+ - !ruby/object:Gem::Version
36
+ version: 3.3.8
37
+ type: :runtime
38
+ prerelease: false
39
+ version_requirements: !ruby/object:Gem::Requirement
40
+ requirements:
41
+ - - "~>"
42
+ - !ruby/object:Gem::Version
43
+ version: '3.3'
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ version: 3.3.8
47
+ - !ruby/object:Gem::Dependency
48
+ name: bundler
49
+ requirement: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ">"
52
+ - !ruby/object:Gem::Version
53
+ version: '1.5'
54
+ - - "<"
55
+ - !ruby/object:Gem::Version
56
+ version: 3.0.0
57
+ type: :runtime
58
+ prerelease: false
59
+ version_requirements: !ruby/object:Gem::Requirement
60
+ requirements:
61
+ - - ">"
62
+ - !ruby/object:Gem::Version
63
+ version: '1.5'
64
+ - - "<"
65
+ - !ruby/object:Gem::Version
66
+ version: 3.0.0
67
+ - !ruby/object:Gem::Dependency
68
+ name: jar-dependencies
69
+ requirement: !ruby/object:Gem::Requirement
70
+ requirements:
71
+ - - "~>"
72
+ - !ruby/object:Gem::Version
73
+ version: '0.3'
74
+ type: :runtime
75
+ prerelease: false
76
+ version_requirements: !ruby/object:Gem::Requirement
77
+ requirements:
78
+ - - "~>"
79
+ - !ruby/object:Gem::Version
80
+ version: '0.3'
81
+ - !ruby/object:Gem::Dependency
82
+ name: rake
83
+ requirement: !ruby/object:Gem::Requirement
84
+ requirements:
85
+ - - "~>"
86
+ - !ruby/object:Gem::Version
87
+ version: '10.0'
88
+ type: :development
89
+ prerelease: false
90
+ version_requirements: !ruby/object:Gem::Requirement
91
+ requirements:
92
+ - - "~>"
93
+ - !ruby/object:Gem::Version
94
+ version: '10.0'
95
+ - !ruby/object:Gem::Dependency
96
+ name: minitest
97
+ requirement: !ruby/object:Gem::Requirement
98
+ requirements:
99
+ - - "~>"
100
+ - !ruby/object:Gem::Version
101
+ version: '5.3'
102
+ type: :development
103
+ prerelease: false
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ requirements:
106
+ - - "~>"
107
+ - !ruby/object:Gem::Version
108
+ version: '5.3'
109
+ description: 'managing jar dependencies with or without bundler. adding bundler like
110
+ handling of version ranges for jar dependencies.
111
+
112
+ '
113
+ email:
114
+ - m.kristian@web.de
115
+ executables:
116
+ - jbundle
117
+ extensions: []
118
+ extra_rdoc_files: []
119
+ files:
120
+ - Gemfile
121
+ - MIT-LICENSE
122
+ - Readme.md
123
+ - bin/jbundle
124
+ - lib/jbundler.rb
125
+ - lib/jbundler/aether.rb
126
+ - lib/jbundler/classpath_file.rb
127
+ - lib/jbundler/cli.rb
128
+ - lib/jbundler/config.rb
129
+ - lib/jbundler/configurator.rb
130
+ - lib/jbundler/context.rb
131
+ - lib/jbundler/dependency_pom.rb
132
+ - lib/jbundler/gemfile_lock.rb
133
+ - lib/jbundler/jarfile_lock.rb
134
+ - lib/jbundler/jruby_complete.rb
135
+ - lib/jbundler/jruby_complete_pom.rb
136
+ - lib/jbundler/lock_down.rb
137
+ - lib/jbundler/pom.rb
138
+ - lib/jbundler/pom_runner.rb
139
+ - lib/jbundler/show.rb
140
+ - lib/jbundler/tree.rb
141
+ - lib/jbundler/vendor.rb
142
+ - spec/classpath_file_spec.rb
143
+ - spec/config_spec.rb
144
+ - spec/pom_spec.rb
145
+ - spec/project/Settings.xml
146
+ - spec/project/settings.xml
147
+ - spec/setup.rb
148
+ - spec/vendor_spec.rb
149
+ homepage: https://github.com/mkristian/jbundler
150
+ licenses:
151
+ - MIT
152
+ metadata: {}
153
+ post_install_message:
154
+ rdoc_options: []
155
+ require_paths:
156
+ - lib
157
+ required_ruby_version: !ruby/object:Gem::Requirement
158
+ requirements:
159
+ - - ">="
160
+ - !ruby/object:Gem::Version
161
+ version: '0'
162
+ required_rubygems_version: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - ">="
165
+ - !ruby/object:Gem::Version
166
+ version: '0'
167
+ requirements: []
168
+ rubygems_version: 3.5.17
169
+ signing_key:
170
+ specification_version: 4
171
+ summary: managing jar dependencies
172
+ test_files:
173
+ - spec/classpath_file_spec.rb
174
+ - spec/config_spec.rb
175
+ - spec/pom_spec.rb
176
+ - spec/vendor_spec.rb