You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ro...@apache.org on 2013/09/24 14:26:05 UTC

svn commit: r1525867 - in /sling/branches/tooling-ide-vlt/tooling/ide/eclipse-m2e-ui/src/org/apache/sling/ide/eclipse: m2e/ ui/wizards/np/

Author: rombert
Date: Tue Sep 24 12:26:05 2013
New Revision: 1525867

URL: http://svn.apache.org/r1525867
Log:
SLING-3102 - Inconsistent behaviour when loading archetypes in new Sling
bundle project wizard

Rework error handling in the project creation wizards and pages.

Modified:
    sling/branches/tooling-ide-vlt/tooling/ide/eclipse-m2e-ui/src/org/apache/sling/ide/eclipse/m2e/EmbeddedArchetypeInstaller.java
    sling/branches/tooling-ide-vlt/tooling/ide/eclipse-m2e-ui/src/org/apache/sling/ide/eclipse/ui/wizards/np/AbstractNewSlingApplicationWizard.java
    sling/branches/tooling-ide-vlt/tooling/ide/eclipse-m2e-ui/src/org/apache/sling/ide/eclipse/ui/wizards/np/ChooseArchetypeWizardPage.java
    sling/branches/tooling-ide-vlt/tooling/ide/eclipse-m2e-ui/src/org/apache/sling/ide/eclipse/ui/wizards/np/NewSlingBundleWizard.java
    sling/branches/tooling-ide-vlt/tooling/ide/eclipse-m2e-ui/src/org/apache/sling/ide/eclipse/ui/wizards/np/SetupServerWizardPage.java

Modified: sling/branches/tooling-ide-vlt/tooling/ide/eclipse-m2e-ui/src/org/apache/sling/ide/eclipse/m2e/EmbeddedArchetypeInstaller.java
URL: http://svn.apache.org/viewvc/sling/branches/tooling-ide-vlt/tooling/ide/eclipse-m2e-ui/src/org/apache/sling/ide/eclipse/m2e/EmbeddedArchetypeInstaller.java?rev=1525867&r1=1525866&r2=1525867&view=diff
==============================================================================
--- sling/branches/tooling-ide-vlt/tooling/ide/eclipse-m2e-ui/src/org/apache/sling/ide/eclipse/m2e/EmbeddedArchetypeInstaller.java (original)
+++ sling/branches/tooling-ide-vlt/tooling/ide/eclipse-m2e-ui/src/org/apache/sling/ide/eclipse/m2e/EmbeddedArchetypeInstaller.java Tue Sep 24 12:26:05 2013
@@ -44,7 +44,11 @@ import org.apache.maven.execution.MavenE
 import org.apache.maven.execution.MavenExecutionResult;
 import org.apache.maven.execution.MavenSession;
 import org.apache.maven.plugin.LegacySupport;
+import org.apache.sling.ide.eclipse.m2e.internal.Activator;
 import org.codehaus.plexus.PlexusContainer;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
 import org.eclipse.m2e.core.MavenPlugin;
 import org.eclipse.m2e.core.embedder.IMaven;
 import org.eclipse.m2e.core.internal.MavenPluginActivator;
@@ -85,62 +89,63 @@ public class EmbeddedArchetypeInstaller 
 		origins.put(fileExtension, new FileInputStream(origin));
 	}
 	
