KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > objectweb > util > launcher > ModeThread


1 /*====================================================================
2
3 ObjectWeb Util Launcher Package.
4 Copyright (C) 2004 INRIA & USTL - LIFL - GOAL
5 Contact: openccm@objectweb.org
6
7 This library is free software; you can redistribute it and/or
8 modify it under the terms of the GNU Lesser General Public
9 License as published by the Free Software Foundation; either
10 version 2.1 of the License, or any later version.
11
12 This library is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 Lesser General Public License for more details.
16
17 You should have received a copy of the GNU Lesser General Public
18 License along with this library; if not, write to the Free Software
19 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
20 USA
21
22 Initial developer(s): Romain Rouvoy.
23 Contributor(s): .
24
25 --------------------------------------------------------------------
26 $Id: ModeThread.java,v 1.1 2004/05/19 15:58:29 rouvoy Exp $
27 ====================================================================*/

28
29 package org.objectweb.util.launcher ;
30
31 import org.objectweb.util.trace.TraceSystem;
32
33 /**
34  * Defines a mode of execution.
35  *
36  * <p>
37  * This mode of execution is a sequential mode which start the
38  * described application in a different thread than the lancher one.
39  * The launcher waits for Thread terminaison before exiting.
40  * </p>
41  *
42  * @author <a HREF="mailto:Romain.Rouvoy@lifl.fr">Romain Rouvoy</a>
43  * @version 0.1
44  */

45 public class ModeThread
46      extends Thread JavaDoc
47   implements Mode
48 {
49     /** The CommandJava to run */
50     protected CommandJava command_ ;
51
52     /**
53      * Internal treatment to apply.
54      */

55     public void run() {
56         command_.execute();
57     }
58
59     /**
60      * Execute the command.
61      *
62      * @param cmd - the command to execute.
63      */

64     public void execute(CommandJava cmd) {
65         this.command_ = cmd ;
66         this.setName(cmd.getName());
67         TraceSystem.get("launcher").debug("Starting new Thread "+this.getName());
68         this.start();
69         try {
70             this.join();
71             TraceSystem.get("launcher").debug("Thread "+this.getName()+" terminated.");
72         } catch(java.lang.InterruptedException JavaDoc ex) {
73             TraceSystem.get("launcher").error("Exception raised: "+ex);
74             throw new LauncherException(ex);
75         }
76     }
77 }
78
Popular Tags