* Enable labels/categories with `deprecated` to show a warning for plugins
* fix doc
* Wording
Co-Authored-By: Daniel Beck <1831569+daniel-beck@users.noreply.github.com>
* Add Restricted no external use
* add since todo
* spelling
Co-Authored-By: Tim Jacomb <t.jacomb@kainos.com>
* use stream api to collect deprecated plugins
* link to plugin url
* add break lines to deprecation message
* fix regex
* wording and separation of description
* Hide deprecated plugins inside the available section on update center
* Add a warning inside the installed section on plugin manager
* Add support for top-level 'deprecations' element in update site
* Add test
* Make this a list to allow direct element access
* This isn't a critical problem so go with warning style, rephrase label
* Add an intermediate JSON object in the UC data for extensibility
* Make 'deprecated' a meta label (not shown in the regular label list)
* Make parsing this safer
* Null safety with labels array
* Link to the deprecation URL, not the plugin URL
* Add issue reference
* Add Javadoc
Co-authored-by: Daniel Beck <1831569+daniel-beck@users.noreply.github.com>
Co-authored-by: Tim Jacomb <t.jacomb@kainos.com>
Co-authored-by: Daniel Beck <daniel-beck@users.noreply.github.com>
* escape special characters from href attrib
* escape special character | adding test case
* escape special character | adding test case
* escape special character | adding test case
* escape special character | adding test case
* escape special character | adding test case
* escape special character | adding test case
* escape special character | adding test case
* escape special character | adding test case
* escape special character | adding test case
* Update test/src/test/java/hudson/console/HyperlinkNoteTest.java
Co-authored-by: Jesse Glick <jglick@cloudbees.com>
Co-authored-by: Singh, Abhinav Kumar <abhinavkumar.singh@kronos.com>
Co-authored-by: Jesse Glick <jglick@cloudbees.com>
It will now deal with final/abstract methods appropriately.
It will also clearly report bad arguments (base not base of derived, or base does not declare the method).
Added a unit test for interface cases.
Small gap to be looked into: overrides provided via default implementation of a (derived) interface.
* [JENKINS-62345] Introduce FingerprintStorage API
* Fix FingerprintTest by adding JenkinsRule
* Add licenses
* Undo Adding JTH to core
* Move roundTrip test to JTH
* Move toByteArray method to Fingerprint class
* Decrease extension ordinal value for FileFingerprintStorage
* abstract logging and bulkchange into fingerprint class
* Move loading logs into Fingerprint
* Expose setPersistedFacets in Fingerprint class
* Annotate FingerprintStorage as Beta
* Add docstring for FingerprintStorage and FileFingerprintStorage
* Remove nonnull annotation from getPersistedFacets
* Add System property to choose FingerprintStorage engine
* Introduce initFacets method for abstraction
* Remove setPersistedFacets method
* Change scope of getPersistedFacets to default
* Single line return statement
* Add check for null
* Remove checkForNull annotation from initFacets
* change access scope from package to public for load
* Remove No external use from FingerprintStorageEngine
* fingerprintStorageEngine moved inside constructor
* Make get function static
* Remove ordinal value
* Make get method public
* make getPersistedFacets public
* Remove brackets from Extension
* Mark FileFingerprintStorage Beta
* Add fingerprint's hash to logging
* Spelling fix
* Remove toByteArray method
* Move getConfigFile and getFingerprintFile to FileFingerprintStorage
* Annotate and make final: getPersistedFacets
* getBytes -> fromHex
* Deprecate Fingerprint.save(File file)
* add version since deprecated
* Deprecate Fingerprint.load(file) method
* Move FingerprintStorage,FileFingerprintStorage -> jenkins.fingerprints package
* Deprecate Fingerprint load(@NonNull byte[] md5sum) and move to String id
* Delete private deprecated method
* CheckForNull added
* Add comments about implementing Saveable Listener
* Add TODO for Saveable Listener
* Add TODO for renaming md5 in xml
* Move serialize to FileFingerprintStorage
* Make serialize method private
* Add docstrings
* Revert serialize to static
* Introduce deletion in the API
* Make messageOfParseException private
* Remove Redundant imports
* Add test for fingerprint deletion
* Make methods private
* Move deletion test to FingerprintTest
* Improve code style
* Improve code style
* Add deletion errors in FileFingerprintStorage#delete
* Add spaces
* Remove extra empty line
* Variable renaming
* Add documentation
* Add spacing
* Remove spacing
* Beta -> NoExternalUse
* Refactoring
* Add CheckForNull annotation in save method
* Add documentation
* Refactor FingerprintMap#isReady to FingerprintStorage
* Suppress fingerprint cleanup thread when external storage is configured
* Add TODO
* Fix negation bug
* Move FingerprintCleanupThreadTest from core to test (needs JTH)
* Revert to using ordinal for extension
* Remove redundant import
* Add note on ID
* spacing changes
* Add spacing
* Add ordinal to extension
* Add curlies
* remove curlies
* j -> jenkinsRule
* Remove note on | delimeter
* Improve docstring
* null -> {@code null}
* Improve docstring
* Improve documentation
* Fix typos
* Minor changes to variable names and docstrings
* Update docstring
Change toString() to use the id rather than fullName.
This is because a full name may not be unique and as such when used in log
messages we get something that is less than helpful.
as such we should print the user's Id so we can actually identify the
user.