jbundler 0.8.0.pre → 0.8.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.
@@ -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