RSE API Discussion

From Eclipsepedia

Jump to: navigation, search

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


Contents

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

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?