Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
RSE API Discussion
As we are working towards an RSE 1.0 release, which should contain stable, accepted APIs, we want to expose the RSE APIs to discussion in a broader public.
This page serves as the entry point into those discussions. It will point to overview articles and serve as the starting point to convey the overall picture of RSE APIs.
Individual API discussions will be held on Bugzilla. Please file your requests for API changes as enhancement requests with the String [api] in the subject. At regular intervals, we will search bugzilla for such requests and sort them into this overview page as appropriate.
The following is an index into bugzilla to show currently ongoing discussions on RSE API.
- Bugzilla: All RSE Open API Issues query
- Clarify Error Handling in Services - bug 149472
- Allow empty user id / password - bug 142471, 147532
- Clarify multiple parallel service requests - bug 142478, 149133, 149179
- Service classes like IFileService are public: any client can get access to the service and issue requests at any time! Therefore, it looks like we probably have to make all services thread-safe.
- This could be done by implementing a generic queueing class e.g.
if (fAccessQueue.waitForTicket(IProgressMonitor monitor)) { try { /* do some work */ } finally { fAccessQueue.leave(); } }
- SystemRegistry.createHost() should not persist and allow to specify subsystems - bug 150168, 150265
API Overview
The following is an overview of all RSE API. See also the RSE ISV documentation.
Core and System Registry API
- org.eclipse.rse.core: IRSECoreRegistry, IRSESystemType
- systemTypes.exsd -- missing documentation
Services API
- org.eclipse.rse.services: IService
Messaging API
- SystemMessage required in SystemMessageException required in IFileService (and others)
- Uses XML files for messages, this is not standard Eclipse behavior
- It should be possible to write RSE services without depending on SystemMessage
Files API
- Eclipse File Service APIs Compared
- org.eclipse.rse.services.files: IHostFile, IFileService
- Check IClassifierConstants (from clientserver)
Shellls API
- org.eclipse.rse.services.shells: IShellService, IHostSHell, AbstractHostShell, IHostShellChangeEvent, IHostShellOutput*
Processes API
- org.eclipse.rse.services.processes: IProcessService, IHostProcess, IHostProcessFilter
- API should be moved to single package (currently also ...clientserver)
Persistence Manager
- org.eclipse.rse.ui/persistence: IRSEPersistenceProvider, IRSEPersistenceManager, IRSEPersistableContainer
- persistenceProviders.exsd
- Currently in rse.ui, should go to non-UI (core) plugin?
Remote Search API
- org.eclipse.rse.services.search: ISearchService, IHostSearchResultConfiguration, IHostSearchResultSet, IHostSearchResult, ISearchHandler, IHostSearchResultConfigurationFactory
- Check SystemSearchString (from clientserver)
UI-Related APIs
To be discussed:
- org.eclipse.rse.ui
- archivehandlers.exsd -- go to services.files?
- compile.exsd -- go to services.files or services.shells?
- dynamicPopupMenuExtensions.exsd -- replace by Platform popupMenus?
- keystoreProviders.exsd
- mountPathMappers.exsd
- passwordPersistence.exsd
- popupMenus.exsd -- replace by Platform popupMenus?
- propertyPages.exsd -- replace by Platform propertyPages?
- remoteSystemsViewPreferencesAction.exsd -- ??
- systemtype.exsd -- obsoleted by systemType ??
UI Model
- org.eclipse.rse.ui/org.eclipse.rse.model
- IHost, IProperty, IPropertySet, IPropertySetContainer, IRSEModelObject
- ISystemModelChangeEvent, ISystemModelChangeListener
- ISystemPreferenceChange* -- Replace by Platform equivalent?
- ISystemRegistry -- go to rse.core?
Subsystem Configuration
- org.eclipse.rse.ui
- subsystemConfiguration.exsd -- Still has some com.ibm.etools...
- ISubSystemConfiguration, SubSystemConfiguration, ServiceSubSystemConfiguration -- can this large class/interface be splitted?
- ISubSystemConfigurationProxy -- can this be made internal?
- ISystemValidator
- IHost
- ISubSystem
- IConnectorService, IServerLauncherProperties
Filtering
- org.eclipse.rse.ui/org.eclipse.rse.filters
- ISystemFilterPoolManagerProvider, ISystemFilter, ISystemFilterConstants, ...
- ISystemFilterNamingPolicy, ISystemFilterPool
Profiles and Team Management
- org.eclipse.rse.ui/
- ISystemFilterPool, ISystemProfile
Files Subsystem
- org.eclipse.rse.subsystems.files.core/model
- IRemotePath, ISystemFileAPIProvider, ISystemFileRemoteTypes, ISystemFileTransferModeMapping, ISystemFileTransferModeRegistry, ISystemRemoteCommand, ISystemRemoteCommandMessage
- IRemoteFile, IRemoteFileContext, IVirtualRemoteFile,...
- IHostFileToRemoteFileAdapter
Processes Subsystem
- org.eclipse.rse.subsystems.processes.core/subsystem
- IHostProcessToRemoteProcessAdapter, IRemoteProcess, IRemoteProcessContext
- IRemoteProcessSubSystemConfiguration
Shells Subsystem
- org.eclipse.rse.subsystems.shells.core/model
- ISystemOutputRemoteTypes
- ICandidateCommand, IRemoteCmdSubSystem, IRemoteError, IRemoteOutput
- Duplication?
- Push the dstore remote command matchers into core?