jbundler 0.8.0.pre → 0.8.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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.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 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 CHANGED
@@ -1,91 +1,105 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jbundler
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.0.pre
4
+ version: 0.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Christian Meier
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-04-13 00:00:00.000000000 Z
11
+ date: 2015-06-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
+ name: maven-tools
15
+ version_requirements: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ~>
18
+ - !ruby/object:Gem::Version
19
+ version: 1.0.11
14
20
  requirement: !ruby/object:Gem::Requirement
15
21
  requirements:
16
22
  - - ~>
17
23
  - !ruby/object:Gem::Version
18
- version: 1.0.8
19
- name: maven-tools
24
+ version: 1.0.11
20
25
  prerelease: false
21
26
  type: :runtime
27
+ - !ruby/object:Gem::Dependency
28
+ name: ruby-maven
22
29
  version_requirements: !ruby/object:Gem::Requirement
23
30
  requirements:
24
31
  - - ~>
25
32
  - !ruby/object:Gem::Version
26
- version: 1.0.8
27
- - !ruby/object:Gem::Dependency
33
+ version: '3.3'
34
+ - - '>='
35
+ - !ruby/object:Gem::Version
36
+ version: 3.3.3
28
37
  requirement: !ruby/object:Gem::Requirement
29
38
  requirements:
30
- - - '>='
39
+ - - ~>
31
40
  - !ruby/object:Gem::Version
32
- version: 3.1.1.0.6
33
- - - <
41
+ version: '3.3'
42
+ - - '>='
34
43
  - !ruby/object:Gem::Version
35
- version: 3.1.2
36
- name: ruby-maven
44
+ version: 3.3.3
37
45
  prerelease: false
38
46
  type: :runtime
47
+ - !ruby/object:Gem::Dependency
48
+ name: bundler
39
49
  version_requirements: !ruby/object:Gem::Requirement
40
50
  requirements:
41
- - - '>='
42
- - !ruby/object:Gem::Version
43
- version: 3.1.1.0.6
44
- - - <
51
+ - - ~>
45
52
  - !ruby/object:Gem::Version
46
- version: 3.1.2
47
- - !ruby/object:Gem::Dependency
53
+ version: '1.5'
48
54
  requirement: !ruby/object:Gem::Requirement
49
55
  requirements:
50
56
  - - ~>
51
57
  - !ruby/object:Gem::Version
52
- version: 0.1.11
53
- name: jar-dependencies
58
+ version: '1.5'
54
59
  prerelease: false
55
60
  type: :runtime
61
+ - !ruby/object:Gem::Dependency
62
+ name: jar-dependencies
56
63
  version_requirements: !ruby/object:Gem::Requirement
57
64
  requirements:
58
65
  - - ~>
59
66
  - !ruby/object:Gem::Version
60
- version: 0.1.11
61
- - !ruby/object:Gem::Dependency
67
+ version: 0.1.15
62
68
  requirement: !ruby/object:Gem::Requirement
63
69
  requirements:
64
70
  - - ~>
65
71
  - !ruby/object:Gem::Version
66
- version: '1.7'
67
- name: bundler
72
+ version: 0.1.15
68
73
  prerelease: false
69
74
  type: :runtime
75
+ - !ruby/object:Gem::Dependency
76
+ name: rake
70
77
  version_requirements: !ruby/object:Gem::Requirement
71
78
  requirements:
72
79
  - - ~>
73
80
  - !ruby/object:Gem::Version
74
- version: '1.7'
75
- - !ruby/object:Gem::Dependency
81
+ version: '10.0'
76
82
  requirement: !ruby/object:Gem::Requirement
77
83
  requirements:
78
84
  - - ~>
79
85
  - !ruby/object:Gem::Version
80
86
  version: '10.0'
81
- name: rake
82
87
  prerelease: false
83
88
  type: :development
89
+ - !ruby/object:Gem::Dependency
90
+ name: minitest
84
91
  version_requirements: !ruby/object:Gem::Requirement
85
92
  requirements:
86
93
  - - ~>
87
94
  - !ruby/object:Gem::Version
88
- version: '10.0'
95
+ version: '5.3'
96
+ requirement: !ruby/object:Gem::Requirement
97
+ requirements:
98
+ - - ~>
99
+ - !ruby/object:Gem::Version
100
+ version: '5.3'
101
+ prerelease: false
102
+ type: :development
89
103
  description: |
90
104
  managing jar dependencies with or without bundler. adding bundler like handling of version ranges for jar dependencies.
91
105
  email:
@@ -95,15 +109,37 @@ executables:
95
109
  extensions: []
96
110
  extra_rdoc_files: []
97
111
  files:
112
+ - Gemfile
113
+ - Gemfile.lock
114
+ - Gemfile.lock~
115
+ - MIT-LICENSE
116
+ - Readme.md
98
117
  - bin/jbundle
99
118
  - lib/jbundler.rb
100
- - lib/jbundler/executor.rb
119
+ - lib/jbundler/aether.rb
120
+ - lib/jbundler/classpath_file.rb
121
+ - lib/jbundler/cli.rb
122
+ - lib/jbundler/config.rb
123
+ - lib/jbundler/configurator.rb
124
+ - lib/jbundler/context.rb
125
+ - lib/jbundler/dependency_pom.rb
126
+ - lib/jbundler/gemfile_lock.rb
127
+ - lib/jbundler/jarfile_lock.rb
128
+ - lib/jbundler/jruby_complete.rb
129
+ - lib/jbundler/jruby_complete_pom.rb
130
+ - lib/jbundler/lock_down.rb
101
131
  - lib/jbundler/pom.rb
102
- - MIT-LICENSE
103
- - Readme.md
104
- - Gemfile.lock~
105
- - Gemfile.lock
106
- - Gemfile
132
+ - lib/jbundler/pom_runner.rb
133
+ - lib/jbundler/show.rb
134
+ - lib/jbundler/tree.rb
135
+ - lib/jbundler/vendor.rb
136
+ - spec/classpath_file_spec.rb
137
+ - spec/config_spec.rb
138
+ - spec/pom_spec.rb
139
+ - spec/project/Settings.xml
140
+ - spec/project/settings.xml
141
+ - spec/setup.rb
142
+ - spec/vendor_spec.rb
107
143
  homepage: https://github.com/mkristian/jbundler
108
144
  licenses:
109
145
  - MIT
@@ -119,13 +155,17 @@ required_ruby_version: !ruby/object:Gem::Requirement
119
155
  version: '0'
120
156
  required_rubygems_version: !ruby/object:Gem::Requirement
121
157
  requirements:
122
- - - '>'
158
+ - - '>='
123
159
  - !ruby/object:Gem::Version
124
- version: 1.3.1
160
+ version: '0'
125
161
  requirements: []
126
162
  rubyforge_project:
127
- rubygems_version: 2.1.9
163
+ rubygems_version: 2.4.6
128
164
  signing_key:
129
165
  specification_version: 4
130
166
  summary: managing jar dependencies
131
- test_files: []
167
+ test_files:
168
+ - spec/classpath_file_spec.rb
169
+ - spec/vendor_spec.rb
170
+ - spec/config_spec.rb
171
+ - spec/pom_spec.rb