lock_jar 0.10.0 → 0.10.2

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.
Files changed (51) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +59 -59
  3. data/.travis.yml +8 -8
  4. data/CHANGELOG.md +30 -21
  5. data/Gemfile +13 -13
  6. data/Guardfile +9 -9
  7. data/README.md +375 -375
  8. data/Rakefile +24 -24
  9. data/bundler/Gemfile +21 -21
  10. data/bundler/LICENSE.txt +22 -22
  11. data/bundler/README.md +29 -29
  12. data/bundler/Rakefile +2 -2
  13. data/bundler/lib/lock_jar_bundler/bundler.rb +35 -35
  14. data/bundler/lib/lock_jar_bundler/piggy_back.rb +97 -97
  15. data/bundler/lib/lock_jar_bundler/version.rb +5 -5
  16. data/bundler/lib/lock_jar_bundler.rb +4 -4
  17. data/bundler/lock_jar_bundler.gemspec +24 -24
  18. data/bundler/spec/Jarfile +2 -2
  19. data/bundler/spec/dummy_gem/dummy_gem.gemspec +19 -19
  20. data/bundler/spec/lock_jar_bundler_spec.rb +48 -48
  21. data/bundler/spec/spec_helper.rb +88 -88
  22. data/lib/lock_jar/buildr.rb +144 -144
  23. data/lib/lock_jar/bundler.rb +154 -154
  24. data/lib/lock_jar/cli.rb +64 -64
  25. data/lib/lock_jar/domain/artifact.rb +123 -123
  26. data/lib/lock_jar/domain/dsl.rb +187 -187
  27. data/lib/lock_jar/domain/dsl_helper.rb +83 -83
  28. data/lib/lock_jar/domain/gem_dsl.rb +44 -44
  29. data/lib/lock_jar/domain/jarfile_dsl.rb +46 -46
  30. data/lib/lock_jar/domain/lockfile.rb +113 -113
  31. data/lib/lock_jar/maven.rb +111 -111
  32. data/lib/lock_jar/registry.rb +92 -92
  33. data/lib/lock_jar/resolver.rb +95 -95
  34. data/lib/lock_jar/runtime.rb +359 -355
  35. data/lib/lock_jar/version.rb +3 -3
  36. data/lib/lock_jar.rb +172 -177
  37. data/lock_jar.gemspec +27 -27
  38. data/spec/fixtures/Jarfile +13 -13
  39. data/spec/fixtures/Jarfile2 +1 -0
  40. data/spec/lock_jar/class_loader_spec.rb +57 -57
  41. data/spec/lock_jar/cli_spec.rb +100 -100
  42. data/spec/lock_jar/domain/dsl_helper_spec.rb +52 -52
  43. data/spec/lock_jar/domain/dsl_spec.rb +57 -57
  44. data/spec/lock_jar/maven_spec.rb +23 -23
  45. data/spec/lock_jar/resolver_spec.rb +26 -26
  46. data/spec/lock_jar/runtime_spec.rb +26 -26
  47. data/spec/lock_jar_spec.rb +372 -295
  48. data/spec/pom.xml +34 -34
  49. data/spec/spec_helper.rb +38 -38
  50. data/spec/support/helper.rb +44 -44
  51. metadata +3 -1