-	public void installArchetype() {
-		IMaven maven = MavenPlugin.getMaven();
-		try{
-			// first get the plexus container
-		    PlexusContainer container = ((MavenImpl) MavenPlugin.getMaven()).getPlexusContainer();
-		    
-		    // then get the DefaultMaven
-		    DefaultMaven mvn = (DefaultMaven) container.lookup(Maven.class);
-
-		    // now create a RepositorySystemSession
-		    MavenExecutionRequest request = new DefaultMavenExecutionRequest();
-		    request.setLocalRepository(maven.getLocalRepository());
-		    RepositorySystemSession repositorySession = mvn.newRepositorySession(request);
-		    
-		    // set the MavenSession on the LegacySupport
-	        MavenExecutionResult result = new DefaultMavenExecutionResult();
-			MavenSession session = new MavenSession( container, repositorySession, request, result );
-			LegacySupport legacy = container.lookup(LegacySupport.class);
-			legacy.setSession(session);
-		    
-			// then lookup the DefaultArtifactInstaller
-		    DefaultArtifactInstaller dai = (DefaultArtifactInstaller) container.lookup(ArtifactInstaller.class);
-
-		    final Set<Entry<String, InputStream>> entries = origins.entrySet();
-		    for (Iterator<Entry<String, InputStream>> it = entries.iterator(); it.hasNext();) {
-				final Entry<String, InputStream> entry = it.next();
-				final String fileExtension = entry.getKey();
-				final InputStream in = entry.getValue();
-				File tmpFile = File.createTempFile("slingClipseTmp", fileExtension);
-				FileOutputStream fos = new FileOutputStream(tmpFile);
-				copyStream(in, fos);
-				fos.close();
-				in.close();
-				Artifact jarArtifact = new DefaultArtifact(
-						groupId, 
-						artifactId, 
-						version,
-						"", fileExtension, "", 
-						new DefaultArtifactHandler());
-				dai.install(tmpFile, jarArtifact, maven.getLocalRepository());
-				tmpFile.delete();
-			}
-
-			Archetype archetype = new Archetype();
-			archetype.setGroupId(groupId);			            
-			archetype.setArtifactId(artifactId);
-			archetype.setVersion(version);
-			org.apache.maven.archetype.Archetype archetyper = MavenPluginActivator.getDefault().getArchetype();
-			archetyper.updateLocalCatalog(archetype);
+    public void installArchetype() throws CoreException {
+        try {
+            IMaven maven = MavenPlugin.getMaven();
+            // first get the plexus container
+            PlexusContainer container = ((MavenImpl) MavenPlugin.getMaven()).getPlexusContainer();
+
+            // then get the DefaultMaven
+            DefaultMaven mvn = (DefaultMaven) container.lookup(Maven.class);
+
+            // now create a RepositorySystemSession
+            MavenExecutionRequest request = new DefaultMavenExecutionRequest();
+            request.setLocalRepository(maven.getLocalRepository());
+            RepositorySystemSession repositorySession = mvn.newRepositorySession(request);
+
+            // set the MavenSession on the LegacySupport
+            MavenExecutionResult result = new DefaultMavenExecutionResult();
+            MavenSession session = new MavenSession(container, repositorySession, request, result);
+            LegacySupport legacy = container.lookup(LegacySupport.class);
+            legacy.setSession(session);
+
+            // then lookup the DefaultArtifactInstaller
+            DefaultArtifactInstaller dai = (DefaultArtifactInstaller) container.lookup(ArtifactInstaller.class);
+
+            final Set<Entry<String, InputStream>> entries = origins.entrySet();
+            for (Iterator<Entry<String, InputStream>> it = entries.iterator(); it.hasNext();) {
+                final Entry<String, InputStream> entry = it.next();
+                final String fileExtension = entry.getKey();
+                final InputStream in = entry.getValue();
+                File tmpFile = File.createTempFile("slingClipseTmp", fileExtension);
+                FileOutputStream fos = new FileOutputStream(tmpFile);
+                copyStream(in, fos);
+                // TODO - close in case of exceptions
+                fos.close();
+                in.close();
+                Artifact jarArtifact = new DefaultArtifact(groupId, artifactId, version, "", fileExtension, "",
+                        new DefaultArtifactHandler());
+                dai.install(tmpFile, jarArtifact, maven.getLocalRepository());
+                tmpFile.delete();
+            }
+
+            Archetype archetype = new Archetype();
+            archetype.setGroupId(groupId);
+            archetype.setArtifactId(artifactId);
+            archetype.setVersion(version);
+            org.apache.maven.archetype.Archetype archetyper = MavenPluginActivator.getDefault().getArchetype();
+            archetyper.updateLocalCatalog(archetype);
+        } catch (CoreException e) {
+            throw e;
+        } catch (RuntimeException e) {
+            throw e;
+        } catch (Exception e) {
+            throw new CoreException(new Status(IStatus.ERROR, Activator.PLUGIN_ID, e.getMessage(), e));
+        }
 
 //			ArchetypeCatalog defaultLocalCatalog = archetyper.getDefaultLocalCatalog();
 //			defaultLocalCatalog.addArchetype(archetype);
 //			manager.readCatalogs();
-		} catch(Exception e) {
-			e.printStackTrace();
-		}
 
 //		try {
 //			ArtifactRepository localRepo = maven.getLocalRepository();
@@ -170,6 +175,7 @@ public class EmbeddedArchetypeInstaller 
 
 	}
 
+    // TODO - replace with commons-io
 	private void copyStream(InputStream in, OutputStream os) throws IOException {
 		final byte[] bytes = new byte[4*1024];
 		while (true) {

Modified: sling/branches/tooling-ide-vlt/tooling/ide/eclipse-m2e-ui/src/org/apache/sling/ide/eclipse/ui/wizards/np/AbstractNewSlingApplicationWizard.java
URL: http://svn.apache.org/viewvc/sling/branches/tooling-ide-vlt/tooling/ide/eclipse-m2e-ui/src/org/apache/sling/ide/eclipse/ui/wizards/np/AbstractNewSlingApplicationWizard.java?rev=1525867&r1=1525866&r2=1525867&view=diff
==============================================================================
--- sling/branches/tooling-ide-vlt/tooling/ide/eclipse-m2e-ui/src/org/apache/sling/ide/eclipse/ui/wizards/np/AbstractNewSlingApplicationWizard.java (original)
+++ sling/branches/tooling-ide-vlt/tooling/ide/eclipse-m2e-ui/src/org/apache/sling/ide/eclipse/ui/wizards/np/AbstractNewSlingApplicationWizard.java Tue Sep 24 12:26:05 2013
@@ -25,23 +25,27 @@ import java.util.Properties;
 import org.apache.maven.archetype.catalog.Archetype;
 import org.apache.maven.model.Model;
 import org.apache.sling.ide.eclipse.core.ConfigurationHelper;
+import org.apache.sling.ide.eclipse.m2e.internal.Activator;
 import org.eclipse.core.resources.IFile;
 import org.eclipse.core.resources.IProject;
 import org.eclipse.core.resources.IncrementalProjectBuilder;
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
 import org.eclipse.debug.core.ILaunchManager;
+import org.eclipse.jface.dialogs.IMessageProvider;
+import org.eclipse.jface.dialogs.MessageDialog;
 import org.eclipse.jface.operation.IRunnableWithProgress;
 import org.eclipse.jface.resource.ImageDescriptor;
 import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.wizard.IWizardPage;
 import org.eclipse.jface.wizard.Wizard;
+import org.eclipse.jface.wizard.WizardPage;
 import org.eclipse.m2e.core.MavenPlugin;
 import org.eclipse.m2e.core.project.MavenUpdateRequest;
 import org.eclipse.m2e.core.project.ProjectImportConfiguration;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.MessageBox;
 import org.eclipse.ui.INewWizard;
 import org.eclipse.ui.IWorkbench;
 import org.eclipse.wst.server.core.IModule;
@@ -83,6 +87,40 @@ public abstract class AbstractNewSlingAp
 		addPage(setupServerWizardPage);
 	}
 	
+    /**
+     * 
+     * @return the current wizard page, possibly null
+     */
+    protected WizardPage getCurrentWizardPage() {
+        IWizardPage currentPage = getContainer().getCurrentPage();
+        if (currentPage instanceof WizardPage) {
+            return (WizardPage) currentPage;
+        }
+
+        return null;
+    }
+
+    protected void reportError(CoreException e) {
+        WizardPage currentPage = getCurrentWizardPage();
+        if (currentPage != null) {
+            currentPage.setMessage(e.getMessage(), IMessageProvider.ERROR);
+        } else {
+            MessageDialog.openError(getShell(), "Unexpected error", e.getMessage());
+        }
+
+        Activator.getDefault().getLog().log(e.getStatus());
+    }
+
+    protected void reportError(Throwable t) {
+        if ( t instanceof CoreException ) {
+            reportError((CoreException) t);
+            return;
+        }
+        
+        IStatus status = new Status(IStatus.ERROR, Activator.PLUGIN_ID, t.getMessage(), t);
+        reportError(new CoreException(status));
+    }
+
 	public ChooseArchetypeWizardPage getChooseArchetypePage() {
 		return chooseArchetypePage;
 	}
@@ -102,48 +140,18 @@ public abstract class AbstractNewSlingAp
 					try {
 						performFinish(monitor);
 					} catch (Exception e) {
-						// TODO proper logging
-						e.printStackTrace();
-						MessageBox messageBox = new MessageBox(Display.getDefault().getActiveShell(), 
-			                    SWT.OK | SWT.ICON_ERROR);
-			            messageBox.setText("Creating application failed");
-			            StringBuffer sb = new StringBuffer();
-			            Throwable t = e;
-			            while(t!=null) {
-			            	if (sb.length()!=0) {
-			            		sb.append(System.getProperty("line.separator"));
-			            	}
-			            	sb.append(t.getMessage());
-			            	t = t.getCause();
-			            }
-			            messageBox.setMessage(sb.toString());
-			            messageBox.open();
+                        throw new InvocationTargetException(e);
 					}
 				}
 				
 			});
 			return true;
         } catch (InterruptedException e) {
-        	// that's fine, the user interrupted - dont complain
+            Thread.currentThread().interrupt();
         	return false;
 		} catch (InvocationTargetException e) {
-			// TODO proper logging
-			e.printStackTrace();
-			MessageBox messageBox = new MessageBox(Display.getDefault().getActiveShell(), 
-                    SWT.OK | SWT.ICON_ERROR);
-            messageBox.setText("Creating application failed");
-            StringBuffer sb = new StringBuffer();
-            Throwable t = e;
-            while(t!=null) {
-            	if (sb.length()!=0) {
-            		sb.append(System.getProperty("line.separator"));
-            	}
-            	sb.append(t.getMessage());
-            	t = t.getCause();
-            }
-            messageBox.setMessage(sb.toString());
-            messageBox.open();
-			return false;
+            reportError(e);
+            return false;
 		}
 	}
         

