# Adopting 3.6 mechanisms and APIs

This section describes changes that are required if you are trying to change your 3.5 plug-in to adopt the 3.6 mechanisms and APIs.

1. Use IResource#setDerived(boolean, IProgressMonitor)
2. A new cause of IFile#create and IFolder#create failure
3. Keywords support in Workbench Wizards
4. Use IWorkbench#getModalDialogShellProvider()

## 1. Use IResource#setDerived(boolean, IProgressMonitor)

As of 3.6, the `IResource#setDerived(boolean)` is deprecated. `IResource#setDerived(boolean, IProgressMonitor)` should be used instead and this change will be reported in a subsequent resource change event.

## 2. A new cause of IFile#create and IFolder#create failure

As of 3.6, there is a new cause when `IFile#create` and `IFolder#create` fail, i.e. when a non-virtual resource is created in a virtual folder. Callers of this API that do preliminary verification before `#create` is called, should adapt to this change and support the new case. In particular, wizards that create new resources and show errors in the title area when `#create` may fail, should handle the case by showing a new error rather than failing and writing to the log.

## 3. Keywords support in Workbench Wizards

As of 3.6, the New/Import/Export wizards support the org.eclipse.ui.keywords extension. It is recommended to add keywords and associate with these wizards, so that the users can easily filter

## 4. Use IWorkbench#getModalDialogShellProvider()

To get the best possible parent shell for modal dialogs, use `IWorkbench#getModalDialogShellProvider()`.