Search in sources :

Example 1 with InstallableRuntime2

use of org.eclipse.wst.server.core.internal.InstallableRuntime2 in project eclipse-integration-commons by spring-projects.

the class ServerConfigurator method installServer.

public ServerHandler installServer(final ServerDescriptor descriptor, File installLocation, IOverwriteQuery query, IProgressMonitor monitor) throws CoreException {
    try {
        SubMonitor progress = SubMonitor.convert(monitor);
        progress.beginTask(NLS.bind("Installing Runtime {0}", descriptor.getRuntimeName()), 100);
        File serverLocation = getLocation(descriptor);
        if (serverLocation == null) {
            final boolean[] response = new boolean[1];
            Display.getDefault().syncExec(new Runnable() {

                public void run() {
                    response[0] = MessageDialog.openQuestion(UiUtil.getShell(), "Install Runtime", NLS.bind("No local installation of {0} found. Proceed with download?", descriptor.getServerName()));
                }
            });
            if (!response[0]) {
                throw new OperationCanceledException();
            }
            InstallableRuntime2 ir = new ServerDescriptorInstaller(descriptor);
            // prompt license if necessary
            if (ir.getLicenseURL() != null) {
                progress.subTask("Downloading license");
                try {
                    final boolean[] result = new boolean[1];
                    final String license = ir.getLicense(progress.newChild(20));
                    Display.getDefault().syncExec(new Runnable() {

                        public void run() {
                            TaskModel taskModel = new TaskModel();
                            taskModel.putObject(LicenseWizardFragment.LICENSE, license);
                            TaskWizard wizard2 = new TaskWizard("License", new WizardFragment() {

                                @SuppressWarnings({ "unchecked", "rawtypes" })
                                @Override
                                protected void createChildFragments(List list) {
                                    list.add(new LicenseWizardFragment());
                                }
                            }, taskModel);
                            WizardDialog dialog2 = new WizardDialog(UiUtil.getShell(), wizard2);
                            result[0] = (dialog2.open() == Window.OK);
                        }
                    });
                    if (!result[0]) {
                        // user did not agree to license
                        throw new OperationCanceledException();
                    }
                } catch (CoreException e) {
                    StatusHandler.log(new Status(IStatus.ERROR, Activator.PLUGIN_ID, "Error getting license", e));
                }
            }
            progress.setWorkRemaining(80);
            // schedule download job
            serverLocation = new File(installLocation, descriptor.getInstallPath());
            monitor.subTask(NLS.bind("Downloading runtime to {0}", serverLocation.getAbsolutePath()));
            File archiveFile = File.createTempFile("runtime", null);
            archiveFile.deleteOnExit();
            HttpUtil.download(descriptor.getArchiveUrl(), archiveFile, serverLocation, descriptor.getArchivePath(), progress.newChild(70));
        // Path path = new Path(location.getAbsolutePath());
        // ir.install(path, new SubProgressMonitor(monitor, 70));
        }
        // create wtp runtime
        progress.setWorkRemaining(10);
        monitor.subTask(NLS.bind("Creating server {0}", descriptor.getServerName()));
        ServerHandler serverHandler = new ServerHandler(descriptor, serverLocation);
        serverHandler.createServer(progress.newChild(10), query, descriptor.getCallback());
        return serverHandler;
    } catch (IOException e) {
        throw new CoreException(new Status(IStatus.ERROR, Activator.PLUGIN_ID, "Installing runtime failed", e));
    } finally {
        monitor.done();
    }
}
Also used : IStatus(org.eclipse.core.runtime.IStatus) Status(org.eclipse.core.runtime.Status) WizardFragment(org.eclipse.wst.server.ui.wizard.WizardFragment) LicenseWizardFragment(org.eclipse.wst.server.ui.internal.wizard.fragment.LicenseWizardFragment) OperationCanceledException(org.eclipse.core.runtime.OperationCanceledException) SubMonitor(org.eclipse.core.runtime.SubMonitor) ServerHandler(org.springsource.ide.eclipse.commons.configurator.ServerHandler) IOException(java.io.IOException) InstallableRuntime2(org.eclipse.wst.server.core.internal.InstallableRuntime2) TaskWizard(org.eclipse.wst.server.ui.internal.wizard.TaskWizard) CoreException(org.eclipse.core.runtime.CoreException) LicenseWizardFragment(org.eclipse.wst.server.ui.internal.wizard.fragment.LicenseWizardFragment) ArrayList(java.util.ArrayList) List(java.util.List) File(java.io.File) WizardDialog(org.eclipse.jface.wizard.WizardDialog) TaskModel(org.eclipse.wst.server.core.TaskModel)

Aggregations

File (java.io.File)1 IOException (java.io.IOException)1 ArrayList (java.util.ArrayList)1 List (java.util.List)1 CoreException (org.eclipse.core.runtime.CoreException)1 IStatus (org.eclipse.core.runtime.IStatus)1 OperationCanceledException (org.eclipse.core.runtime.OperationCanceledException)1 Status (org.eclipse.core.runtime.Status)1 SubMonitor (org.eclipse.core.runtime.SubMonitor)1 WizardDialog (org.eclipse.jface.wizard.WizardDialog)1 TaskModel (org.eclipse.wst.server.core.TaskModel)1 InstallableRuntime2 (org.eclipse.wst.server.core.internal.InstallableRuntime2)1 TaskWizard (org.eclipse.wst.server.ui.internal.wizard.TaskWizard)1 LicenseWizardFragment (org.eclipse.wst.server.ui.internal.wizard.fragment.LicenseWizardFragment)1 WizardFragment (org.eclipse.wst.server.ui.wizard.WizardFragment)1 ServerHandler (org.springsource.ide.eclipse.commons.configurator.ServerHandler)1