1 /* 2 * Copyright (c) 1998-2002 The Jgroup Team. 3 * 4 * This program is free software; you can redistribute it and/or modify 5 * it under the terms of the GNU Lesser General Public License version 2 as 6 * published by the Free Software Foundation. 7 * 8 * This program is distributed in the hope that it will be useful, 9 * but WITHOUT ANY WARRANTY; without even the implied warranty of 10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 * GNU Lesser General Public License for more details. 12 * 13 * You should have received a copy of the GNU Lesser General Public License 14 * along with this program; if not, write to the Free Software 15 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 16 * 17 */ 18 19 package jgroup.upgrade; 20 21 import java.rmi.RemoteException; 22 23 import jgroup.core.ExternalGMIListener; 24 import jgroup.core.arm.ExecException; 25 import jgroup.core.arm.UnknownGroupException; 26 import jgroup.relacs.config.AppConfig; 27 28 29 /** 30 * The <code>UpgradeManager</code> interface describes the methods that 31 * a upgrade management client can invoke on the upgrade manager to 32 * upgrade and downgrade object groups within the distributed system. 33 * 34 * @author Hein Meling 35 * @since Jgroup 1.2 36 */ 37 public interface UpgradeManager 38 extends ExternalGMIListener 39 { 40 41 //////////////////////////////////////////////////////////////////////////////////////////// 42 // Methods for upgrade management 43 //////////////////////////////////////////////////////////////////////////////////////////// 44 45 /** 46 * Upgrade the group for the specified application, with the 47 * applications required redundancy. 48 * 49 * @param app 50 * The application details required to upgrade the group. 51 * @exception RemoteException 52 * Raised if there was communication problems; only when invoked remotely. 53 * @exception UnknownGroupException 54 * Raised if the specified application has no group in the system. 55 */ 56 public void upgradeGroup(AppConfig app) 57 throws RemoteException, UnknownGroupException, ExecException; 58 59 60 /** 61 * Downgrade the group for the given application. 62 * 63 * @param app 64 * The application group to remove. 65 * @exception RemoteException 66 * Raised if there was communication problems; only when invoked remotely. 67 * @exception UnknownGroupException 68 * Raised if the specified application has no group in the system. 69 */ 70 public void downgradeGroup(AppConfig app) 71 throws RemoteException, UnknownGroupException; 72 73 74 } // END UpgradeManager