diff options
author | David Dykstal | 2007-06-11 15:52:57 +0000 |
---|---|---|
committer | David Dykstal | 2007-06-11 15:52:57 +0000 |
commit | 20a15b62020257a87ef70b692b16ca5279b7667c (patch) | |
tree | dfc19daf35a566591c3ec6695f0ff1cebd407716 | |
parent | b0ee4f327640c53da6eee9403751afd7a46b6322 (diff) | |
download | org.eclipse.tm-20a15b62020257a87ef70b692b16ca5279b7667c.tar.gz org.eclipse.tm-20a15b62020257a87ef70b692b16ca5279b7667c.tar.xz org.eclipse.tm-20a15b62020257a87ef70b692b16ca5279b7667c.zip |
[191130][api][breaking] stop exception from printing out on clean workspace startup
8 files changed, 67 insertions, 44 deletions
diff --git a/releng/org.eclipse.rse.build/template/buildNotes.php b/releng/org.eclipse.rse.build/template/buildNotes.php index bf8ed7e24..83ad98b89 100755 --- a/releng/org.eclipse.rse.build/template/buildNotes.php +++ b/releng/org.eclipse.rse.build/template/buildNotes.php @@ -120,6 +120,12 @@ More information can be found in the associated bugzilla items. <ul> <li>TM @buildId@ Breaking API Changes <ul> +<li><b>SystemResourceManager</b> - removed two methods getRemoteSystemsProject() and getProfileFolder(String). +getRemoteSystemsProject() was a convenience method that was equivalent to getRemoteSystemsProject(true) and it forced the +creation of RemoteSystemConnections project in the workspace. This was undesirable given the current persistence provider +defaults. +getProfileFolder(String) returned a IFolder for a profile under the old persistence provider scheme. The method was obsolete and +should not be being used at all.</li> </ul></li> <li>TM 2.0RC2 Breaking API Changes <ul> diff --git a/rse/plugins/org.eclipse.rse.core/src/org/eclipse/rse/core/SystemResourceManager.java b/rse/plugins/org.eclipse.rse.core/src/org/eclipse/rse/core/SystemResourceManager.java index e9c11ab00..01a913cc1 100644 --- a/rse/plugins/org.eclipse.rse.core/src/org/eclipse/rse/core/SystemResourceManager.java +++ b/rse/plugins/org.eclipse.rse.core/src/org/eclipse/rse/core/SystemResourceManager.java @@ -19,6 +19,8 @@ * made ensureRemoteSystemsProject private instead of protected * David Dykstal (IBM) - [186589] move user types, user actions, and compile commands * API to the user actions plugin + * David Dykstal (IBM) - [191130] remove getRemoteSystemsProject() and getProfileFolder() + * as part of the work to removed the exception printed at startup. ********************************************************************************/ package org.eclipse.rse.core; @@ -148,22 +150,24 @@ public class SystemResourceManager implements SystemResourceConstants _listener.removeResourceChangeListener(l); } - /** - * Get the default remote systems project. - * If found but closed, this will open the project. - * @return IProject handle of the project. Use exists() to test existence. - */ - public static IProject getRemoteSystemsProject() - { - return getRemoteSystemsProject(true); - } +// /** +// * Get the default remote systems project. +// * If found but closed, this will open the project. +// * @return IProject handle of the project. Use exists() to test existence. +// * @deprecated use {@link #getRemoteSystemsProject(boolean)} instead. +// */ +// public static IProject getRemoteSystemsProject() +// { +// return getRemoteSystemsProject(true); +// } /** * Get the default remote systems project. * If found but closed, this will open the project. * @param force if true force the creation of the project if not found. * In any case, returns handle to the project. - * @return IProject handle of the project. Use exists() to test existence. + * @return IProject handle of the project. Clients should use + * exists() or isAccessible() to test existence. */ public static IProject getRemoteSystemsProject(boolean force) { if (remoteSystemsProject == null) { @@ -273,10 +277,10 @@ public class SystemResourceManager implements SystemResourceConstants /** * Get profiles folder for a given profile name */ - public static IFolder getProfileFolder(String profileName) - { - return getResourceHelpers().getOrCreateFolder(getRemoteSystemsProject(),profileName); - } +// public static IFolder getProfileFolder(String profileName) +// { +// return getResourceHelpers().getOrCreateFolder(getRemoteSystemsProject(),profileName); +// } // ------------------- diff --git a/rse/plugins/org.eclipse.rse.core/src/org/eclipse/rse/internal/persistence/PFWorkspaceLocation.java b/rse/plugins/org.eclipse.rse.core/src/org/eclipse/rse/internal/persistence/PFWorkspaceLocation.java index 364a556cc..0136dcbb9 100644 --- a/rse/plugins/org.eclipse.rse.core/src/org/eclipse/rse/internal/persistence/PFWorkspaceLocation.java +++ b/rse/plugins/org.eclipse.rse.core/src/org/eclipse/rse/internal/persistence/PFWorkspaceLocation.java @@ -10,6 +10,7 @@ * David Dykstal (IBM) - [189858] delayed the creation of the remote systems project by * using handle-only operations. The project is created only * if required to exist for writing. + * David Dykstal (IBM) - [191130] use explicit getRemoteSystemsProject(boolean) method *******************************************************************************/ package org.eclipse.rse.internal.persistence; @@ -136,7 +137,7 @@ class PFWorkspaceLocation implements PFPersistenceLocation { private void ensure(IContainer resource) { if (!resource.isAccessible()) { if (resource.getType() == IResource.PROJECT) { - SystemResourceManager.getRemoteSystemsProject(); + SystemResourceManager.getRemoteSystemsProject(true); } else { IFolder folder = (IFolder) resource; ensure(folder.getParent()); diff --git a/rse/plugins/org.eclipse.rse.core/src/org/eclipse/rse/internal/persistence/SerializingProvider.java b/rse/plugins/org.eclipse.rse.core/src/org/eclipse/rse/internal/persistence/SerializingProvider.java index 14f3f49cb..668e374e2 100644 --- a/rse/plugins/org.eclipse.rse.core/src/org/eclipse/rse/internal/persistence/SerializingProvider.java +++ b/rse/plugins/org.eclipse.rse.core/src/org/eclipse/rse/internal/persistence/SerializingProvider.java @@ -12,6 +12,7 @@ * * Contributors: * Martin Oberhuber (Wind River) - [184095] Replace systemTypeName by IRSESystemType + * David Dykstal (IBM) - [191130] use explicit getRemoteSystemsProject(boolean) method ********************************************************************************/ package org.eclipse.rse.internal.persistence; @@ -57,21 +58,23 @@ public class SerializingProvider implements IRSEPersistenceProvider { */ List names = new Vector(10); try { - IProject project = SystemResourceManager.getRemoteSystemsProject(); - IResource[] candidates = project.members(); - for (int i = 0; i < candidates.length; i++) { - IResource candidate = candidates[i]; - if (candidate.getType() == IResource.FOLDER) { - IFolder candidateFolder = (IFolder) candidate; - IResource[] children = candidateFolder.members(); - if (children.length == 1) { - IResource child = children[0]; - if (child.getType() == IResource.FILE) { - String profileName = candidateFolder.getName(); - String domFileName = profileName + ".rsedom"; //$NON-NLS-1$ - String childName = child.getName(); - if (childName.equals(domFileName)) { - names.add(profileName); + IProject project = SystemResourceManager.getRemoteSystemsProject(false); + if (project.isAccessible()) { + IResource[] candidates = project.members(); + for (int i = 0; i < candidates.length; i++) { + IResource candidate = candidates[i]; + if (candidate.getType() == IResource.FOLDER) { + IFolder candidateFolder = (IFolder) candidate; + IResource[] children = candidateFolder.members(); + if (children.length == 1) { + IResource child = children[0]; + if (child.getType() == IResource.FILE) { + String profileName = candidateFolder.getName(); + String domFileName = profileName + ".rsedom"; //$NON-NLS-1$ + String childName = child.getName(); + if (childName.equals(domFileName)) { + names.add(profileName); + } } } } @@ -114,7 +117,7 @@ public class SerializingProvider implements IRSEPersistenceProvider { } private IFile getProfileFile(String domName, IProgressMonitor monitor) { - IProject project = SystemResourceManager.getRemoteSystemsProject(); + IProject project = SystemResourceManager.getRemoteSystemsProject(true); // before loading, make sure the project is in synch try { diff --git a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/SystemResourceListener.java b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/SystemResourceListener.java index e20768626..7f8c69717 100644 --- a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/SystemResourceListener.java +++ b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/SystemResourceListener.java @@ -14,6 +14,7 @@ * Martin Oberhuber (Wind River) - [168975] Move RSE Events API to Core * Martin Oberhuber (Wind River) - [186773] split ISystemRegistryUI from ISystemRegistry * Martin Oberhuber (Wind River) - [168870] refactor org.eclipse.rse.core package of the UI plugin + * David Dykstal (IBM) - [191130] log exception instead of printing, do not log if project is not available ********************************************************************************/ package org.eclipse.rse.internal.ui; @@ -25,6 +26,7 @@ import org.eclipse.core.resources.IResourceChangeEvent; import org.eclipse.core.resources.IResourceChangeListener; import org.eclipse.core.resources.IResourceDelta; import org.eclipse.core.resources.IWorkspace; +import org.eclipse.core.runtime.CoreException; import org.eclipse.rse.core.ISystemResourceListener; import org.eclipse.rse.core.RSECorePlugin; import org.eclipse.rse.core.SystemResourceManager; @@ -361,16 +363,18 @@ public class SystemResourceListener implements ISystemResourceListener, Runnable { if (!resource.getName().equals(remoteSystemsProject.getName())) return true; + // [191130] the event can be ignored if the project cannot be accessed + if (!resource.isAccessible()) return true; try { if (!(((IProject) resource).hasNature(RemoteSystemsProject.ID))) return true; - } - catch (Exception exc) + } + catch (CoreException exc) { - System.out.println("Exception trying to test the natures of the project that fired a resource change event"); //$NON-NLS-1$ - } - } + RSECorePlugin.getDefault().getLogger().logError("Exception trying to test the natures of the project that fired a resource change event", exc); //$NON-NLS-1$ + } + } } return false; } @@ -733,7 +737,7 @@ public class SystemResourceListener implements ISystemResourceListener, Runnable { SystemResourceListener us = null; if (inst == null) - us = getListener(SystemResourceManager.getRemoteSystemsProject()); + us = getListener(SystemResourceManager.getRemoteSystemsProject(false)); else us = inst; @@ -747,7 +751,7 @@ public class SystemResourceListener implements ISystemResourceListener, Runnable { SystemResourceListener us = null; if (inst == null) - us = getListener(SystemResourceManager.getRemoteSystemsProject()); + us = getListener(SystemResourceManager.getRemoteSystemsProject(false)); else us = inst; diff --git a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/team/SystemTeamViewProfileAdapter.java b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/team/SystemTeamViewProfileAdapter.java index 3afb6be4c..a3ce48859 100644 --- a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/team/SystemTeamViewProfileAdapter.java +++ b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/team/SystemTeamViewProfileAdapter.java @@ -17,6 +17,7 @@ * Martin Oberhuber (Wind River) - [177523] Unify singleton getter methods * Martin Oberhuber (Wind River) - [186128] Move IProgressMonitor last in all API * Martin Oberhuber (Wind River) - [186773] split ISystemRegistryUI from ISystemRegistry + * David Dykstal (IBM) - [191130] use new getRemoteSystemsProject(boolean) call ********************************************************************************/ package org.eclipse.rse.internal.ui.view.team; @@ -210,7 +211,7 @@ public class SystemTeamViewProfileAdapter */ public Object getParent(Object element) { - return SystemResourceManager.getRemoteSystemsProject(); + return SystemResourceManager.getRemoteSystemsProject(false); } /** diff --git a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/team/SystemTeamViewRefreshAllAction.java b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/team/SystemTeamViewRefreshAllAction.java index 728bb82d9..72d5b74af 100644 --- a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/team/SystemTeamViewRefreshAllAction.java +++ b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/team/SystemTeamViewRefreshAllAction.java @@ -13,9 +13,11 @@ * * Contributors: * Michael Berger (IBM) - 146339 Added refresh action graphic. + * David Dykstal (IBM) - [191130] use new getRemoteSystemsProject(boolean) method *******************************************************************************/ package org.eclipse.rse.internal.ui.view.team; +import org.eclipse.core.resources.IProject; import org.eclipse.core.resources.IResource; import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.rse.core.SystemResourceManager; @@ -67,11 +69,12 @@ public class SystemTeamViewRefreshAllAction extends SystemBaseAction public void run() { try { - SystemResourceManager.getRemoteSystemsProject().refreshLocal(IResource.DEPTH_INFINITE, null); + IProject connectionsProject = SystemResourceManager.getRemoteSystemsProject(false); + if (connectionsProject.isAccessible()) { + connectionsProject.refreshLocal(IResource.DEPTH_INFINITE, null); + } } catch (Exception exc) {} - SystemTeamView teamViewer = (SystemTeamView)teamView.getTreeViewer(); teamViewer.refresh(); - //System.out.println("Running refresh all"); } } diff --git a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/team/SystemTeamViewResourceAdapterFactory.java b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/team/SystemTeamViewResourceAdapterFactory.java index 6316a55b0..145c0be62 100644 --- a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/team/SystemTeamViewResourceAdapterFactory.java +++ b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/team/SystemTeamViewResourceAdapterFactory.java @@ -12,7 +12,7 @@ * Emily Bruner, Mazen Faraj, Adrian Storisteanu, Li Ding, and Kent Hawley. * * Contributors: - * {Name} (company) - description of contribution. + * David Dykstal (IBM) - [191130] fix unnecessary creation of the remote systems project *******************************************************************************/ package org.eclipse.rse.internal.ui.view.team; @@ -54,7 +54,8 @@ public class SystemTeamViewResourceAdapterFactory implements IAdapterFactory if (adaptableObject instanceof ISystemRegistry) { //SystemRegistry sr = (SystemRegistry)adaptableObject; - adapter = SystemResourceManager.getRemoteSystemsProject(); + // [191130] do not force the creation of the project, just return its handle + adapter = SystemResourceManager.getRemoteSystemsProject(false); } /* deferred else if (adaptableObject instanceof SystemProfile) |