code: public Environment setUp( AbstractBuild build, Launcher launcher, BuildListener listener ) throws IOException, InterruptedException {
          if (build instanceof Build)
              return setUp((Build)build,launcher,listener);
          else
              throw new AssertionError("The plugin '" + this.getClass().getName() + "' still uses " +
                      "deprecated setUp(Build,Launcher,BuildListener) method. " +
                      "Update the plugin to use setUp(AbstractBuild, Launcher, BuildListener) instead.");
      }
docs: Runs before the {@link Builder} runs (but after the checkout has occurred), and performs a set up.
  
  @param build
  The build in progress for which an {@link Environment} object is created.
  Never null.
  @param launcher
  This launcher can be used to launch processes for this build.
  If the build runs remotely, launcher will also run a job on that remote machine.
  Never null.
  @param listener
  Can be used to send any message.
  @return
  non-null if the build can continue, null if there was an error
  and the build needs to be aborted.
  @throws IOException
  terminates the build abnormally. Hudson will handle the exception
  and reports a nice error message.
  @since 1.150