At this point, we can identify the following practical requirements for a plugin:
it must be packaged as one or more JAR archives and contain a class file ending with the prefix Plugin that extends the EditPlugin abstract class;
the archive must contain at least one properties file having a .props extension. Certain properties giving information about the plugin must be defined.
if the plugin will provide a visible interface, the JAR archive must contain an XML data file named dockables.xml containing BeanShell code for creating a container for that interface;
the JAR archive may contain data concerning actions for display in jEdit's menu bar and elsewhere in a file entitled actions.xml; and
if the plugin must respond as a whole to changes in the state of the jEdit application, the plugin core class should be derived from the EBPlugin class instead of directly from EditPlugin
We will provide more detail on these requirements later.