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;
}