1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-07-15 13:05:22 +02:00

[210537] [api] removed Exception throwing from ISystemHostPool

This commit is contained in:
David Dykstal 2007-12-18 20:20:12 +00:00
parent 7090a75b05
commit 7d080e18cd
3 changed files with 36 additions and 73 deletions

View file

@ -1,5 +1,5 @@
/******************************************************************************** /********************************************************************************
* Copyright (c) 2002, 2007 IBM Corporation and others. All rights reserved. * Copyright (c) 2002, 2008 IBM Corporation and others. All rights reserved.
* This program and the accompanying materials are made available under the terms * This program and the accompanying materials are made available under the terms
* of the Eclipse Public License v1.0 which accompanies this distribution, and is * of the Eclipse Public License v1.0 which accompanies this distribution, and is
* available at http://www.eclipse.org/legal/epl-v10.html * available at http://www.eclipse.org/legal/epl-v10.html
@ -13,6 +13,7 @@
* Contributors: * Contributors:
* Martin Oberhuber (Wind River) - [184095] Replace systemTypeName by IRSESystemType * Martin Oberhuber (Wind River) - [184095] Replace systemTypeName by IRSESystemType
* Martin Oberhuber (Wind River) - [210534] Remove ISystemHostPool.getHostList() and setName() * Martin Oberhuber (Wind River) - [210534] Remove ISystemHostPool.getHostList() and setName()
* David Dykstal (IBM) - [210537] removed exception signalling from this interface, no longer needed
********************************************************************************/ ********************************************************************************/
package org.eclipse.rse.core.model; package org.eclipse.rse.core.model;
@ -71,9 +72,8 @@ public interface ISystemHostPool extends IRSEPersistableContainer {
* @param hostName IP name or address of the host. * @param hostName IP name or address of the host.
* @return IHost object, or null if it failed to create * @return IHost object, or null if it failed to create
* because the aliasName is not unique. All other errors throw an exception. * because the aliasName is not unique. All other errors throw an exception.
* @throws Exception if something goes wrong creating the connection.
*/ */
public IHost createHost(IRSESystemType systemType, String aliasName, String hostName) throws Exception; public IHost createHost(IRSESystemType systemType, String aliasName, String hostName);
/** /**
* Create a connection object, given all the possible attributes except default userId. * Create a connection object, given all the possible attributes except default userId.
@ -86,9 +86,8 @@ public interface ISystemHostPool extends IRSEPersistableContainer {
* @param description optional description of the connection. Can be null. * @param description optional description of the connection. Can be null.
* @return IHost object, or <code>null</code> if it failed to create * @return IHost object, or <code>null</code> if it failed to create
* because the aliasName is not unique. All other errors throw an exception. * because the aliasName is not unique. All other errors throw an exception.
* @throws Exception if something goes wrong creating the connection.
*/ */
public IHost createHost(IRSESystemType systemType, String aliasName, String hostName, String description) throws Exception; public IHost createHost(IRSESystemType systemType, String aliasName, String hostName, String description);
/** /**
* Create a connection object, given all the possible attributes. * Create a connection object, given all the possible attributes.
@ -102,11 +101,10 @@ public interface ISystemHostPool extends IRSEPersistableContainer {
* @param defaultUserId userId to use as the default for the subsystems. * @param defaultUserId userId to use as the default for the subsystems.
* @param defaultUserIdLocation where to set the given default user Id. See IRSEUserIdConstants for values. * @param defaultUserIdLocation where to set the given default user Id. See IRSEUserIdConstants for values.
* @return IHost object, or <code>null</code> if it failed to create * @return IHost object, or <code>null</code> if it failed to create
* because the aliasName is not unique. All other errors throw an exception. * because the aliasName is not unique.
* @see IRSEUserIdConstants * @see IRSEUserIdConstants
* @throws Exception if something goes wrong creating the connection.
*/ */
public IHost createHost(IRSESystemType systemType, String aliasName, String hostName, String description, String defaultUserId, int defaultUserIdLocation) throws Exception; public IHost createHost(IRSESystemType systemType, String aliasName, String hostName, String description, String defaultUserId, int defaultUserIdLocation);
/** /**
* Update an existing connection given the new information. * Update an existing connection given the new information.
@ -125,9 +123,8 @@ public interface ISystemHostPool extends IRSEPersistableContainer {
* @param defaultUserId userId to use as the default for the subsystems. * @param defaultUserId userId to use as the default for the subsystems.
* @param defaultUserIdLocation where to set the given default user Id from IRSEUserIdConstants. * @param defaultUserIdLocation where to set the given default user Id from IRSEUserIdConstants.
* @see IRSEUserIdConstants * @see IRSEUserIdConstants
* @throws Exception if something goes wrong updating the connection.
*/ */
public void updateHost(IHost conn, IRSESystemType systemType, String aliasName, String hostName, String description, String defaultUserId, int defaultUserIdLocation) throws Exception; public void updateHost(IHost conn, IRSESystemType systemType, String aliasName, String hostName, String description, String defaultUserId, int defaultUserIdLocation);
/** /**
* Return a connection object, given its alias name. * Return a connection object, given its alias name.
@ -185,9 +182,8 @@ public interface ISystemHostPool extends IRSEPersistableContainer {
* The alias name is not checked for uniqueness. Clients are responsible * The alias name is not checked for uniqueness. Clients are responsible
* themselves for ensuring that no two connections with the same alias * themselves for ensuring that no two connections with the same alias
* name (compared case insensitive) are created. * name (compared case insensitive) are created.
* @throws Exception if anything goes wrong renaming the connection.
*/ */
public void renameHost(IHost conn, String newName) throws Exception; public void renameHost(IHost conn, String newName);
/** /**
* Return the zero-based position of a connection object within this host pool. * Return the zero-based position of a connection object within this host pool.
@ -211,9 +207,8 @@ public interface ISystemHostPool extends IRSEPersistableContainer {
* @param aliasName New, unique, alias name to give this connection. Clone will fail * @param aliasName New, unique, alias name to give this connection. Clone will fail
* (returning <code>null</code> as result) if this is not unique. * (returning <code>null</code> as result) if this is not unique.
* @return the cloned host, or <code>null</code> if the new alias name was not unique. * @return the cloned host, or <code>null</code> if the new alias name was not unique.
* @throws Exception if anything goes wrong during cloning.
*/ */
public IHost cloneHost(ISystemHostPool targetPool, IHost conn, String aliasName) throws Exception; public IHost cloneHost(ISystemHostPool targetPool, IHost conn, String aliasName);
/** /**
* Move existing connections a given number of positions in the same pool. * Move existing connections a given number of positions in the same pool.

View file

@ -1,5 +1,5 @@
/******************************************************************************** /********************************************************************************
* Copyright (c) 2002, 2007 IBM Corporation and others. All rights reserved. * Copyright (c) 2002, 2008 IBM Corporation and others. All rights reserved.
* This program and the accompanying materials are made available under the terms * This program and the accompanying materials are made available under the terms
* of the Eclipse Public License v1.0 which accompanies this distribution, and is * of the Eclipse Public License v1.0 which accompanies this distribution, and is
* available at http://www.eclipse.org/legal/epl-v10.html * available at http://www.eclipse.org/legal/epl-v10.html
@ -20,6 +20,7 @@
* Martin Oberhuber (Wind River) - [186779] Fix IRSESystemType.getAdapter() * Martin Oberhuber (Wind River) - [186779] Fix IRSESystemType.getAdapter()
* David Dykstal (IBM) - [176577] wrong enablement of "Move up/down" in connection context menu * David Dykstal (IBM) - [176577] wrong enablement of "Move up/down" in connection context menu
* Martin Oberhuber (Wind River) - [206742] Make SystemHostPool thread-safe * Martin Oberhuber (Wind River) - [206742] Make SystemHostPool thread-safe
* David Dykstal (IBM) - [210537] removed exception signalling from this class to match the interface
********************************************************************************/ ********************************************************************************/
package org.eclipse.rse.internal.core.model; package org.eclipse.rse.internal.core.model;
@ -93,22 +94,14 @@ public class SystemHostPool extends RSEModelObject implements ISystemHostPool
/** /**
* Return (and create if necessary) the connection pool for a given system profile. * Return (and create if necessary) the connection pool for a given system profile.
* @param profile the profile to create a host pool for. * @param profile the profile to create a host pool for.
* @throws Exception
*/ */
public static ISystemHostPool getSystemHostPool(ISystemProfile profile) public static ISystemHostPool getSystemHostPool(ISystemProfile profile)
throws Exception
{ {
SystemHostPool pool = (SystemHostPool)pools.get(profile); SystemHostPool pool = (SystemHostPool)pools.get(profile);
if (pool == null) if (pool == null)
{ {
pool = new SystemHostPool(); pool = new SystemHostPool();
pool.setName(profile.getName()); pool.setName(profile.getName());
try {
//FIXME Class Javadocs say that SystemHostPool is not persisted, so this should be removed!
//Or should we get the pool contents by restoring the profile instead?
pool.restore(); // restore connections
} catch (Exception exc) {
}
pools.put(profile, pool); // store this pool reference, keyed by profile object. pools.put(profile, pool); // store this pool reference, keyed by profile object.
} }
return pool; return pool;
@ -183,7 +176,6 @@ public class SystemHostPool extends RSEModelObject implements ISystemHostPool
* @see org.eclipse.rse.core.model.ISystemHostPool#createHost(org.eclipse.rse.core.IRSESystemType, java.lang.String, java.lang.String) * @see org.eclipse.rse.core.model.ISystemHostPool#createHost(org.eclipse.rse.core.IRSESystemType, java.lang.String, java.lang.String)
*/ */
public IHost createHost(IRSESystemType systemType, String aliasName, String hostName) public IHost createHost(IRSESystemType systemType, String aliasName, String hostName)
throws Exception
{ {
return createHost(systemType,aliasName,hostName,null,null,IRSEUserIdConstants.USERID_LOCATION_HOST); return createHost(systemType,aliasName,hostName,null,null,IRSEUserIdConstants.USERID_LOCATION_HOST);
} }
@ -193,7 +185,6 @@ public class SystemHostPool extends RSEModelObject implements ISystemHostPool
* @see org.eclipse.rse.core.model.ISystemHostPool#createHost(org.eclipse.rse.core.IRSESystemType, java.lang.String, java.lang.String, java.lang.String) * @see org.eclipse.rse.core.model.ISystemHostPool#createHost(org.eclipse.rse.core.IRSESystemType, java.lang.String, java.lang.String, java.lang.String)
*/ */
public IHost createHost(IRSESystemType systemType, String aliasName, String hostName, String description) public IHost createHost(IRSESystemType systemType, String aliasName, String hostName, String description)
throws Exception
{ {
return createHost(systemType,aliasName,hostName,description,null,IRSEUserIdConstants.USERID_LOCATION_HOST); return createHost(systemType,aliasName,hostName,description,null,IRSEUserIdConstants.USERID_LOCATION_HOST);
} }
@ -203,8 +194,7 @@ public class SystemHostPool extends RSEModelObject implements ISystemHostPool
* @see org.eclipse.rse.core.model.ISystemHostPool#createHost(org.eclipse.rse.core.IRSESystemType, java.lang.String, java.lang.String, java.lang.String, java.lang.String, int) * @see org.eclipse.rse.core.model.ISystemHostPool#createHost(org.eclipse.rse.core.IRSESystemType, java.lang.String, java.lang.String, java.lang.String, java.lang.String, int)
*/ */
public IHost createHost(IRSESystemType systemType, String aliasName, String hostName, public IHost createHost(IRSESystemType systemType, String aliasName, String hostName,
String description,String defaultUserId,int defaultUserIdLocation) String description,String defaultUserId,int defaultUserIdLocation)
throws Exception
{ {
IHost conn = null; IHost conn = null;
boolean exists = getHost(aliasName) != null; boolean exists = getHost(aliasName) != null;
@ -212,32 +202,25 @@ public class SystemHostPool extends RSEModelObject implements ISystemHostPool
{ {
return null; return null;
} }
try ISystemProfile profile = getSystemProfile();
{
ISystemProfile profile = getSystemProfile(); // delegate the creation of the host object instance to the system type provider!!!
if (systemType != null) {
// delegate the creation of the host object instance to the system type provider!!! conn = systemType.createNewHostInstance(profile);
if (systemType != null) {
conn = systemType.createNewHostInstance(profile);
}
// Fallback to create host object instance here if failed by system type provider.
assert conn != null;
if (conn == null) conn = new Host(profile);
addHost(conn); // only record internally if saved successfully
conn.setHostPool(this);
conn.setAliasName(aliasName);
conn.setSystemType(systemType);
// if default userID is null, and location is in the connection we should retrieve it and use it as the initial value.
if (defaultUserId == null && defaultUserIdLocation == IRSEUserIdConstants.USERID_LOCATION_HOST) {
defaultUserId = conn.getDefaultUserId();
}
updateHost(conn, systemType, aliasName, hostName, description, defaultUserId, defaultUserIdLocation);
} catch (Exception e)
{
throw e;
} }
// Fallback to create host object instance here if failed by system type provider.
assert conn != null;
if (conn == null) conn = new Host(profile);
addHost(conn); // only record internally if saved successfully
conn.setHostPool(this);
conn.setAliasName(aliasName);
conn.setSystemType(systemType);
// if default userID is null, and location is in the connection we should retrieve it and use it as the initial value.
if (defaultUserId == null && defaultUserIdLocation == IRSEUserIdConstants.USERID_LOCATION_HOST) {
defaultUserId = conn.getDefaultUserId();
}
updateHost(conn, systemType, aliasName, hostName, description, defaultUserId, defaultUserIdLocation);
return conn; return conn;
} }
@ -248,7 +231,6 @@ public class SystemHostPool extends RSEModelObject implements ISystemHostPool
public void updateHost(IHost conn, IRSESystemType systemType, public void updateHost(IHost conn, IRSESystemType systemType,
String aliasName, String hostName, String aliasName, String hostName,
String description,String defaultUserId, int defaultUserIdLocation) String description,String defaultUserId, int defaultUserIdLocation)
throws Exception
{ {
boolean aliasNameChanged = !aliasName.equalsIgnoreCase(conn.getAliasName()); boolean aliasNameChanged = !aliasName.equalsIgnoreCase(conn.getAliasName());
if (aliasNameChanged) if (aliasNameChanged)
@ -403,7 +385,6 @@ public class SystemHostPool extends RSEModelObject implements ISystemHostPool
* @see org.eclipse.rse.core.model.ISystemHostPool#renameHost(org.eclipse.rse.core.model.IHost, java.lang.String) * @see org.eclipse.rse.core.model.ISystemHostPool#renameHost(org.eclipse.rse.core.model.IHost, java.lang.String)
*/ */
public void renameHost(IHost conn, String newName) public void renameHost(IHost conn, String newName)
throws Exception
{ {
//must not change the alias name while a getHost() or orderHosts() is ongoing //must not change the alias name while a getHost() or orderHosts() is ongoing
synchronized(connections) { synchronized(connections) {
@ -419,7 +400,6 @@ public class SystemHostPool extends RSEModelObject implements ISystemHostPool
* @see org.eclipse.rse.core.model.ISystemHostPool#cloneHost(org.eclipse.rse.core.model.ISystemHostPool, org.eclipse.rse.core.model.IHost, java.lang.String) * @see org.eclipse.rse.core.model.ISystemHostPool#cloneHost(org.eclipse.rse.core.model.ISystemHostPool, org.eclipse.rse.core.model.IHost, java.lang.String)
*/ */
public IHost cloneHost(ISystemHostPool targetPool, IHost conn, String aliasName) public IHost cloneHost(ISystemHostPool targetPool, IHost conn, String aliasName)
throws Exception
{ {
IHost copy = IHost copy =
targetPool.createHost(conn.getSystemType(), aliasName, targetPool.createHost(conn.getSystemType(), aliasName,

View file

@ -1,5 +1,5 @@
/******************************************************************************** /********************************************************************************
* Copyright (c) 2006, 2007 IBM Corporation and others. All rights reserved. * Copyright (c) 2006, 2008 IBM Corporation and others. All rights reserved.
* This program and the accompanying materials are made available under the terms * This program and the accompanying materials are made available under the terms
* of the Eclipse Public License v1.0 which accompanies this distribution, and is * of the Eclipse Public License v1.0 which accompanies this distribution, and is
* available at http://www.eclipse.org/legal/epl-v10.html * available at http://www.eclipse.org/legal/epl-v10.html
@ -37,6 +37,7 @@
* Martin Oberhuber (Wind River) - [194898] Avoid NPE when doing EVENT_REFRESH_REMOTE on a subsys without filters * Martin Oberhuber (Wind River) - [194898] Avoid NPE when doing EVENT_REFRESH_REMOTE on a subsys without filters
* David McKnight (IBM) - [207100] adding ISystemRegistry.isRegisteredSystemRemoteChangeListener * David McKnight (IBM) - [207100] adding ISystemRegistry.isRegisteredSystemRemoteChangeListener
* Martin Oberhuber (Wind River) - [206742] Make SystemHostPool thread-safe * Martin Oberhuber (Wind River) - [206742] Make SystemHostPool thread-safe
* David Dykstal (IBM) - [210537] removed exception handling for SystemHostPool, no longer needed
********************************************************************************/ ********************************************************************************/
package org.eclipse.rse.ui.internal.model; package org.eclipse.rse.ui.internal.model;
@ -1333,24 +1334,11 @@ public class SystemRegistry implements ISystemRegistry
/** /**
* Return a connection pool given a profile * Return a connection pool given a profile
*/ */
private ISystemHostPool getHostPool(ISystemProfile profile) private ISystemHostPool getHostPool(ISystemProfile profile) {
{ ISystemHostPool result = SystemHostPool.getSystemHostPool(profile);
lastException = null; return result;
try
{
return SystemHostPool.getSystemHostPool(profile);
}
catch (Exception exc)
{
SystemBasePlugin.logError("Exception in getConnectionPool for " + profile.getName(), exc); //$NON-NLS-1$
lastException = exc;
}
catch (Throwable t)
{
SystemBasePlugin.logError("Exception in getConnectionPool for " + profile.getName(), t); //$NON-NLS-1$
}
return null;
} }
/** /**
* Return connection pools for active profiles. One per. * Return connection pools for active profiles. One per.
*/ */