lock_jar 0.14.5 → 0.14.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +3 -0
- data/Gemfile +1 -1
- data/README.md +12 -10
- data/lib/lock_jar.rb +26 -28
- data/lib/lock_jar/buildr.rb +1 -1
- data/lib/lock_jar/bundler.rb +6 -6
- data/lib/lock_jar/domain/artifact.rb +6 -10
- data/lib/lock_jar/domain/dsl.rb +1 -1
- data/lib/lock_jar/runtime.rb +1 -1
- data/lib/lock_jar/runtime/list.rb +32 -10
- data/lib/lock_jar/runtime/load.rb +4 -5
- data/lib/lock_jar/runtime/lock.rb +6 -6
- data/lib/lock_jar/version.rb +1 -1
- data/spec/fixtures/Jarfile +3 -3
- data/spec/lock_jar/domain/dsl_merger_spec.rb +8 -6
- data/spec/lock_jar/domain/dsl_spec.rb +3 -3
- data/spec/lock_jar/resolver_spec.rb +2 -2
- data/spec/lock_jar/runtime_spec.rb +1 -1
- data/spec/lock_jar_spec.rb +80 -90
- data/spec/pom.xml +3 -9
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bb1062ded1e751410d49d6b1b81666008048d662
|
4
|
+
data.tar.gz: 1b3ed787d557da58076dba1d60f5a4d0ecee3b64
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6041663c5fcdc7673e30286f3cdc624b25075592ff5c6befa30c998b5b6188dc442c14d3dd96ce5490a69c80a70d9fc229706b588d301d1533ba48d2f3ce8435
|
7
|
+
data.tar.gz: c247a4d5d5bac9fe488223c5b6943957f04f0186ea79d13f7f5291b235e47c315edc5b128a2ef6faf4bb8c549101518019e62ffa4c243a3c49024a0807d96a7e
|
data/.rubocop.yml
CHANGED
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -51,7 +51,7 @@ methods:
|
|
51
51
|
end
|
52
52
|
|
53
53
|
group 'test' do
|
54
|
-
jar 'junit:junit:jar:4.
|
54
|
+
jar 'junit:junit:jar:4.12', :group => 'test'
|
55
55
|
end
|
56
56
|
|
57
57
|
### Resolving dependencies
|
@@ -90,7 +90,7 @@ The _Jarfile.lock_ generated is a YAML file containing information on how to han
|
|
90
90
|
- ch.qos.logback:logback-classic:jar:0.9.24
|
91
91
|
- ch.qos.logback:logback-core:jar:0.9.24
|
92
92
|
- com.metapossum:metapossum-scanner:jar:1.0
|
93
|
-
- com.
|
93
|
+
- com.tobedevoured.modelcitizen:core:jar:0.8.1
|
94
94
|
- commons-beanutils:commons-beanutils:jar:1.8.3
|
95
95
|
- commons-io:commons-io:jar:1.4
|
96
96
|
- commons-lang:commons-lang:jar:2.6
|
@@ -123,10 +123,10 @@ The _Jarfile.lock_ generated is a YAML file containing information on how to han
|
|
123
123
|
transitive: {}
|
124
124
|
test:
|
125
125
|
dependencies:
|
126
|
-
- junit:junit:jar:4.
|
126
|
+
- junit:junit:jar:4.12
|
127
127
|
- org.hamcrest:hamcrest-core:jar:1.1
|
128
128
|
artifacts:
|
129
|
-
- jar:junit:junit:jar:4.
|
129
|
+
- jar:junit:junit:jar:4.12:
|
130
130
|
transitive:
|
131
131
|
org.hamcrest:hamcrest-core:jar:1.1: {}
|
132
132
|
...
|
@@ -146,7 +146,7 @@ The _Jarfile.lock_ generated is a YAML file containing information on how to han
|
|
146
146
|
* _[Hash]_ will set the options, e.g. `{ :local_repo => 'path' }`
|
147
147
|
* **:local_repo** _[String]_ sets the local repo path. Defaults to `ENV['M2_REPO']` or `'~/.m2/repository'`
|
148
148
|
* **:local_paths** _[Boolean]_ converts the notations to paths of jars in the local repo
|
149
|
-
* **:resolve** _[Boolean]_ to true will make transitive dependences resolve before returning list of jars
|
149
|
+
* **:resolve** _[Boolean]_ to `true` will make transitive dependences resolve before returning list of jars. Setting to `false` will list dependencies, excluding transitive dependencies.
|
150
150
|
|
151
151
|
**LockJar.load(*args)**: Loads all dependencies to the classpath for groups from the Jarfile.lock. Default group is _default_. Default lock file is _Jarfile.lock_.
|
152
152
|
* _[String]_ will set the Jarfile.lock, e.g. `'Better.lock'`
|
@@ -301,7 +301,7 @@ Sample buildfile with LockJar
|
|
301
301
|
lock_jar do
|
302
302
|
|
303
303
|
group 'test' do
|
304
|
-
jar 'junit:junit:jar:4.
|
304
|
+
jar 'junit:junit:jar:4.12'
|
305
305
|
end
|
306
306
|
end
|
307
307
|
|
@@ -329,13 +329,15 @@ Generated the following lock files using **lock_jar:lock**
|
|
329
329
|
## Bundler Integration
|
330
330
|
|
331
331
|
[LockJar patches Bundler](https://github.com/mguymon/lock_jar/blob/master/lib/lock_jar/bundler.rb)
|
332
|
-
to allow creation of a _Jarfile.lock_ when Bundler calls `install` and `update`.
|
333
|
-
Bundler calls `setup` and `require`. To enable this support, add this require to your _Gemfile_
|
332
|
+
to allow creation of a _Jarfile.lock_ when Bundler calls `install` and `update`. To enable this support, add this exit callback your _Gemfile_
|
334
333
|
|
335
|
-
|
334
|
+
@@check ||= at_exit do
|
335
|
+
require 'lock_jar/bundler'
|
336
|
+
LockJar::Bundler.lock!(::Bundler)
|
337
|
+
end
|
336
338
|
|
337
339
|
You can optionally create a _Jarfile_ that will automatically be included when you `bundle install` or `bundle update`. Otherwise
|
338
|
-
Gems with a Jarfile will be merge to generate a _Jarfile.lock_.
|
340
|
+
Gems with a Jarfile will be merge to generate a _Jarfile.lock_.
|
339
341
|
|
340
342
|
### Bundler to LockJar groups
|
341
343
|
|
data/lib/lock_jar.rb
CHANGED
@@ -168,37 +168,35 @@ module LockJar
|
|
168
168
|
args = args.reject { |arg| arg.is_a? String }
|
169
169
|
lock(combined, *args, &blk)
|
170
170
|
end
|
171
|
-
end
|
172
|
-
|
173
|
-
private
|
174
171
|
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
172
|
+
# rubocop:disable Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity
|
173
|
+
def extract_args(type, args, &blk)
|
174
|
+
lockfile_or_path = nil
|
175
|
+
opts = {}
|
176
|
+
groups = ['default']
|
177
|
+
args.each do |arg|
|
178
|
+
case arg
|
179
|
+
when Hash
|
180
|
+
opts.merge!(arg)
|
181
|
+
when String
|
182
|
+
lockfile_or_path = arg
|
183
|
+
when LockJar::Domain::Lockfile
|
184
|
+
lockfile_or_path = arg if type == :lockfile
|
185
|
+
when LockJar::Domain::Dsl
|
186
|
+
lockfile_or_path = arg if type == :jarfile
|
187
|
+
when Array
|
188
|
+
groups = arg
|
189
|
+
end
|
192
190
|
end
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
191
|
+
if blk.nil? && lockfile_or_path.nil?
|
192
|
+
if type == :lockfile
|
193
|
+
lockfile_or_path = opts.fetch(:lockfile, 'Jarfile.lock')
|
194
|
+
elsif type == :jarfile
|
195
|
+
lockfile_or_path = 'Jarfile'
|
196
|
+
end
|
199
197
|
end
|
198
|
+
[lockfile_or_path, groups, opts]
|
200
199
|
end
|
201
|
-
|
200
|
+
# rubocop:enable Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity
|
202
201
|
end
|
203
|
-
# rubocop:enable Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity
|
204
202
|
end
|
data/lib/lock_jar/buildr.rb
CHANGED
data/lib/lock_jar/bundler.rb
CHANGED
@@ -23,13 +23,13 @@ module LockJar
|
|
23
23
|
jarfile = File.expand_path(jarfile_opt || 'Jarfile')
|
24
24
|
|
25
25
|
# load local Jarfile
|
26
|
-
if File.exist?(jarfile)
|
27
|
-
|
26
|
+
dsl = if File.exist?(jarfile)
|
27
|
+
LockJar::Domain::JarfileDsl.create(jarfile)
|
28
28
|
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
29
|
+
# Create new Dsl
|
30
|
+
else
|
31
|
+
LockJar::Domain::Dsl.new
|
32
|
+
end
|
33
33
|
|
34
34
|
gems_with_jars = []
|
35
35
|
::Bundler.definition.groups.each do |group|
|
@@ -25,11 +25,9 @@ module LockJar
|
|
25
25
|
attr_reader :type
|
26
26
|
|
27
27
|
def <=>(other)
|
28
|
-
if other.is_a? Artifact
|
29
|
-
|
30
|
-
|
31
|
-
to_urn <=> other.to_s
|
32
|
-
end
|
28
|
+
return to_urn <=> other.to_urn if other.is_a? Artifact
|
29
|
+
|
30
|
+
to_urn <=> other.to_s
|
33
31
|
end
|
34
32
|
|
35
33
|
def resolvable?
|
@@ -104,11 +102,9 @@ module LockJar
|
|
104
102
|
|
105
103
|
def <=>(other)
|
106
104
|
if other.is_a? Pom
|
107
|
-
if to_urn == other.to_urn
|
108
|
-
|
109
|
-
|
110
|
-
to_urn <=> other.to_urn
|
111
|
-
end
|
105
|
+
return Set.new(scopes) <=> Set.new(other.scopes) if to_urn == other.to_urn
|
106
|
+
|
107
|
+
to_urn <=> other.to_urn
|
112
108
|
else
|
113
109
|
super
|
114
110
|
end
|
data/lib/lock_jar/domain/dsl.rb
CHANGED
data/lib/lock_jar/runtime.rb
CHANGED
@@ -76,7 +76,7 @@ module LockJar
|
|
76
76
|
|
77
77
|
groups.each do |group|
|
78
78
|
next unless lockfile.groups[group.to_s]
|
79
|
-
dependencies += lockfile.groups[group.to_s]
|
79
|
+
dependencies += yield lockfile.groups[group.to_s]
|
80
80
|
|
81
81
|
if with_locals
|
82
82
|
locals = lockfile.groups[group.to_s]['locals']
|
@@ -10,13 +10,8 @@ module LockJar
|
|
10
10
|
with_locals = { with_locals: true }.merge(opts).delete(:with_locals)
|
11
11
|
|
12
12
|
if lockfile_or_path
|
13
|
-
|
14
|
-
|
15
|
-
elsif lockfile_or_path
|
16
|
-
lockfile = LockJar::Domain::Lockfile.read(lockfile_or_path)
|
17
|
-
end
|
18
|
-
|
19
|
-
dependencies = lockfile_dependencies(lockfile, groups, with_locals)
|
13
|
+
lockfile = build_lockfile(lockfile_or_path)
|
14
|
+
dependencies = dependencies_from_lockfile(lockfile, groups, with_locals, opts)
|
20
15
|
maps = lockfile.maps
|
21
16
|
end
|
22
17
|
|
@@ -41,15 +36,42 @@ module LockJar
|
|
41
36
|
|
42
37
|
dependencies = resolver(opts).resolve(dependencies) if opts[:resolve]
|
43
38
|
|
44
|
-
|
45
|
-
|
46
|
-
resolver
|
39
|
+
# local_paths and !resolve are mutualally exclusive
|
40
|
+
if opts[:local_paths] && opts[:resolve] != false
|
41
|
+
# remove local_paths opt so resolver is not reset
|
42
|
+
resolver(opts.reject { |k| k == :local_paths }).to_local_paths(dependencies)
|
47
43
|
|
48
44
|
else
|
49
45
|
dependencies
|
50
46
|
end
|
51
47
|
end
|
52
48
|
# rubocop:enable Metrics/PerceivedComplexity, MethodLength
|
49
|
+
|
50
|
+
def build_lockfile(lockfile_or_path)
|
51
|
+
if lockfile_or_path.is_a? LockJar::Domain::Lockfile
|
52
|
+
lockfile_or_path
|
53
|
+
elsif lockfile_or_path
|
54
|
+
LockJar::Domain::Lockfile.read(lockfile_or_path)
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
def dependencies_from_lockfile(lockfile, groups, with_locals, opts)
|
59
|
+
# Only list root dependencies
|
60
|
+
if opts[:resolve] == false
|
61
|
+
lockfile_dependencies(lockfile, groups, with_locals) do |group|
|
62
|
+
group['artifacts'].flat_map(&:keys).map do |notation|
|
63
|
+
# remove the prefix from artifacts, such as jar: or pom:
|
64
|
+
notation.gsub(/^.+?:/, '')
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
# List all dependencies
|
69
|
+
else
|
70
|
+
lockfile_dependencies(lockfile, groups, with_locals) do |group|
|
71
|
+
group['dependencies']
|
72
|
+
end
|
73
|
+
end
|
74
|
+
end
|
53
75
|
end
|
54
76
|
end
|
55
77
|
end
|
@@ -17,12 +17,11 @@ module LockJar
|
|
17
17
|
if lockfile_or_path.is_a? LockJar::Domain::Lockfile
|
18
18
|
lockfile = lockfile_or_path
|
19
19
|
|
20
|
-
# check if lockfile path is already loaded
|
21
|
-
elsif LockJar::Registry.instance.lockfile_registered?(lockfile_or_path)
|
22
|
-
return
|
23
|
-
|
24
|
-
# convert lockfile path to a Lockfile instance
|
25
20
|
else
|
21
|
+
# check if lockfile path is already loaded
|
22
|
+
return if LockJar::Registry.instance.lockfile_registered?(lockfile_or_path)
|
23
|
+
|
24
|
+
# convert lockfile path to a Lockfile instance
|
26
25
|
lockfile = LockJar::Domain::Lockfile.read(lockfile_or_path)
|
27
26
|
end
|
28
27
|
|
@@ -38,11 +38,11 @@ module LockJar
|
|
38
38
|
|
39
39
|
def create_dsl!(jarfile_or_dsl, &blk)
|
40
40
|
if jarfile_or_dsl
|
41
|
-
if jarfile_or_dsl.is_a? LockJar::Domain::Dsl
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
41
|
+
@jarfile = if jarfile_or_dsl.is_a? LockJar::Domain::Dsl
|
42
|
+
jarfile_or_dsl
|
43
|
+
else
|
44
|
+
LockJar::Domain::JarfileDsl.create(jarfile_or_dsl)
|
45
|
+
end
|
46
46
|
end
|
47
47
|
|
48
48
|
return @jarfile if blk.nil?
|
@@ -132,7 +132,7 @@ module LockJar
|
|
132
132
|
# iterate each dependency in Pom to map transitive dependencies
|
133
133
|
transitive = {}
|
134
134
|
artifact.notations.each do |notation|
|
135
|
-
transitive
|
135
|
+
transitive[notation] = resolver(opts).dependencies_graph[notation]
|
136
136
|
end
|
137
137
|
artifact_data['transitive'] = transitive
|
138
138
|
|
data/lib/lock_jar/version.rb
CHANGED
data/spec/fixtures/Jarfile
CHANGED
@@ -4,11 +4,11 @@ repository 'http://mirrors.ibiblio.org/pub/mirrors/maven2'
|
|
4
4
|
jar "org.apache.mina:mina-core:2.0.4"
|
5
5
|
local "spec/fixtures/naether-0.13.0.jar"
|
6
6
|
pom 'spec/pom.xml'
|
7
|
-
|
7
|
+
|
8
8
|
group 'development' do
|
9
9
|
jar 'com.typesafe:config:jar:0.5.0'
|
10
10
|
end
|
11
11
|
|
12
12
|
group 'test' do
|
13
|
-
jar '
|
14
|
-
end
|
13
|
+
jar 'org.testng:testng:jar:6.9.10'
|
14
|
+
end
|
@@ -15,7 +15,7 @@ describe LockJar::Domain::DslMerger do
|
|
15
15
|
end
|
16
16
|
|
17
17
|
group 'test' do
|
18
|
-
jar '
|
18
|
+
jar 'org.testng:testng:jar:6.9.10'
|
19
19
|
end
|
20
20
|
end
|
21
21
|
|
@@ -39,11 +39,13 @@ describe LockJar::Domain::DslMerger do
|
|
39
39
|
|
40
40
|
dsl = LockJar::Domain::DslMerger.new(block1, block2).merge
|
41
41
|
|
42
|
-
expect(dsl.artifacts['default']).to eq(
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
42
|
+
expect(dsl.artifacts['default']).to eq(
|
43
|
+
[
|
44
|
+
LockJar::Domain::Jar.new('org.apache.mina:mina-core:2.0.4'),
|
45
|
+
LockJar::Domain::Pom.new('spec/pom.xml', %w(runtime compile)),
|
46
|
+
LockJar::Domain::Jar.new('compile-jar')
|
47
|
+
]
|
48
|
+
)
|
47
49
|
dsl.remote_repositories.should eql(['http://repository.jboss.org/nexus/content/groups/public-jboss', 'http://new-repo'])
|
48
50
|
end
|
49
51
|
end
|
@@ -15,7 +15,7 @@ describe LockJar::Domain::Dsl do
|
|
15
15
|
expect(jarfile.artifacts['development'][0]).to eq LockJar::Domain::Jar.new('com.typesafe:config:jar:0.5.0')
|
16
16
|
jarfile.artifacts['development'][1].should be_nil
|
17
17
|
|
18
|
-
expect(jarfile.artifacts['test'][0]).to eq LockJar::Domain::Jar.new('
|
18
|
+
expect(jarfile.artifacts['test'][0]).to eq LockJar::Domain::Jar.new('org.testng:testng:jar:6.9.10')
|
19
19
|
jarfile.artifacts['test'][1].should be_nil
|
20
20
|
|
21
21
|
jarfile.remote_repositories.should eql(['http://mirrors.ibiblio.org/pub/mirrors/maven2'])
|
@@ -35,7 +35,7 @@ describe LockJar::Domain::Dsl do
|
|
35
35
|
end
|
36
36
|
|
37
37
|
group 'test' do
|
38
|
-
jar '
|
38
|
+
jar 'org.testng:testng:jar:6.9.10'
|
39
39
|
end
|
40
40
|
end
|
41
41
|
|
@@ -43,7 +43,7 @@ describe LockJar::Domain::Dsl do
|
|
43
43
|
expect(block.artifacts).to eq(
|
44
44
|
'default' => [LockJar::Domain::Jar.new('org.apache.mina:mina-core:2.0.4'), LockJar::Domain::Local.new('spec/fixtures/naether-0.13.0.jar'), LockJar::Domain::Pom.new('spec/pom.xml')],
|
45
45
|
'pirate' => [LockJar::Domain::Jar.new('org.apache.tomcat:servlet-api:jar:6.0.35')],
|
46
|
-
'test' => [LockJar::Domain::Jar.new('
|
46
|
+
'test' => [LockJar::Domain::Jar.new('org.testng:testng:jar:6.9.10')]
|
47
47
|
)
|
48
48
|
block.remote_repositories.should eql(['http://repository.jboss.org/nexus/content/groups/public-jboss'])
|
49
49
|
end
|
@@ -18,8 +18,8 @@ describe LockJar::Resolver do
|
|
18
18
|
end
|
19
19
|
|
20
20
|
it 'should return local paths for notations' do
|
21
|
-
expect(@resolver.to_local_paths(['
|
22
|
-
eql([File.expand_path("#{TEMP_DIR}/test-repo/
|
21
|
+
expect(@resolver.to_local_paths(['org.testng:testng:jar:6.9.10'])).to(
|
22
|
+
eql([File.expand_path("#{TEMP_DIR}/test-repo/org/testng/testng/6.9.10/testng-6.9.10.jar")])
|
23
23
|
)
|
24
24
|
end
|
25
25
|
end
|
@@ -5,7 +5,7 @@ describe LockJar::Runtime do
|
|
5
5
|
describe '#load' do
|
6
6
|
it 'should set local repo' do
|
7
7
|
LockJar::Runtime.instance.load(nil, [], resolve: true, local_repo: TEST_REPO) do
|
8
|
-
jar '
|
8
|
+
jar 'org.testng:testng:jar:6.9.10'
|
9
9
|
end
|
10
10
|
|
11
11
|
LockJar::Runtime.instance.current_resolver.naether.local_repo_path.should eql TEST_REPO
|
data/spec/lock_jar_spec.rb
CHANGED
@@ -6,6 +6,8 @@ require 'naether'
|
|
6
6
|
describe LockJar do
|
7
7
|
include Spec::Helpers
|
8
8
|
|
9
|
+
let(:local_repo) { "#{TEMP_DIR}/test-repo" }
|
10
|
+
|
9
11
|
before do
|
10
12
|
LockJar::Runtime.instance.reset!
|
11
13
|
|
@@ -19,14 +21,26 @@ describe LockJar do
|
|
19
21
|
describe '#lock' do
|
20
22
|
context 'creates a lockfile' do
|
21
23
|
let(:lockfile) do
|
22
|
-
LockJar.lock(lockjar_source, local_repo:
|
24
|
+
LockJar.lock(lockjar_source, local_repo: local_repo, lockfile: "#{TEMP_DIR}/Jarfile.lock")
|
23
25
|
expect(File).to exist("#{TEMP_DIR}/Jarfile.lock")
|
24
26
|
LockJar.read("#{TEMP_DIR}/Jarfile.lock")
|
25
27
|
end
|
28
|
+
let(:test_dependencies) { %w(com.beust:jcommander:jar:1.48 org.beanshell:bsh:jar:2.0b4 org.testng:testng:jar:6.9.10) }
|
29
|
+
let(:test_artifacts) do
|
30
|
+
[
|
31
|
+
{
|
32
|
+
'jar:org.testng:testng:jar:6.9.10' => {
|
33
|
+
'transitive' => {
|
34
|
+
'com.beust:jcommander:jar:1.48' => {},
|
35
|
+
'org.beanshell:bsh:jar:2.0b4' => {}
|
36
|
+
}
|
37
|
+
}
|
38
|
+
}
|
39
|
+
]
|
40
|
+
end
|
26
41
|
|
27
42
|
context 'from Jarfile' do
|
28
43
|
let(:lockjar_source) { 'spec/fixtures/Jarfile' }
|
29
|
-
|
30
44
|
let(:expected_version) { LockJar::VERSION }
|
31
45
|
let(:expected_local_repository) { '~/.m2/repository' }
|
32
46
|
let(:expected_excludes) { %w(commons-logging logkit) }
|
@@ -38,7 +52,7 @@ describe LockJar do
|
|
38
52
|
'dependencies' => %w(
|
39
53
|
ch.qos.logback:logback-classic:jar:0.9.24
|
40
54
|
ch.qos.logback:logback-core:jar:0.9.24 com.metapossum:metapossum-scanner:jar:1.0
|
41
|
-
com.
|
55
|
+
com.tobedevoured.modelcitizen:core:jar:0.8.1
|
42
56
|
commons-beanutils:commons-beanutils:jar:1.8.3 commons-io:commons-io:jar:1.4
|
43
57
|
commons-lang:commons-lang:jar:2.6 commons-logging:commons-logging:jar:1.1.1
|
44
58
|
org.apache.mina:mina-core:jar:2.0.4
|
@@ -54,7 +68,7 @@ describe LockJar do
|
|
54
68
|
'pom:spec/pom.xml' => {
|
55
69
|
'scopes' => %w(runtime compile),
|
56
70
|
'transitive' => {
|
57
|
-
'com.
|
71
|
+
'com.tobedevoured.modelcitizen:core:jar:0.8.1' => {
|
58
72
|
'com.metapossum:metapossum-scanner:jar:1.0' => {
|
59
73
|
'commons-io:commons-io:jar:1.4' => {}
|
60
74
|
},
|
@@ -78,14 +92,8 @@ describe LockJar do
|
|
78
92
|
]
|
79
93
|
},
|
80
94
|
'test' => {
|
81
|
-
'dependencies' =>
|
82
|
-
'artifacts' =>
|
83
|
-
{
|
84
|
-
'jar:junit:junit:jar:4.10' => {
|
85
|
-
'transitive' => { 'org.hamcrest:hamcrest-core:jar:1.1' => {} }
|
86
|
-
}
|
87
|
-
}
|
88
|
-
]
|
95
|
+
'dependencies' => test_dependencies,
|
96
|
+
'artifacts' => test_artifacts
|
89
97
|
}
|
90
98
|
}
|
91
99
|
end
|
@@ -97,23 +105,18 @@ describe LockJar do
|
|
97
105
|
LockJar::Domain::Dsl.create do
|
98
106
|
without_default_maven_repo
|
99
107
|
remote_repo 'https://repository.jboss.org/nexus/content/groups/public'
|
100
|
-
jar '
|
108
|
+
jar 'org.jboss.logging:jboss-logging:3.1.0.GA'
|
101
109
|
end
|
102
110
|
end
|
103
111
|
|
104
112
|
let(:expected_version) { LockJar::VERSION }
|
105
|
-
let(:expected_maps) { { 'junit:junit:4.10' => [TEMP_DIR] } }
|
106
113
|
let(:expected_remote_repositories) { ['https://repository.jboss.org/nexus/content/groups/public'] }
|
107
114
|
let(:expected_groups) do
|
108
115
|
{
|
109
116
|
'default' => {
|
110
|
-
'dependencies' =>
|
117
|
+
'dependencies' => ['org.jboss.logging:jboss-logging:jar:3.1.0.GA'],
|
111
118
|
'artifacts' => [
|
112
|
-
{
|
113
|
-
'jar:junit:junit:jar:4.10' => {
|
114
|
-
'transitive' => { 'org.hamcrest:hamcrest-core:jar:1.1' => {} }
|
115
|
-
}
|
116
|
-
}
|
119
|
+
{ 'jar:org.jboss.logging:jboss-logging:jar:3.1.0.GA' => { 'transitive' => {} } }
|
117
120
|
]
|
118
121
|
}
|
119
122
|
}
|
@@ -125,25 +128,19 @@ describe LockJar do
|
|
125
128
|
describe '#map' do
|
126
129
|
let(:lockjar_source) do
|
127
130
|
LockJar::Domain::Dsl.create do
|
128
|
-
map '
|
129
|
-
jar '
|
131
|
+
map 'org.testng:testng:jar:6.9.10', 'path/to/jar'
|
132
|
+
jar 'org.testng:testng:jar:6.9.10'
|
130
133
|
end
|
131
134
|
end
|
132
135
|
|
133
136
|
let(:expected_version) { LockJar::VERSION }
|
134
|
-
let(:expected_maps) { { '
|
137
|
+
let(:expected_maps) { { 'org.testng:testng:jar:6.9.10' => ['path/to/jar'] } }
|
135
138
|
let(:expected_remote_repositories) { ['http://repo1.maven.org/maven2/'] }
|
136
139
|
let(:expected_groups) do
|
137
140
|
{
|
138
141
|
'default' => {
|
139
|
-
'dependencies' =>
|
140
|
-
'artifacts' =>
|
141
|
-
{
|
142
|
-
'jar:junit:junit:jar:4.10' => {
|
143
|
-
'transitive' => { 'org.hamcrest:hamcrest-core:jar:1.1' => {} }
|
144
|
-
}
|
145
|
-
}
|
146
|
-
]
|
142
|
+
'dependencies' => test_dependencies,
|
143
|
+
'artifacts' => test_artifacts
|
147
144
|
}
|
148
145
|
}
|
149
146
|
end
|
@@ -196,7 +193,7 @@ describe LockJar do
|
|
196
193
|
|
197
194
|
context 'from a block' do
|
198
195
|
let(:lockfile) do
|
199
|
-
LockJar.lock(local_repo:
|
196
|
+
LockJar.lock(local_repo: local_repo, lockfile: "#{TEMP_DIR}/NoRepoJarfile.lock") do
|
200
197
|
jar 'org.eclipse.jetty:jetty-servlet:8.1.3.v20120416'
|
201
198
|
end
|
202
199
|
|
@@ -248,22 +245,19 @@ describe LockJar do
|
|
248
245
|
end
|
249
246
|
|
250
247
|
describe '#install' do
|
248
|
+
let(:repo_path) { "#{TEMP_DIR}/test-repo-install" }
|
249
|
+
|
251
250
|
it 'should install jars' do
|
252
251
|
LockJar.lock('spec/fixtures/Jarfile', download_artifacts: false, local_repo: "#{TEMP_DIR}/test-repo-install", lockfile: "#{TEMP_DIR}/Jarfile.lock")
|
253
252
|
|
254
253
|
jars = LockJar.install("#{TEMP_DIR}/Jarfile.lock", ['default'], local_repo: "#{TEMP_DIR}/test-repo-install")
|
255
|
-
jars.
|
256
|
-
|
257
|
-
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
File.expand_path("#{TEMP_DIR}/test-repo-install/commons-lang/commons-lang/2.6/commons-lang-2.6.jar"),
|
263
|
-
File.expand_path("#{TEMP_DIR}/test-repo-install/commons-logging/commons-logging/1.1.1/commons-logging-1.1.1.jar"),
|
264
|
-
File.expand_path("#{TEMP_DIR}/test-repo-install/org/apache/mina/mina-core/2.0.4/mina-core-2.0.4.jar"),
|
265
|
-
File.expand_path("#{TEMP_DIR}/test-repo-install/org/slf4j/slf4j-api/1.6.1/slf4j-api-1.6.1.jar")
|
266
|
-
])
|
254
|
+
expect(jars).to eql(
|
255
|
+
[
|
256
|
+
File.expand_path("#{repo_path}/com/google/guava/guava/14.0.1/guava-14.0.1.jar"),
|
257
|
+
File.expand_path("#{repo_path}/org/apache/mina/mina-core/2.0.4/mina-core-2.0.4.jar"),
|
258
|
+
File.expand_path("#{repo_path}/org/slf4j/slf4j-api/1.6.1/slf4j-api-1.6.1.jar")
|
259
|
+
]
|
260
|
+
)
|
267
261
|
end
|
268
262
|
end
|
269
263
|
|
@@ -343,42 +337,56 @@ describe LockJar do
|
|
343
337
|
end
|
344
338
|
|
345
339
|
describe '#list' do
|
346
|
-
|
347
|
-
|
340
|
+
let(:lockfile) { "#{TEMP_DIR}/Jarfile.lock" }
|
341
|
+
let(:lock) do
|
342
|
+
LockJar.lock('spec/fixtures/Jarfile', local_repo: local_repo, lockfile: lockfile)
|
343
|
+
end
|
344
|
+
let(:jars) do
|
345
|
+
lock
|
346
|
+
LockJar.list(lockfile, ['default', 'development', 'bad scope'], local_repo: local_repo)
|
347
|
+
end
|
348
348
|
|
349
|
-
|
349
|
+
it 'should list jars' do
|
350
350
|
jars.should eql(
|
351
351
|
%w(
|
352
|
-
|
353
|
-
|
354
|
-
|
355
|
-
commons-lang:commons-lang:jar:2.6 commons-logging:commons-logging:jar:1.1.1
|
356
|
-
org.apache.mina:mina-core:jar:2.0.4
|
357
|
-
org.slf4j:slf4j-api:jar:1.6.1 spec/fixtures/naether-0.13.0.jar com.typesafe:config:jar:0.5.0
|
352
|
+
com.google.guava:guava:jar:14.0.1 org.apache.mina:mina-core:jar:2.0.4
|
353
|
+
org.slf4j:slf4j-api:jar:1.6.1 spec/fixtures/naether-0.13.0.jar
|
354
|
+
com.typesafe:config:jar:0.5.0
|
358
355
|
)
|
359
356
|
)
|
360
357
|
end
|
361
358
|
|
362
|
-
|
363
|
-
|
364
|
-
|
365
|
-
|
359
|
+
context 'with a dsl' do
|
360
|
+
let(:local_path) { "#{TEMP_DIR}/guava.jar" }
|
361
|
+
let(:lockfile) { "#{TEMP_DIR}/ListJarfile.lock" }
|
362
|
+
let(:dsl) do
|
363
|
+
LockJar::Domain::Dsl.create do
|
364
|
+
map 'com.google.guava:guava', "#{TEMP_DIR}/guava.jar"
|
365
|
+
jar 'com.google.guava:guava:14.0.1'
|
366
|
+
end
|
366
367
|
end
|
368
|
+
let(:paths) { LockJar.list(lockfile, local_repo: local_repo) }
|
369
|
+
|
370
|
+
before { LockJar.lock(dsl, local_repo: local_repo, lockfile: lockfile) }
|
367
371
|
|
368
|
-
|
369
|
-
|
370
|
-
|
372
|
+
it 'should replace dependencies with maps' do
|
373
|
+
paths.should eql([local_path])
|
374
|
+
end
|
371
375
|
end
|
372
376
|
|
373
|
-
|
374
|
-
|
375
|
-
|
376
|
-
|
377
|
+
context 'with resolve: false' do
|
378
|
+
let(:jars) do
|
379
|
+
lock
|
380
|
+
LockJar.list(lockfile, local_repo: local_repo, resolve: false)
|
377
381
|
end
|
378
382
|
|
379
|
-
|
380
|
-
|
381
|
-
|
383
|
+
it 'should only list root dependencies' do
|
384
|
+
jars.should eql(
|
385
|
+
%w(
|
386
|
+
org.apache.mina:mina-core:jar:2.0.4 spec/pom.xml spec/fixtures/naether-0.13.0.jar
|
387
|
+
)
|
388
|
+
)
|
389
|
+
end
|
382
390
|
end
|
383
391
|
end
|
384
392
|
|
@@ -399,42 +407,24 @@ describe LockJar do
|
|
399
407
|
end
|
400
408
|
end
|
401
409
|
|
402
|
-
let(:
|
403
|
-
[
|
404
|
-
'spec/fixtures/naether-0.13.0.jar',
|
405
|
-
File.expand_path("#{TEMP_DIR}/test-repo/ch/qos/logback/logback-classic/0.9.24/logback-classic-0.9.24.jar"),
|
406
|
-
File.expand_path("#{TEMP_DIR}/test-repo/ch/qos/logback/logback-core/0.9.24/logback-core-0.9.24.jar"),
|
407
|
-
File.expand_path("#{TEMP_DIR}/test-repo/com/metapossum/metapossum-scanner/1.0/metapossum-scanner-1.0.jar"),
|
408
|
-
File.expand_path("#{TEMP_DIR}/test-repo/com/slackworks/modelcitizen/0.2.2/modelcitizen-0.2.2.jar"),
|
409
|
-
File.expand_path("#{TEMP_DIR}/test-repo/commons-beanutils/commons-beanutils/1.8.3/commons-beanutils-1.8.3.jar"),
|
410
|
-
File.expand_path("#{TEMP_DIR}/test-repo/commons-io/commons-io/1.4/commons-io-1.4.jar"),
|
411
|
-
File.expand_path("#{TEMP_DIR}/test-repo/commons-lang/commons-lang/2.6/commons-lang-2.6.jar"),
|
412
|
-
File.expand_path("#{TEMP_DIR}/test-repo/commons-logging/commons-logging/1.1.1/commons-logging-1.1.1.jar"),
|
413
|
-
File.expand_path("#{TEMP_DIR}/test-repo/org/apache/mina/mina-core/2.0.4/mina-core-2.0.4.jar"),
|
414
|
-
File.expand_path("#{TEMP_DIR}/test-repo/org/slf4j/slf4j-api/1.6.1/slf4j-api-1.6.1.jar")
|
415
|
-
]
|
416
|
-
end
|
410
|
+
let(:repo_path) { "#{TEMP_DIR}/test-repo" }
|
417
411
|
|
418
412
|
it 'by Jarfile.lock' do
|
419
413
|
expect_java_class_not_loaded('org.apache.mina.core.IoUtil')
|
420
414
|
|
421
|
-
LockJar.lock('spec/fixtures/Jarfile', local_repo:
|
422
|
-
|
423
|
-
LockJar::Registry.instance.lockfile_registered?("#{TEMP_DIR}/Jarfile.lock").
|
424
|
-
|
425
|
-
expect(jars).to eql(expected_jars)
|
415
|
+
LockJar.lock('spec/fixtures/Jarfile', local_repo: local_repo, lockfile: "#{TEMP_DIR}/Jarfile.lock")
|
416
|
+
LockJar.load("#{TEMP_DIR}/Jarfile.lock", ['default'], local_repo: local_repo)
|
417
|
+
expect(LockJar::Registry.instance.lockfile_registered?("#{TEMP_DIR}/Jarfile.lock")).to_not be
|
426
418
|
expect_java_class_loaded('org.apache.mina.core.IoUtil')
|
427
419
|
end
|
428
420
|
|
429
421
|
it 'by block with resolve option' do
|
430
422
|
expect_java_class_not_loaded('org.modeshape.common.math.Duration')
|
431
423
|
|
432
|
-
|
424
|
+
LockJar.load(local_repo: TEST_REPO, resolve: true) do
|
433
425
|
jar 'org.modeshape:modeshape-common:3.4.0.Final'
|
434
426
|
end
|
435
427
|
|
436
|
-
jars.should eql([File.expand_path(TEST_REPO + '/org/modeshape/modeshape-common/3.4.0.Final/modeshape-common-3.4.0.Final.jar')])
|
437
|
-
|
438
428
|
expect_java_class_loaded('org.modeshape.common.math.Duration')
|
439
429
|
end
|
440
430
|
|
data/spec/pom.xml
CHANGED
@@ -14,9 +14,9 @@ ttp://maven.apache.org/maven-v4_0_0.xsd ">
|
|
14
14
|
</repositories>
|
15
15
|
<dependencies>
|
16
16
|
<dependency>
|
17
|
-
<groupId>com.
|
18
|
-
<artifactId>
|
19
|
-
<version>0.
|
17
|
+
<groupId>com.google.guava</groupId>
|
18
|
+
<artifactId>guava</artifactId>
|
19
|
+
<version>14.0.1</version>
|
20
20
|
</dependency>
|
21
21
|
<dependency>
|
22
22
|
<groupId>org.jboss.unit</groupId>
|
@@ -24,11 +24,5 @@ ttp://maven.apache.org/maven-v4_0_0.xsd ">
|
|
24
24
|
<version>1.2.4</version>
|
25
25
|
<scope>test</scope>
|
26
26
|
</dependency>
|
27
|
-
<dependency>
|
28
|
-
<groupId>junit</groupId>
|
29
|
-
<artifactId>junit</artifactId>
|
30
|
-
<version>4.8.2</version>
|
31
|
-
<scope>test</scope>
|
32
|
-
</dependency>
|
33
27
|
</dependencies>
|
34
28
|
</project>
|