# Remote System Explorer Extension Points

This product is built on the Eclipse platform (www.eclipse.org) and so it offers all the capabilities of Eclipse. This includes the ability to create new Eclipse plug-ins to contribute additional functions to Eclipse. You can write plug-ins using Java, using Eclipse itself, with the Plug-in Development Environment (PDE) perspective. Plug-ins contain a file named `plugin.xml` that registers their functions. All such functions are created by use of extension points. These are either supplied by Eclipse or by other plug-ins. The plugin.xml file describes which extension points are being exploited by each plug-in, and for each identifies the Java class that supplies the additional functions. Each extension point identifies a Java interface (or base class) that classes exploiting the extension point must implement (or extend).

There are many Eclipse-supplied extension points described in this documentation. In addition to the Eclipse extension points, there are unique Remote System Explorer extension points that enable you to contribute property pages and pop-up menu actions to remote objects within the Remote Systems view, among other things. The base Eclipse extension points are not sufficient for these, as they do not allow scoping of those property pages and actions such that they only appear for certain remote objects meeting specific filtering criteria.

Listed below are the most common extension points defined by the Remote System Explorer. They are further described in the reference section along with others that are more special-purpose. The ones listed here are specifically designed to make it easy to contribute functions to the pop-up menus of remote objects displayed in the Remote Systems view. These extension points are defined by the org.eclipse.rse.core and org.eclipse.rse.ui plugins.

Extension Point | Description
--- | ---
org.eclipse.rse.core.systemTypes | For defining new system types that show up in the New Connection wizard.
org.eclipse.rse.core.subsystemConfigurations | For defining new subsystems that appear when a connection is expanded.
org.eclipse.rse.services.archivehandlers | For supporting additional archive file types, such as is done today for zip, jar and tar files. This adds support for expanding the archives and supporting all the usual actions on the contents.
org.eclipse.ui.popupMenus | For defining actions, which appear in the pop-up menu of remote objects listed in the Remote Systems view.
org.eclipse.ui.propertyPages | For defining property pages, which appear in the Properties dialog when users select the Properties action from the pop-up menu of remote objects listed in the Remote Systems view.