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

      All Methods Instance Methods Abstract Methods 
      Modifier and Type Method Description
      boolean applyOutstandingPatch​(Patch patch)
      Apply the specified patch that is relevant to the repo, regardless of the deferred flag.
      boolean applyOutstandingPatches()
      Apply all outstanding patches that are relevant to the repo.
      AppliedPatch getPatch​(java.lang.String id)
      Retrieve an existing patch
      java.util.List<AppliedPatch> getPatches​(java.util.Date fromDate, java.util.Date toDate)
      Retrieves all applied patches between two specific times.
      void registerPatch​(Patch patch)
      Registers a patch with the service that executes them.
      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.
      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.
    • Method Detail

      • 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

        java.util.List<AppliedPatch> getPatches​(java.util.Date fromDate,
                                                java.util.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​(java.lang.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.