Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "RSE API Discussion"

 
 
(5 intermediate revisions by one other user not shown)
Line 4: Line 4:
  
 
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.
 
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.
 +
 +
* [https://bugs.eclipse.org/bugs/buglist.cgi?query_format=advanced&short_desc_type=allwordssubstr&short_desc=%5Bapi&classification=DSDP&product=Target+Management&component=RSE&long_desc_type=allwordssubstr&long_desc=&bug_file_loc_type=allwordssubstr&bug_file_loc=&status_whiteboard_type=allwordssubstr&status_whiteboard=&keywords_type=allwords&keywords=&bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&emailtype1=substring&email1=&emailtype2=substring&email2=&bugidtype=include&bug_id=&votes=&chfieldfrom=&chfieldto=Now&chfieldvalue=&cmdtype=doit&order=Reuse+same+sort+as+last+time&query_based_on=RSE+open+%5Bapi%5D&field0-0-0=noop&type0-0-0=noop&value0-0-0= Bugzilla: All RSE Open API Issues] query
 +
** Clarify Error Handling in Services - [https://bugs.eclipse.org/bugs/buglist.cgi?query_format=advanced&bug_id=149472 bug 149472]
 +
** Allow empty user id / password - [https://bugs.eclipse.org/bugs/buglist.cgi?query_format=advanced&bug_id=142471,147532 bug 142471, 147532]
 +
** Clarify multiple parallel service requests - [https://bugs.eclipse.org/bugs/buglist.cgi?query_format=advanced&bug_id=142478,149133,149179 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 - [https://bugs.eclipse.org/bugs/buglist.cgi?query_format=advanced&bug_id=150168,150265 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 ==
 
== Core and System Registry API ==
Line 11: Line 31:
 
== Services API ==
 
== Services API ==
 
* org.eclipse.rse.services: IService
 
* org.eclipse.rse.services: IService
 +
 +
=== Messaging API ===
 +
* [http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.tm.rse/plugins/org.eclipse.rse.services/clientserver/org/eclipse/rse/services/clientserver/messages/SystemMessage.java?rev=HEAD&cvsroot=DSDP_Project&content-type=text/vnd.viewcvs-markup 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 ===
 
=== Files API ===

Latest revision as of 03:40, 8 August 2006

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

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?

Back to the top