Skip to content

Commit b7a2802

Browse files
author
David O'Sullivan
committedMay 16, 2024·
Adds support for Tomcat 10.1 alongside 9
1 parent cb94d38 commit b7a2802

File tree

5 files changed

+41
-1
lines changed

5 files changed

+41
-1
lines changed
 

‎config/packaging.yml

+6-1
Original file line numberDiff line numberDiff line change
@@ -194,10 +194,15 @@ takipi_agent:
194194
release_notes: '[Release Notes](https://doc.overops.com/docs/whats-new)'
195195

196196
tomcat:
197-
name: Tomcat
197+
name: Tomcat 9
198198
cve_notes: '[Security](https://tomcat.apache.org/security-9.html)'
199199
release_notes: '[ChangeLog](https://tomcat.apache.org/tomcat-9.0-doc/changelog.html)'
200200

201+
tomcat-10:
202+
name: Tomcat 10.1
203+
cve_notes: '[Security](https://tomcat.apache.org/security-10.html)'
204+
release_notes: '[ChangeLog](https://tomcat.apache.org/tomcat-10.1-doc/changelog.html)'
205+
201206
your_kit_profiler:
202207
name: YourKit Profiler
203208
release_notes: '[Release Notes](https://www.yourkit.com/download/yjp_2023_9_builds.jsp)'

‎config/tomcat.yml

+3
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,9 @@
1717
---
1818
tomcat:
1919
version: 9.+
20+
version_lines:
21+
- 9.+
22+
- 10.1.+
2023
repository_root: "{default.repository.root}/tomcat"
2124
context_path:
2225
external_configuration_enabled: false

‎rakelib/dependency_cache_task.rb

+14
Original file line numberDiff line numberDiff line change
@@ -164,6 +164,9 @@ def pin_version(old_configuration, version)
164164
if Utils::VersionUtils.openjdk_jre? old_configuration
165165
rake_output_message "Pinning JRE #{sub_component_id || component_id} version to #{version}"
166166
pin_jre(component_id, sub_component_id, version)
167+
elsif Utils::VersionUtils.tomcat? old_configuration
168+
rake_output_message "Pinning Tomcat #{sub_component_id || component_id} version to #{version}"
169+
pin_tomcat(component_id, sub_component_id, version)
167170
else
168171
rake_output_message "Pinning #{sub_component_id || component_id} version to #{version}"
169172
pin_component(component_id, sub_component_id, version)
@@ -187,6 +190,17 @@ def pin_jre(component_id, sub_component_id, version)
187190
JavaBuildpack::Util::ConfigurationUtils.write(component_id, configuration_to_update)
188191
end
189192

193+
def pin_tomcat(component_id, sub_component_id, version)
194+
# update configuration file, pin version & version lines
195+
configuration_to_update = JavaBuildpack::Util::ConfigurationUtils.load(component_id, false, true)
196+
update_configuration(configuration_to_update, version, sub_component_id)
197+
configuration_to_update['tomcat']['version_lines'].each_with_index do |version_pattern, index|
198+
configuration_to_update['tomcat']['version_lines'][index] = version \
199+
if Utils::VersionUtils.version_matches?(version_pattern, [version])
200+
end
201+
JavaBuildpack::Util::ConfigurationUtils.write(component_id, configuration_to_update)
202+
end
203+
190204
def update_configuration(config, version, sub_component)
191205
if sub_component.nil?
192206
config['version'] = version

‎rakelib/package.rb

+3
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,9 @@ def configurations(component_id, configuration, sub_component_id = nil)
3838
Utils::VersionUtils.java_version_lines(configuration, configurations) \
3939
if Utils::VersionUtils.openjdk_jre? configuration
4040

41+
Utils::VersionUtils.tomcat_version_lines(configuration, configurations) \
42+
if Utils::VersionUtils.tomcat? configuration
43+
4144
configurations << configuration
4245
else
4346
configuration.each { |k, v| configurations << configurations(component_id, v, k) if v.is_a? Hash }

‎rakelib/utils.rb

+15
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,10 @@ def openjdk_jre?(configuration)
3939
configuration['component_id'].end_with?('_jre') && configuration['sub_component_id'].start_with?('jre')
4040
end
4141

42+
def tomcat?(configuration)
43+
configuration['component_id'].end_with?('tomcat') && configuration['sub_component_id'].start_with?('tomcat')
44+
end
45+
4246
def java_version_lines(configuration, configurations)
4347
configuration['version_lines'].each do |v|
4448
next if version_line_matches?(configuration, v)
@@ -50,6 +54,17 @@ def java_version_lines(configuration, configurations)
5054
end
5155
end
5256

57+
def tomcat_version_lines(configuration, configurations)
58+
configuration['version_lines'].each do |v|
59+
next if version_line_matches?(configuration, v)
60+
61+
c1 = configuration.clone
62+
c1['sub_component_id'] = "tomcat-#{v.split('.')[0]}"
63+
c1['version'] = v
64+
configurations << c1
65+
end
66+
end
67+
5368
def version_line_matches?(configuration, v)
5469
return true if v == configuration['version']
5570
return false if version_wildcard? v

0 commit comments

Comments
 (0)
Please sign in to comment.