tomcap 1.1.0 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (4) hide show
  1. data/VERSION +1 -1
  2. data/lib/tomcap/recipes.rb +29 -7
  3. data/tomcap.gemspec +1 -1
  4. metadata +3 -3
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.1.0
1
+ 1.2.0
@@ -19,12 +19,14 @@ Capistrano::Configuration.instance(:must_exist).load do
19
19
  set :mvn_war_version, "1.0-SNAPSHOT"
20
20
 
21
21
  Optional Arguments (defaults specified):
22
- set :tomcat_url, "http://localhost:8080"
23
- set :artifactory_url, "http://localhost:8080/artifactory"
24
- set :tomcat_initd_script, "/etc/init.d/tomcat"
22
+ set :tomcat_url, "http://localhost:8080"
23
+ set :artifactory_url, "http://localhost:8080/artifactory"
24
+ set :tomcat_initd_script, "/etc/init.d/tomcat"
25
+ set :parse_snapshot_metadata, false
25
26
  DESC
26
27
  task :java, :roles => :java do
27
28
  require 'net/http'
29
+ require 'rexml/document'
28
30
 
29
31
  raise ArgumentError, "Must set tomcat_user" unless tomcat_user = fetch(:tomcat_user, nil)
30
32
  raise ArgumentError, "Must set tomcat_pass" unless tomcat_pass = fetch(:tomcat_pass, nil)
@@ -34,16 +36,36 @@ Capistrano::Configuration.instance(:must_exist).load do
34
36
  raise ArgumentError, "Must set mvn_war_group_id" unless mvn_war_group_id = fetch(:mvn_war_group_id, nil)
35
37
  raise ArgumentError, "Must set mvn_war_artifact_id" unless mvn_war_artifact_id = fetch(:mvn_war_artifact_id, nil)
36
38
  raise ArgumentError, "Must set mvn_war_version" unless mvn_war_version = fetch(:mvn_war_version, nil)
37
-
38
- war_file = "#{mvn_war_artifact_id}-#{mvn_war_version}.war"
39
-
40
- run "rm -rf #{shared_path}/cached_java_copy/#{war_file}"
39
+
40
+ run "rm -rf #{shared_path}/cached_java_copy/#{mvn_war_artifact_id}-*.war"
41
41
 
42
42
  tomcat_url = fetch(:tomcat_url, "http://localhost:8080")
43
43
  artifactory_url = fetch(:artifactory_url, "http://localhost:8080/artifactory")
44
44
 
45
45
  war_path = "#{artifactory_url}/#{mvn_repository}/#{mvn_war_group_id.gsub(/\./, '/')}/#{mvn_war_artifact_id}/#{mvn_war_version}"
46
46
 
47
+ if fetch(:parse_snapshot_metadata, false)
48
+ timestamp = nil
49
+ build_number = nil
50
+ uri = URI.parse("#{war_path}/maven-metadata.xml")
51
+ Net::HTTP.start(uri.host, Net::HTTP.http_default_port) do |http|
52
+ req = Net::HTTP::Get.new(uri.path)
53
+ req.basic_auth(mvn_repo_user, mvn_repo_pass)
54
+ response = http.request(req)
55
+ doc = REXML::Document.new(response.body)
56
+ doc.elements.each('metadata/versioning/snapshot/timestamp') do |e|
57
+ timestamp = e.text
58
+ end
59
+ doc.elements.each('metadata/versioning/snapshot/buildNumber') do |e|
60
+ build_number = e.text
61
+ end
62
+ raise Exception.new("Unable to determine timestamp and builder number for snapshot.") if !timestamp || !build_number
63
+ end
64
+ war_file = "#{mvn_war_artifact_id}-#{mvn_war_version.gsub(/SNAPSHOT/, "#{timestamp}-#{build_number}")}.war"
65
+ else
66
+ war_file = "#{mvn_war_artifact_id}-#{mvn_war_version}.war"
67
+ end
68
+
47
69
  run <<-CMD
48
70
  cd #{shared_path}/cached_java_copy &&
49
71
  wget #{war_path}/#{war_file} --user=#{mvn_repo_user} --password=#{mvn_repo_pass}
data/tomcap.gemspec CHANGED
@@ -5,7 +5,7 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{tomcap}
8
- s.version = "1.1.0"
8
+ s.version = "1.2.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Ian Enders"]
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tomcap
3
3
  version: !ruby/object:Gem::Version
4
- hash: 19
4
+ hash: 31
5
5
  prerelease: false
6
6
  segments:
7
7
  - 1
8
- - 1
8
+ - 2
9
9
  - 0
10
- version: 1.1.0
10
+ version: 1.2.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Ian Enders