Interface PatchService

All Known Implementing Classes:
PatchServiceImpl

public interface PatchService
Manages patches applied against the repository.

Patches are injected into this class and any attempted applications are recorded for later auditing.

Since:
1.2
Author:
Derek Hulley
  • Method Summary

    Modifier and Type
    Method
    Description
    boolean
    Apply the specified patch that is relevant to the repo, regardless of the deferred flag.
    boolean
    Apply all outstanding patches that are relevant to the repo.
    Retrieve an existing patch
    getPatches(Date fromDate, Date toDate)
    Retrieves all applied patches between two specific times.
    void
    Registers a patch with the service that executes them.
    boolean
    Does some up-front validation on the specified patch, specifically to see if it applies to the current server version and not some future version.
    boolean
    Does some up-front validation on the patches, specifically to see if they all apply to the current server version and not some future version.
  • Method Details

    • registerPatch

      void registerPatch(Patch patch)
      Registers a patch with the service that executes them.
      Parameters:
      patch - the patch to register
    • validatePatches

      boolean validatePatches()
      Does some up-front validation on the patches, specifically to see if they all apply to the current server version and not some future version. This is to prevent tampering with versioning information attached to a license.
      Returns:
      true if validation is successful. Outputs errors and returns false otherwise.
    • applyOutstandingPatches

      boolean applyOutstandingPatches()
      Apply all outstanding patches that are relevant to the repo. If there is a failure, then the patches that were applied will remain so, but the process will not attempt to apply any further patches.
      Returns:
      Returns true if all outstanding patches were applied, or false if the process was terminated before all patches could be applied.
    • applyOutstandingPatch

      boolean applyOutstandingPatch(Patch patch)
      Apply the specified patch that is relevant to the repo, regardless of the deferred flag.
      Parameters:
      patch - the patch object
      Returns:
      true if the specified patch and its dependencies were applied, or false if the process was terminated before all patches could be applied.
    • getPatches

      List<AppliedPatch> getPatches(Date fromDate, Date toDate)
      Retrieves all applied patches between two specific times.
      Parameters:
      fromDate - the start date of the search, or null to get all patches from the start
      toDate - the end date of the search, or null to g
      Returns:
      Returns all applied patches (successful or not)
    • getPatch

      AppliedPatch getPatch(String id)
      Retrieve an existing patch
      Parameters:
      id - the patch unique ID
      Returns:
      Returns the patch instance or null if one has not been persisted
    • validatePatch

      boolean validatePatch(Patch patch)
      Does some up-front validation on the specified patch, specifically to see if it applies to the current server version and not some future version. This is to prevent tampering with versioning information attached to a license.
      Parameters:
      patch - the patch object
      Returns:
      true if validation is successful. Outputs errors and returns false otherwise.