jar-dependencies 0.3.5 → 0.3.6

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 31ea93d521587d958b524fadd3267e37dcb79bb1
4
- data.tar.gz: 8e5e545837cf107446f13e34f754d5aa5a2e1f21
3
+ metadata.gz: 5fcca0d2cb7ec38d8207414244e5d5410132dc74
4
+ data.tar.gz: 2d5406449bced170d8ff87c7440c127312138a03
5
5
  SHA512:
6
- metadata.gz: d9a02cd9b7fd7399d050f36e0ffcace147bfd4546a7d31ec0b211c41eb79d43d2c1dfe1375201769ebdace2a2e6421f27ea3f6270711af6282d800aead94f734
7
- data.tar.gz: 7083aaca912c0236cb0a8825edfc9d58867da99bf9cdfbc4bf0f69925eb3838abb879de30ef3a8ef603160ceddfdbf648ccc126cb200bbfd69b1fb3757506b25
6
+ metadata.gz: e85cdacb44107f0e58860c04d74ddda3c680cf9b382ccd5f12b41711627bf60affa60aebb16a095950244abf635531531687ef036c60a3b19c5e39a0757df942
7
+ data.tar.gz: 27f21cdfeae6d0732ff704a6db91af6c8cb34158f56467606443a2b9a92d04dcc72bbdbe56a58d6a04a2e31940c85e6fe97100b1071e772f0afecd48ff688e64
@@ -18,6 +18,7 @@
18
18
  # IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
19
19
  # CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
20
20
  #
21
+ require 'jars/maven_settings'
21
22
  module Jars
22
23
  unless defined? Jars::SKIP_LOCK
23
24
  MAVEN_SETTINGS = 'JARS_MAVEN_SETTINGS'.freeze
@@ -151,60 +152,24 @@ module Jars
151
152
 
152
153
  def reset
153
154
  instance_variables.each { |var| instance_variable_set(var, nil) }
155
+ Jars::MavenSettings.reset
154
156
  ( @@jars ||= {} ).clear
155
157
  end
156
158
 
157
159
  def maven_local_settings
158
- unless instance_variable_defined?(:@_jars_maven_local_settings_)
159
- @_jars_maven_local_settings_ = nil
160
- end
161
- if @_jars_maven_local_settings_.nil?
162
- if settings = absolute( 'settings.xml' )
163
- if File.exists?(settings)
164
- @_jars_maven_local_settings_ = settings
165
- end
166
- end
167
- end
168
- @_jars_maven_local_settings_ || nil
160
+ Jars::MavenSettings.local_settings
169
161
  end
170
162
 
171
163
  def maven_user_settings
172
- unless instance_variable_defined?(:@_jars_maven_user_settings_)
173
- @_jars_maven_user_settings_ = nil
174
- end
175
- if @_jars_maven_user_settings_.nil?
176
- if settings = absolute( to_prop( MAVEN_SETTINGS ) )
177
- unless File.exists?(settings)
178
- Jars.warn { "configured ENV['#{MAVEN_SETTINGS}'] = '#{settings}' not found" }
179
- settings = false
180
- end
181
- else # use maven default (user) settings
182
- settings = File.join( user_home, '.m2', 'settings.xml' )
183
- settings = false unless File.exists?(settings)
184
- end
185
- @_jars_maven_user_settings_ = settings
186
- end
187
- @_jars_maven_user_settings_ || nil
164
+ Jars::MavenSettings.user_settings
188
165
  end
189
166
 
190
167
  def maven_settings
191
- maven_local_settings || maven_user_settings
168
+ Jars::MavenSettings.settings
192
169
  end
193
170
 
194
171
  def maven_global_settings
195
- unless instance_variable_defined?(:@_jars_maven_global_settings_)
196
- @_jars_maven_global_settings_ = nil
197
- end
198
- if @_jars_maven_global_settings_.nil?
199
- if mvn_home = ENV[ 'M2_HOME' ] || ENV[ 'MAVEN_HOME' ]
200
- settings = File.join( mvn_home, 'conf/settings.xml' )
201
- settings = false unless File.exists?(settings)
202
- else
203
- settings = false
204
- end
205
- @_jars_maven_global_settings_ = settings
206
- end
207
- @_jars_maven_global_settings_ || nil
172
+ Jars::MavenSettings.global_settings
208
173
  end
209
174
 
210
175
  def local_maven_repo
@@ -297,6 +262,20 @@ module Jars
297
262
  Kernel.warn(msg || block.call) if verbose?
