1 /* 2 * Copyright (C) 2005 Alfresco, Inc. 3 * 4 * Licensed under the Mozilla Public License version 1.1 5 * with a permitted attribution clause. You may obtain a 6 * copy of the License at 7 * 8 * http://www.alfresco.org/legal/license.txt 9 * 10 * Unless required by applicable law or agreed to in writing, 11 * software distributed under the License is distributed on an 12 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, 13 * either express or implied. See the License for the specific 14 * language governing permissions and limitations under the 15 * License. 16 */ 17 package org.alfresco.repo.admin.patch; 18 19 import java.util.Date; 20 import java.util.List; 21 22 /** 23 * Manages patches applied against the repository. 24 * <p> 25 * Patches are injected into this class and any attempted applications are recorded 26 * for later auditing. 27 * 28 * @since 1.2 29 * @author Derek Hulley 30 */ 31 public interface PatchService 32 { 33 /** 34 * Registers a patch with the service that executes them. 35 * 36 * @param patch the patch to register 37 */ 38 public void registerPatch(Patch patch); 39 40 /** 41 * Apply all outstanding patches that are relevant to the repo. 42 * If there is a failure, then the patches that were applied will remain so, 43 * but the process will not attempt to apply any further patches. 44 * 45 * @return Returns true if all outstanding patches were applied, or false if the process 46 * was termintated before all patches could be applied. 47 */ 48 public boolean applyOutstandingPatches(); 49 50 /** 51 * Retrieves all applied patches between two specific times. 52 * 53 * @param from the start date of the search, or null to get all patches from the start 54 * @param to the end date of the search, or null to g 55 * @return Returns all applied patches (successful or not) 56 */ 57 public List<PatchInfo> getPatches(Date fromDate, Date toDate); 58 } 59