Class InProcessSimulatorLauncher

java.lang.Object
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$ Last update : $Date$ By : $Author$
Author:
poussin
  • Field Details

  • Constructor Details

    • InProcessSimulatorLauncher

      public InProcessSimulatorLauncher()
  • Method Details

    • simulate

      public void simulate(SimulationService simulationService, SimulationItem simulationItem) throws RemoteException
      Description copied from interface: SimulatorLauncher
      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 de simulation 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 AspectJUrlClassLoader changeClassLoader(Thread thread, File directory)
      Modifie le classloader du thread passé en paramètre.

      Sert pour les simulations pour qu'elles puissent trouver les scripts, 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 class 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