code: public static StreamExecutionEnvironment getExecutionEnvironment() {
  		if (contextEnvironmentFactory != null) {
  			return contextEnvironmentFactory.createExecutionEnvironment();
  		}
  
  		// because the streaming project depends on "flink-clients" (and not the other way around)
  		// we currently need to intercept the data set environment and create a dependent stream env.
  		// this should be fixed once we rework the project dependencies
  
  		ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment();
  		if (env instanceof ContextEnvironment) {
  			return new StreamContextEnvironment((ContextEnvironment) env);
  		} else if (env instanceof OptimizerPlanEnvironment || env instanceof PreviewPlanEnvironment) {
  			return new StreamPlanEnvironment(env);
  		} else {
  			return createLocalEnvironment();
  		}
  	}
docs: Creates an execution environment that represents the context in which the
  program is currently executed. If the program is invoked standalone, this
  method returns a local execution environment, as returned by
  {@link #createLocalEnvironment()}.
  
  @return The execution environment of the context in which the program is
  executed.