fr.ifremer.isisfish.simulator.launcher
Class InProcessSimulatorLauncher

java.lang.Object
  extended by fr.ifremer.isisfish.simulator.launcher.InProcessSimulatorLauncher
All Implemented Interfaces:
SimulatorLauncher

public class InProcessSimulatorLauncher
extends Object
implements SimulatorLauncher

Fait une simulation dans la meme jvm.

Version:
$Revision: 2938 $ Last update : $Date: 2010-01-22 16:42:09 +0100 (ven., 22 janv. 2010) $ By : $Author: chatellier $
Author:
poussin

Nested Class Summary
protected  class InProcessSimulatorLauncher.ObjectCreationListener
           
protected  class InProcessSimulatorLauncher.SimThread
           
 
Field Summary
protected  SimulationStorage simulation
           
 
Constructor Summary
InProcessSimulatorLauncher()
           
 
Method Summary
protected  AspectClassLoader changeClassLoader(Thread thread, File directory)
          Modifie le classloader du thread passé en paramètre.
 int getCheckProgressionInterval()
          Retourne l'intervalle de temps a utiliser entre deux verification de progresssion.
 SimulationStorage getSimulationStorage(SimulationService simulationService, SimulationControl control)
          Retourne le storage où est stockée la simulation.
protected  void initSimulationListener(SimulationContext context)
           
protected  SimulationStorage localSimulate(SimulationControl control, SimulationStorage simulation)
          fait la simulation en local dans un nouveau thread, cela permet pour chaque simulation d'avoir les bons scripts dans le classloader et non pas d'utiliser les scripts d'une autre simulation
protected  SimulationStorage localSimulateSameThread(SimulationControl control, SimulationStorage simulation)
          Cree le simulation context, creer le ClassLoader, met en place les AOP, met a jour des informations sur la simulation et lance la simulation en local
 int maxSimulationThread()
          Retourne le nombre maximal de thread de simulations simultanées supporté.
protected  void message(SimulationControl control, String message)
          Display message both in commons-logging and control text progress.
 void simulate(SimulationService simulationService, SimulationItem simulationItem)
          Execute une simulation.
 void simulationStopRequest(SimulationJob job)
          Called if a started simulation has been ask to stop.
 String toString()
           
 void updateControl(SimulationService simulationService, SimulationControl control)
          Met à jour la progression.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

simulation

protected SimulationStorage simulation
Constructor Detail

InProcessSimulatorLauncher

public InProcessSimulatorLauncher()
Method Detail

simulate

public void simulate(SimulationService simulationService,
                     SimulationItem simulationItem)
              throws RemoteException
Execute une simulation.

Specified by:
simulate in interface SimulatorLauncher
Parameters:
simulationService - le SimulationService qui a initie la simulation
simulationItem - l'item contenant toutes les infos nécessaire au lancement de la simulation IMPORTANT Quoi qu'il arrive
Throws:
RemoteException - Si pour l'execution de la simulation on utilise des resources distantes (serveurs) et que ceux si non pas pu etre contacte. Dans ce cas la simulation n'a pas ete faite et cette exception est levee.

getSimulationStorage

public SimulationStorage getSimulationStorage(SimulationService simulationService,
                                              SimulationControl control)
                                       throws RemoteException
Description copied from interface: SimulatorLauncher
Retourne le storage où est stockée la simulation.

Specified by:
getSimulationStorage in interface SimulatorLauncher
Parameters:
simulationService - le SimulationService qui a initie la simulation
control - le control de la simulation
Returns:
le storage contenant la simulation qui vient d'etre faite ou null en fait au lieu de faire une seul simulation, plusieurs ou ete faite par exemple tout un plan d'analyse. Cette classe est tout de meme responsable du stockage de chaque simulation dans des storages.
Throws:
RemoteException - Si pour l'execution de la simulation on utilise des resources distantes (serveurs) et que ceux si non pas pu etre contacte.

updateControl

public void updateControl(SimulationService simulationService,
                          SimulationControl control)
                   throws RemoteException
Description copied from interface: SimulatorLauncher
Met à jour la progression.

Specified by:
updateControl in interface SimulatorLauncher
Parameters:
simulationService - le SimulationService qui a initie la simulation
control - le control de la simulation
Throws:
RemoteException - Si pour l'execution de la simulation on utilise des resources distantes (serveurs) et que ceux si non pas pu etre contacte.

maxSimulationThread

public int maxSimulationThread()
Description copied from interface: SimulatorLauncher
Retourne le nombre maximal de thread de simulations simultanées supporté.

Specified by:
maxSimulationThread in interface SimulatorLauncher
Returns:
un nombre superieur a 0

getCheckProgressionInterval

public int getCheckProgressionInterval()
Description copied from interface: SimulatorLauncher
Retourne l'intervalle de temps a utiliser entre deux verification de progresssion.

Specified by:
getCheckProgressionInterval in interface SimulatorLauncher
Returns:
intervalle (en secondes);

toString

public String toString()
Overrides:
toString in class Object

message

protected void message(SimulationControl control,
                       String message)
Display message both in commons-logging and control text progress.

Parameters:
control - control
message - message to display

localSimulate

protected SimulationStorage localSimulate(SimulationControl control,
                                          SimulationStorage simulation)
fait la simulation en local dans un nouveau thread, cela permet pour chaque simulation d'avoir les bons scripts dans le classloader et non pas d'utiliser les scripts d'une autre simulation

Parameters:
control - le controleur de simulation, peut-etre null si on ne souhaite pas controler la simulation
simulation - la simulation a faire
Returns:
le storage après simulation en locale

changeClassLoader

protected AspectClassLoader changeClassLoader(Thread thread,
                                              File directory)
Modifie le classloader du thread passé en paramètre.

Sert pour les simulations pour qu'elles puissent trouver les script, rule et export

Parameters:
thread - le thread dont on souhaite modifier le classloader ou null
directory - le répertoire qui servira pour le classloader
Returns:
le classe loader modifié

localSimulateSameThread

protected SimulationStorage localSimulateSameThread(SimulationControl control,
                                                    SimulationStorage simulation)
Cree le simulation context, creer le ClassLoader, met en place les AOP, met a jour des informations sur la simulation et lance la simulation en local

Parameters:
control - le controleur de simulation, peut-etre null si on ne souhaite pas controler la simulation
simulation - la simulation a faire
Returns:
le storage après simulation en locale

initSimulationListener

protected void initSimulationListener(SimulationContext context)
                               throws Exception
Throws:
Exception

simulationStopRequest

public void simulationStopRequest(SimulationJob job)
Called if a started simulation has been ask to stop. Tell launcher to stop simulation if possible. Do nothing (no restriction on inprocess launcher).

Specified by:
simulationStopRequest in interface SimulatorLauncher
Parameters:
job - job to stop


Copyright © 1999-2010 CodeLutin. All Rights Reserved.