ucb_deployer 0.2.1 → 0.3.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.
data/Manifest CHANGED
@@ -8,8 +8,10 @@ lib/ucb_deployer/confluence_deployer.rb
8
8
  lib/ucb_deployer/deployer.rb
9
9
  lib/ucb_deployer/jira_deployer.rb
10
10
  resources/confluence_cas_web.xml
11
+ resources/ist_banner.jpg
11
12
  resources/jira_cas_web.xml
12
- resources/soulwing-casclient-0.5.3.jar
13
+ resources/soulwing-casclient-0.5.3-1.jar
14
+ resources/xwork.xml
13
15
  spec/fixtures/confluence/bad_deploy.yml
14
16
  spec/fixtures/confluence/confluence-init.properties
15
17
  spec/fixtures/confluence/deploy.yml
data/Rakefile CHANGED
@@ -4,7 +4,7 @@ require 'echoe'
4
4
  require 'spec/rake/spectask'
5
5
 
6
6
 
7
- Echoe.new('ucb_deployer', '0.2.1') do |p|
7
+ Echoe.new('ucb_deployer', '0.3.0') do |p|
8
8
  p.description = "Tool for deploying Confluence/JIRA war files to tomcat"
9
9
  p.url = "http://ucbrb.rubyforge.org"
10
10
  p.author = "Steven Hansen"
data/TODO.md CHANGED
@@ -4,4 +4,7 @@
4
4
  version has already been pulled down to the filesystem, reuse it.
5
5
  * For commands like display_maintenance_file and remove_maintenance_file, you should
6
6
  not need to pass int the VERSION option
7
+ * Currently we're bundling our own copy of xwork.xml for Confluence, modifiying it and
8
+ then deploying. A better long term strategy would be to unjar WEB-INF/lib/confluence-3.4.2.jar
9
+ during the deployment process and modify its xwork.xml, then rejar it.
7
10
 
@@ -23,6 +23,7 @@ module UcbDeployer
23
23
  config_web_xml()
24
24
  config_seraph_config_xml()
25
25
  config_confluence_init_properties()
26
+ config_xwork_xml()
26
27
  reshuffle_jars()
27
28
  end
28
29
 
@@ -143,7 +144,24 @@ module UcbDeployer
143
144
  end
144
145
 
145
146
  ##
146
- # Remove application jars that have been installed at the container level.
147
+ # Shortcut to xwork.xml file
148
+ #
149
+ def xwork_xml()
150
+ "#{build_dir}/src/confluence/WEB-INF/classes/xwork.xml"
151
+ end
152
+
153
+ ##
154
+ # Alter xwork.xml so soulwing authenticator works with CAS
155
+ #
156
+ def config_xwork_xml()
157
+ template = File.open("#{UcbDeployer::RESOURCES_DIR}/xwork.xml") { |f| f.read }
158
+ xml = ERB.new(template).result(self.send(:binding))
159
+ FileUtils.touch(xwork_xml())
160
+ File.open(xwork_xml(), "w") { |io| io.puts(xml) }
161
+ end
162
+
163
+ ##
164
+ # Remove application jars that have been installed at the container level.
147
165
  #
148
166
  def reshuffle_jars()
