Overview

The ProvideX Plug-in

The ProvideX Plug-in for Eclipse has been designed to provide an environment that integrates into the existing Eclipse framework and extends that infrastructure to ProvideX developers. This plug-in automatically converts tokenized ProvideX programs into text files and captures any additional control information (passwords, owner codes, and flags) as part of the conversion process. Once a program has been converted into text it can be used with many of the existing capabilities and other plug-ins available in Eclipse. This includes, but is not limited to, various change control systems such as CVS, Subversion, and MKS. The native version tracking that is part of the Eclipse framework can be used to keep track of localized modifications at the workstation.

The plug-in also allows third party collaboration to enhance or extend the capabilities of the plug-in.

Design Patterns

First, we will discuss a bit of OOP history and design methodologies.

Observers

The ability to extend the ProvideX plug-in is based on the observer design pattern. Each new extension is registered and the class initialized during startup of the plug-in. Once each class has been initialized, it can be queried to identify when it is to be invoked during the normal event cycle.

Each class has an update() method that is called when it is triggered. This method will then perform the task required to provide the additional functionality.

Enhancing Plug-in Functionality

The ProvideX plug-in can be enhanced using two different methods, or a combination of both.

Enhance Built-in Event Process

The first mechanism is to add functionality to the existing events that are supplied by the plug-in. These events allow two access points for the external logic to be executed. One is before the normal event logic and the second is after the event logic. A single enhancement can execute logic at either or both points in the event process.

Contributed Tools

The second mechanism is to add an external tool to the 'ProvideX' menu that will provide functionality outside of the plug-in event process. This external tool can manipulate the files within a ProvideX project in Eclipse.

Next Section: Design Patterns