View Javadoc

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