data/Rakefile CHANGED
@@ -1,24 +1,24 @@
1
- # encoding: utf-8
2
-
3
- require 'rubygems'
4
- require 'bundler'
5
- begin
6
- Bundler.setup(:default, :development)
7
- rescue Bundler::BundlerError => e
8
- $stderr.puts e.message
9
- $stderr.puts "Run `bundle install` to install missing gems"
10
- exit e.status_code
11
- end
12
- require 'rake'
13
- require "bundler/gem_tasks"
14
-
15
-
16
- require 'rdoc/task'
17
- Rake::RDocTask.new do |rdoc|
18
- version = File.exist?('VERSION') ? File.read('VERSION') : ""
19
-
20
- rdoc.rdoc_dir = 'rdoc'
21
- rdoc.title = "lockjar #{version}"
22
- rdoc.rdoc_files.include('README*')
23
- rdoc.rdoc_files.include('lib/**/*.rb')
24
- end
1
+ # encoding: utf-8
2
+
3
+ require 'rubygems'
4
+ require 'bundler'
5
+ begin
6
+ Bundler.setup(:default, :development)
7
+ rescue Bundler::BundlerError => e
8
+ $stderr.puts e.message
9
+ $stderr.puts "Run `bundle install` to install missing gems"
10
+ exit e.status_code
11
+ end
12
+ require 'rake'
13
+ require "bundler/gem_tasks"
14
+
15
+
16
+ require 'rdoc/task'
17
+ Rake::RDocTask.new do |rdoc|
18
+ version = File.exist?('VERSION') ? File.read('VERSION') : ""
19
+
20
+ rdoc.rdoc_dir = 'rdoc'
21
+ rdoc.title = "lockjar #{version}"
22
+ rdoc.rdoc_files.include('README*')
23
+ rdoc.rdoc_files.include('lib/**/*.rb')
24
+ end
data/bundler/Gemfile CHANGED
@@ -1,21 +1,21 @@
1
- source 'https://rubygems.org'
2
-
3
- # Specify your gem's dependencies in lock_jar_bundler.gemspec
4
- gemspec
5
-
6
- group :development do
7
- gem 'guard-rspec', :require => false
8
- gem 'pry'
9
- gem 'yard'
10
- gem 'jruby-openssl', :platforms => :jruby
11
- gem 'rspec', '~>3.0.0'
12
- gem 'lock_jar', path: '../core'
13
- end
14
-
15
- # Test gems used in the specs when scanning for bundled jarfiles
16
- group :test do
17
- gem 'dummy_gem', path: 'spec/dummy_gem'
18
- end
19
-
20
-
21
-
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in lock_jar_bundler.gemspec
4
+ gemspec
5
+
6
+ group :development do
7
+ gem 'guard-rspec', :require => false
8
+ gem 'pry'
9
+ gem 'yard'
10
+ gem 'jruby-openssl', :platforms => :jruby
11
+ gem 'rspec', '~>3.0.0'
12
+ gem 'lock_jar', path: '../core'
13
+ end
14
+
15
+ # Test gems used in the specs when scanning for bundled jarfiles
16
+ group :test do
17
+ gem 'dummy_gem', path: 'spec/dummy_gem'
18
+ end
19
+
20
+
21
+
data/bundler/LICENSE.txt CHANGED
@@ -1,22 +1,22 @@
1
- Copyright (c) 2014 Michael Guymon
2
-
3
- MIT License
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining
6
- a copy of this software and associated documentation files (the
7
- "Software"), to deal in the Software without restriction, including
8
- without limitation the rights to use, copy, modify, merge, publish,
9
- distribute, sublicense, and/or sell copies of the Software, and to
10
- permit persons to whom the Software is furnished to do so, subject to
11
- the following conditions:
12
-
13
- The above copyright notice and this permission notice shall be
14
- included in all copies or substantial portions of the Software.
15
-
16
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
- LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
- OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
- WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
1
+ Copyright (c) 2014 Michael Guymon
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/bundler/README.md CHANGED
@@ -1,29 +1,29 @@
1
- # LockJarBundler
2
-
3
- TODO: Write a gem description
4
-
5
- ## Installation
6
-
7
- Add this line to your application's Gemfile:
8
-
9
- gem 'lock_jar_bundler'
10
-
11
- And then execute:
12
-
13
- $ bundle
14
-
15
- Or install it yourself as:
16
-
17
- $ gem install lock_jar_bundler
18
-
19
- ## Usage
20
-
21
- TODO: Write usage instructions here
22
-
23
- ## Contributing
24
-
25
- 1. Fork it ( https://github.com/[my-github-username]/lock_jar_bundler/fork )
26
- 2. Create your feature branch (`git checkout -b my-new-feature`)
27
- 3. Commit your changes (`git commit -am 'Add some feature'`)
28
- 4. Push to the branch (`git push origin my-new-feature`)
29
- 5. Create a new Pull Request
1
+ # LockJarBundler
2
+
3
+ TODO: Write a gem description
4
+
5
+ ## Installation
6
+
7
+ Add this line to your application's Gemfile:
8
+
9
+ gem 'lock_jar_bundler'
10
+
11
+ And then execute:
12
+
13
+ $ bundle
14
+
15
+ Or install it yourself as:
16
+
17
+ $ gem install lock_jar_bundler
18
+
19
+ ## Usage
20
+
21
+ TODO: Write usage instructions here
22
+
23
+ ## Contributing
24
+
25
+ 1. Fork it ( https://github.com/[my-github-username]/lock_jar_bundler/fork )
26
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
27
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
28
+ 4. Push to the branch (`git push origin my-new-feature`)
29
+ 5. Create a new Pull Request
data/bundler/Rakefile CHANGED
@@ -1,2 +1,2 @@
1
- require "bundler/gem_tasks"
2
-
1
+ require "bundler/gem_tasks"
2
+
@@ -1,35 +1,35 @@
1
- require 'lock_jar/registry'
2
- require 'lock_jar_bundler/version'
3
-
4
- module LockJar
5
-
6
- class Bundler
7
-
8
- def self.bundled_jarfiles(groups=[:default])
9
- jarfiles = []
10
-
11
- ::Bundler.with_clean_env do
12
- ::Bundler.setup(groups)
13
- definition = ::Bundler.definition
14
-
15
- definition.specs_for(groups).each do |spec|
16
- gem_dir = spec.gem_dir
17
-
18
- jarfile = File.join( gem_dir, "Jarfile" )
19
-
20
- # XXX: assert that is a LockJar file
21
-
22
- if File.exists?( jarfile )
23
- puts "#{spec.name} has Jarfile for locking"
24
- jarfiles << jarfile
25
- end
26
- end
27
- end
28
-
29
- jarfiles
30
- end
31
-
32
- end
33
-
34
- end
35
-
1
+ require 'lock_jar/registry'
2
+ require 'lock_jar_bundler/version'
3
+
4
+ module LockJar
5
+
6
+ class Bundler
7
+
8
+ def self.bundled_jarfiles(groups=[:default])
9
+ jarfiles = []
10
+
11
+ ::Bundler.with_clean_env do
12
+ ::Bundler.setup(groups)
13
+ definition = ::Bundler.definition
14
+
15
+ definition.specs_for(groups).each do |spec|
16
+ gem_dir = spec.gem_dir
17
+
18
+ jarfile = File.join( gem_dir, "Jarfile" )
19
+
20
+ # XXX: assert that is a LockJar file
21
+
22
+ if File.exists?( jarfile )
23
+ puts "#{spec.name} has Jarfile for locking"
24
+ jarfiles << jarfile
25
+ end
26
+ end
27
+ end
28
+
29
+ jarfiles
30
+ end
31
+
32
+ end
33
+
34
+ end
35
+
@@ -1,98 +1,98 @@
1
- module Bundler
2
- class << self
3
- alias :_lockjar_extended_require :require
4
- def require(*groups)
5
- LockJar::Bundler.load(*groups)
6
-
7
- LockJar::Bundler.skip_lock = true
8
-
9
- _lockjar_extended_require
10
- end
11
-
12
- alias :_lockjar_extended_setup :setup
13
- def setup(*groups)
14
- LockJar::Bundler.load(*groups)
15
-
16
- LockJar::Bundler.skip_lock = true
17
-
18
- _lockjar_extended_setup
19
- end
20
- end
21
-
22
- class Runtime
23
-
24
- alias :_lockjar_extended_require :require
25
- def require(*groups)
26
- LockJar::Bundler.load(*groups)
27
-
28
- LockJar::Bundler.skip_lock = true
29
-
30
- _lockjar_extended_require
31
- end
32
-
33
- alias :_lockjar_extended_setup :setup
34
- def setup(*groups)
35
- LockJar::Bundler.load(*groups)
36
-
37
- LockJar::Bundler.skip_lock = true
38
-
39
- _lockjar_extended_setup
40
- end
41
- end
42
-
43
- class Definition
44
- alias :_lockjar_extended_to_lock :to_lock
45
- def to_lock
46
- to_lock = _lockjar_extended_to_lock
47
-
48
- if LockJar::Bundler.skip_lock != true
49
- definition = Bundler.definition
50
- #if !definition.send( :nothing_changed? )
51
- gems_with_jars = []
52
-
53
- # load local Jarfile
54
- if File.exists?( 'Jarfile' )
55
- dsl = LockJar::Domain::JarfileDsl.create( File.expand_path( 'Jarfile' ) )
56
- gems_with_jars << 'jarfile:Jarfile'
57
- # Create new Dsl
58
- else
59
- dsl = LockJar::Domain::Dsl.new
60
- end
61
-
62
- definition.groups.each do |group|
63
- if ENV["DEBUG"]
64
- puts "[LockJar] Group #{group}:"
65
- end
66
-
67
- definition.specs_for( [group] ).each do |spec|
68
- gem_dir = spec.gem_dir
69
-
70
- jarfile = File.join( gem_dir, "Jarfile" )
71
-
72
- if File.exists?( jarfile )
73
- gems_with_jars << "gem:#{spec.name}"
74
-
75
- if ENV["DEBUG"]
76
- puts "[LockJar] #{spec.name} has Jarfile"
77
- end
78
-
79
- spec_dsl = LockJar::Domain::GemDsl.create( spec, "Jarfile" )
80
-
81
- dsl = LockJar::Domain::DslHelper.merge( dsl, spec_dsl, group.to_s )
82
- end
83
- end
84
-
85
- end
86
-
87
- puts "[LockJar] Locking Jars for: #{gems_with_jars.inspect}"
88
- LockJar.lock( dsl )
89
- #elsif ENV["DEBUG"]
90
- # puts "[LockJar] Locking skiped, Gemfile has not changed"
91
- #end
92
- end
93
-
94
- to_lock
95
- end
96
-
97
- end
1
+ module Bundler
2
+ class << self
3
+ alias :_lockjar_extended_require :require
4
+ def require(*groups)
5
+ LockJar::Bundler.load(*groups)
6
+
7
+ LockJar::Bundler.skip_lock = true
8
+
9
+ _lockjar_extended_require
10
+ end
11
+
12
+ alias :_lockjar_extended_setup :setup
13
+ def setup(*groups)
14
+ LockJar::Bundler.load(*groups)
15
+
16
+ LockJar::Bundler.skip_lock = true
17
+
18
+ _lockjar_extended_setup
19
+ end
20
+ end
21
+
22
+ class Runtime
23
+
24
+ alias :_lockjar_extended_require :require
25
+ def require(*groups)
26
+ LockJar::Bundler.load(*groups)
27
+
28
+ LockJar::Bundler.skip_lock = true
29
+
30
+ _lockjar_extended_require
31
+ end
32
+
33
+ alias :_lockjar_extended_setup :setup
34
+ def setup(*groups)
35
+ LockJar::Bundler.load(*groups)
36
+
37
+ LockJar::Bundler.skip_lock = true
38
+
39
+ _lockjar_extended_setup
40
+ end
41
+ end
42
+
43
+ class Definition
44
+ alias :_lockjar_extended_to_lock :to_lock
45
+ def to_lock
46
+ to_lock = _lockjar_extended_to_lock
47
+
48
+ if LockJar::Bundler.skip_lock != true
49
+ definition = Bundler.definition
50
+ #if !definition.send( :nothing_changed? )
51
+ gems_with_jars = []
52
+
53
+ # load local Jarfile
54
+ if File.exists?( 'Jarfile' )
55
+ dsl = LockJar::Domain::JarfileDsl.create( File.expand_path( 'Jarfile' ) )
56
+ gems_with_jars << 'jarfile:Jarfile'
57
+ # Create new Dsl
58
+ else
59
+ dsl = LockJar::Domain::Dsl.new
60
+ end
61
+
62
+ definition.groups.each do |group|
63
+ if ENV["DEBUG"]
64
+ puts "[LockJar] Group #{group}:"
65
+ end
66
+
67
+ definition.specs_for( [group] ).each do |spec|
68
+ gem_dir = spec.gem_dir
69
+
70
+ jarfile = File.join( gem_dir, "Jarfile" )
71
+
72
+ if File.exists?( jarfile )
73
+ gems_with_jars << "gem:#{spec.name}"
74
+
75
+ if ENV["DEBUG"]
76
+ puts "[LockJar] #{spec.name} has Jarfile"
77
+ end
78
+
79
+ spec_dsl = LockJar::Domain::GemDsl.create( spec, "Jarfile" )
80
+
81
+ dsl = LockJar::Domain::DslHelper.merge( dsl, spec_dsl, group.to_s )
82
+ end
83
+ end
84
+
85
+ end
86
+
87
+ puts "[LockJar] Locking Jars for: #{gems_with_jars.inspect}"
88
+ LockJar.lock( dsl )
89
+ #elsif ENV["DEBUG"]
90
+ # puts "[LockJar] Locking skiped, Gemfile has not changed"
91
+ #end
92
+ end
93
+
94
+ to_lock
95
+ end
96
+
97
+ end
98
98
  end
@@ -1,5 +1,5 @@
1
- module LockJar
2
- class Bundler
3
- VERSION = "0.0.1"
4
- end
5
- end
1
+ module LockJar
2
+ class Bundler
3
+ VERSION = "0.0.1"
4
+ end
5
+ end
@@ -1,5 +1,5 @@
1
- require 'lock_jar_bundler/bundler'
2
-
3
- module LockJar
4
-
1
+ require 'lock_jar_bundler/bundler'
2
+
3
+ module LockJar
4
+
5
5
  end
@@ -1,24 +1,24 @@
1
- # coding: utf-8
2
- lib = File.expand_path('../lib', __FILE__)
3
- $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
- require 'lock_jar_bundler/version'
5
-
6
- Gem::Specification.new do |spec|
7
- spec.name = 'lock_jar_bundler'
8
- spec.version = LockJar::Bundler::VERSION
9
- spec.authors = ['Michael Guymon']
10
- spec.email = %w(michael@tobedevoured)
11
- spec.summary = 'Manage Jar files for Ruby'
12
- spec.description = 'Manage Jar files for Ruby. In the spirit of Bundler, a Jarfile is used to generate a Jarfile.lock that contains all the resolved jar dependencies for scopes runtime, compile, and test. The Jarfile.lock can be used to populate the classpath'
13
- spec.homepage = 'http://github.com/mguymon/lock_jar'
14
- spec.license = 'Apache'
15
-
16
- spec.files = `git ls-files -z`.split("\x0")
17
- spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
- spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
- spec.require_paths = ["lib"]
20
-
21
- spec.add_dependency 'lock_jar', '>= 0.8.0'
22
- spec.add_dependency 'bundler', '~> 1.6'
23
- spec.add_development_dependency 'rake'
24
- end
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'lock_jar_bundler/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = 'lock_jar_bundler'
8
+ spec.version = LockJar::Bundler::VERSION
9
+ spec.authors = ['Michael Guymon']
10
+ spec.email = %w(michael@tobedevoured)
11
+ spec.summary = 'Manage Jar files for Ruby'
12
+ spec.description = 'Manage Jar files for Ruby. In the spirit of Bundler, a Jarfile is used to generate a Jarfile.lock that contains all the resolved jar dependencies for scopes runtime, compile, and test. The Jarfile.lock can be used to populate the classpath'
13
+ spec.homepage = 'http://github.com/mguymon/lock_jar'
14
+ spec.license = 'Apache'
15
+
16
+ spec.files = `git ls-files -z`.split("\x0")
17
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
+ spec.require_paths = ["lib"]
20
+
21
+ spec.add_dependency 'lock_jar', '>= 0.8.0'
22
+ spec.add_dependency 'bundler', '~> 1.6'
23
+ spec.add_development_dependency 'rake'
24
+ end
data/bundler/spec/Jarfile CHANGED
@@ -1,3 +1,3 @@
1
- bundler :default, :test
2
-
1
+ bundler :default, :test
2
+
3
3
  jar "com.tobedevoured.command:core:0.3.2"
@@ -1,19 +1,19 @@
1
- # coding: utf-8
2
-
3
- Gem::Specification.new do |spec|
4
- spec.name = 'dummy_gem'
5
- spec.version = 0.1
6
- spec.authors = ['Michael Guymon']
7
- spec.email = %w(michael@tobedevoured)
8
- spec.summary = 'For testing LockJar Bundler support'
9
- spec.description = 'For testing LockJar Bundler support'
10
- spec.homepage = 'http://github.com/mguymon/lock_jar'
11
- spec.license = 'Apache'
12
-
13
- spec.files = []
14
- spec.executables = []
15
- spec.test_files = []
16
- spec.require_paths = ["lib"]
17
-
18
- spec.add_dependency 'json'
19
- end
1
+ # coding: utf-8
2
+
3
+ Gem::Specification.new do |spec|
4
+ spec.name = 'dummy_gem'
5
+ spec.version = 0.1
6
+ spec.authors = ['Michael Guymon']
7
+ spec.email = %w(michael@tobedevoured)
8
+ spec.summary = 'For testing LockJar Bundler support'
9
+ spec.description = 'For testing LockJar Bundler support'
10
+ spec.homepage = 'http://github.com/mguymon/lock_jar'
11
+ spec.license = 'Apache'
12
+
13
+ spec.files = []
14
+ spec.executables = []
15
+ spec.test_files = []
16
+ spec.require_paths = ["lib"]
17
+
18
+ spec.add_dependency 'json'
19
+ end