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.Layer;
25 import jgroup.core.arm.ExecException;
26 import jgroup.core.arm.UnknownGroupException;
27 import jgroup.relacs.config.AppConfig;
28
29 /**
30 * Interface implemented by the <code>UpgradeLayer</code> to enable the
31 * UpgradeManager to initiate an upgrade.
32 *
33 * Since the <code>UpgradeLayer</code> uses the EGMI approach for
34 * soliciting upgrade requests, this interface needs to extend the EGMI
35 * listener.
36 *
37 * @author Hein Meling
38 * @since Jgroup 1.2
39 */
40 public interface UpgradeService
41 extends Layer, ExternalGMIListener
42 {
43
44 /////////////////////////////////////////////////////////////////////////////
45 // Constants
46 /////////////////////////////////////////////////////////////////////////////
47
48 /**
49 * Service name used to register the upgrade service layer in the
50 * dependable registry.
51 */
52 public static final String UPGRADE_SERVICE = "UpgradeService";
53
54
55 /////////////////////////////////////////////////////////////////////////////
56 // Upgrade related methods
57 /////////////////////////////////////////////////////////////////////////////
58
59 public void upgradeRequest(AppConfig newApp)
60 throws RemoteException, UnknownGroupException, ExecException;
61
62 }