Modified: sling/branches/tooling-ide-vlt/tooling/ide/eclipse-m2e-ui/src/org/apache/sling/ide/eclipse/ui/wizards/np/ChooseArchetypeWizardPage.java
URL: http://svn.apache.org/viewvc/sling/branches/tooling-ide-vlt/tooling/ide/eclipse-m2e-ui/src/org/apache/sling/ide/eclipse/ui/wizards/np/ChooseArchetypeWizardPage.java?rev=1525867&r1=1525866&r2=1525867&view=diff
==============================================================================
--- sling/branches/tooling-ide-vlt/tooling/ide/eclipse-m2e-ui/src/org/apache/sling/ide/eclipse/ui/wizards/np/ChooseArchetypeWizardPage.java (original)
+++ sling/branches/tooling-ide-vlt/tooling/ide/eclipse-m2e-ui/src/org/apache/sling/ide/eclipse/ui/wizards/np/ChooseArchetypeWizardPage.java Tue Sep 24 12:26:05 2013
@@ -20,19 +20,16 @@ import java.lang.reflect.InvocationTarge
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.HashMap;
-import java.util.Iterator;
 import java.util.Map;
 import java.util.Set;
 
 import org.apache.maven.archetype.catalog.Archetype;
-import org.apache.sling.ide.eclipse.m2e.internal.Activator;
+import org.apache.maven.archetype.catalog.ArchetypeCatalog;
 import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.debug.internal.ui.DebugUIPlugin;
 import org.eclipse.jface.operation.IRunnableWithProgress;
 import org.eclipse.jface.wizard.WizardPage;
 import org.eclipse.m2e.core.internal.MavenPluginActivator;
