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.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  }