diff --git a/rse/plugins/org.eclipse.rse.services/src/org/eclipse/rse/internal/services/terminals/package.html b/rse/plugins/org.eclipse.rse.services/src/org/eclipse/rse/internal/services/terminals/package.html new file mode 100644 index 00000000000..3703fa0cbef --- /dev/null +++ b/rse/plugins/org.eclipse.rse.services/src/org/eclipse/rse/internal/services/terminals/package.html @@ -0,0 +1,72 @@ + + +
+ + + + ++EXPERIMENTAL. This class or interface has been added as +part of a work in progress. There is no guarantee that this API will work or +that it will remain the same. Please do not use this API without consulting +with the Target Management +team. +
++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.ProcessBaseShell
+ is a sample class implementing IBaseShell, that wraps an existing
+ java.lang.Process
+ object in the IBaseShell interface for easier consumption.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
+ TerminalShellDecorator
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.
+ AbstractTerminalService
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.IBaseShell
, along with
+ProcessBaseShell
and
+BaseShellDecorator
are usable in
+any environment, provided that mock objects are provided for Eclipse
+IAdaptable and PlatformObject.
+
+
+