@@ -54,8 +51,6 @@ import org.eclipse.swt.widgets.Directory
 import org.eclipse.swt.widgets.Display;
 import org.eclipse.swt.widgets.Label;
 import org.eclipse.swt.widgets.List;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.progress.IProgressService;
 
 @SuppressWarnings("restriction")
 public class ChooseArchetypeWizardPage extends WizardPage {
@@ -66,16 +61,19 @@ public class ChooseArchetypeWizardPage e
 	private Button useDefaultWorkspaceLocationButton;
 	private Label locationLabel;
 	private Combo locationCombo;
-	private final AbstractNewSlingApplicationWizard parent;
 
 	public ChooseArchetypeWizardPage(AbstractNewSlingApplicationWizard parent) {
 		super("chooseArchetypePage");
-		this.parent = parent;
 		setTitle("Choose Project Location and Archetype");
 		setDescription("This step defines the project location and archetype");
 		setImageDescriptor(parent.getLogo());
 	}
 
+    @Override
+    public AbstractNewSlingApplicationWizard getWizard() {
+        return (AbstractNewSlingApplicationWizard) super.getWizard();
+    }
+
 	public void createControl(Composite parent) {
 		Composite container = new Composite(parent, SWT.NULL);
 		GridLayout layout = new GridLayout();
@@ -159,7 +157,6 @@ public class ChooseArchetypeWizardPage e
 			}
 		});
 		
