Eclipse - Eclipse Plug-ins and Extension Points

Page / - last modified by uru on 2015/04/09 13:42

Eclipse Plug-ins and Extension Points

last modified by uru

on 2015/04/09 13:42

Table of Contents

Preliminaries

Required Software

Finding Documentation

First Steps with Eclipse

Starting Eclipse

Importing Existing Plug-ins

Running Eclipse

Creating Your First Plug-in

Extending Functionality

Welcome to this tutorial! We will walk you through the process of starting Eclipse for the first time, importing existing plug-ins, and creating a simple plugin yourself.

Preliminaries

There's a few things to do before we dive into the tutorial itself. For example, to do Eclipse programming, you will have to get your hands on an Eclipse installation first. Read through the following sections to get ready for the tutorial tasks.

Required Software

Install Eclipse. For what we do, we recommend installing the Eclipse Modeling Tools.

Finding Documentation

Finding Documentation

First Steps with Eclipse

Starting Eclipse

Eclipse uses workspaces to store, for instance, user preferences. Upon the first start of Eclipse you will be asked to specify a location. Select one as you like.

Switch to the workbench, you should see something like this

Importing Existing Plug-ins

Download the zip file with an example plug-in from our Stash. Unzip the file.

Open the context menu within the Package-Explorer (on the very left, right-click the empty space).

Select Import. Then chose General > Existing Projects into Workspace.

Browse to the location where you unzipped the downloaded plug-in. Click open. Check the checkbox in front of the de.cau.cs.kieler.tutorials.plugins.shouter plug-in and press Finish.

Running Eclipse

In Eclipse, we develop plug-ins that extend the basic functionality of Eclipse itself. As we do not always want to run Eclipse with all the functionality there is, we can use Run Configurations to precisely specify the functionality we want.

Click Run > Run Configurations...

Right-click Eclipse Application and click New. Set the configuration's name to Eclipse Test.

On the Plug-ins tab, set Launch with to plug-ins selected below only.

Click Deselect All.

Check the Workspace item in the tree.

Check the org.eclipse.ui.ide.application plugins under Target Platform

Click Add Required Plug-ins. Press it twice (just to be sure!).

Click Apply to save your changes and then Run to start an Eclipse instance to test with.

In the newly started Eclipse, open the context menu of the Project Explorer.

You should see a Hello Shouter entry which shouts out Hello if you press it.

Note that you can run your configuration also by using the debug button in the main menu. In that case you will be able to use debug features and code changes will be directly active in your Eclipse instance after saving. In the rather rare cases where this is impossible you will be notified.

Creating Your First Plug-in

Open the context menu within the Package-Explorer (on the very left, right-click the empty space).

New -> Project...

In the project wizard, choose Plug-in Project and click Next.

As the project name, enter de.cau.cs.kieler.tutorials.myshouter. Click Next.

As the name, enter Simple Shouter. Uncheck all checkboxes. Click Finish. (Eclipse might ask you whether you want to switch to the Plug-in Development Perspective, which configures Eclipse to provide the views that are important for plug-in development. Choose Yes. Or No. It won't have a big influence on your future...)

Eclipse has now created your new plug-in and was nice enough to open the Plug-in Manifest Editor, which allows you to graphically edit two important files of your plugin: plugin.xml (which has not been created yet) and META-INF/MANIFEST.MF. Basically, those two files provide information that tell Eclipse what other plug-ins your plug-in needs and how it works together with other plug-ins by providing extensions and extension points. Our new plug-in will depend on the previously imported plug-in, so switch to the Dependencies tab of the editor and add a dependency to de.cau.cs.kieler.tutorials.plugins.shouter. Save the editor and close it. (You can always reopen it by opening one of the two mentioned files from the Package Explorer.)

Extending Functionality

We will now use the extension point mechanism of Eclipse to add some behavior to the de.cau.cs.kieler.tutorials.plugins.shouter plugin. An extension point is basically a well-defined point where other plug-ins can register to add functionality. The extension point is basically defined by an XML Schema file that defines an interface; other plug-ins may access this interface using XML code in their plugin.xml file, so-called extensions.

The de.cau.cs.kieler.tutorials.plugins.shouter plug-in defines such an extension point to register Shouters. A shouter is a Java class that implements the following interface.

public interface IShouter {
String getShoutString();
}

In your previously created plugin (de.cau.cs.kieler.tutorials.myshouter) create a new class MyShouter that implements the IShouter interface.

From the Package Explorer context menu select New > Class.

Open the MANIFEST.MF of your plugin and navigate to the Extensions tab.

Press Add and select the de.cau.cs.kieler.tutorials.plugins.shouters extension point. Press Finish.

Give it a name and using the Browse button select your previously created class implementing the IShouter interface.

Start your Eclipse instance again using the created run configuration and test your very own shouter.