[564110] Make it easier to find the server configuration files Change-Id: I761e552eb30d108a33d532fd856808b43ca99641
diff --git a/features/org.eclipse.wst.server_core.feature/feature.xml b/features/org.eclipse.wst.server_core.feature/feature.xml index 9d98ee7..da93bf2 100644 --- a/features/org.eclipse.wst.server_core.feature/feature.xml +++ b/features/org.eclipse.wst.server_core.feature/feature.xml
@@ -15,7 +15,7 @@ <feature id="org.eclipse.wst.server_core.feature" label="%featureName" - version="3.3.900.qualifier" + version="3.3.1000.qualifier" provider-name="%providerName" license-feature="org.eclipse.license" license-feature-version="1.0.1.qualifier">
diff --git a/features/org.eclipse.wst.server_core.feature/pom.xml b/features/org.eclipse.wst.server_core.feature/pom.xml index c6ff39a..ed528ff 100644 --- a/features/org.eclipse.wst.server_core.feature/pom.xml +++ b/features/org.eclipse.wst.server_core.feature/pom.xml
@@ -22,7 +22,7 @@ <groupId>org.eclipse.webtools.servertools</groupId> <artifactId>org.eclipse.wst.server_core.feature</artifactId> - <version>3.3.900-SNAPSHOT</version> + <version>3.3.1000-SNAPSHOT</version> <packaging>eclipse-feature</packaging> <build>
diff --git a/features/org.eclipse.wst.server_sdk.feature/feature.xml b/features/org.eclipse.wst.server_sdk.feature/feature.xml index d8c03a9..459cef9 100644 --- a/features/org.eclipse.wst.server_sdk.feature/feature.xml +++ b/features/org.eclipse.wst.server_sdk.feature/feature.xml
@@ -14,7 +14,7 @@ <feature id="org.eclipse.wst.server_sdk.feature" label="%featureName" - version="3.3.800.qualifier" + version="3.3.900.qualifier" provider-name="%providerName" license-feature="org.eclipse.license" license-feature-version="1.0.1.qualifier">
diff --git a/features/org.eclipse.wst.server_sdk.feature/pom.xml b/features/org.eclipse.wst.server_sdk.feature/pom.xml index 831d912..21930f5 100644 --- a/features/org.eclipse.wst.server_sdk.feature/pom.xml +++ b/features/org.eclipse.wst.server_sdk.feature/pom.xml
@@ -22,6 +22,6 @@ <groupId>org.eclipse.webtools.servertools</groupId> <artifactId>org.eclipse.wst.server_sdk.feature</artifactId> - <version>3.3.800-SNAPSHOT</version> + <version>3.3.900-SNAPSHOT</version> <packaging>eclipse-feature</packaging> </project>
diff --git a/features/org.eclipse.wst.server_ui.feature/feature.xml b/features/org.eclipse.wst.server_ui.feature/feature.xml index 2ac97fc..2e30f59 100644 --- a/features/org.eclipse.wst.server_ui.feature/feature.xml +++ b/features/org.eclipse.wst.server_ui.feature/feature.xml
@@ -14,7 +14,7 @@ <feature id="org.eclipse.wst.server_ui.feature" label="%featureName" - version="3.3.1300.qualifier" + version="3.3.1400.qualifier" provider-name="%providerName" license-feature="org.eclipse.license" license-feature-version="1.0.1.qualifier">
diff --git a/features/org.eclipse.wst.server_ui.feature/pom.xml b/features/org.eclipse.wst.server_ui.feature/pom.xml index 2dfc740..1b0a50e 100644 --- a/features/org.eclipse.wst.server_ui.feature/pom.xml +++ b/features/org.eclipse.wst.server_ui.feature/pom.xml
@@ -22,7 +22,7 @@ <groupId>org.eclipse.webtools.servertools</groupId> <artifactId>org.eclipse.wst.server_ui.feature</artifactId> - <version>3.3.1300-SNAPSHOT</version> + <version>3.3.1400-SNAPSHOT</version> <packaging>eclipse-feature</packaging> <build>
diff --git a/plugins/org.eclipse.jst.server.tomcat.core/tomcatcore/org/eclipse/jst/server/tomcat/core/internal/TomcatPlugin.java b/plugins/org.eclipse.jst.server.tomcat.core/tomcatcore/org/eclipse/jst/server/tomcat/core/internal/TomcatPlugin.java index 39e5479..d2f88cf 100644 --- a/plugins/org.eclipse.jst.server.tomcat.core/tomcatcore/org/eclipse/jst/server/tomcat/core/internal/TomcatPlugin.java +++ b/plugins/org.eclipse.jst.server.tomcat.core/tomcatcore/org/eclipse/jst/server/tomcat/core/internal/TomcatPlugin.java
@@ -140,36 +140,36 @@ * Return the Tomcat version handler. * * @param id - * @return a version handler + * @return a version handler or <code>null</code> if the version strung is not understood */ public static ITomcatVersionHandler getTomcatVersionHandler(String id) { if (id.indexOf("runtime") > 0) id = id.substring(0, 30) + id.substring(38); //id = id.substring(0, id.length() - 8); - if (TOMCAT_32.equals(id)) - return new Tomcat32Handler(); - else if (TOMCAT_40.equals(id)) - return new Tomcat40Handler(); - else if (TOMCAT_41.equals(id)) - return new Tomcat41Handler(); - else if (TOMCAT_50.equals(id)) - return new Tomcat50Handler(); - else if (TOMCAT_55.equals(id)) - return new Tomcat55Handler(); - else if (TOMCAT_60.equals(id)) - return new Tomcat60Handler(); - else if (TOMCAT_70.equals(id)) - return new Tomcat70Handler(); - else if (TOMCAT_80.equals(id)) - return new Tomcat80Handler(); - else if (TOMCAT_85.equals(id)) - return new Tomcat85Handler(); - else if (TOMCAT_90.equals(id)) - return new Tomcat90Handler(); + if (TOMCAT_101.equals(id)) + return new Tomcat101Handler(); else if (TOMCAT_100.equals(id)) return new Tomcat100Handler(); - else if (TOMCAT_101.equals(id)) - return new Tomcat101Handler(); + else if (TOMCAT_90.equals(id)) + return new Tomcat90Handler(); + else if (TOMCAT_85.equals(id)) + return new Tomcat85Handler(); + else if (TOMCAT_80.equals(id)) + return new Tomcat80Handler(); + else if (TOMCAT_70.equals(id)) + return new Tomcat70Handler(); + else if (TOMCAT_60.equals(id)) + return new Tomcat60Handler(); + else if (TOMCAT_55.equals(id)) + return new Tomcat55Handler(); + else if (TOMCAT_50.equals(id)) + return new Tomcat50Handler(); + else if (TOMCAT_41.equals(id)) + return new Tomcat41Handler(); + else if (TOMCAT_40.equals(id)) + return new Tomcat40Handler(); + else if (TOMCAT_32.equals(id)) + return new Tomcat32Handler(); else return null; }
diff --git a/plugins/org.eclipse.jst.server.tomcat.core/tomcatcore/org/eclipse/jst/server/tomcat/core/internal/TomcatRuntime.java b/plugins/org.eclipse.jst.server.tomcat.core/tomcatcore/org/eclipse/jst/server/tomcat/core/internal/TomcatRuntime.java index 1d493bb..3a2c5b0 100644 --- a/plugins/org.eclipse.jst.server.tomcat.core/tomcatcore/org/eclipse/jst/server/tomcat/core/internal/TomcatRuntime.java +++ b/plugins/org.eclipse.jst.server.tomcat.core/tomcatcore/org/eclipse/jst/server/tomcat/core/internal/TomcatRuntime.java
@@ -15,6 +15,7 @@ import java.io.File; import java.io.IOException; import java.text.MessageFormat; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -93,7 +94,11 @@ // Ignore if there is a problem } } - return getVersionHandler().getRuntimeClasspath(installPath, configPath); + ITomcatVersionHandler versionHandler = getVersionHandler(); + if (versionHandler == null) { + return new ArrayList(0); + } + return versionHandler.getRuntimeClasspath(installPath, configPath); } /** @@ -107,7 +112,11 @@ } private IStatus verifyLocation(IPath loc) { - return getVersionHandler().verifyInstallPath(loc); + ITomcatVersionHandler versionHandler = getVersionHandler(); + if (versionHandler == null) { + return new Status(IStatus.ERROR, getClass(), "No version handler able to handle location " + loc.toString()); + } + return versionHandler.verifyInstallPath(loc); } /*
diff --git a/plugins/org.eclipse.wst.server.core/META-INF/MANIFEST.MF b/plugins/org.eclipse.wst.server.core/META-INF/MANIFEST.MF index d4e1228..8a2bd0d 100644 --- a/plugins/org.eclipse.wst.server.core/META-INF/MANIFEST.MF +++ b/plugins/org.eclipse.wst.server.core/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Bundle-ManifestVersion: 2 Bundle-Name: %pluginName Bundle-SymbolicName: org.eclipse.wst.server.core; singleton:=true -Bundle-Version: 1.10.200.qualifier +Bundle-Version: 1.10.300.qualifier Bundle-Activator: org.eclipse.wst.server.core.internal.ServerPlugin Bundle-Vendor: %providerName Bundle-Localization: plugin
diff --git a/plugins/org.eclipse.wst.server.core/pom.xml b/plugins/org.eclipse.wst.server.core/pom.xml index 1a504d1..0c205df 100644 --- a/plugins/org.eclipse.wst.server.core/pom.xml +++ b/plugins/org.eclipse.wst.server.core/pom.xml
@@ -22,6 +22,6 @@ <groupId>org.eclipse.webtools.servertools</groupId> <artifactId>org.eclipse.wst.server.core</artifactId> - <version>1.10.200-SNAPSHOT</version> + <version>1.10.300-SNAPSHOT</version> <packaging>eclipse-plugin</packaging> </project>
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/Server.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/Server.java index 6e44ba6..177c759 100644 --- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/Server.java +++ b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/Server.java
@@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2003, 2018 IBM Corporation and others. + * Copyright (c) 2003, 2022 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License 2.0 * which accompanies this distribution, and is available at @@ -2429,10 +2429,13 @@ protected void resolve() { IServerType oldServerType = serverType; String serverTypeId = getAttribute("server-type-id", (String)null); - if (serverTypeId != null) + if (serverTypeId != null) { serverType = ServerCore.findServerType(serverTypeId); - else + } + else { serverType = null; + ServerPlugin.log(Status.error("No server type was previously recorded for " + getName())); + } if (serverType != null && !serverType.equals(oldServerType)) serverState = ((ServerType)serverType).getInitialState();
diff --git a/plugins/org.eclipse.wst.server.ui/META-INF/MANIFEST.MF b/plugins/org.eclipse.wst.server.ui/META-INF/MANIFEST.MF index af06fad..f81110d 100644 --- a/plugins/org.eclipse.wst.server.ui/META-INF/MANIFEST.MF +++ b/plugins/org.eclipse.wst.server.ui/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Bundle-ManifestVersion: 2 Bundle-Name: %pluginName Bundle-SymbolicName: org.eclipse.wst.server.ui; singleton:=true -Bundle-Version: 1.5.800.qualifier +Bundle-Version: 1.5.900.qualifier Bundle-Activator: org.eclipse.wst.server.ui.internal.ServerUIPlugin Bundle-Vendor: %providerName Bundle-Localization: plugin
diff --git a/plugins/org.eclipse.wst.server.ui/pom.xml b/plugins/org.eclipse.wst.server.ui/pom.xml index 3ead6de..9cba354 100644 --- a/plugins/org.eclipse.wst.server.ui/pom.xml +++ b/plugins/org.eclipse.wst.server.ui/pom.xml
@@ -22,6 +22,6 @@ <groupId>org.eclipse.webtools.servertools</groupId> <artifactId>org.eclipse.wst.server.ui</artifactId> - <version>1.5.800-SNAPSHOT</version> + <version>1.5.900-SNAPSHOT</version> <packaging>eclipse-plugin</packaging> </project>
diff --git a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/editor/OverviewEditorPart.java b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/editor/OverviewEditorPart.java index 9646867..252cda1 100644 --- a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/editor/OverviewEditorPart.java +++ b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/editor/OverviewEditorPart.java
@@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2003, 2018 IBM Corporation and others. + * Copyright (c) 2003, 2022 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License 2.0 * which accompanies this distribution, and is available at @@ -14,6 +14,8 @@ import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; import java.util.*; import java.util.List; @@ -28,6 +30,8 @@ import org.eclipse.jface.viewers.CheckStateChangedEvent; import org.eclipse.jface.viewers.CheckboxTableViewer; import org.eclipse.jface.viewers.ICheckStateListener; +import org.eclipse.jface.viewers.StructuredSelection; +import org.eclipse.jface.viewers.TreeViewer; import org.eclipse.jface.window.Window; import org.eclipse.jface.wizard.WizardDialog; import org.eclipse.osgi.util.NLS; @@ -398,8 +402,9 @@ link.addHyperlinkListener(new HyperlinkAdapter() { public void linkActivated(HyperlinkEvent e) { IRuntime runtime = server2.getRuntime(); - if (runtime != null && ServerUIPlugin.hasWizardFragment(runtime.getRuntimeType().getId())) + if (runtime != null && ServerUIPlugin.hasWizardFragment(runtime.getRuntimeType().getId())) { editRuntime(runtime); + } } }); @@ -512,13 +517,143 @@ // server configuration path if (server != null && server.getServerType() != null && server.getServerType().hasServerConfiguration()) { - createLabel(toolkit, composite, Messages.serverEditorOverviewServerConfigurationPath); - + Hyperlink openConfigurationLink = toolkit.createHyperlink(composite, Messages.serverEditorOverviewServerConfigurationPath, SWT.NONE); + final IServerWorkingCopy server2 = server; + openConfigurationLink.addHyperlinkListener(new HyperlinkAdapter() { + @Override + public void linkActivated(HyperlinkEvent e) { + super.linkActivated(e); + if (server2.getServerConfiguration() == null || server2.getServerConfiguration().getFullPath() == null) { + return; + } + + IWorkbenchWindow window = getSite().getWorkbenchWindow(); + if (window != null) { + IWorkbenchPage page = window.getActivePage(); + if (page != null) { + IViewReference[] viewReferences = page.getViewReferences(); + String[] targetIDs = new String[]{IPageLayout.ID_PROJECT_EXPLORER, "org.eclipse.jdt.ui.PackageExplorer", "org.eclipse.ui.views.ResourceNavigator"}; + IPath path = server2.getServerConfiguration().getFullPath(); + IFolder folder = ResourcesPlugin.getWorkspace().getRoot().getFolder(path); + IResource[] resources = new IResource[]{folder}; + try { + resources = folder.members(); + } + catch (CoreException e2) { + // fall back on the folder itself + } + boolean shown = false; + for (int i = 0; i < targetIDs.length && !shown; i++) { + for (int j = 0; j < viewReferences.length && !shown; j++) { + if (targetIDs[i].equals(viewReferences[j].getId())) { + IViewPart view = viewReferences[j].getView(true); + if (view != null) { + IWorkbenchPart part = view.getViewSite().getPart(); + try { + if (!shown) { + try { + Method getViewer = part.getClass().getMethod("getViewer", new Class[0]); + if (getViewer != null && TreeViewer.class.isAssignableFrom(getViewer.getReturnType())) { + view.getViewSite().getSelectionProvider().setSelection(new StructuredSelection(resources)); + page.activate(view); + ((TreeViewer) getViewer.invoke(part, new Object[0])).reveal(folder); + view.getViewSite().getSelectionProvider().setSelection(new StructuredSelection(folder)); + shown = true; + } + } + catch (NoSuchMethodException e1) { + } + } + if (!shown) { + try { + Method getTreeViewer = part.getClass().getMethod("getTreeViewer", null); + if (getTreeViewer != null && TreeViewer.class.isAssignableFrom(getTreeViewer.getReturnType())) { + view.getViewSite().getSelectionProvider().setSelection(new StructuredSelection(resources)); + page.activate(view); + ((TreeViewer) getTreeViewer.invoke(part, new Object[0])).reveal(folder); + view.getViewSite().getSelectionProvider().setSelection(new StructuredSelection(folder)); + shown = true; + } + } + catch (NoSuchMethodException e1) { + } + } + if (!shown) { + try { + Method getCommonViewer = part.getClass().getMethod("getCommonViewer", null); + if (getCommonViewer != null && TreeViewer.class.isAssignableFrom(getCommonViewer.getReturnType())) { + view.getViewSite().getSelectionProvider().setSelection(new StructuredSelection(resources)); + page.activate(view); + ((TreeViewer) getCommonViewer.invoke(part, new Object[0])).reveal(folder); + view.getViewSite().getSelectionProvider().setSelection(new StructuredSelection(folder)); + shown = true; + } + } + catch (NoSuchMethodException e1) { + } + } + } + catch (SecurityException e1) { + // ignore + } + catch (IllegalAccessException e1) { + // ignore + } + catch (IllegalArgumentException e1) { + // ignore + } + catch (InvocationTargetException e1) { + // ignore + } + if (!shown) { + view.getViewSite().getSelectionProvider().setSelection(new StructuredSelection(resources)); + page.activate(view); + shown = true; + } + } + } + } + } + if (!shown) { + try { + IViewPart part = page.showView(IPageLayout.ID_PROJECT_EXPLORER); + + try { + Method getCommonViewer = part.getClass().getMethod("getCommonViewer", null); + if (getCommonViewer != null && TreeViewer.class.isAssignableFrom(getCommonViewer.getReturnType())) { + part.getViewSite().getSelectionProvider().setSelection(new StructuredSelection(resources)); + page.activate(part); + ((TreeViewer) getCommonViewer.invoke(part, new Object[0])).reveal(folder); + part.getViewSite().getSelectionProvider().setSelection(new StructuredSelection(folder)); + shown = true; + } + } + catch (NoSuchMethodException e1) { + } + catch (InvocationTargetException e1) { + } + catch (IllegalAccessException e1) { + } + catch (IllegalArgumentException e1) { + } + part.getViewSite().getSelectionProvider().setSelection(new StructuredSelection(resources)); + } + catch (PartInitException e1) { + ServerPlugin.log(Status.error("Could not open view to show server configuration", e1)); + } + } + } + } + } + }); + IFolder folder = server.getServerConfiguration(); - if (folder == null) + if (folder == null) { serverConfiguration = toolkit.createText(composite, Messages.elementUnknownName); - else + } + else { serverConfiguration = toolkit.createText(composite, "" + server.getServerConfiguration().getFullPath()); + } serverConfiguration.setEditable(false); GridData data = new GridData(GridData.FILL_HORIZONTAL);