298
263
  end
299
264
 
265
+ def absolute( file )
266
+ File.expand_path( file ) if file
267
+ end
268
+
269
+ def user_home
270
+ ENV[ 'HOME' ] || begin
271
+ user_home = Dir.home if Dir.respond_to?(:home)
272
+ unless user_home
273
+ user_home = ENV_JAVA[ 'user.home' ] if Object.const_defined?(:ENV_JAVA)
274
+ end
275
+ user_home
276
+ end
277
+ end
278
+
300
279
  private
301
280
 
302
281
  def require_jar_with_block( group_id, artifact_id, *classifier_version )
@@ -319,20 +298,6 @@ module Jars
319
298
  end
320
299
  end
321
300
 
322
- def absolute( file )
323
- File.expand_path( file ) if file
324
- end
325
-
326
- def user_home
327
- ENV[ 'HOME' ] || begin
328
- user_home = Dir.home if Dir.respond_to?(:home)
329
- unless user_home
330
- user_home = ENV_JAVA[ 'user.home' ] if Object.const_defined?(:ENV_JAVA)
331
- end
332
- user_home
333
- end
334
- end
335
-
336
301
  def detect_local_repository(settings)
337
302
  return nil unless settings
338
303
 
@@ -36,25 +36,27 @@ module Jars
36
36
  end
37
37
  private :setup_scope
38
38
 
39
+ REG = /:jar:|:pom:|:test:|:compile:|:runtime:|:provided:|:system:/
40
+ EMPTY = ''
39
41
  def initialize( line )
40
42
  setup_type( line )
41
43
 
