# Plug-in Project Structure

The Project Structure wizard page allows you to specify the project name, location, settings and target.

## Project Name

When choosing a name for the plug-in project, the reverse naming domain convention (e.g. com.example.abc) is recommended - but not enforced by PDE.

## Project Location

The default location for the plug-in project is a subdirectory nested inside the workspace location. To change the location, uncheck the Use default location checkbox and enter the location of your choice.

## Project Settings

Whether or not a plug-in project should be created as a Java project depends on whether the plug-in will contribute code. Most plug-ins do contribute code and should therefore be housed inside a Java project. Other plug-ins, such as documentation plug-ins do not contribute code and can therefore be contained in simple projects.

## Eclipse vs. OSGi Framework

The Eclipse vs. OSGi framework choice controls the code generation options available on the Plug-in Content page as well as the list of templates available.

Eclipse plug-ins are OSGi bundles that use the Eclipse extension registry. Most Eclipse plug-ins use this registry; since, it is available in the runtime layer. As a result, the Eclipse target is selected by default.

If you do not intend to use the Eclipse extension registry, then you should use the OSGi framework option. If you select the OSGi framework option, you will not end up with dependencies on the runtime layer. Moreover, PDE will restrict the available templates and the code generated for you to the OSGi layer.

## Equinox vs. Standard

When targeting an OSGi framework, you have a choice between the Equinox and standard frameworks. The Equinox OSGi framework augments the MANIFEST.MF content with Eclipse-specific headers (e.g. Eclipse-LazyStart, Eclipse-PlatformFilter) and directives (e.g. x-friends). If you do not wish to use these Eclipse-specific headers and attributes, then choose the standard option.

## Working Sets

For convenience, plug-in projects can easily be associated with working sets which are defined in the workbench.