* Hide message re disabling implied dependencies when no dependents exist
* Rename CSS class to be clear about when it's added
Co-authored-by: Daniel Beck <daniel-beck@users.noreply.github.com>
* [JENKINS-61455] _About Jenkins_ accesible with Jenkins.MANAGE
_About Jenkins_ management link is now accessible to users with
Jenkins.MANAGE or Jenkins.SYSTEM_READ (as well as the usual
Jenkins.ADMINISTRATOR)
* [JENKINS-61455] Test updated to cover this use case
* [JENKINS-61455] Fix test
* [JENKINS-61455] Fix permissions on linked pages
Co-authored-by: Tim Jacomb <timjacomb1+github@gmail.com>
* Display a warning in the Installed tab if the admin is about to disable or uninstall a detached plugin.
* @since
Co-Authored-By: Oleg Nenashev <o.v.nenashev@gmail.com>
* Implied dependencies on detached plugins were not being marked optional despite being listed in optionalDependencies, confusing the calculation of optionalDependents in resolveDependentPlugins.
* Javadoc improvements based on code exploration.
* [JENKINS-33843] Do not consider optional dependencies for purposes of disabling plugins.
* PluginManagerInstalledGUITest updated to reflect new behavior.
* spelling: dependent
Writers following British writing convention often confuse dependent and dependant. Those following US writing convention have an easier time with these words because Americans do not use dependant.
A dependant is a person who is dependent on someone else. (For example, a child is dependent on its parents. Therefore, a child is a dependant of its parents.)
Jenkins does not deal with people, thus the UK rule which is confusing does not apply.
* Add deprecated shims
After the change all Java Specification Version comparison operations are robust against comparison of old and new Java spec version formats
See https://openjdk.java.net/jeps/223 for the new format
Given this field is present in maven-hpi-plugin, update-center, etc.
I think it does not hurt to keep the 'Minimum-Java-Version' name across
various usages to help make it clear.
Move the process to core to be reusable, not only for the cli command.
Add optionalDependants list to PluginWrapper to process them easily.
Replace (depreacate) the disable method without checks by this one with
strategies.
Improve messages and tests
* Reduce memory footprint for the plugin info by presizing hashmaps to reduce waste for small maps and interning commonly duplicated plugin strings
* Replace duplicated empty string arrays with the one in MemoryReductionUtil
* Fix interning where strings are null
* Fix to deal with the fact that we directly mutate dependency fields for UpdateSite, sigh
* Reduce starting HashMap size for some hashmaps likely to be empty or tiny
* Cleanup per review comments
* Trim some extra waste out of the UpdateSite warnings
* Fix count of optional dependencies
* Move predicates for dependency matching to top-level static final field so they are not duplicated
- When automatically installing dependent plugins, the first update center with a version meeting the minimum required will win
- Also enhances the CLI command to allow specification of a minimum version