Class DSELaunch

java.lang.Object
de.uka.ipd.sdq.workflow.launchconfig.core.AbstractWorkflowBasedLaunchConfigurationDelegate<WorkflowConfigurationType,de.uka.ipd.sdq.workflow.BlackboardBasedWorkflow<de.uka.ipd.sdq.workflow.mdsd.blackboard.MDSDBlackboard>>
de.uka.ipd.sdq.workflow.mdsd.core.AbstractWorkflowBasedMDSDLaunchConfigurationDelegate<WorkflowConfigurationType>
org.palladiosimulator.analyzer.workflow.core.configurations.AbstractPCMLaunchConfigurationDelegate<DSEWorkflowConfiguration>
de.uka.ipd.sdq.dsexplore.launch.DSELaunch
All Implemented Interfaces:
org.eclipse.debug.core.model.ILaunchConfigurationDelegate

public class DSELaunch extends org.palladiosimulator.analyzer.workflow.core.configurations.AbstractPCMLaunchConfigurationDelegate<DSEWorkflowConfiguration>
Launches multiple simulation runs. TODO: Integrate in Workflow concept. Unify the Tabs for all PCM Solvers. Maybe use this common tab for all analyses, so that for reliability, SimCom and LQN, always only one config with once the model files is needed.
  • Field Summary

    Fields inherited from class de.uka.ipd.sdq.workflow.launchconfig.core.AbstractWorkflowBasedLaunchConfigurationDelegate

    DETAILED_LOG_PATTERN, SHORT_LOG_PATTERN, VERBOSE_LOGGING, WORKFLOW_ENGINE_DEBUG_LEVEL
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    protected de.uka.ipd.sdq.workflow.WorkflowExceptionHandler
    createExceptionHandler(boolean interactive)
     
    protected de.uka.ipd.sdq.workflow.BlackboardBasedWorkflow<de.uka.ipd.sdq.workflow.mdsd.blackboard.MDSDBlackboard>
    createWorkflow(DSEWorkflowConfiguration workflowConfiguration, org.eclipse.core.runtime.IProgressMonitor monitor, org.eclipse.debug.core.ILaunch launch)
     
    protected de.uka.ipd.sdq.workflow.jobs.IJob
    createWorkflowJob(DSEWorkflowConfiguration config, org.eclipse.debug.core.ILaunch launch)
     
    deriveConfiguration(org.eclipse.debug.core.ILaunchConfiguration configuration, String mode)
     
    org.eclipse.debug.core.ILaunchConfiguration
     
    org.eclipse.debug.core.ILaunch
     
    protected de.uka.ipd.sdq.workflow.WorkflowProcess
    getProcess(org.eclipse.debug.core.ILaunch launch)
    Get the Eclipse process used by the workflow engine.
    void
    launch(org.eclipse.debug.core.ILaunchConfiguration configuration, String mode, org.eclipse.debug.core.ILaunch launch, org.eclipse.core.runtime.IProgressMonitor monitor)
    Test for starting multiple simulations.
    void
    FIXME: This is just a workaround to fix the logging.
    protected List<de.uka.ipd.sdq.workflow.logging.console.LoggerAppenderStruct>
    setupLogging(org.apache.log4j.Level logLevel)
    Copied from AbstractWorkflowBasedLaunchConfigurationDelegate Setup logger for the workflow run.

    Methods inherited from class de.uka.ipd.sdq.workflow.mdsd.core.AbstractWorkflowBasedMDSDLaunchConfigurationDelegate

    createBlackboard

    Methods inherited from class de.uka.ipd.sdq.workflow.launchconfig.core.AbstractWorkflowBasedLaunchConfigurationDelegate

    configureLogging, getLogLevel, setupLogger

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface org.eclipse.debug.core.model.ILaunchConfigurationDelegate

    showCommandLine
  • Constructor Details

    • DSELaunch

      public DSELaunch()
  • Method Details

    • createWorkflow

      protected de.uka.ipd.sdq.workflow.BlackboardBasedWorkflow<de.uka.ipd.sdq.workflow.mdsd.blackboard.MDSDBlackboard> createWorkflow(DSEWorkflowConfiguration workflowConfiguration, org.eclipse.core.runtime.IProgressMonitor monitor, org.eclipse.debug.core.ILaunch launch) throws org.eclipse.core.runtime.CoreException
      Overrides:
      createWorkflow in class de.uka.ipd.sdq.workflow.launchconfig.core.AbstractWorkflowBasedLaunchConfigurationDelegate<DSEWorkflowConfiguration,de.uka.ipd.sdq.workflow.BlackboardBasedWorkflow<de.uka.ipd.sdq.workflow.mdsd.blackboard.MDSDBlackboard>>
      Throws:
      org.eclipse.core.runtime.CoreException
    • createExceptionHandler

      protected de.uka.ipd.sdq.workflow.WorkflowExceptionHandler createExceptionHandler(boolean interactive)
      Specified by:
      createExceptionHandler in class de.uka.ipd.sdq.workflow.launchconfig.core.AbstractWorkflowBasedLaunchConfigurationDelegate<DSEWorkflowConfiguration,de.uka.ipd.sdq.workflow.BlackboardBasedWorkflow<de.uka.ipd.sdq.workflow.mdsd.blackboard.MDSDBlackboard>>
    • launch

      public void launch(org.eclipse.debug.core.ILaunchConfiguration configuration, String mode, org.eclipse.debug.core.ILaunch launch, org.eclipse.core.runtime.IProgressMonitor monitor) throws org.eclipse.core.runtime.CoreException
      Test for starting multiple simulations.
      Specified by:
      launch in interface org.eclipse.debug.core.model.ILaunchConfigurationDelegate
      Overrides:
      launch in class de.uka.ipd.sdq.workflow.launchconfig.core.AbstractWorkflowBasedLaunchConfigurationDelegate<DSEWorkflowConfiguration,de.uka.ipd.sdq.workflow.BlackboardBasedWorkflow<de.uka.ipd.sdq.workflow.mdsd.blackboard.MDSDBlackboard>>
      Parameters:
      configuration -
      mode -
      launch -
      monitor -
      Throws:
      org.eclipse.core.runtime.CoreException
    • setupLogging

      protected List<de.uka.ipd.sdq.workflow.logging.console.LoggerAppenderStruct> setupLogging(org.apache.log4j.Level logLevel) throws org.eclipse.core.runtime.CoreException
      Copied from AbstractWorkflowBasedLaunchConfigurationDelegate Setup logger for the workflow run. May be overridden by clients to configure further logger for other namespaces than de.uka.ipd.sdq.workflow. Use protected method setupLogger to configure additional loggers
      Overrides:
      setupLogging in class de.uka.ipd.sdq.workflow.mdsd.core.AbstractWorkflowBasedMDSDLaunchConfigurationDelegate<DSEWorkflowConfiguration>
      Parameters:
      logLevel - The apache log4j log level requested by the user as log level
      Throws:
      org.eclipse.core.runtime.CoreException
    • createWorkflowJob

      protected de.uka.ipd.sdq.workflow.jobs.IJob createWorkflowJob(DSEWorkflowConfiguration config, org.eclipse.debug.core.ILaunch launch) throws org.eclipse.core.runtime.CoreException
      Specified by:
      createWorkflowJob in class de.uka.ipd.sdq.workflow.launchconfig.core.AbstractWorkflowBasedLaunchConfigurationDelegate<DSEWorkflowConfiguration,de.uka.ipd.sdq.workflow.BlackboardBasedWorkflow<de.uka.ipd.sdq.workflow.mdsd.blackboard.MDSDBlackboard>>
      Throws:
      org.eclipse.core.runtime.CoreException
    • deriveConfiguration

      protected DSEWorkflowConfiguration deriveConfiguration(org.eclipse.debug.core.ILaunchConfiguration configuration, String mode) throws org.eclipse.core.runtime.CoreException
      Specified by:
      deriveConfiguration in class de.uka.ipd.sdq.workflow.launchconfig.core.AbstractWorkflowBasedLaunchConfigurationDelegate<DSEWorkflowConfiguration,de.uka.ipd.sdq.workflow.BlackboardBasedWorkflow<de.uka.ipd.sdq.workflow.mdsd.blackboard.MDSDBlackboard>>
      Throws:
      org.eclipse.core.runtime.CoreException
    • resetLoggers

      public void resetLoggers() throws org.eclipse.core.runtime.CoreException
      FIXME: This is just a workaround to fix the logging. There is a problem when the workflows for the Analyses are started. Afterwards, the logging is broken. Thus, I reset it here. Problem: I do not know how much overhead this creates, maybe it is the cause for crashing eclipse after 1600 candidates with LQNS.
      Throws:
      org.eclipse.core.runtime.CoreException
    • getOriginalLaunch

      public org.eclipse.debug.core.ILaunch getOriginalLaunch()
    • getOriginalConfiguration

      public org.eclipse.debug.core.ILaunchConfiguration getOriginalConfiguration()
    • getProcess

      protected de.uka.ipd.sdq.workflow.WorkflowProcess getProcess(org.eclipse.debug.core.ILaunch launch)
      Get the Eclipse process used by the workflow engine. When called first, instatiate new process. Later return the same.
      Overrides:
      getProcess in class de.uka.ipd.sdq.workflow.launchconfig.core.AbstractWorkflowBasedLaunchConfigurationDelegate<DSEWorkflowConfiguration,de.uka.ipd.sdq.workflow.BlackboardBasedWorkflow<de.uka.ipd.sdq.workflow.mdsd.blackboard.MDSDBlackboard>>
      Parameters:
      launch - The ILaunch passed to this launch by Eclipse
      Returns:
      The process used to execute this launch