else if ( renderOption != null && format.equalsIgnoreCase( "fo" ) && ( ( FORenderOption )renderOption ).getTailoredForFOP( ) ) { format = "fop"; }
	public void run() throws EngineException	{		if( !validateParameters() )		{			throw new EngineException( MessageConstants.INVALID_PARAMETER_EXCEPTION ); //$NON-NLS-1$		}				//create the emitter services object that is needed in the emitters.		EngineEmitterServices services = new EngineEmitterServices(this);			services.setRenderOption(renderOption);				EngineConfig config = engine.getConfig();		if ( config != null )			services.setEmitterConfig(engine.getConfig().getEmitterConfigs());		services.setRenderContext(renderContext);		services.setReportRunnable(runnable);						//register default parameters		if( runValues != null)			executionContext.getParams().putAll(runValues); //$NON-NLS-1$				//setup runtime configurations		//user defined configs are overload using system properties.		executionContext.getConfigs().putAll(runnable.getTestConfig());		executionContext.getConfigs().putAll(System.getProperties());				// Set up rendering environment and check for supported format		executionContext.setRenderOption(renderOption);		String format = renderOption.getOutputFormat();		if (format == null || format.length() == 0) // $NON-NLS-1		{			renderOption.setOutputFormat( "html" );	// $NON-NLS-1			format = "html"; // $NON-NLS-1		}				if (!ExtensionManager.getInstance().getEmitterExtensions().containsKey(format))		{			log.log( Level.SEVERE, MessageConstants.FORMAT_NOT_SUPPORTED_EXCEPTION, format);			throw new EngineException(MessageConstants.FORMAT_NOT_SUPPORTED_EXCEPTION, format);		}		IReportEmitter emitter = ExtensionManager.getInstance().createEmitter(format);		if (emitter == null)		{			log.log( Level.SEVERE, "Report engine can not create {0} emitter.", format);	// $NON-NLS-1$			throw new EngineException(MessageConstants.CANNOT_CREATE_EMITTER_EXCEPTION);					}		// emitter is not null		emitter.initialize(services);		ReportExecutor executor = new ReportExecutor(executionContext, emitter);		try		{			executor.execute(((ReportRunnable)runnable).getReport(), inputValues);		}		catch (Exception ex)		{			log.log(Level.SEVERE, "An error happened while running the report. Cause:", ex); //$NON-NLS-1$		}		catch (OutOfMemoryError err)		{			log.log(Level.SEVERE, "An OutOfMemory error happened while running the report."); //$NON-NLS-1$			throw err;		}	}