Skip to content

Commit

Permalink
Merge pull request #1076 from cloudfoundry/tomcat_version_lines
Browse files Browse the repository at this point in the history
Adds support for Tomcat 10.1 alongside 9
  • Loading branch information
pivotal-david-osullivan authored May 22, 2024
2 parents c294d50 + b7a2802 commit 9064578
Show file tree
Hide file tree
Showing 5 changed files with 41 additions and 1 deletion.
7 changes: 6 additions & 1 deletion config/packaging.yml
Original file line number Diff line number Diff line change
Expand Up @@ -194,10 +194,15 @@ takipi_agent:
release_notes: '[Release Notes](https://doc.overops.com/docs/whats-new)'

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

tomcat-10:
name: Tomcat 10.1
cve_notes: '[Security](https://tomcat.apache.org/security-10.html)'
release_notes: '[ChangeLog](https://tomcat.apache.org/tomcat-10.1-doc/changelog.html)'

your_kit_profiler:
name: YourKit Profiler
release_notes: '[Release Notes](https://www.yourkit.com/download/yjp_2024_3_builds.jsp)'
3 changes: 3 additions & 0 deletions config/tomcat.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,9 @@
---
tomcat:
version: 9.+
version_lines:
- 9.+
- 10.1.+
repository_root: "{default.repository.root}/tomcat"
context_path:
external_configuration_enabled: false
Expand Down
14 changes: 14 additions & 0 deletions rakelib/dependency_cache_task.rb
Original file line number Diff line number Diff line change
Expand Up @@ -164,6 +164,9 @@ def pin_version(old_configuration, version)
if Utils::VersionUtils.openjdk_jre? old_configuration
rake_output_message "Pinning JRE #{sub_component_id || component_id} version to #{version}"
pin_jre(component_id, sub_component_id, version)
elsif Utils::VersionUtils.tomcat? old_configuration
rake_output_message "Pinning Tomcat #{sub_component_id || component_id} version to #{version}"
pin_tomcat(component_id, sub_component_id, version)
else
rake_output_message "Pinning #{sub_component_id || component_id} version to #{version}"
pin_component(component_id, sub_component_id, version)
Expand All @@ -187,6 +190,17 @@ def pin_jre(component_id, sub_component_id, version)
JavaBuildpack::Util::ConfigurationUtils.write(component_id, configuration_to_update)
end

def pin_tomcat(component_id, sub_component_id, version)
# update configuration file, pin version & version lines
configuration_to_update = JavaBuildpack::Util::ConfigurationUtils.load(component_id, false, true)
update_configuration(configuration_to_update, version, sub_component_id)
configuration_to_update['tomcat']['version_lines'].each_with_index do |version_pattern, index|
configuration_to_update['tomcat']['version_lines'][index] = version \
if Utils::VersionUtils.version_matches?(version_pattern, [version])
end
JavaBuildpack::Util::ConfigurationUtils.write(component_id, configuration_to_update)
end

def update_configuration(config, version, sub_component)
if sub_component.nil?
config['version'] = version
Expand Down
3 changes: 3 additions & 0 deletions rakelib/package.rb
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,9 @@ def configurations(component_id, configuration, sub_component_id = nil)
Utils::VersionUtils.java_version_lines(configuration, configurations) \
if Utils::VersionUtils.openjdk_jre? configuration

Utils::VersionUtils.tomcat_version_lines(configuration, configurations) \
if Utils::VersionUtils.tomcat? configuration

configurations << configuration
else
configuration.each { |k, v| configurations << configurations(component_id, v, k) if v.is_a? Hash }
Expand Down
15 changes: 15 additions & 0 deletions rakelib/utils.rb
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,10 @@ def openjdk_jre?(configuration)
configuration['component_id'].end_with?('_jre') && configuration['sub_component_id'].start_with?('jre')
end

def tomcat?(configuration)
configuration['component_id'].end_with?('tomcat') && configuration['sub_component_id'].start_with?('tomcat')
end

def java_version_lines(configuration, configurations)
configuration['version_lines'].each do |v|
next if version_line_matches?(configuration, v)
Expand All @@ -50,6 +54,17 @@ def java_version_lines(configuration, configurations)
end
end

def tomcat_version_lines(configuration, configurations)
configuration['version_lines'].each do |v|
next if version_line_matches?(configuration, v)

c1 = configuration.clone
c1['sub_component_id'] = "tomcat-#{v.split('.')[0]}"
c1['version'] = v
configurations << c1
end
end

def version_line_matches?(configuration, v)
return true if v == configuration['version']
return false if version_wildcard? v
Expand Down

0 comments on commit 9064578

Please sign in to comment.