I want to understand why Project is given as a parameter to RunConfigurationBase constructor.
Because whenever a configuration is executed we can always get access to the project instance by using the ExecutionEnvironment instance.
Simply put, what is the difference between getProject() and environment.getProject()? Are they always guaranteed to be the same? If yes, then that means that configuration objects are instantiated separately for all projects just like a project component? If no, then when are they different and why?