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