@@ -0,0 +1,3393 @@
+/* %0A* ################################################################%0A* %0A* ProActive: The Java(TM) library for Parallel, Distributed, %0A*            Concurrent computing with Security and Mobility%0A* %0A* Copyright (C) 1997-2002 INRIA/University of Nice-Sophia Antipolis%0A* Contact: proactive-support@inria.fr%0A* %0A* This library is free software; you can redistribute it and/or%0A* modify it under the terms of the GNU Lesser General Public%0A* License as published by the Free Software Foundation; either%0A* version 2.1 of the License, or any later version.%0A*  %0A* This library is distributed in the hope that it will be useful,%0A* but WITHOUT ANY WARRANTY; without even the implied warranty of%0A* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU%0A* Lesser General Public License for more details.%0A* %0A* You should have received a copy of the GNU Lesser General Public%0A* License along with this library; if not, write to the Free Software%0A* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307%0A* USA%0A*  %0A*  Initial developer(s):               The ProActive Team%0A*                        http://www.inria.fr/oasis/ProActive/contacts.html%0A*  Contributor(s): %0A* %0A* ################################################################%0A*/ %0Apackage org.objectweb.proactive.core.exceptions.handler;%0A%0Aimport org.objectweb.proactive.core.exceptions.NonFunctionalException;%0A%0A%0A/**%0A * Interface for handlers of Non Functional Exceptions%0A *%0A * @author  ProActive Team%0A * @version 1.0,  2002/07/08%0A * @since   ProActive 0.9.3%0A *%0A */%0Apublic interface Handler extends java.io.Serializable %7B%0A%0A%09// Definition of different level ID used to classify handler%0A%09/**%0A%09 * Default level is static and initialized in core of applications. This level %0A%09 * provide a basic handling strategy for every non-functional exception.%0A%09 */   %0A%09static public int ID_Default = 0;%0A%09/**%0A%09 * Virtual Machine level is the first level created dynamcally. It offers the %0A%09 * possibility to define a general handling behavior for every virtual machine %0A%09 * environment. In the scope of distributed application, it's pretty useful with %0A%09 * client/server application which required different recovery mechanisms.%0A%09 */%0A%09static public int ID_VM = 1;%0A%09/**%0A%09 * Remote and Mobile Object level gives the opportunity to associated more %0A%09 * specific handlers to remote objects. Nevertheless, we have to take into %0A%09 * account the mobility of such objects. Handlers should migrate along with %0A%09 * their associated entity.%0A%09 */%0A%09static public int ID_Body = 2;%0A%09/**%0A%09 * Proxy level is used to define reliable strategies for references to active objects.%0A%09 */%0A%09static public int ID_Proxy = 3;%0A%09/**%0A%09 * Future level is highly used with asynchronous remote method calls. It appears %0A%09 * indeed that most of the failure occur during such calls.%0A%09 */%0A%09static public int ID_Future = 4;%0A%09/**%0A%09 * Code level allows temporary handlers in the code. We keep such a level to let %0A%09 * some functional treatments of non functional exceptions possible.%0A%09 */%0A%09static public int ID_Code = 5;%0A%0A    /** %0A     * Is the exception reliable for the handler ? %0A     * @param e The exception checked for handler reliability%0A     */%0A    public boolean isHandling(NonFunctionalException e);%0A%0A    /**%0A     * Provide a treatment for the handled exception(s) %0A     * @param e The exception to be handled%0A     */%0A    public void handle(NonFunctionalException e);%0A%7D%0A%0A

Add Handler.java (interface of all handlers)