org.apache.storm.localizer

## Class LocalizedResource

- java.lang.Object
- - org.apache.storm.localizer.LocallyCachedBlob
  - - org.apache.storm.localizer.LocalizedResource

-     public class LocalizedResource
      extends LocallyCachedBlob

  Represents a resource that is localized on the supervisor. A localized resource has a .current symlink to the current version file which is named filename.{current version}. There is also a filename.version which contains the latest version.

- - ### Field Summary

    - ### Fields inherited from class org.apache.storm.localizer.LocallyCachedBlob

      `localUpdateTime, NOT_DOWNLOADED_VERSION`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `cleanupOrphanedData()` Clean up any temporary files.
    `protected void` | `commitNewVersion(long version)` Commit the new version and make it available for the end user.
    `void` | `completelyRemove()` Completely remove anything that is cached locally for this blob and all tracking files also stored for it.
    `boolean` | `equals(Object other)`
    `long` | `fetchUnzipToTemp(ClientBlobStore store)` Download the latest version to a temp location.
    `long` | `getLocalVersion()` Get the version of the blob cached locally.
    `long` | `getRemoteVersion(ClientBlobStore store)` Get the version of the blob in the blob store.
    `long` | `getSizeOnDisk()` Get the amount of disk space that is used by this blob.
    `int` | `hashCode()`
    `boolean` | `isFullyDownloaded()`
    `protected void` | `setSize(long size)`
    `String` | `toString()`

    - ### Methods inherited from class org.apache.storm.localizer.LocallyCachedBlob

      `addReference, fetch, getDependencies, getKey, getLastUsed, getSizeOnDisk, informReferencesAndCommitNewVersion, isUsed, removeReference, touch, update`

    - ### Methods inherited from class java.lang.Object

      `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

- - ### Method Detail

    - #### setSize

          protected void setSize(long size)

    - #### getLocalVersion

          public long getLocalVersion()

      Description copied from class: `LocallyCachedBlob`

      Get the version of the blob cached locally. If the version is unknown or it has not been downloaded NOT_DOWNLOADED_VERSION should be returned. PRECONDITION: this can only be called with a lock on this instance held.

      Specified by:
        `getLocalVersion` in class `LocallyCachedBlob`

    - #### getRemoteVersion

          public long getRemoteVersion(ClientBlobStore store)
                                throws KeyNotFoundException,
                                       AuthorizationException

      Description copied from class: `LocallyCachedBlob`

      Get the version of the blob in the blob store. PRECONDITION: this can only be called with a lock on this instance held.

      Specified by:
        `getRemoteVersion` in class `LocallyCachedBlob`
      Throws:
        `KeyNotFoundException`
        `AuthorizationException`

    - #### fetchUnzipToTemp

          public long fetchUnzipToTemp(ClientBlobStore store)
                                throws IOException,
                                       KeyNotFoundException,
                                       AuthorizationException

      Description copied from class: `LocallyCachedBlob`

      Download the latest version to a temp location. This may also include unzipping some or all of the data to a temp location. PRECONDITION: this can only be called with a lock on this instance held.

      Specified by:
        `fetchUnzipToTemp` in class `LocallyCachedBlob`
      Parameters:
        `store` - the store to us to download the data.
      Returns:
        the version that was downloaded.
      Throws:
        `IOException`
        `KeyNotFoundException`
        `AuthorizationException`

    - #### commitNewVersion

          protected void commitNewVersion(long version)
                                   throws IOException

      Description copied from class: `LocallyCachedBlob`

      Commit the new version and make it available for the end user. PRECONDITION: uncompressToTempLocationIfNeeded will have been called. PRECONDITION: this can only be called with a lock on this instance held.

      Specified by:
        `commitNewVersion` in class `LocallyCachedBlob`
      Parameters:
        `version` - the version of the blob to commit.
      Throws:
        `IOException`

    - #### cleanupOrphanedData

          public void cleanupOrphanedData()
                                   throws IOException

      Description copied from class: `LocallyCachedBlob`

      Clean up any temporary files. This will be called after updating a blob, either successfully or if an error has occured. The goal is to find any files that may be left over and remove them so space is not leaked. PRECONDITION: this can only be called with a lock on this instance held.

      Specified by:
        `cleanupOrphanedData` in class `LocallyCachedBlob`
      Throws:
        `IOException`

    - #### completelyRemove

          public void completelyRemove()
                                throws IOException

      Description copied from class: `LocallyCachedBlob`

      Completely remove anything that is cached locally for this blob and all tracking files also stored for it. This will be called after the blob was determined to no longer be needed in the cache. PRECONDITION: this can only be called with a lock on this instance held.

      Specified by:
        `completelyRemove` in class `LocallyCachedBlob`
      Throws:
        `IOException`

    - #### getSizeOnDisk

          public long getSizeOnDisk()

      Description copied from class: `LocallyCachedBlob`

      Get the amount of disk space that is used by this blob. If the blob is uncompressed it should be the sum of the space used by all of the uncompressed files. In general this will not be called with any locks held so it is a good idea to cache it and updated it when committing a new version.

      Specified by:
        `getSizeOnDisk` in class `LocallyCachedBlob`

    - #### isFullyDownloaded

          public boolean isFullyDownloaded()

      Specified by:
        `isFullyDownloaded` in class `LocallyCachedBlob`

    - #### equals

          public boolean equals(Object other)

      Overrides:
        `equals` in class `Object`

    - #### hashCode

          public int hashCode()

      Overrides:
        `hashCode` in class `Object`

    - #### toString

          public String toString()

      Overrides:
        `toString` in class `Object`

Copyright © 2021 The Apache Software Foundation. All rights reserved.