Follow Techotopia on Twitter

On-line Guides
All Guides
eBook Store
iOS / Android
Linux for Beginners
Office Productivity
Linux Installation
Linux Security
Linux Utilities
Linux Virtualization
Linux Kernel
System/Network Admin
Scripting Languages
Development Tools
Web Development
GUI Toolkits/Desktop
Mail Systems
Eclipse Documentation

How To Guides
General System Admin
Linux Security
Linux Filesystems
Web Servers
Graphics & Desktop
PC Hardware
Problem Solutions
Privacy Policy




Eclipse RSE Development Guide
Previous Page Home Next Page

Release 3.0


Application programming interface for the RSE Base Shell and Terminal Services.


Interface Summary
IBaseShell A basic shell, representing the connection to some process that may be running local or remote.
ITerminalService Interface for getting Terminal Connections from a remote side, also known as terminal session with Streams.
ITerminalShell Interface representing a terminal connection through Streams.

Class Summary
AbstractDelegatingTerminalService Base class that can be used for decorating an existing terminal service with additional functionality.
AbstractTerminalService Abstract base class for clients to create an ITerminalService.
AbstractTerminalShell Abstract base class for clients to create an ITerminalShell instance.
BaseShellDecorator Abstract base class for clients to decorate an IBaseShell instance they have with additional functionality.
TerminalShellDecorator Abstract base class for clients to decorate an ITerminalShell instance they have with additional functionality.

Package Description

Application programming interface for the RSE Base Shell and Terminal Services.

Package Specification

The RSE Terminal Services packages provides interfaces and basic utility classes for shell or terminal connections. The classes in this package are especially designed to be extendable by means of the Decorator pattern as well as the Adapter pattern:

  • IBaseShell is the basic interface for communicating with a (potentially remote) process through a channel supporting Streams. The Interface is modeled after the java.lang.Process class, but provides some nice enhancements such as a timeout for the waitFor() method, as well as an isActive() method.
  • ITerminalShell extends IBaseShell, adding methods specific to the presentation of the data transferred from the (remote) process: it provides for getDefaultEncoding(), getPtyType(), isLocalEcho() as well as setTerminalSize() methods.
  • AbstractTerminalShell is an abstract base class that implementers of ITerminalShell must extend. It provides default implementations of all methods where possible, and ensures that future evolving of the ITerminalShell interface can be done without breaking binary compatibility with extenders implementing it.
  • BaseShellDecorator and eclipse_rse_eclipse_rse_Teclipse_rse_eeclipse_rse_reclipse_rse_meclipse_rse_ieclipse_rse_neclipse_rse_aeclipse_rse_leclipse_rse_Seclipse_rse_heclipse_rse_eeclipse_rse_leclipse_rse_leclipse_rse_Declipse_rse_eeclipse_rse_ceclipse_rse_oeclipse_rse_reclipse_rse_aeclipse_rse_teclipse_rse_oeclipse_rse_reclipse_rse_eclipse_rse_ abstract base classes should be used when clients want to add functionality by decorating an existing IBaseShell or ITerminalShell object they have. Again, extending these not only saves the extender typing default delegation methods, but also ensures that they remain binary compatible in case the interfaces evolve.
  • ITerminalService is the RSE Service Interface, and currently only provides one factory method launchTerminal() for creating a new Terminal Connection. eclipse_rse_eclipse_rse_Aeclipse_rse_beclipse_rse_seclipse_rse_teclipse_rse_reclipse_rse_aeclipse_rse_ceclipse_rse_teclipse_rse_Teclipse_rse_eeclipse_rse_reclipse_rse_meclipse_rse_ieclipse_rse_neclipse_rse_aeclipse_rse_leclipse_rse_Seclipse_rse_eeclipse_rse_reclipse_rse_veclipse_rse_ieclipse_rse_ceclipse_rse_eeclipse_rse_eclipse_rse_ must be used as base class by extenders who wish to implement the ITerminalService, in order to ensure binary compatibility in case the interface evolves - even though the AbstractTerminalService is currently empty.
The classes and interfaces in this package are designed to have only minimal dependency into Eclipse core APIs, such that Services can eventually be re-used in environments outside Eclipse. Especially IBaseShell , along with ProcessBaseShell and BaseShellDecorator are usable in any environment, provided that mock objects are provided for Eclipse IAdaptable and PlatformObject.

Release 3.0

Copyright (c) IBM Corporation and others 2000, 2008. All Rights Reserved.

  Published under the terms of the Eclipse Public License Version 1.0 ("EPL") Design by Interspire