lock_jar 0.14.5 → 0.14.6
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.
- 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>
|