code: private static Plan createPlanFromProgram(Program program, String[] options) throws ProgramInvocationException {
  		try {
  			return program.getPlan(options);
  		} catch (Throwable t) {
  			throw new ProgramInvocationException("Error while calling the program: " + t.getMessage(), t);
  		}
  	}
docs: Takes the jar described by the given file and invokes its pact assembler class to
  assemble a plan. The assembler class name is either passed through a parameter,
  or it is read from the manifest of the jar. The assembler is handed the given options
  for its assembly.
  
  @param program The program to create the plan for.
  @param options
  The options for the assembler.
  @return The plan created by the program.
  @throws ProgramInvocationException
  Thrown, if an error occurred in the user-provided pact assembler.