Launchers

Testing an Eclipse plug-in is very easy. Just save your file and launch a second instance of Eclipse. No packaging or deployment steps are necessary.

PDE makes it all possible by extending the "Debug" framework and providing three different launch configuration types that cover different testing domains:

- Eclipse Application
- Equinox OSGi Framework
- JUnit Plug-in Test

PDE launch configurations are centrally managed within the Launch Configuration Dialog along with other launch configurations in the SDK. PDE launch configurations can be invoked via Run > Run... or Debug > Debug... from the top level menu.

Save and Launch

As you develop your plug-in in the workspace, the Java source code gets incrementally compiled and the generated class files are placed in output folders. When you launch a runtime Eclipse application, PDE launches the application in dev mode and customizes the runtime classpath. PDE customizes the runtime classpath by putting the freshly generated class files on your plug-in classpath; thus, making them readily available to get picked up by the runtime classloader. This mechanism allows you to test your code without the need to package it in a JAR first.

PDE gives you even more control over the runtime classpath of your plug-in by providing a Runtime Classpath property page for each plug-in project. Within this property page, you can specify which classes to exclude or include at the output folder level when testing. The Runtime Classpath property page can be invoked via Properties > Plug-in Development > Runtime Classpath from the context menu of plug-in projects.

A specific example of when you might want to exclude output folders from a launch is when you are testing Ant tasks. The reason for this is that Ant expects your code to be in a JAR according to the Ant contract. Therefore, it is recommended to package Ant code in a JAR within your plug-in project and exclude the output folder containing the compiled Ant task source from the launch.