42
- line.sub!( /^\s+/, empty = '' )
43
- @coord = line.sub( /:[^:]+:([A-Z]:\\)?[^:]+$/, empty )
44
+ line.strip!
45
+ @coord = line.sub( /:[^:]+:([A-Z]:\\)?[^:]+$/, EMPTY )
44
46
  first, second = @coord.split( /:#{type}:/ )
45
47
  group_id, artifact_id = first.split( /:/ )
46
48
  parts = group_id.split( '.' )
47
49
  parts << artifact_id
48
50
  parts << second.split( ':' )[ -1 ]
49
- parts << File.basename( line.sub( /.:/, empty ) )
51
+ @file = line.slice(@coord.length, line.length).sub(REG, EMPTY).strip
52
+ last = @file.reverse.index /\\|\//
53
+ parts << line[-last..-1]
50
54
  @path = File.join( parts ).strip
51
55
 
52
56
  setup_scope( line )
53
57
 
54
- reg = /:jar:|:pom:|:test:|:compile:|:runtime:|:provided:|:system:/
55
- @file = line.slice(@coord.length, line.length).sub(reg, empty).strip
56
58
  @system = line.index(':system:') != nil
57
- @gav = @coord.sub(reg, ':')
59
+ @gav = @coord.sub(REG, ':')
58
60
  end
59
61
 
60
62
  def system?
@@ -71,7 +71,7 @@ module Jars
71
71
  maven[ 'verbose' ] = (@debug || @verbose) == true
72
72
 
73
73
  if Jars.maven_settings
74
- maven.options[ '-s' ] = Jars.maven_settings
74
+ maven.options[ '-s' ] = Jars::MavenSettings.effective_settings
75
75
  end
76
76
 
77
77
  maven[ 'maven.repo.local' ] = "#{java.io.File.new( Jars.local_maven_repo ).absolute_path}"
@@ -0,0 +1,143 @@
1
+ require 'jar_dependencies'
2
+ require 'rubygems/request'
3
+ require 'rubygems/uri_formatter'
4
+ module Jars
5
+ class MavenSettings
6
+
7
+ LINE_SEPARATOR = java.lang.System.line_separator
8
+
9
+ class << self
10
+
11
+ def local_settings
12
+ unless instance_variable_defined?(:@_jars_maven_local_settings_)
13
+ @_jars_maven_local_settings_ = nil
14
+ end
15
+ if @_jars_maven_local_settings_.nil?
16
+ if settings = Jars.absolute( 'settings.xml' )
17
+ if File.exists?(settings)
18
+ @_jars_maven_local_settings_ = settings
19
+ end
20
+ end
21
+ end
22
+ @_jars_maven_local_settings_ || nil
23
+ end
24
+
25
+ def user_settings
26
+ unless instance_variable_defined?(:@_jars_maven_user_settings_)
27
+ @_jars_maven_user_settings_ = nil
28
+ end
29
+ if @_jars_maven_user_settings_.nil?
30
+ if settings = Jars.absolute( Jars.to_prop( MAVEN_SETTINGS ) )
31
+ unless File.exists?(settings)
32
+ Jars.warn { "configured ENV['#{MAVEN_SETTINGS}'] = '#{settings}' not found" }
33
+ settings = false
34
+ end
35
+ else # use maven default (user) settings
36
+ settings = File.join( Jars.user_home, '.m2', 'settings.xml' )
37
+ settings = false unless File.exists?(settings)
38
+ end
39
+ @_jars_maven_user_settings_ = settings
40
+ end
41
+ @_jars_maven_user_settings_ || nil
42
+ end
43
+
44
+ def effective_settings
45
+ unless instance_variable_defined?(:@_jars_effective_maven_settings_)
46
+ @_jars_effective_maven_settings_ = nil
47
+ end
48
+ if @_jars_effective_maven_settings_.nil?
49
+ begin
50
+ http = Gem::Request.proxy_uri(Gem.configuration[:http_proxy] || Gem::Request.get_proxy_from_env('http'))
51
+ https = Gem::Request.proxy_uri(Gem.configuration[:https_proxy] || Gem::Request.get_proxy_from_env('https'))
52
+ rescue NoMethodError
53
+ Jars.debug('ignore rubygems proxy configuration as rubygems is too old')
54
+ end
55
+ if http.nil? && https.nil?
56
+ @_jars_effective_maven_settings_ = settings
57
+ else
58
+ @_jars_effective_maven_settings_ =
59
+ setup_interpolated_settings(http, https) || settings
60
+ end
61
+ end
62
+ @_jars_effective_maven_settings_
63
+ end
64
+
65
+ def cleanup
66
+ if effective_settings != settings
67
+ File.unlink(effective_settings)
68
+ end
69
+ ensure
70
+ reset
71
+ end
72
+
73
+ def reset
74
+ instance_variables.each { |var| instance_variable_set(var, nil) }
75
+ end
76
+
77
+ def settings
78
+ unless instance_variable_defined?(:@_jars_maven_settings_)
79
+ @_jars_maven_settings_ = nil
80
+ end
81
+ if @_jars_maven_settings_.nil?
82
+ local_settings || user_settings
83
+ end
84
+ end
85
+
86
+ def global_settings
87
+ unless instance_variable_defined?(:@_jars_maven_global_settings_)
88
+ @_jars_maven_global_settings_ = nil
89
+ end
90
+ if @_jars_maven_global_settings_.nil?
91
+ if mvn_home = ENV[ 'M2_HOME' ] || ENV[ 'MAVEN_HOME' ]
92
+ settings = File.join( mvn_home, 'conf/settings.xml' )
93
+ settings = false unless File.exists?(settings)
94
+ else
95
+ settings = false
96
+ end
97
+ @_jars_maven_global_settings_ = settings
98
+ end
99
+ @_jars_maven_global_settings_ || nil
100
+ end
101
+
102
+ private
103
+
104
+ def setup_interpolated_settings(http, https)
105
+ proxy = raw_proxy_settings_xml(http, https).gsub("\n", LINE_SEPARATOR)
106
+ if settings.nil?
107
+ raw = "<settings>#{LINE_SEPARATOR}#{proxy}</settings>"
108
+ else
109
+ raw = File.read(settings)
110
+ if raw.includes?('<proxy>')
111
+ Jars.info("can not interpolated proxy info for #{settings}")
112
+ return
113
+ else
114
+ raw.sub!("<settings>", "<settings>#{LINE_SEPARATOR}#{proxy}")
115
+ end
116
+ end
117
+ tempfile = java.io.File.create_temp_file('settings', '.xml')
118
+ tempfile.delete_on_exit
119
+ File.write(tempfile.path, raw)
120
+ tempfile.path
121
+ end
122
+
123
+ def raw_proxy_settings_xml(http, https)
124
+ raw = File.read(File.join(File.dirname(__FILE__), 'settings.xml'))
125
+ if http
126
+ raw.sub!('__HTTP_ACTIVE__', 'true')
127
+ raw.sub!('__HTTP_SERVER__', http.host)
128
+ raw.sub!('__HTTP_PORT__', http.port.to_s)
129
+ else
130
+ raw.sub!('__HTTP_ACTIVE__', 'false')
131
+ end
132
+ if https
133
+ raw.sub!('__HTTPS_ACTIVE__', 'true')
134
+ raw.sub!('__HTTPS_SERVER__', https.host)
135
+ raw.sub!('__HTTPS_PORT__', https.port.to_s)
136
+ else
137
+ raw.sub!('__HTTPS_ACTIVE__', 'false')
138
+ end
139
+ raw
140
+ end
141
+ end
142
+ end
143
+ end
@@ -0,0 +1,20 @@
1
+ <proxies>
2
+ <proxy>
3
+ <active>__HTTP_ACTIVE__</active>
4
+ <protocol>http</protocol>
5
+ <host>__HTTP_SERVER__</host>
6
+ <port>__HTTP_PORT__</port>
7
+ <!--nonProxyHosts>
8
+ www.oracle.com|localhost|127.0.0.1
9
+ </nonProxyHosts-->
10
+ </proxy>
11
+ <proxy>
12
+ <active>__HTTPS_ACTIVE__</active>
13
+ <protocol>https</protocol>
14
+ <host>__HTTPS_SERVER__</host>
15
+ <port>__HTTPS_PORT__</port>
16
+ <!--nonProxyHosts>
17
+ www.oracle.com|localhost|127.0.0.1
18
+ </nonProxyHosts-->
19
+ </proxy>
20
+ </proxies>
@@ -1,5 +1,5 @@
1
1
  module Jars
2
- VERSION = '0.3.5'.freeze
2
+ VERSION = '0.3.6'.freeze
3
3
  JRUBY_PLUGINS_VERSION = '1.1.3'.freeze
4
4
  DEPENDENCY_PLUGIN_VERSION = '2.8'.freeze
5
5
  end
metadata CHANGED
@@ -1,57 +1,57 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jar-dependencies
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.5
4
+ version: 0.3.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - christian meier
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-08-15 00:00:00.000000000 Z
11
+ date: 2016-12-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
+ name: minitest
15
+ version_requirements: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '5.3'
14
20
  requirement: !ruby/object:Gem::Requirement
15
21
  requirements:
16
22
  - - "~>"
17
23
  - !ruby/object:Gem::Version
18
24
  version: '5.3'
19
- name: minitest
20
25
  prerelease: false
21
26
  type: :development
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
22
29
  version_requirements: !ruby/object:Gem::Requirement
23
30
  requirements:
24
31
  - - "~>"
25
32
  - !ruby/object:Gem::Version
26
- version: '5.3'
27
- - !ruby/object:Gem::Dependency
33
+ version: '10.2'
28
34
  requirement: !ruby/object:Gem::Requirement
29
35
  requirements:
30
36
  - - "~>"
31
37
  - !ruby/object:Gem::Version
32
38
  version: '10.2'
33
- name: rake
34
39
  prerelease: false
35
40
  type: :development
41
+ - !ruby/object:Gem::Dependency
42
+ name: ruby-maven
36
43
  version_requirements: !ruby/object:Gem::Requirement
37
44
  requirements:
38
45
  - - "~>"
39
46
  - !ruby/object:Gem::Version
40
- version: '10.2'
41
- - !ruby/object:Gem::Dependency
47
+ version: 3.3.11
42
48
  requirement: !ruby/object:Gem::Requirement
43
49
  requirements:
44
50
  - - "~>"
45
51
  - !ruby/object:Gem::Version
46
52
  version: 3.3.11
47
- name: ruby-maven
48
53
  prerelease: false
49
54
  type: :development
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - "~>"
53
- - !ruby/object:Gem::Version
54
- version: 3.3.11
55
55
  description: manage jar dependencies for gems and keep track which jar was already loaded using maven artifact coordinates. it warns on version conflicts and loads only ONE jar assuming the first one is compatible to the second one otherwise your project needs to lock down the right version by providing a Jars.lock file.
56
56
  email:
57
57
  - mkristian@web.de
@@ -80,8 +80,10 @@ files:
80
80
  - lib/jars/lock_down_pom.rb
81
81
  - lib/jars/maven_exec.rb
82
82
  - lib/jars/maven_factory.rb
83
+ - lib/jars/maven_settings.rb
83
84
  - lib/jars/output_jars_pom.rb
84
85
  - lib/jars/post_install_hook.rb
86
+ - lib/jars/settings.xml
85
87
  - lib/jars/setup.rb
86
88
  - lib/jars/version.rb
87
89
  - lib/rubygems_plugin.rb