code: public boolean performFinish() {
  		final String containerName = page.getContainerName();
  		final int    mep = page.getSelectedMep();
  		final TransportEnum inboundTransport = page.getSelectedInboundTransport();
  		final TransportEnum outboundTransport = page.getSelectedOutboundTransport();
  		final TransformerEnum transformerType = page.getTransformerType(); 
  
  		IPreferenceStore prefs = Activator.getDefault().getPreferenceStore();
  		final String mavenHome = prefs.getString(P_MAVEN_HOME);
  		final int mavenEclipseGoalType = MavenEclipseGoalEnum.ECLIPSE_ECLIPSE.ordinal();
  		
  		final String serviceName = page.getServiceName();
  		IRunnableWithProgress op = new IRunnableWithProgress() {
  			public void run(IProgressMonitor monitor) throws InvocationTargetException {
  				try {
  					doFinish(mavenHome, mavenEclipseGoalType, containerName, mep, inboundTransport, outboundTransport, transformerType, serviceName, monitor);
  				} catch (CoreException e) {
  					e.printStackTrace();
  					throw new InvocationTargetException(e);
  				} catch (Throwable e) {
  					e.printStackTrace();
  					if (e instanceof RuntimeException) {
  						throw (RuntimeException)e;
  					} else {
  						throw new InvocationTargetException(e);
  					}
  				} finally {
  					monitor.done();
  				}
  			}
  		};
  		try {
  			getContainer().run(true, false, op);
  		} catch (InterruptedException e) {
  			return false;
  		} catch (InvocationTargetException e) {
  			Throwable realException = e.getTargetException();
  			MessageDialog.openError(getShell(), "Error", realException.getMessage());
  			return false;
  		}
  		return true;
  	}
docs: This method is called when 'Finish' button is pressed in
  the wizard. We will create an operation and run it
  using wizard as execution context.