-		initialize();
 		setPageComplete(false);
 		setControl(container);
 	}
@@ -174,12 +171,25 @@ public class ChooseArchetypeWizardPage e
 		return a;
 	}
 	
+    /*
+     * (non-Javadoc)
+     * 
+     * @see org.eclipse.jface.dialogs.DialogPage#setVisible(boolean)
+     */
+    @Override
+    public void setVisible(boolean visible) {
+        super.setVisible(visible);
+        if (visible && knownArchetypesList.getItemCount() == 0) {
+            // initialize as late as possible to take advantage of the error reporting
+            // and progress from the parent wizard
+            initialize();
+        }
+    }
+
 	private void initialize() {
 		knownArchetypesList.add(LOADING_PLEASE_WAIT);
-		IWorkbench workbench = DebugUIPlugin.getDefault().getWorkbench();
-		IProgressService progressService = workbench.getProgressService();
 		try {
-			progressService.run(true, false, new IRunnableWithProgress() {
+            getContainer().run(true, false, new IRunnableWithProgress() {
 					
 				@Override
 				public void run(IProgressMonitor monitor) throws InvocationTargetException,
@@ -189,42 +199,46 @@ public class ChooseArchetypeWizardPage e
 				    monitor.worked(1);
 					
 				    // optionally allow the parent to install any archetypes
-				    parent.installArchetypes();
+                    getWizard().installArchetypes();
 				    
 				    Collection<ArchetypeCatalogFactory> archetypeCatalogs = manager.getArchetypeCatalogs();
 				    monitor.worked(2);
 				    ArrayList<Archetype> list = new ArrayList<Archetype>();
-				    for(ArchetypeCatalogFactory catalog : archetypeCatalogs) {
+                    for (ArchetypeCatalogFactory catalogFactory : archetypeCatalogs) {
 				        try {
-						  @SuppressWarnings("unchecked")
-						  java.util.List<Archetype> arcs = catalog.getArchetypeCatalog().getArchetypes();
+                            ArchetypeCatalog catalog = catalogFactory.getArchetypeCatalog();
+                            @SuppressWarnings("unchecked")
+                            java.util.List<Archetype> arcs = catalog.getArchetypes();
+                            for (Archetype a : arcs) {
+                                if (a.getVersion().endsWith("SNAPSHOT")) {
+                                    System.out.println("got SNAPSHOT archetype " + a);
+                                }
+                            }
+
 				          if(arcs != null) {
 				            list.addAll(arcs);
 				          }
-				        } catch(Exception ce) {
-				        	ce.printStackTrace();
+                        } catch (CoreException ce) {
+                            throw new InvocationTargetException(ce);
 				        }
 				      }
 				    monitor.worked(1);
-				    for (Iterator<Archetype> it = list
-							.iterator(); it.hasNext();) {
-						Archetype archetype2 = it.next();
-						if (parent.acceptsArchetype(archetype2)) {
-							String key = keyFor(archetype2);
-							archetypesMap.put(key, archetype2);
-						}
-						
-					}
+                    for (Archetype archetype2 : list) {
+                        if (getWizard().acceptsArchetype(archetype2)) {
+                            String key = keyFor(archetype2);
+                            System.out.println("Got archetype match for archetype " + archetype2 + ", key " + key);
+                            archetypesMap.put(key, archetype2);
+                        }
+                    }
+
 				    monitor.worked(1);
 			        Display.getDefault().asyncExec(new Runnable() {
 			            public void run() {
 			            	Set<String> keys = archetypesMap.keySet();
 			            	knownArchetypesList.removeAll();
-			            	for (Iterator<String> it = keys.iterator(); it
-									.hasNext();) {
-								String aKey = it.next();
-								knownArchetypesList.add(aKey);
-							}
+                            for (String aKey : keys) {
+                                knownArchetypesList.add(aKey);
+                            }
 			            	knownArchetypesList.pack();
 			            }
 			          });
@@ -233,9 +247,7 @@ public class ChooseArchetypeWizardPage e
 				}
 			});
 		} catch (InvocationTargetException e) {
-		    Throwable targetException = e.getTargetException();
-            setMessage("Initialization failed: " + targetException.getClass().getName() + " - "  + targetException.getMessage(), ERROR);
-            Activator.getDefault().getLog().log(new Status(IStatus.ERROR, Activator.PLUGIN_ID, "Archetype initialization failed " + e.getMessage(), e));
+            getWizard().reportError(e.getTargetException());
 		} catch (InterruptedException e) {
 		    Thread.currentThread().interrupt();
 		}
@@ -269,6 +281,7 @@ public class ChooseArchetypeWizardPage e
 		setPageComplete(message == null);
 	}
 
+
 	public IPath getLocation() {
 		if (!useDefaultWorkspaceLocationButton.getSelection() && 
 				locationCombo.getText().length()>0) {

Modified: sling/branches/tooling-ide-vlt/tooling/ide/eclipse-m2e-ui/src/org/apache/sling/ide/eclipse/ui/wizards/np/NewSlingBundleWizard.java
URL: http://svn.apache.org/viewvc/sling/branches/tooling-ide-vlt/tooling/ide/eclipse-m2e-ui/src/org/apache/sling/ide/eclipse/ui/wizards/np/NewSlingBundleWizard.java?rev=1525867&r1=1525866&r2=1525867&view=diff
==============================================================================
--- sling/branches/tooling-ide-vlt/tooling/ide/eclipse-m2e-ui/src/org/apache/sling/ide/eclipse/ui/wizards/np/NewSlingBundleWizard.java (original)
+++ sling/branches/tooling-ide-vlt/tooling/ide/eclipse-m2e-ui/src/org/apache/sling/ide/eclipse/ui/wizards/np/NewSlingBundleWizard.java Tue Sep 24 12:26:05 2013
@@ -23,6 +23,7 @@ import org.apache.maven.archetype.catalo
 import org.apache.sling.ide.eclipse.m2e.EmbeddedArchetypeInstaller;
 import org.apache.sling.ide.eclipse.m2e.internal.Activator;
 import org.apache.sling.ide.eclipse.m2e.internal.SharedImages;
+import org.eclipse.core.runtime.CoreException;
 import org.eclipse.jface.resource.ImageDescriptor;
 
 public class NewSlingBundleWizard extends AbstractNewSlingApplicationWizard {
@@ -52,9 +53,10 @@ public class NewSlingBundleWizard extend
 			
 			archetypeInstaller.installArchetype();
 		} catch (IOException e) {
-			// TODO proper logging
-			e.printStackTrace();
-		}
+            reportError(e);
+        } catch (CoreException e) {
+            reportError(e);
+        }
 	}
 
 	@Override

Modified: sling/branches/tooling-ide-vlt/tooling/ide/eclipse-m2e-ui/src/org/apache/sling/ide/eclipse/ui/wizards/np/SetupServerWizardPage.java
URL: http://svn.apache.org/viewvc/sling/branches/tooling-ide-vlt/tooling/ide/eclipse-m2e-ui/src/org/apache/sling/ide/eclipse/ui/wizards/np/SetupServerWizardPage.java?rev=1525867&r1=1525866&r2=1525867&view=diff
==============================================================================
--- sling/branches/tooling-ide-vlt/tooling/ide/eclipse-m2e-ui/src/org/apache/sling/ide/eclipse/ui/wizards/np/SetupServerWizardPage.java (original)
+++ sling/branches/tooling-ide-vlt/tooling/ide/eclipse-m2e-ui/src/org/apache/sling/ide/eclipse/ui/wizards/np/SetupServerWizardPage.java Tue Sep 24 12:26:05 2013
@@ -42,8 +42,9 @@ import org.apache.commons.httpclient.met
 import org.apache.sling.ide.eclipse.core.ISlingLaunchpadServer;
 import org.apache.sling.ide.eclipse.m2e.internal.Activator;
 import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.core.runtime.Status;
 import org.eclipse.jface.wizard.WizardPage;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.KeyEvent;
@@ -86,6 +87,11 @@ public class SetupServerWizardPage exten
 		setImageDescriptor(parent.getLogo());
 	}
 
+    @Override
+    public AbstractNewSlingApplicationWizard getWizard() {
+        return (AbstractNewSlingApplicationWizard) super.getWizard();
+    }
+
 	public void createControl(Composite parent) {
 		Composite container = new Composite(parent, SWT.NULL);
 		GridLayout layout = new GridLayout();
@@ -293,8 +299,7 @@ public class SetupServerWizardPage exten
         try {
 			return getHttpClient("admin", "admin").executeMethod(method) == 200;
 		} catch (IOException e) {
-			// TODO proper logging
-			e.printStackTrace();
+            getWizard().reportError(e);
 			return false;
 		}
     }
@@ -395,21 +400,21 @@ public class SetupServerWizardPage exten
 						int status = installToolingSupportBundle();
 						
 						if (status!=HttpStatus.SC_OK) {
-							MessageDialog.openError(getShell(), "Could not install sling tooling support bundle", 
-									"Could not install sling tooling support bundle: "+status);
+                            getWizard().reportError(
+                                    new CoreException(new Status(IStatus.WARNING, Activator.PLUGIN_ID,
+                                            "Could not install sling tooling support bundle: " + status)));
 						} else {
 							installedLocally = true;
 						}
 					} catch (IOException e) {
-						//TODO proper logging
-						e.printStackTrace();
-						MessageDialog.openError(getShell(), "Could not install sling tooling support bundle", 
-								"Could not install sling tooling support bundle: "+e.getMessage());
+                        getWizard().reportError(e);
+                        return null;
 					}
 				}
 			}
 			
 			IRuntimeType serverRuntime = ServerCore.findRuntimeType("org.apache.sling.ide.launchpadRuntimeType");
+            // TODO progress monitor
 			try {
 				IRuntime runtime = serverRuntime.createRuntime(null, new NullProgressMonitor());
 				runtime = runtime.createWorkingCopy().save(true, new NullProgressMonitor());
@@ -424,8 +429,7 @@ public class SetupServerWizardPage exten
 				wc.setRuntime(runtime);
 				return wc.save(true, new NullProgressMonitor());
 			} catch (CoreException e) {
-				// TODO proper logging
-				e.printStackTrace();
+                getWizard().reportError(e);
 			}
 			return null;
 		}