* Add new module optional-depender and a new failing test
* Variant plugin is a dependency of optional-depender
Optional-depender contains the following class
@OptionalExtension(requirePlugins = {"dependee"})
public class OptionalDependerExtension {
private static void foo(Dependee d) {
}
}
* [JENKINS-60449] Move plugin initialization at the end, keep only one extension refresh
* Improve logic to detect classloading issues
Inspect all declared constructors/methods/fields recursively to exclude
failing classes from Guice rather than have Guice explode.
This also fix the failing test, but the previous commit is still better
because it avoids an extra Jenkins.get().refreshExtensions() call.
* Only test resolveClass method if the classloader is not the bootstrap one
* [JENKINS-36720]: Fixed Spotbugs issues WMI_WRONG_MAP_ITERATOR and OS_OPEN_STREAM in core
* merged try with resources with try finally
* reverted auto format from IDE
* reverted auto format from IDE
* use Util.fileToPath() as suggested to remove catch block
* merged try statements
* merged try statements
* reverted some whitespace fixes
* reverted another whitespace fix
* Apply suggestions from code review
Co-Authored-By: Oleg Nenashev <o.v.nenashev@gmail.com>
* reverted change
* reverted change
* reverted change
Co-authored-by: Oleg Nenashev <o.v.nenashev@gmail.com>
* Batch up dynamic plugin installations from setup wizard.
* Reworked to thread the list of batched-up plugins properly and introduced CompleteBatchJob to force the setup wizard to wait.
* UpdateCenterPluginInstallTest.test_installKnownPlugins failure.
* @amuniz notes that an existing message could now be considered misleading.
* Introduced UpdateCenter.DownloadJob.getDisplayName for better consistency in logging, as suggested by @Vlatombe.
* Reducing log levels of messages from dynamicLoad which are not of great interest, as suggested by @Vlatombe.
* Reducing log level of another message of little interest.
* Adding classic UI for CompleteBatchJob.
* CompleteBatchJob should be used only when dynamicLoad.
* Null defense on UpdateCenterJob.site.
Otherwise can get:
java.lang.NullPointerException
at hudson.model.UpdateCenter.getConnectionCheckJob(UpdateCenter.java:850)
at hudson.model.UpdateCenter.addConnectionCheckJob(UpdateCenter.java:817)
at hudson.model.UpdateCenter.addJob(UpdateCenter.java:804)
at hudson.model.UpdateSite$Plugin.deploy(UpdateSite.java:1367)
at hudson.PluginManager.install(PluginManager.java:1537)
at hudson.PluginManager.install(PluginManager.java:1496)
at hudson.PluginManager.doInstall(PluginManager.java:1445)
at …
* Proof of concept catching exceptions for java 11 removed classes
* Add ClassLoader to a lot of places. Backup
* Commenting out wip stuff, change packages, count hits findClass
* Improvements, sending and tests
* Removing the catcher from chain to make funcional tests work
* Removing ignored places and a bit of cleaning
* Cleaning unused code after removing the catcher from the chain
* Remove imports cleaning to avoid extra changes
* Cleaning and explaining comments
* Explaining comments
* fix javadoc
* [JENKINS-57223] Address feedback from Matt Sicker. Improve in concurrency
* [JENKINS-57223] Search on cause and suppressed exceptions and fix on name reported
* [JENKINS-57223] Add cycles control on exceptions and refactor reporting method
* [JENKINS-57223] Add trim to class name comparison
* [JENKINS-57223] Address Oleg's feedback and some improvements
* Avoid sending CNFE when ignored later in code
* Disable when running on Java 8 and a test
* Avoid sending empty events
* [JENKINS-57223] Polish assertion after printing all missing classes in logs
* [JENKINS-57223] Avoid extra if and add curly braces
* [JENKINS-57223] Better comment about time window check
* 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.
* Do not warn repeatedly of the same missing update site dependency.
This happens when locally testing split plugins (despite their presence in WEB-INF/detached-plugins/*.hpi).
(cherry picked from commit 918a0fd221)
* Detached plugins must be kept up to date with security advisories.
(cherry picked from commit e08d28a698)
* Load detached plugins which are implicit dependencies of other plugins at startup, even if the update center was not used.
(cherry picked from commit ad7a36001d)
* Adjusted expected version after e08d28a698.
(cherry picked from commit 84f939cebd)
* e08d28a698 exposed tests which had been incorrectly storing plugins as *.hpi rather than *.jpi.
(cherry picked from commit a0abad7ec4)
* Test failure after ad7a36001d.
(cherry picked from commit 0084e8dbdd)
* Another test failure after ad7a36001d30a6174b25e616fc3c215dd24919d1; fewer installDetachedPlugin calls are now required.
(cherry picked from commit b65bb54e99)
* 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
* Move detached plugins logic into a dedicated class
ClassicPluginStrategy is already long enough, so trying to make things a
bit more focused before adding Java 11 logic. (and even if not, the change
still splits a class that is almost 1k lines).
* Install jaxb as detached only on Java 11+
* Remove duplicate @Restricted
Given the enclosing class already has it.
* Use 1.5 release
* Add more test coverage
* getMinJavaVersion => getMinimumJavaVersion
* Rename DetachedPluginsManager as DetachedPluginsUtil
as requested by Oleg and Jesse. Mainly because of the misleading
relationship (there's no inheritance) with the existing `PluginManager`
class.
* 🤦 adjust to 1.5 release method renaming
* Clarify minimum Java version column
Co-Authored-By: batmat <bmathus@gmail.com>
* Update to 2.3.0 version of the jaxb plugin
* Bump minimum core version to next expected release version
* Add preventive cycle breaks for jaxb while waiting for JENKINS-28942
As requested by Oleg.
* Add test to fail fast on wrong format for split-plugins.txt
* [JENKINS-54459] Avoid angry Jenkins in Plugin Manager. Check Now
* [JENKINS-54459] Avoid angry Jenkins in Plugin Manager. Check Now
* [JENKINS-54459] Fix updateSiteRightJsonTest in Windows
* [JENKINS-54459] Minor fixes
* Avoid deprecated getInstance
Co-Authored-By: MRamonLeon <manuelramonleonjimenez@gmail.com>
* [JENKINS-54459] Some fixes
- Better system properties initialization
- Rename properties
- Localized messages
- Add test for change log level message
- Restore signatureCheck field after test
- Other minor improvements
* [JENKINS-54459] Add Retrier generic class and use it in the checking
* [JENKINS-54459] Improving Spanish messages
* [JENKINS-54459] Fix two javadoc errors
* [JENKINS-54459] Rename constants and its visibility
Rename the constants to do the retries and change their visibilities.
Change the package of the test to be able to access the constants in
order to redefine their values in the tests.
* [JENKINS-54459] Avoid external use of Retrier and test the delay time
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
* [JENKINS-50336] Only keep extensions that could be loaded in memory
So that delta computations will re-attempt to load any extension that
previously failed or was skipped after a new plugin is installed.
After installing a plugin, need to refresh extensions in order to pick
up extensions that can be loaded thanks to this new plugin.
* [JENKINS-50336] @OptionalExtension annotated classes were not being picked up after dynamic load of variant
Recompute GuiceExtensionAnnotation list when refreshing extensions