An extension is a unit of functionality that plugs into an ide. The name of this extension. The individual or group responsible for this extension. Dependencies this extension has on other extensions. Specifies a dependency on another extension. The text value of this element is the extension id of an extension the current extension depends on. Optionally specifies the minimum version of the dependency that must be installed. Optionally specifies the maximum version of the dependency that must be installed. Classpath entries that this extension reqiures. A classpath entry. The text content of this element is the relative path of a jar file or directory that will be added to the classpath of this extension. Information about the platform this extension requires. The UI toolkit this extension requires. All functionality provided by the extension is described in the hooks section of the extension manifest. Specifies functionality this extension contributes to menus and toolbars. Actions contributed by this extension. A user invokable action. The label for this action. The mnemonic character to use for this action. The tooltip text to use for this action. The path to the icon to use for this action. This is usually a resource available on the classpath of the extension. Whether this action is enabled by default. Whether this action is checked by default. This property only applies to actions which have the toggle attribute set to true. The fully qualified class name of an invoke handler for this action. The specified class must be an implementation of javax.ide.command.InvokeHandler. The fully qualified class name of an update handler for this action. The specified class must be an implementation of javax.ide.command.UpdateHandler. Whether this action is a toggle action. Toggle actions have a notion of a selection state, which can be either true or false. An override of an action provided by another extension. This mechanism allows extension writers to register invoke and update handlers for actions provided by other extensions and optionally override the default behavior of the action. The fully qualified class name of the invoke handler for the overridden action. This must be an implmentation of javax.ide.command.InvokeHandler. The fully qualified class name of the update handler for the overridden action. This must be an implmentation of javax.ide.command.UpdateHandler. The id of the action being overridden. Menus contributed by this extension. Menu bars contributed by this extension. Popup menus contributed by this extension. Toolbars contributed by this extension. Factories to create custom toolbar items contributed by this extension. The fully qualified class name of an ItemFactory which provides a custom GUI component for a menu or toolbar item. In the current release of JSR-198, only toolbar items support customizability. The specified class must be a subclass of javax.ide.menu.ItemFactory. Specifies custom document types and listeners for document events this extension contributes. Document types contributed by this extension. Registers a document type by suffix. The fully qualified class name of the document type to register. This should be a class extending javax.ide.model.Document. Registers a recognizer that will identify document types based on the root element of an XML document. The suffix to recognize. If none is specified, .xml is used. The root element to recognize. The namespace URI to recognize. The local element name to recognize. The fully qualified class name of the document class to use when recognizing a file by its XML root. This should be a subclass of javax.ide.model.xml.XMLDocument. If no document class is specified, then XMLDocument is used. Registers a recognizer that will identify document types based on the doctype of xml documents. The suffix to recognize. If none is specified, .xml is used. The document type to recognize. The public id to recognize. The system id to recognize. The fully qualified class name of the document class to use. Must be a subclass of javax.ide.model.xml.XMLDocument. If none is specifed, XMLDocument is used. Registers a custom recognizer implementation. Extension writers should use this as a last resort if other recognizers are not suitable, it may have severe performance issues on some IDEs. The fully qualified class name of the recognizer to use. This should be a subclass of javax.ide.model.Recognizer. Listeners for document events contributed by this extension. A listener for document events. Listens for property events. Specifies listeners this extension attaches to the IDE. Listeners for IDE activation and deactivation events. The fully qualified class name of a listener for ide activation and deactivation. The class must implement javax.ide.IDEListener. Specifies custom editors, document editor assignments, and listeners for editor events that this extension contributes. Specifies custom editors provided by this extension. A custom editor. The name of the editor. The fully qualified class name of the custom editor. The class must be a subclass of javax.ide.editor.Editor. Mappings from document types to editors. A mapping from a document type to an editor type. The mapping allows documents of the specified type to be opened with the specified editor types. Specifies which editors to open the document type with. The fully qualified class name of an editor to register the document type with. The class should be a subclass of javax.ide.editor.Editor. Specifies whether this is the preferred editor for the specified document type. An IDE is free to interpret this attribute however it pleases. For example, it might open documents in the preferred editor by default on double click. The default value for this attribute if not specified is false. The fully qualified class name of a document class to register a mapping for. The class should be a subclass of javax.ide.model.Document. Listeners for editor events. A listener for editor events. Specifies preference and settings pages that this extension contributes. Property pages. A property page. The label for the property page. The fully qualified class name of the type of object this property page edits. JSR-198 defines two standard object types: javax.ide.IDE for global IDE properties, and javax.ide.model.Project for project specific properties. Extensions can also provide other object types for which dependee extensions may register property pages. For more information, see javax.ide.property.PropertyPageRegistry javadoc. The fully qualified class name of the property page. This should be a subclass of javax.ide.property.PropertyPage. The fully qualified class name of the parent page of this page. If property pages are shown in a hierarchical mode, this provides a hint to the IDE about where to place this page. If unspecified, this is a top level property page. The class should be a subclass of javax.ide.property.PropertyPage. Specifies log pages that this extension contributes. Custom log pages. A custom log page. The fully qualified class name of the custom log page. This must be a subclass of javax.ide.log.LogPage. Specifies wizards that this extension contributes. Wizards are user interface objects that can create new objects. A category for wizards. IDEs may choose to use the categorization information to group wizards. A label for the category. The parent category for this category. If none is specified, then this is considered to be a root category. A wizard. A label for the wizard. An icon for the wizard. A tooltip for the wizard. The fully qualified class name of the wizard implementation. This should be an implementation of javax.ide.wizard.Wizard. The id of the category that this wizard should be displayed in, if the IDE supports wizard categorization. If no category is specified, then the IDE will display the wizard in a default category. Specifies listeners for build events that this extension contributes. Listeners for build events. The fully qualified class name of a listener. The class should be an implementation of javax.ide.build.BuildListener. Specifies optional information about this extension identifying the functionality it provides to the user as a feature. Licensing information about this extension. Copyright information about this extension. The path to an icon for this extension. A description of the functionality provided by this extension. Whether this extension is optional. Optional extensions can be switched off by users via some IDE specific extension customization UI. By default, extensions which have a feature-hook are optional. Extensions with no feature-hook are not optional. The id of an extension this extension is logically part of. There is no requirement that there be an actual dependency between the extensions. Specifies handlers this extension contributes for custom hooks. Registers a custom hook handler. The namespace URI of the xml element that this hook handler handles. The local element name of the XML element that this hook handler handles. The fully qualified class name of the custom hook handler. This must be a subclass of javax.ide.extension.ExtensionHook. The location of the XML schema for the custom hook grammar. This location is relative to the location of the extension.xml within the jar file providing this extension. Specifies virtual file system helpers contributed by this extension. A virtual file system helper. The fully qualified class name of the helper implementation. This should be a subclass of javax.ide.net.VirtualFileSystemHelper. The URI scheme to register this helper for. Abstract element representing custom hooks. The version of this extension, should only contain digits and periods. The extension SDK this extension is compatible with. This currently must be "1.0". The fully qualified class name of a resource bundle to use to look up translated strings in this extension manifest. A unique identifier. A section containing items. The label for the menu. The mnemonic for the menu. The tooltip text for the menu. The path to the icon for the menu. For top level menus, this property may be ignored. A section containing items in a menu. Specifies the id of a menu component the current component must come before. Specifies the id of a menu component the current component must come after. The id of the action this menu or toolbar item is for. If this menu or toolbar item is in a radio group, specifies the id of the radio group. This id should be the same for all items in a given radio group. An item in a menu or toolbar section. A submenu in a section. For toolbar sections, the behavior of this element is unspecifies. A toolbar. The name of a key in the resource bundle specified by the rsbundle-class root element of the extension. The name of a key in the resource bundle specified by the rsbundle-class root element of the extension. The listener to register. The object to register the listener for. A fully qualified class name. A UI toolkit. The Swing UI toolkit. The SWT UI toolkit. The version of the JSR-198 spec this extension manifest conforms to. Must currently be either 1.0 or 2.0.