-// private static File getIgnorePrerequisitesFile(URL workspaceUrl) {
-// if (workspaceUrl == null)
-// return null;
-// return new File(workspaceUrl.getPath(), ".ignorePrerequisites");
-// }
-//
-// private void ensurePrerequisites(IProgressMonitor progressMonitor, PlatformUserAgent userAgent) throws PlatformException {
-// Location loc = Platform.getInstanceLocation();
-// File ignorePrerequisites = getIgnorePrerequisitesFile(loc.getURL());
-// if (loc.isSet() && ignorePrerequisites != null) {
-// if (ignorePrerequisites.exists() || ignorePrerequisites.isFile())
-// return;
-// }
-//
-// try {
-// ServerEnvironment.ensureServerDependenciesMet();
-// } catch (ExecutionEnvironmentException e) {
-// // Not installed properly, ask user whether to try installation.
-// try {
-// StringBuilder msg = new StringBuilder();
-// msg.append("Your system seems to be missing the following prerequisites for running this application:\n\n");
-// for (Product product : e.requiredProducts)
-// msg.append("\t" + product.getDescription() + "\n");
-// msg.append("\nYou can either install the missing components now or ignore and attempt to start the application without them. Ignore Always will ignore this question for this workspace.");
-// msg.append("\n\nSelecting Cancel will close the application.");
-//
-// int selection = 0;
-// if (userAgent != null) {
-// selection = userAgent.showPrompt("Missing Prerequisites", msg.toString(), new String[] {
-// "Install Pre-requisites",
-// "Ignore Now",
-// "Ignore Always",
-// "Cancel"
-// }, selection);
-// }
-// boolean tryInstall = false;
-// switch (selection) {
-// case 0:
-// tryInstall = true;
-// break;
-// case 2:
-// ignorePrerequisites.createNewFile();
-// case 1:
-// break;
-// case 3:
-// case -1:
-// throw new CancelStartupException();
-// }
-//
-// if (tryInstall) {
-// // Try to install it and check for success afterwards.
-// ServerEnvironment.tryInstallDependencies(progressMonitor);
-// ServerEnvironment.ensureServerDependenciesMet();
-// }
-// } catch (InstallException ie) {
-// throw new PlatformException(ie);
-// } catch (ExecutionEnvironmentException eee) {
-// throw new PlatformException(eee);
-// } catch (IOException ie) {
-// throw new PlatformException(ie);
-// }
-// }
-// }
+ /**
+ * Perform normal shutdown for the Simantics Platform.
+ *
+ * @param progressMonitor optional progress monitor
+ * @throws PlatformException
+ * @see {@link #shutdown(IProgressMonitor, boolean)}
+ */
+ public synchronized void shutdown(IProgressMonitor progressMonitor) throws PlatformException {
+ shutdown(progressMonitor, true);
+ }