|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectfr.ifremer.isisfish.simulator.launcher.SimulationService
public class SimulationService
Cette classe est responsable de conservation de toutes les simulations faites
ou a faire. Pour ajouter une nouvelle simulation on appelle la methode
submit(java.lang.String, fr.ifremer.isisfish.simulator.SimulationParameter, fr.ifremer.isisfish.simulator.launcher.SimulatorLauncher, int).
Cette classe sert aussi de modele pour le moniteur de queue
Il existe une instance unique pour toute l'application
Lors de l'instanciation de la classe, l'ensemble des
SimulatorLauncher disponible est recherche dans la configuration
et un executor est cree pour chaque.
Si un SimulatorLauncher genere trop d'erreur (RemoteException)
Il est alors suspendu pour ne plus etre utilise pour les simulations.
| Nested Class Summary | |
|---|---|
static class |
SimulationService.PrepareSimulationJob
Permet de genere les sous simulations d'un plan d'analyse. |
| Field Summary | |
|---|---|
protected boolean |
autoLaunch
|
protected Map<SimulatorLauncher,SimulationExecutor> |
executors
Tous les types de SimulatorLauncher disponibles, et leur
executors associe |
protected freemarker.template.Configuration |
freemarkerConfiguration
Freemarker configuration used to get prescripts content. |
protected Set<String> |
idJobs
Contient les identifiants des simulations presentes dans jobs |
protected static SimulationService |
instance
|
protected Set<SimulationJob> |
jobDones
La liste des jobs termines |
protected Set<SimulationJob> |
jobs
La liste des jobs existant (queue + job demarre) |
protected Map<SimulatorLauncher,org.apache.commons.lang.mutable.MutableInt> |
launcherError
Le nombre d'erreur pour les SimulatorLauncher |
protected org.nuiton.util.ListenerSet<SimulationServiceListener> |
listeners
|
static int |
MAX_PLAN_SIMULATION
nombre maximal de simulation autoriser pour un plan |
protected PropertyChangeSupport |
propertyListeners
|
protected SimulationQueue |
queue
La queue contenant toutes les simulations a faire |
protected static String |
SENSITIVITY_PRE_SCRIPT
Freemarker pre script template. |
static String |
SIMULATION_LAUNCHER
|
protected ExecutorService |
subSimulationComputationExecutor
L'executor utilise pour creer toutes les sous simulations des plans independants |
| Constructor Summary | |
|---|---|
protected |
SimulationService()
Cree une instance et initialise les executors ainsi que le launcherError |
| Method Summary | |
|---|---|
void |
addPropertyChangeListener(PropertyChangeListener listener)
|
void |
addPropertyChangeListener(String propertyName,
PropertyChangeListener listener)
|
void |
addSimulationLauncher(SimulatorLauncher sl)
Permet d'ajouter un nouveau SimulatorLauncher. |
void |
addSimulationServiceListener(SimulationServiceListener l)
|
protected boolean |
cancel(SimulationJob job)
Supprime un job de la queue (annulation d'une simulation). |
void |
clearJobDone()
Nettoie la liste des jobs faits |
protected void |
compileAllFile(SimulationControl control,
File directory)
Compile les fichiers présent dans le répertoire passé en parametre, ce répertoire est hiérarchisé en: rules, exports, simulators et scripts. |
protected void |
convertAllFile(SimulationControl control,
File directory)
Convertit tous les fichiers du répertoire directory en UTF-8, pour eviter les erreurs d'encodage du la compilation sur un autre systeme ne supportant pas l'encodage courant. |
boolean |
exists(String id)
|
protected void |
fireStartEvent(SimulationJob job)
Ajoute le job au job en cours previent s'il n'etait pas deja present les listener SimulationServiceListener.simulationStart(fr.ifremer.isisfish.simulator.launcher.SimulationService, fr.ifremer.isisfish.simulator.launcher.SimulationJob). |
protected void |
fireStopEvent(SimulationJob job)
Supprime le job de la liste des jobs en cours et l'ajoute le job si besoin a la liste des jobs faits (s'il y a une erreur ou qu'il ne sagit pas d'une simulation lancer par un plan d'analyse). |
protected String |
generatePreScript(Scenario scenario)
Generate prescript to set factor values before simulation start. |
protected freemarker.template.Configuration |
getFreemarkerConfiguration()
Get freemarker configuration. |
Set<SimulationJob> |
getJobDones()
|
Set<SimulationJob> |
getJobs()
|
static SimulationService |
getService()
Retourne l'instance du SimulationService a utiliser |
Collection<SimulationExecutor> |
getSimulationExecutors()
|
List<SimulatorLauncher> |
getSimulationLaunchers()
|
protected Set<SimulatorLauncher> |
getSimulatorLaunchers()
Retourne la liste de tous les SimulatorLauncher disponible. |
boolean |
isAutoLaunch()
|
protected File |
prepareSimulationZipFile(SimulationControl control,
SimulationParameter param,
String xmlDesignPlan,
boolean compile)
Prepare les fichiers qui seront utilsé à la simulation: scripts rules exports simulators export de la database de la region analyseplan Le tout est zippé et le zip est retourné, il peut-être directement importé dans le SimulationStorage (en le renommant comme
il faut SimulationStorage.importAndRenameZip(File, String). |
void |
removePropertyChangeListener(PropertyChangeListener listener)
|
void |
removePropertyChangeListener(String propertyName,
PropertyChangeListener listener)
|
void |
removeSimulationServiceListener(SimulationServiceListener l)
|
protected void |
reportError(SimulatorLauncher launcher,
SimulationJob job)
Report une erreur pour un launcher, on resoumet le job en supprimant le launcher utilise |
void |
restart(SimulationJob job)
Restart a job. |
protected void |
resubmit(SimulationJob job)
Permet de resoumettre un job qui a ete pris par un thread mais qu'il ne peut pas traiter. |
void |
setAutoLaunch(boolean autoLaunch)
|
protected void |
submit(SimulationJob job)
|
void |
submit(String id,
SimulationParameter param,
SimulatorLauncher launcher,
int priority)
Permet d'ajouter une nouvelle simulation a la queue. |
void |
submit(String id,
SimulationParameter param,
SimulatorLauncher launcher,
int priority,
SensitivityCalculator sensitivitycalculator,
DesignPlan designPlan)
Permet d'ajouter une simulation avec des factors a prendre en compte. |
void |
submitForCheckOnly(SimulationJob job)
Resoumet une simulation qui a deja été démarrée, mais on ne faisant que du control de monitoring. |
protected void |
submitSubJob(SimulationJob job)
Permet de soumettre a la queue un job provenant d'un plan. |
protected void |
waitAutoLaunch()
Permet de mettre en attente les threads de simulation si l'utilisateur a suspendu la queue |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
public static final String SIMULATION_LAUNCHER
public static final int MAX_PLAN_SIMULATION
protected static SimulationService instance
protected freemarker.template.Configuration freemarkerConfiguration
protected static final String SENSITIVITY_PRE_SCRIPT
protected PropertyChangeSupport propertyListeners
protected org.nuiton.util.ListenerSet<SimulationServiceListener> listeners
protected boolean autoLaunch
protected ExecutorService subSimulationComputationExecutor
protected Map<SimulatorLauncher,SimulationExecutor> executors
SimulatorLauncher disponibles, et leur
executors associe
protected Map<SimulatorLauncher,org.apache.commons.lang.mutable.MutableInt> launcherError
protected SimulationQueue queue
protected Set<String> idJobs
jobs
protected Set<SimulationJob> jobs
protected Set<SimulationJob> jobDones
| Constructor Detail |
|---|
protected SimulationService()
| Method Detail |
|---|
public static SimulationService getService()
SimulationService a utiliser
public void addSimulationLauncher(SimulatorLauncher sl)
sl - le SimulatorLauncher a ajouterpublic List<SimulatorLauncher> getSimulationLaunchers()
public Collection<SimulationExecutor> getSimulationExecutors()
public Set<SimulationJob> getJobs()
public Set<SimulationJob> getJobDones()
protected Set<SimulatorLauncher> getSimulatorLaunchers()
SimulatorLauncher disponible.
SimulatorLauncherspublic void addSimulationServiceListener(SimulationServiceListener l)
public void removeSimulationServiceListener(SimulationServiceListener l)
public void addPropertyChangeListener(PropertyChangeListener listener)
public void addPropertyChangeListener(String propertyName,
PropertyChangeListener listener)
public void removePropertyChangeListener(PropertyChangeListener listener)
public void removePropertyChangeListener(String propertyName,
PropertyChangeListener listener)
protected void fireStartEvent(SimulationJob job)
SimulationServiceListener.simulationStart(fr.ifremer.isisfish.simulator.launcher.SimulationService, fr.ifremer.isisfish.simulator.launcher.SimulationJob).
job - protected void fireStopEvent(SimulationJob job)
SimulationServiceListener.simulationStop(fr.ifremer.isisfish.simulator.launcher.SimulationService, fr.ifremer.isisfish.simulator.launcher.SimulationJob).
job - public void clearJobDone()
public boolean isAutoLaunch()
public void setAutoLaunch(boolean autoLaunch)
autoLaunch - The autoLaunch to set.protected void waitAutoLaunch()
public void submit(String id,
SimulationParameter param,
SimulatorLauncher launcher,
int priority)
id - l'identifiant de la simulationparam - les parametres de la simulationlauncher - le launcher a utiliser pour lancer la simulationpriority - la priorite de la simulation
public void submit(String id,
SimulationParameter param,
SimulatorLauncher launcher,
int priority,
SensitivityCalculator sensitivitycalculator,
DesignPlan designPlan)
id - l'identifiant de la simulationparam - les parametres de la simulationlauncher - le launcher a utiliser pour lancer la simulationpriority - la priorite de la simulationsensitivitycalculator - l'implementation du calculateur de sensibilitedesignPlan - le design plan qui contient les facteursprotected freemarker.template.Configuration getFreemarkerConfiguration()
protected String generatePreScript(Scenario scenario)
throws IOException,
freemarker.template.TemplateException
scenario -
IOException - if pre script can't be made
freemarker.template.TemplateException - if pre script can't be madeprotected void submit(SimulationJob job)
protected void resubmit(SimulationJob job)
job - l'item a resoumettreprotected void submitSubJob(SimulationJob job)
job - public void submitForCheckOnly(SimulationJob job)
job - job to submitpublic void restart(SimulationJob job)
job - job to retstartprotected boolean cancel(SimulationJob job)
SimulationJob.stop()
job - le job a annuler
public boolean exists(String id)
protected void reportError(SimulatorLauncher launcher,
SimulationJob job)
launcher - le launcher posant problemejob - le job qui n'a pas reussi a se faire
protected File prepareSimulationZipFile(SimulationControl control,
SimulationParameter param,
String xmlDesignPlan,
boolean compile)
throws SimulationException
Le tout est zippé et le zip est retourné, il peut-être directement
importé dans le SimulationStorage (en le renommant comme
il faut SimulationStorage.importAndRenameZip(File, String).
Ce zip est automatiquement supprimé à la fin de l'application.
control - le controleurparam - les parametre de la simulationxmlDesignPlan - contenu xml des design plancompile - si vrai la version compile des fichiers Java est aussi
mise dans le fichier zip. Cela peut servir pour les simulations locales
pour ne pas recompiler pour chaque simulation avec plan d'analyse
SimulationException - pour tout problème rencontré (IO,Topia...)
protected void convertAllFile(SimulationControl control,
File directory)
control - le controleurdirectory - le répertoire a convertir
protected void compileAllFile(SimulationControl control,
File directory)
Il permet donc de compiler facilement tous les fichiers pour une simulation
control - le controleurdirectory - le répertoire où compiler
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||