lock_jar 0.6.1 → 0.6.2
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile +2 -0
- data/README.md +4 -1
- data/VERSION +1 -1
- data/lib/lock_jar/class_loader.rb +69 -0
- data/lib/lock_jar/registry.rb +50 -0
- data/lib/lock_jar/rubygems.rb +21 -0
- data/lib/lock_jar/runtime.rb +16 -5
- data/lib/lock_jar.rb +6 -4
- data/lock_jar.gemspec +13 -2
- data/spec/Jarfile +1 -1
- data/spec/lock_jar/class_loader_spec.rb +53 -0
- data/spec/lock_jar/dsl_spec.rb +4 -1
- data/spec/lock_jar/rubygems_spec.rb +43 -0
- data/spec/lock_jar_spec.rb +4 -4
- data/spec/spec_helper.rb +4 -1
- metadata +76 -38
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -126,6 +126,8 @@ or directly load all Jars into the classpath
|
|
126
126
|
|
127
127
|
Do not forget, if you change your _Jarfile_, you have to re-generate the _Jarfile.lock_.
|
128
128
|
|
129
|
+
See also [loading Jars into a custom ClassLoader](https://github.com/mguymon/lock_jar/wiki/ClassLoader).
|
130
|
+
|
129
131
|
### Shortcuts
|
130
132
|
|
131
133
|
#### Skipping the Jarfile
|
@@ -208,7 +210,8 @@ renamed to `Rakefile`.
|
|
208
210
|
|
209
211
|
### Loading
|
210
212
|
|
211
|
-
With the Jars already installed, loading the classpath for the Gem is simple.
|
213
|
+
With the Jars already installed, loading the classpath for the Gem is simple.
|
214
|
+
As part of the load process for the Gem (an entry file that is required, etc) use the following:
|
212
215
|
|
213
216
|
#get jarfile relative the gem dir
|
214
217
|
lockfile = File.expand_path( "../Jarfile.lock", __FILE__ )
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.6.
|
1
|
+
0.6.2
|
@@ -0,0 +1,69 @@
|
|
1
|
+
# Licensed to the Apache Software Foundation (ASF) under one or more
|
2
|
+
# contributor license agreements. See the NOTICE file distributed with this
|
3
|
+
# work for additional information regarding copyright ownership. The ASF
|
4
|
+
# licenses this file to you under the Apache License, Version 2.0 (the
|
5
|
+
# "License"); you may not use this file except in compliance with the License.
|
6
|
+
# You may obtain a copy of the License at
|
7
|
+
#
|
8
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
9
|
+
#
|
10
|
+
# Unless required by applicable law or agreed to in writing, software
|
11
|
+
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
12
|
+
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
13
|
+
# License for the specific language governing permissions and limitations under
|
14
|
+
# the License.
|
15
|
+
|
16
|
+
require 'lock_jar'
|
17
|
+
require 'naether'
|
18
|
+
|
19
|
+
module LockJar
|
20
|
+
|
21
|
+
#
|
22
|
+
# Create a ClassLoader populated by a lockfile
|
23
|
+
#
|
24
|
+
# @author Michael Guymon
|
25
|
+
#
|
26
|
+
class ClassLoader
|
27
|
+
|
28
|
+
# Create new instance, populating ClassLoader with lockfile
|
29
|
+
#
|
30
|
+
# @param [String] lockfile path
|
31
|
+
def initialize( lockfile )
|
32
|
+
# XXX: ensure Naether has been loaded, this should be handled less
|
33
|
+
# clumsily
|
34
|
+
LockJar::Runtime.instance.resolver(nil)
|
35
|
+
@class_loader = com.tobedevoured.naether.PathClassLoader.new(JRuby.runtime.jruby_class_loader)
|
36
|
+
|
37
|
+
jars = LockJar.list( lockfile, :local_paths => true )
|
38
|
+
jars.each do |jar|
|
39
|
+
add_path( jar )
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
# Execute block
|
44
|
+
#
|
45
|
+
# @param [Block] blk
|
46
|
+
def isolate(&blk)
|
47
|
+
instance_eval(&blk)
|
48
|
+
end
|
49
|
+
|
50
|
+
# Add path to the ClassLoader
|
51
|
+
#
|
52
|
+
# @param [String] path of Jar or directory to add to ClassLoader
|
53
|
+
# @return [Boolean] if added
|
54
|
+
def add_path( path )
|
55
|
+
@class_loader.addPath( path )
|
56
|
+
end
|
57
|
+
|
58
|
+
#
|
59
|
+
# Create new instance of a Java class using the populated ClassLoader
|
60
|
+
#
|
61
|
+
# @param [String] clazz fully qualified Java class
|
62
|
+
# @param [Array] args arguments for constructing the Java class
|
63
|
+
# @return [Object]
|
64
|
+
def new_instance( clazz, *args )
|
65
|
+
@class_loader.newInstance( clazz, *args )
|
66
|
+
end
|
67
|
+
|
68
|
+
end
|
69
|
+
end
|
@@ -0,0 +1,50 @@
|
|
1
|
+
|
2
|
+
class LockJar::Registry
|
3
|
+
include Singleton
|
4
|
+
|
5
|
+
attr_accessor :loaded_gems
|
6
|
+
attr_accessor :loaded_jars
|
7
|
+
|
8
|
+
def initialize
|
9
|
+
@loaded_gems = {}
|
10
|
+
@loaded_jars = []
|
11
|
+
end
|
12
|
+
|
13
|
+
def register_jars( jars )
|
14
|
+
if jars
|
15
|
+
jars_to_load = jars - @loaded_jars
|
16
|
+
|
17
|
+
@loaded_jars += jars_to_load
|
18
|
+
|
19
|
+
jars_to_load
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
def load_gem( spec )
|
24
|
+
if @loaded_gems[spec.name].nil?
|
25
|
+
@loaded_gems[spec.name] = spec
|
26
|
+
gem_dir = spec.gem_dir
|
27
|
+
|
28
|
+
lockfile = File.join( gem_dir, "Jarfile.lock" )
|
29
|
+
|
30
|
+
if File.exists?( lockfile )
|
31
|
+
puts "#{spec.name} has Jarfile.lock, loading jars"
|
32
|
+
LockJar.load( lockfile )
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
def load_jars_for_gems
|
38
|
+
specs = Gem.loaded_specs
|
39
|
+
if specs
|
40
|
+
gems_to_check = specs.keys - @loaded_gems.keys
|
41
|
+
if gems_to_check.size > 0
|
42
|
+
gems_to_check.each do |key|
|
43
|
+
spec = specs[key]
|
44
|
+
load_gem( spec )
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require 'lock_jar/registry'
|
2
|
+
|
3
|
+
module LockJar::Rubygems
|
4
|
+
module Kernel
|
5
|
+
unless respond_to? :lock_jar_registry
|
6
|
+
def lock_jar_registry
|
7
|
+
LockJar::Registry.instance
|
8
|
+
end
|
9
|
+
|
10
|
+
alias :_pre_lockjar_require :require
|
11
|
+
|
12
|
+
def require( filename )
|
13
|
+
spec = Gem::Specification.find_by_path( filename )
|
14
|
+
if spec
|
15
|
+
lock_jar_registry.load_gem( spec )
|
16
|
+
end
|
17
|
+
_pre_lockjar_require( filename )
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
data/lib/lock_jar/runtime.rb
CHANGED
@@ -19,6 +19,7 @@ require 'singleton'
|
|
19
19
|
require 'lock_jar/resolver'
|
20
20
|
require 'lock_jar/dsl'
|
21
21
|
require 'lock_jar/runtime'
|
22
|
+
require 'lock_jar/registry'
|
22
23
|
|
23
24
|
module LockJar
|
24
25
|
class Runtime
|
@@ -27,13 +28,23 @@ module LockJar
|
|
27
28
|
attr_reader :current_resolver
|
28
29
|
|
29
30
|
def resolver( opts = {} )
|
30
|
-
if opts[:local_repo]
|
31
|
-
opts[:local_repo] = File.expand_path(opts[:local_repo])
|
32
|
-
end
|
33
31
|
|
34
32
|
# XXX: Caches the resolver by the options. Passing in nil opts will replay
|
35
33
|
# from the cache. This need to change.
|
36
|
-
|
34
|
+
|
35
|
+
unless opts.nil?
|
36
|
+
if opts[:local_repo]
|
37
|
+
opts[:local_repo] = File.expand_path(opts[:local_repo])
|
38
|
+
end
|
39
|
+
else
|
40
|
+
if @current_resolver
|
41
|
+
opts = @current_resolver.opts
|
42
|
+
else
|
43
|
+
opts = {}
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
if @current_resolver.nil? || opts != @current_resolver.opts
|
37
48
|
@current_resolver = LockJar::Resolver.new( opts )
|
38
49
|
end
|
39
50
|
|
@@ -212,7 +223,7 @@ module LockJar
|
|
212
223
|
end
|
213
224
|
end
|
214
225
|
|
215
|
-
dependencies = list( jarfile_lock, scopes, opts, &blk )
|
226
|
+
dependencies = LockJar::Registry.instance.register_jars( list( jarfile_lock, scopes, opts, &blk ) )
|
216
227
|
|
217
228
|
resolver(opts).load_to_classpath( dependencies )
|
218
229
|
end
|
data/lib/lock_jar.rb
CHANGED
@@ -19,6 +19,7 @@ require 'lock_jar/resolver'
|
|
19
19
|
require 'lock_jar/dsl'
|
20
20
|
require 'lock_jar/runtime'
|
21
21
|
require 'lock_jar/version'
|
22
|
+
require 'lock_jar/rubygems'
|
22
23
|
|
23
24
|
#
|
24
25
|
# LockJar manages Java Jars for Ruby.
|
@@ -63,9 +64,9 @@ module LockJar
|
|
63
64
|
# * An arg of a String will set the Jarfile.lock, e.g. 'Better.lock'. Default lock file is *Jarfile.lock*.
|
64
65
|
# * An arg of an Array will set the scopes, e.g. ['compile','test']. Defaults scopes are *compile* and *runtime*
|
65
66
|
# * An arg of a Hash will set the options, e.g. { :local_repo => 'path' }
|
66
|
-
# * :local_repo sets the local repo path
|
67
|
-
# * :local_paths converts the notations to paths to jars in the local repo path
|
68
|
-
# * :resolve to true will make transitive dependences resolve before loading to classpath
|
67
|
+
# * :local_repo [String] sets the local repo path
|
68
|
+
# * :local_paths [Boolean] to true converts the notations to paths to jars in the local repo path
|
69
|
+
# * :resolve [Boolean] to true will make transitive dependences resolve before loading to classpath
|
69
70
|
#
|
70
71
|
# A block can be passed in, overriding values from a Jarfile.lock.
|
71
72
|
#
|
@@ -168,5 +169,6 @@ module LockJar
|
|
168
169
|
Runtime.instance.read_lockfile( lockfile )
|
169
170
|
end
|
170
171
|
|
172
|
+
end
|
171
173
|
|
172
|
-
|
174
|
+
#include LockJar::Rubygems::Kernel
|
data/lock_jar.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "lock_jar"
|
8
|
-
s.version = "0.6.
|
8
|
+
s.version = "0.6.2"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Michael Guymon"]
|
12
|
-
s.date = "2012-09-
|
12
|
+
s.date = "2012-09-28"
|
13
13
|
s.description = "Manage Jar files for Ruby. In the spirit of Bundler, a Jarfile\n is used to generate a Jarfile.lock that contains all the resolved jar dependencies for scopes runtime, compile, and test.\n The Jarfile.lock can be used to populate the classpath"
|
14
14
|
s.email = "michael@tobedevoured.com"
|
15
15
|
s.executables = ["lockjar"]
|
@@ -27,17 +27,22 @@ Gem::Specification.new do |s|
|
|
27
27
|
"bin/lockjar",
|
28
28
|
"lib/lock_jar.rb",
|
29
29
|
"lib/lock_jar/buildr.rb",
|
30
|
+
"lib/lock_jar/class_loader.rb",
|
30
31
|
"lib/lock_jar/cli.rb",
|
31
32
|
"lib/lock_jar/dsl.rb",
|
32
33
|
"lib/lock_jar/maven.rb",
|
34
|
+
"lib/lock_jar/registry.rb",
|
33
35
|
"lib/lock_jar/resolver.rb",
|
36
|
+
"lib/lock_jar/rubygems.rb",
|
34
37
|
"lib/lock_jar/runtime.rb",
|
35
38
|
"lib/lock_jar/version.rb",
|
36
39
|
"lock_jar.gemspec",
|
37
40
|
"spec/Jarfile",
|
41
|
+
"spec/lock_jar/class_loader_spec.rb",
|
38
42
|
"spec/lock_jar/dsl_spec.rb",
|
39
43
|
"spec/lock_jar/maven_spec.rb",
|
40
44
|
"spec/lock_jar/resolver_spec.rb",
|
45
|
+
"spec/lock_jar/rubygems_spec.rb",
|
41
46
|
"spec/lock_jar/runtime_spec.rb",
|
42
47
|
"spec/lock_jar_spec.rb",
|
43
48
|
"spec/pom.xml",
|
@@ -58,12 +63,16 @@ Gem::Specification.new do |s|
|
|
58
63
|
s.add_development_dependency(%q<rspec>, ["~> 2.9.0"])
|
59
64
|
s.add_development_dependency(%q<jeweler>, ["~> 1.8.4"])
|
60
65
|
s.add_development_dependency(%q<yard>, ["~> 0.8.0"])
|
66
|
+
s.add_development_dependency(%q<solr_sail>, ["~> 0.0.6"])
|
67
|
+
s.add_development_dependency(%q<jruby-openssl>, [">= 0"])
|
61
68
|
else
|
62
69
|
s.add_dependency(%q<naether>, ["~> 0.9.0"])
|
63
70
|
s.add_dependency(%q<thor>, ["~> 0.14.6"])
|
64
71
|
s.add_dependency(%q<rspec>, ["~> 2.9.0"])
|
65
72
|
s.add_dependency(%q<jeweler>, ["~> 1.8.4"])
|
66
73
|
s.add_dependency(%q<yard>, ["~> 0.8.0"])
|
74
|
+
s.add_dependency(%q<solr_sail>, ["~> 0.0.6"])
|
75
|
+
s.add_dependency(%q<jruby-openssl>, [">= 0"])
|
67
76
|
end
|
68
77
|
else
|
69
78
|
s.add_dependency(%q<naether>, ["~> 0.9.0"])
|
@@ -71,6 +80,8 @@ Gem::Specification.new do |s|
|
|
71
80
|
s.add_dependency(%q<rspec>, ["~> 2.9.0"])
|
72
81
|
s.add_dependency(%q<jeweler>, ["~> 1.8.4"])
|
73
82
|
s.add_dependency(%q<yard>, ["~> 0.8.0"])
|
83
|
+
s.add_dependency(%q<solr_sail>, ["~> 0.0.6"])
|
84
|
+
s.add_dependency(%q<jruby-openssl>, [">= 0"])
|
74
85
|
end
|
75
86
|
end
|
76
87
|
|
data/spec/Jarfile
CHANGED
@@ -0,0 +1,53 @@
|
|
1
|
+
require File.expand_path(File.join(File.dirname(__FILE__),'../spec_helper'))
|
2
|
+
require 'lib/lock_jar/class_loader'
|
3
|
+
|
4
|
+
|
5
|
+
describe LockJar::ClassLoader, "#isolate" do
|
6
|
+
|
7
|
+
it "should create a SimpleEmail" do
|
8
|
+
# Generate the IsolateJarfile.lock
|
9
|
+
LockJar.lock( :lockfile => 'tmp/IsolateJarfile.lock' ) do
|
10
|
+
jar 'org.apache.commons:commons-email:1.2'
|
11
|
+
end
|
12
|
+
|
13
|
+
email = LockJar::ClassLoader.new( 'tmp/IsolateJarfile.lock' ).isolate do
|
14
|
+
email = new_instance( 'org.apache.commons.mail.SimpleEmail' )
|
15
|
+
email.setSubject( 'test subject' )
|
16
|
+
|
17
|
+
email
|
18
|
+
end
|
19
|
+
|
20
|
+
email.getSubject().should eql 'test subject'
|
21
|
+
|
22
|
+
unless $CLASSPATH.nil?
|
23
|
+
$CLASSPATH.to_a.join(' ').should_not =~ /commons-email-1\.2\.jar/
|
24
|
+
end
|
25
|
+
|
26
|
+
expect { org.apache.commons.mail.SimpleEmail.new }.to raise_error
|
27
|
+
end
|
28
|
+
|
29
|
+
it "should create a JsonFactory and ObjectMapper" do
|
30
|
+
# Generate the IsolateJarfile.lock
|
31
|
+
LockJar.lock( :lockfile => 'tmp/IsolateJarfile.lock' ) do
|
32
|
+
jar 'com.fasterxml.jackson.core:jackson-core:2.0.6'
|
33
|
+
jar 'com.fasterxml.jackson.core:jackson-databind:2.0.6'
|
34
|
+
end
|
35
|
+
|
36
|
+
json = '{ "test1": "1test1", "test2": "2test2"}'
|
37
|
+
|
38
|
+
map = LockJar::ClassLoader.new( 'tmp/IsolateJarfile.lock' ).isolate do
|
39
|
+
factory = new_instance( 'com.fasterxml.jackson.core.JsonFactory' )
|
40
|
+
mapper = new_instance( 'com.fasterxml.jackson.databind.ObjectMapper', factory)
|
41
|
+
mapper.readValue(json, java.util.Map.java_class)
|
42
|
+
end
|
43
|
+
|
44
|
+
map.get('test1').should eql "1test1"
|
45
|
+
map.get('test2').should eql "2test2"
|
46
|
+
|
47
|
+
unless $CLASSPATH.nil?
|
48
|
+
$CLASSPATH.to_a.join(' ').should_not =~ /jackson-databind-2\.0\.6\.jar/
|
49
|
+
end
|
50
|
+
|
51
|
+
expect { com.fasterxml.jackson.core.JsonFactory.new }.to raise_error
|
52
|
+
end
|
53
|
+
end
|
data/spec/lock_jar/dsl_spec.rb
CHANGED
@@ -6,7 +6,10 @@ describe LockJar::Dsl do
|
|
6
6
|
jarfile = LockJar::Dsl.evaluate( "spec/Jarfile" )
|
7
7
|
|
8
8
|
jarfile.local_repository.should eql '~/.m2/repository'
|
9
|
-
jarfile.notations.should eql( {
|
9
|
+
jarfile.notations.should eql( {
|
10
|
+
"compile"=>["org.apache.mina:mina-core:2.0.4", "spec/pom.xml"],
|
11
|
+
"runtime"=>["spec/pom.xml", "com.typesafe:config:jar:0.5.0"],
|
12
|
+
"test"=>["spec/pom.xml", "junit:junit:jar:4.10"]} )
|
10
13
|
jarfile.repositories.should eql( ['http://mirrors.ibiblio.org/pub/mirrors/maven2'] )
|
11
14
|
end
|
12
15
|
|
@@ -0,0 +1,43 @@
|
|
1
|
+
require File.expand_path(File.join(File.dirname(__FILE__),'../spec_helper'))
|
2
|
+
require 'lib/lock_jar/rubygems'
|
3
|
+
|
4
|
+
|
5
|
+
describe LockJar::Rubygems do
|
6
|
+
|
7
|
+
include LockJar::Rubygems::Kernel
|
8
|
+
|
9
|
+
|
10
|
+
it "should set Registry" do
|
11
|
+
lock_jar_registry.is_a?( LockJar::Registry ).should be_true
|
12
|
+
end
|
13
|
+
|
14
|
+
context "with require" do
|
15
|
+
before(:all) do
|
16
|
+
require 'solr_sail'
|
17
|
+
end
|
18
|
+
|
19
|
+
it "should have only loaded jars for solr_sail" do
|
20
|
+
lock_jar_registry.loaded_gems.keys.should eql(
|
21
|
+
["solr_sail"] )
|
22
|
+
end
|
23
|
+
|
24
|
+
it "should set classpath" do
|
25
|
+
# XXX: Need a better assertion than this. The count will include previous tests
|
26
|
+
$CLASSPATH.size.should eql( 71 )
|
27
|
+
end
|
28
|
+
|
29
|
+
it "should have correctly loaded SolrSail" do
|
30
|
+
# manually load the jar packaged with the gem
|
31
|
+
$CLASSPATH << SolrSail::DEFAULT_JAR
|
32
|
+
|
33
|
+
# Start and stop solr
|
34
|
+
# XXX: an assertion that the java is properly being called
|
35
|
+
config = com.tobedevoured.solrsail.SolrConfig.new( 'tmp/solr')
|
36
|
+
config.install
|
37
|
+
|
38
|
+
server = com.tobedevoured.solrsail.JettyServer.new( 'tmp/solr' )
|
39
|
+
server.start
|
40
|
+
server.stop
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
data/spec/lock_jar_spec.rb
CHANGED
@@ -28,8 +28,8 @@ describe LockJar, "#lock" do
|
|
28
28
|
"com.slackworks:modelcitizen:jar:0.2.2", "org.slf4j:slf4j-api:jar:1.6.1",
|
29
29
|
"commons-io:commons-io:jar:1.4"]},
|
30
30
|
"runtime"=>{
|
31
|
-
"dependencies"=>["spec/pom.xml", "
|
32
|
-
"resolved_dependencies"=>["
|
31
|
+
"dependencies"=>["spec/pom.xml", "com.typesafe:config:jar:0.5.0"],
|
32
|
+
"resolved_dependencies"=>["com.typesafe:config:jar:0.5.0"]},
|
33
33
|
"test"=>{
|
34
34
|
"dependencies"=>["spec/pom.xml", "junit:junit:jar:4.10"],
|
35
35
|
"resolved_dependencies"=>["junit:junit:jar:4.10", "org.jboss.unit:jboss-unit:jar:1.2.4",
|
@@ -137,7 +137,7 @@ describe LockJar, "#list" do
|
|
137
137
|
"commons-logging:commons-logging:jar:1.1.1", "junit:junit:jar:4.7",
|
138
138
|
"ch.qos.logback:logback-core:jar:0.9.24", "commons-lang:commons-lang:jar:2.6",
|
139
139
|
"com.slackworks:modelcitizen:jar:0.2.2", "org.slf4j:slf4j-api:jar:1.6.1",
|
140
|
-
"commons-io:commons-io:jar:1.4", "
|
140
|
+
"commons-io:commons-io:jar:1.4", "com.typesafe:config:jar:0.5.0" ])
|
141
141
|
end
|
142
142
|
|
143
143
|
it "should replace dependencies with maps" do
|
@@ -187,7 +187,7 @@ describe LockJar, "#load" do
|
|
187
187
|
File.expand_path("tmp/test-repo/com/slackworks/modelcitizen/0.2.2/modelcitizen-0.2.2.jar"),
|
188
188
|
File.expand_path("tmp/test-repo/org/slf4j/slf4j-api/1.6.1/slf4j-api-1.6.1.jar"),
|
189
189
|
File.expand_path("tmp/test-repo/commons-io/commons-io/1.4/commons-io-1.4.jar"),
|
190
|
-
File.expand_path("tmp/test-repo/
|
190
|
+
File.expand_path("tmp/test-repo/com/typesafe/config/0.5.0/config-0.5.0.jar") ]
|
191
191
|
)
|
192
192
|
if Naether.platform == 'java'
|
193
193
|
lambda { include_class 'org.apache.mina.core.IoUtil' }.should_not raise_error
|
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -1,100 +1,132 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: lock_jar
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
|
4
|
+
prerelease:
|
5
|
+
version: 0.6.2
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Michael Guymon
|
9
|
-
autorequire:
|
9
|
+
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-09-
|
12
|
+
date: 2012-09-28 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: naether
|
16
|
-
|
17
|
-
none: false
|
16
|
+
version_requirements: !ruby/object:Gem::Requirement
|
18
17
|
requirements:
|
19
18
|
- - ~>
|
20
19
|
- !ruby/object:Gem::Version
|
21
20
|
version: 0.9.0
|
22
|
-
type: :runtime
|
23
|
-
prerelease: false
|
24
|
-
version_requirements: !ruby/object:Gem::Requirement
|
25
21
|
none: false
|
22
|
+
requirement: !ruby/object:Gem::Requirement
|
26
23
|
requirements:
|
27
24
|
- - ~>
|
28
25
|
- !ruby/object:Gem::Version
|
29
26
|
version: 0.9.0
|
27
|
+
none: false
|
28
|
+
prerelease: false
|
29
|
+
type: :runtime
|
30
30
|
- !ruby/object:Gem::Dependency
|
31
31
|
name: thor
|
32
|
-
|
33
|
-
none: false
|
32
|
+
version_requirements: !ruby/object:Gem::Requirement
|
34
33
|
requirements:
|
35
34
|
- - ~>
|
36
35
|
- !ruby/object:Gem::Version
|
37
36
|
version: 0.14.6
|
38
|
-
type: :runtime
|
39
|
-
prerelease: false
|
40
|
-
version_requirements: !ruby/object:Gem::Requirement
|
41
37
|
none: false
|
38
|
+
requirement: !ruby/object:Gem::Requirement
|
42
39
|
requirements:
|
43
40
|
- - ~>
|
44
41
|
- !ruby/object:Gem::Version
|
45
42
|
version: 0.14.6
|
43
|
+
none: false
|
44
|
+
prerelease: false
|
45
|
+
type: :runtime
|
46
46
|
- !ruby/object:Gem::Dependency
|
47
47
|
name: rspec
|
48
|
-
|
49
|
-
none: false
|
48
|
+
version_requirements: !ruby/object:Gem::Requirement
|
50
49
|
requirements:
|
51
50
|
- - ~>
|
52
51
|
- !ruby/object:Gem::Version
|
53
52
|
version: 2.9.0
|
54
|
-
type: :development
|
55
|
-
prerelease: false
|
56
|
-
version_requirements: !ruby/object:Gem::Requirement
|
57
53
|
none: false
|
54
|
+
requirement: !ruby/object:Gem::Requirement
|
58
55
|
requirements:
|
59
56
|
- - ~>
|
60
57
|
- !ruby/object:Gem::Version
|
61
58
|
version: 2.9.0
|
59
|
+
none: false
|
60
|
+
prerelease: false
|
61
|
+
type: :development
|
62
62
|
- !ruby/object:Gem::Dependency
|
63
63
|
name: jeweler
|
64
|
-
|
65
|
-
none: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
66
65
|
requirements:
|
67
66
|
- - ~>
|
68
67
|
- !ruby/object:Gem::Version
|
69
68
|
version: 1.8.4
|
70
|
-
type: :development
|
71
|
-
prerelease: false
|
72
|
-
version_requirements: !ruby/object:Gem::Requirement
|
73
69
|
none: false
|
70
|
+
requirement: !ruby/object:Gem::Requirement
|
74
71
|
requirements:
|
75
72
|
- - ~>
|
76
73
|
- !ruby/object:Gem::Version
|
77
74
|
version: 1.8.4
|
75
|
+
none: false
|
76
|
+
prerelease: false
|
77
|
+
type: :development
|
78
78
|
- !ruby/object:Gem::Dependency
|
79
79
|
name: yard
|
80
|
-
|
80
|
+
version_requirements: !ruby/object:Gem::Requirement
|
81
|
+
requirements:
|
82
|
+
- - ~>
|
83
|
+
- !ruby/object:Gem::Version
|
84
|
+
version: 0.8.0
|
81
85
|
none: false
|
86
|
+
requirement: !ruby/object:Gem::Requirement
|
82
87
|
requirements:
|
83
88
|
- - ~>
|
84
89
|
- !ruby/object:Gem::Version
|
85
90
|
version: 0.8.0
|
86
|
-
|
91
|
+
none: false
|
87
92
|
prerelease: false
|
93
|
+
type: :development
|
94
|
+
- !ruby/object:Gem::Dependency
|
95
|
+
name: solr_sail
|
88
96
|
version_requirements: !ruby/object:Gem::Requirement
|
97
|
+
requirements:
|
98
|
+
- - ~>
|
99
|
+
- !ruby/object:Gem::Version
|
100
|
+
version: 0.0.6
|
89
101
|
none: false
|
102
|
+
requirement: !ruby/object:Gem::Requirement
|
90
103
|
requirements:
|
91
104
|
- - ~>
|
92
105
|
- !ruby/object:Gem::Version
|
93
|
-
version: 0.
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
106
|
+
version: 0.0.6
|
107
|
+
none: false
|
108
|
+
prerelease: false
|
109
|
+
type: :development
|
110
|
+
- !ruby/object:Gem::Dependency
|
111
|
+
name: jruby-openssl
|
112
|
+
version_requirements: !ruby/object:Gem::Requirement
|
113
|
+
requirements:
|
114
|
+
- - ! '>='
|
115
|
+
- !ruby/object:Gem::Version
|
116
|
+
version: '0'
|
117
|
+
none: false
|
118
|
+
requirement: !ruby/object:Gem::Requirement
|
119
|
+
requirements:
|
120
|
+
- - ! '>='
|
121
|
+
- !ruby/object:Gem::Version
|
122
|
+
version: '0'
|
123
|
+
none: false
|
124
|
+
prerelease: false
|
125
|
+
type: :development
|
126
|
+
description: ! "Manage Jar files for Ruby. In the spirit of Bundler, a Jarfile\n \
|
127
|
+
\ is used to generate a Jarfile.lock that contains all the resolved jar dependencies\
|
128
|
+
\ for scopes runtime, compile, and test.\n The Jarfile.lock can be used to populate\
|
129
|
+
\ the classpath"
|
98
130
|
email: michael@tobedevoured.com
|
99
131
|
executables:
|
100
132
|
- lockjar
|
@@ -112,17 +144,22 @@ files:
|
|
112
144
|
- bin/lockjar
|
113
145
|
- lib/lock_jar.rb
|
114
146
|
- lib/lock_jar/buildr.rb
|
147
|
+
- lib/lock_jar/class_loader.rb
|
115
148
|
- lib/lock_jar/cli.rb
|
116
149
|
- lib/lock_jar/dsl.rb
|
117
150
|
- lib/lock_jar/maven.rb
|
151
|
+
- lib/lock_jar/registry.rb
|
118
152
|
- lib/lock_jar/resolver.rb
|
153
|
+
- lib/lock_jar/rubygems.rb
|
119
154
|
- lib/lock_jar/runtime.rb
|
120
155
|
- lib/lock_jar/version.rb
|
121
156
|
- lock_jar.gemspec
|
122
157
|
- spec/Jarfile
|
158
|
+
- spec/lock_jar/class_loader_spec.rb
|
123
159
|
- spec/lock_jar/dsl_spec.rb
|
124
160
|
- spec/lock_jar/maven_spec.rb
|
125
161
|
- spec/lock_jar/resolver_spec.rb
|
162
|
+
- spec/lock_jar/rubygems_spec.rb
|
126
163
|
- spec/lock_jar/runtime_spec.rb
|
127
164
|
- spec/lock_jar_spec.rb
|
128
165
|
- spec/pom.xml
|
@@ -130,29 +167,30 @@ files:
|
|
130
167
|
homepage: http://github.com/mguymon/lock_jar
|
131
168
|
licenses:
|
132
169
|
- Apache
|
133
|
-
post_install_message:
|
170
|
+
post_install_message:
|
134
171
|
rdoc_options: []
|
135
172
|
require_paths:
|
136
173
|
- lib
|
137
174
|
required_ruby_version: !ruby/object:Gem::Requirement
|
138
|
-
none: false
|
139
175
|
requirements:
|
140
176
|
- - ! '>='
|
141
177
|
- !ruby/object:Gem::Version
|
142
|
-
version: '0'
|
143
178
|
segments:
|
144
179
|
- 0
|
145
|
-
hash:
|
146
|
-
|
180
|
+
hash: 2
|
181
|
+
version: '0'
|
147
182
|
none: false
|
183
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
148
184
|
requirements:
|
149
185
|
- - ! '>='
|
150
186
|
- !ruby/object:Gem::Version
|
151
187
|
version: '0'
|
188
|
+
none: false
|
152
189
|
requirements: []
|
153
|
-
rubyforge_project:
|
190
|
+
rubyforge_project:
|
154
191
|
rubygems_version: 1.8.24
|
155
|
-
signing_key:
|
192
|
+
signing_key:
|
156
193
|
specification_version: 3
|
157
194
|
summary: Manage Jar files for Ruby
|
158
195
|
test_files: []
|
196
|
+
...
|