Package hudson.model

Class UpdateSite


  • @ExportedBean
    public class UpdateSite
    extends Object
    Source of the update center information, like "http://jenkins-ci.org/update-center.json"

    Jenkins can have multiple UpdateSites registered in the system, so that it can pick up plugins from different locations.

    Since:
    1.333
    Author:
    Andrew Bayer, Kohsuke Kawaguchi
    • Field Detail

      • neverUpdate

        public static boolean neverUpdate
    • Constructor Detail

    • Method Detail

      • getId

        @Exported
        public String getId()
        Get ID string.
      • getDataTimestamp

        @Exported
        public long getDataTimestamp()
      • updateDirectly

        @CheckForNull
        public Future<FormValidation> updateDirectly()
        Update the data file from the given URL if the file does not exist, or is otherwise due for update. Accepted formats are JSONP or HTML with postMessage, not raw JSON.
        Returns:
        null if no updates are necessary, or the future result
        Since:
        2.222
      • updateDirectly

        @Deprecated
        @CheckForNull
        public Future<FormValidation> updateDirectly​(boolean signatureCheck)
        Deprecated.
        Update the data file from the given URL if the file does not exist, or is otherwise due for update. Accepted formats are JSONP or HTML with postMessage, not raw JSON.
        Parameters:
        signatureCheck - whether to enforce the signature (may be off only for testing!)
        Returns:
        null if no updates are necessary, or the future result
        Since:
        1.502
      • updateDirectlyNow

        @NonNull
        public FormValidation updateDirectlyNow()
                                         throws IOException
        Forces an update of the data file from the configured URL, irrespective of the last time the data was retrieved.
        Returns:
        A FormValidation indicating the if the update metadata was successfully downloaded from the configured update site
        Throws:
        IOException - if there was an error downloading or saving the file.
        Since:
        2.222
      • updateDirectlyNow

        @Restricted(org.kohsuke.accmod.restrictions.NoExternalUse.class)
        @NonNull
        public FormValidation updateDirectlyNow​(boolean signatureCheck)
                                         throws IOException
        Throws:
        IOException
      • verifySignatureInternal

        @Restricted(org.kohsuke.accmod.restrictions.NoExternalUse.class)
        public final FormValidation verifySignatureInternal​(net.sf.json.JSONObject o)
                                                     throws IOException
        Verifies the signature in the update center data file.
        Throws:
        IOException
      • getJsonSignatureValidator

        @NonNull
        protected JSONSignatureValidator getJsonSignatureValidator​(@CheckForNull
                                                                   String name)
        Let sub-classes of UpdateSite provide their own signature validator.
        Parameters:
        name - the name for the JSON signature Validator object. if name is null, then the default name will be used, which is "update site" followed by the update site id
        Returns:
        the signature validator.
        Since:
        2.21
      • isDue

        public boolean isDue()
        Returns true if it's time for us to check for new version.
      • doInvalidateData

        public org.kohsuke.stapler.HttpResponse doInvalidateData()
        Invalidates the cached data and force retrieval.
        Since:
        1.432
      • getData

        @CheckForNull
        public UpdateSite.Data getData()
        Loads the update center data, if any.
        Returns:
        null if no data is available.
      • getJSONObject

        public net.sf.json.JSONObject getJSONObject()
        Gets the raw update center JSON data.
      • getAvailables

        @Exported
        public List<UpdateSite.Plugin> getAvailables()
        Returns a list of plugins that should be shown in the "available" tab. These are "all plugins - installed plugins".
      • getPlugin

        @CheckForNull
        public UpdateSite.Plugin getPlugin​(String artifactId)
        Gets the information about a specific plugin.
        Parameters:
        artifactId - The short name of the plugin. Corresponds to PluginWrapper.getShortName().
        Returns:
        null if no such information is found.
      • getApi

        public Api getApi()
      • getConnectionCheckUrl

        @Exported
        @CheckForNull
        public String getConnectionCheckUrl()
        Gets a URL for the Internet connection check.
        Returns:
        an "always up" server for Internet connectivity testing, or null if we are going to skip the test.
      • getUpdates

        @Exported
        public List<UpdateSite.Plugin> getUpdates()
        Returns the list of plugins that are updates to currently installed ones.
        Returns:
        can be empty but never null.
      • hasUpdates

        @Exported
        public boolean hasUpdates()
        Does any of the plugin has updates?
      • getUrl

        @Exported
        public String getUrl()
        Exposed to get rid of hardcoding of the URL that serves up update-center.json in JavaScript.
      • getMetadataUrlForDownloadable

        @CheckForNull
        @Restricted(org.kohsuke.accmod.restrictions.NoExternalUse.class)
        public String getMetadataUrlForDownloadable​(String downloadable)
        URL which exposes the metadata location in a specific update site.
        Parameters:
        downloadable - the downloadable id of a specific metatadata json (e.g. hudson.tasks.Maven.MavenInstaller.json)
        Returns:
        the location
        Since:
        2.20
      • getDownloadUrl

        @Deprecated
        public String getDownloadUrl()
        Deprecated.
        Exposed only for UI.
        Where to actually download the update center?
      • isLegacyDefault

        @Deprecated
        @Restricted(org.kohsuke.accmod.restrictions.NoExternalUse.class)
        public boolean isLegacyDefault()
        Deprecated.
        Will be removed, currently returns always false.
        Is this the legacy default update center site?
        Since:
        TODO