149
167
  FileUtils.cp(Dir["#{UcbDeployer::RESOURCES_DIR}/soulwing-casclient-*"],
@@ -24,6 +24,7 @@ module UcbDeployer
24
24
  config_seraph_config_xml()
25
25
  config_entityengine_xml()
26
26
  config_jira_application_properties()
27
+ config_ist_banner()
27
28
  reshuffle_jars()
28
29
  end
29
30
 
@@ -50,6 +51,11 @@ module UcbDeployer
50
51
  def rollback()
51
52
  end
52
53
 
54
+ def cas_logout_url()
55
+ "/casLogout.action"
56
+ end
57
+
58
+
53
59
  ##
54
60
  # Shortcut to jira web.xml file
55
61
  #
@@ -57,33 +63,36 @@ module UcbDeployer
57
63
  "#{build_dir}/src/webapp/WEB-INF/web.xml"
58
64
  end
59
65
 
60
- ##
61
- # Shortcut to jira entityengine.xml file
62
- #
63
- def entityengine_xml()
64
- "#{build_dir}/src/edit-webapp/WEB-INF/classes/entityengine.xml"
66
+ def web_xml_token()
67
+ "appropriate error message for any requests. Basically it locks JIRA. -->"
65
68
  end
66
69
 
67
70
  ##
68
- # Shortcut to jira seraph-config.xml file
71
+ # Updates the jira web.xml file with the soulwing (CAS library)
72
+ # authentication configuration
69
73
  #
70
- def seraph_config_xml()
71
- "#{build_dir}/src/webapp/WEB-INF/classes/seraph-config.xml"
74
+ def config_web_xml()
75
+ web_xml = File.readlines(self.web_xml)
76
+
77
+ web_xml = web_xml.map do |line|
78
+ if line =~ /#{web_xml_token}/
79
+ template = File.open("#{DEPLOYER_HOME}/resources/jira_cas_web.xml") { |f| f.read }
80
+ line + ERB.new(template).result(self.send(:binding))
81
+ else
82
+ line
83
+ end
84
+ end
85
+
86
+ File.open(self.web_xml, "w") do |io|
87
+ web_xml.each { |line| io.puts(line) }
88
+ end
72
89
  end
73
90
 
74
91
  ##
75
- # Shortcut to jira-application.properties file
92
+ # Shortcut to jira entityengine.xml file
76
93
  #
77
- def jira_application_properties()
78
- "#{build_dir}/src/edit-webapp/WEB-INF/classes/jira-application.properties"
79
- end
80
-
81
- def web_xml_token()
82
- "appropriate error message for any requests. Basically it locks JIRA. -->"
83
- end
84
-
85
- def seraph_config_xml_auth_class_token()
86
- "com.atlassian.jira.security.login.JiraOsUserAuthenticator"
94
+ def entityengine_xml()
95
+ "#{build_dir}/src/edit-webapp/WEB-INF/classes/entityengine.xml"
87
96
  end
88
97
 
89
98
  def entityengine_xml_db_token()
@@ -94,22 +103,6 @@ module UcbDeployer
94
103
  "schema-name=\"PUBLIC\""
95
104
  end
96
105
 
97
- def jira_home_token()
98
- "jira.home ="
99
- end
100
-
101
- def seraph_config_xml_logout_url_token()
102
- "/secure/Logout!default.jspa"
103
- end
104
-
105
- def cas_authenticator_class()
106
- "org.soulwing.cas.apps.atlassian.JiraCasAuthenticator"
107
- end
108
-
109
- def cas_logout_url()
110
- "/casLogout.action"
111
- end
112
-
113
106
  def entityengine_db()
114
107
  "field-type-name=\"postgres72\""
115
108
  end
@@ -118,27 +111,6 @@ module UcbDeployer
118
111
  "schema-name=\"jira_app\""
119
112
  end
120
113
 
121
- ##
122
- # Updates the jira web.xml file with the soulwing (CAS library)
123
- # authentication configuration
124
- #
125
- def config_web_xml()
126
- web_xml = File.readlines(self.web_xml)
127
-
128
- web_xml = web_xml.map do |line|
129
- if line =~ /#{web_xml_token}/
130
- template = File.open("#{DEPLOYER_HOME}/resources/jira_cas_web.xml") { |f| f.read }
131
- line + ERB.new(template).result(self.send(:binding))
132
- else
133
- line
134
- end
135
- end
136
-
137
- File.open(self.web_xml, "w") do |io|
138
- web_xml.each { |line| io.puts(line) }
139
- end
140
- end
141
-
142
114
  ##
143
115
  # Updates the jira entityengine.xml file with the correct database configs
144
116
  #
@@ -166,6 +138,25 @@ module UcbDeployer
166
138
  end
167
139
  end
168
140
 
141
+ ##
142
+ # Shortcut to jira seraph-config.xml file
143
+ #
144
+ def seraph_config_xml()
145
+ "#{build_dir}/src/webapp/WEB-INF/classes/seraph-config.xml"
146
+ end
147
+
148
+ def seraph_config_xml_auth_class_token()
149
+ "com.atlassian.jira.security.login.JiraOsUserAuthenticator"
150
+ end
151
+
152
+ def seraph_config_xml_logout_url_token()
153
+ "/secure/Logout!default.jspa"
154
+ end
155
+
156
+ def cas_authenticator_class()
157
+ "org.soulwing.cas.apps.atlassian.JiraCasAuthenticator"
158
+ end
159
+
169
160
  ##
170
161
  # Updates the jira seraph_config.xml file with the soulwing
171
162
  # authenticator.
@@ -181,7 +172,7 @@ module UcbDeployer
181
172
  new_str
182
173
  elsif m = /(#{Regexp.quote(seraph_config_xml_logout_url_token)})/.match(line)
183
174
  debug(m[0])
184
- new_str = "#{m.pre_match}#{cas_logout_url}#{m.post_match}"
175
+ new_str = "#{m.pre_match}#{cas_server_url}/logout#{m.post_match}"
185
176
  debug(new_str)
186
177
  new_str
187
178
  else
@@ -194,6 +185,17 @@ module UcbDeployer
194
185
  end
195
186
  end
196
187
 
188
+ ##
189
+ # Shortcut to jira-application.properties file
190
+ #
191
+ def jira_application_properties()
192
+ "#{build_dir}/src/edit-webapp/WEB-INF/classes/jira-application.properties"
193
+ end
194
+
195
+ def jira_home_token()
196
+ "jira.home ="
197
+ end
198
+
197
199
  ##
198
200
  # Sets the jira.home property in the file: jira-application.properties.
199
201
  #
@@ -213,7 +215,19 @@ module UcbDeployer
213
215
  jira_props.each { |line| io.puts(line) }
214
216
  end
215
217
  end
218
+
219
+ ##
220
+ # Places IST banner jpg in imaages directory
221
+ #
222
+ def config_ist_banner()
223
+ FileUtils.cp("#{UcbDeployer::RESOURCES_DIR}/ist_banner.jpg",
224
+ "#{build_dir}/src/webapp/images/")
225
+ end
216
226
 
227
+ ##
228
+ # Remove jars from WEB-INF/lib that have been installed at the container
229
+ # level to avoid conflicts.
230
+ #
217
231
  def reshuffle_jars()
218
232
  FileUtils.mkdir_p("#{build_dir}/src/edit-webapp/WEB-INF/lib/")
219
233
  FileUtils.cp(Dir["#{UcbDeployer::RESOURCES_DIR}/soulwing-casclient-*"],
Binary file
@@ -44,7 +44,7 @@
44
44
  <init-param>
45
45
  <param-name>bypassPaths</param-name>
46
46
  <param-value>
47
- /rpc/*, /images/*, /styles/*, /secure/Logout!default.jspa
47
+ /rpc/*, /images/*, /styles/*, /rest/, /secure/Logout!default.jspa
48
48
  </param-value>
49
49
  </init-param>
50
50
  </filter>